diff --git a/configs/offline/baseline.toml b/configs/offline/baseline.toml new file mode 100644 index 0000000000..bf12c83e22 --- /dev/null +++ b/configs/offline/baseline.toml @@ -0,0 +1,9 @@ +chain-id = "31337" # Anvil local chain +base-tokens = [ + "0x5fbdb2315678afecb367f032d93f642f64180aa3", # WETH (auto-generated from deployment) + "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", # DAI (auto-generated from deployment) + "0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0", # USDC (auto-generated from deployment) +] +max-hops = 2 +max-partial-attempts = 5 +native-token-price-estimation-amount = "100000000000000000" # 0.1 ETH diff --git a/configs/offline/driver.toml b/configs/offline/driver.toml new file mode 100644 index 0000000000..3a24e6641a --- /dev/null +++ b/configs/offline/driver.toml @@ -0,0 +1,35 @@ +app-data-fetching-enabled = true +orderbook-url = "http://orderbook" +tx-gas-limit = "45000000" + +[[solver]] +name = "baseline" # Arbitrary name given to this solver, must be unique +endpoint = "http://baseline" +absolute-slippage = "40000000000000000" # Denominated in wei, optional +relative-slippage = "0.1" # Percentage in the [0, 1] range +# Anvil account #0 private key (from test mnemonic) +account = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" + +[submission] +gas-price-cap = "1000000000000" + +[[submission.mempool]] +mempool = "public" + +[contracts] +gp-v2-settlement = "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e" +weth = "0x5fbdb2315678afecb367f032d93f642f64180aa3" +balances = "0xbd5a6618df333f8f66702daadc9a953e2b52a65d" +signatures = "0x7377795aa7b4a8fca5e4e194f54eaff667db45f0" + +[liquidity] +base-tokens = [ + "0x5fbdb2315678afecb367f032d93f642f64180aa3", # WETH (auto-generated from deployment) + "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", # DAI (auto-generated from deployment) + "0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0", # USDC (auto-generated from deployment) +] + +[[liquidity.uniswap-v2]] # Uniswap V2 configuration (auto-generated from deployment) +router = "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707" +pool-code = "0xb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e" # Uniswap V2 init code hash +missing-pool-cache-time = "1h" diff --git a/crates/chain/src/lib.rs b/crates/chain/src/lib.rs index 2833e2a5eb..a5a6e63082 100644 --- a/crates/chain/src/lib.rs +++ b/crates/chain/src/lib.rs @@ -66,9 +66,7 @@ impl Chain { | Self::Optimism => U256::from(10u128.pow(17)), Self::Gnosis | Self::Avalanche | Self::Lens => U256::from(10u128.pow(18)), Self::Polygon | Self::Plasma => U256::from(10u128.pow(20)), - Self::Hardhat => { - panic!("unsupported chain for default amount to estimate native prices with") - } + Self::Hardhat => U256::from(10u128.pow(17)), // Use same as testnets for local testing } } diff --git a/crates/solvers/src/infra/contracts.rs b/crates/solvers/src/infra/contracts.rs index 0b159ca085..a4787e07fb 100644 --- a/crates/solvers/src/infra/contracts.rs +++ b/crates/solvers/src/infra/contracts.rs @@ -15,7 +15,15 @@ impl Contracts { Self { weth: eth::WethAddress( WETH9::deployment_address(&chain.id()) - .expect("there should be a contract address for all supported chains") + .unwrap_or_else(|| { + // For local development chains (Hardhat/Anvil), use the standard deployment + // address from the test deployment at 0x5FbDB2315678afecb367f032d93F642f64180aa3 + if chain.id() == 31337 { + "0x5FbDB2315678afecb367f032d93F642f64180aa3".parse().unwrap() + } else { + panic!("there should be a contract address for all supported chains") + } + }) .into_legacy(), ), } diff --git a/playground/.env.offline b/playground/.env.offline new file mode 100644 index 0000000000..7e7955f70f --- /dev/null +++ b/playground/.env.offline @@ -0,0 +1,25 @@ +# Auto-generated by deploy-all.sh +# Generated at: 1763647692 + +# Network Configuration +CHAIN_ID=31337 +NODE_URL=http://chain:8545 +SIMULATION_NODE_URL=http://chain:8545 + +# Token Addresses (from deployment) +WETH_ADDRESS=0x5fbdb2315678afecb367f032d93f642f64180aa3 +DAI_ADDRESS=0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9 +USDC_ADDRESS=0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0 +NATIVE_TOKEN_ADDRESS=0x5fbdb2315678afecb367f032d93f642f64180aa3 + +# Uniswap V2 Addresses (from deployment) +UNISWAP_V2_FACTORY_ADDRESS=0xdc64a140aa3e981100a9beca4e685f962f0cf6c9 +UNISWAP_V2_ROUTER_ADDRESS=0x5fc8d32690cc91d4c39d9d3abcbd16989f875707 + +# CoW Protocol Addresses (from deployment) +SETTLEMENT_CONTRACT_ADDRESS=0xb7f8bc63bbcad18155201308c8f3540b07f84f5e +AUTHENTICATOR_ADDRESS=0x610178da211fef7d417bc0e6fed39f05609ad788 +VAULT_RELAYER_ADDRESS=0x8daf17a20c9dba35f005b6324f493785d239719d +BALANCER_VAULT_ADDRESS=0x8A791620dd6260079BF849Dc5567aDC3F2FdC318 +BALANCES_CONTRACT_ADDRESS=0xbd5a6618df333f8f66702daadc9a953e2b52a65d +SIGNATURES_CONTRACT_ADDRESS=0x7377795aa7b4a8fca5e4e194f54eaff667db45f0 diff --git a/playground/docker-compose.offline.yml b/playground/docker-compose.offline.yml new file mode 100644 index 0000000000..98ccd7b34f --- /dev/null +++ b/playground/docker-compose.offline.yml @@ -0,0 +1,359 @@ +services: + # Anvil node with pre-deployed contracts (offline mode) + chain: + image: ghcr.io/foundry-rs/foundry:latest + restart: always + entrypoint: /bin/sh + command: + - -c + - | + if [ -f /state/poc-state.json ]; then + echo "๐Ÿ“‚ Loading existing blockchain state..." + anvil --load-state ./state/poc-state.json --host 0.0.0.0 --port 8545 --chain-id 31337 --block-time 1 --gas-limit 30000000 --code-size-limit 50000 --accounts 10 + else + echo "Error: No state file found at /state/poc-state.json. Please run locally with start-anvil.sh and deploy-all.sh scripts to create the state first." + exit 1 + fi + environment: + - ANVIL_IP_ADDR=0.0.0.0 + volumes: + - ./poc-offline-mode/state:/state + ports: + - 8545:8545 + healthcheck: + test: + [ + "CMD-SHELL", + "cast rpc eth_blockNumber --rpc-url http://127.0.0.1:8545 > /dev/null", + ] + interval: 2s + timeout: 5s + retries: 10 + start_period: 2s + + db: + image: postgres:16 + restart: always + env_file: .env.offline + environment: + - POSTGRES_USER + - POSTGRES_PASSWORD + - POSTGRES_HOST_AUTH_METHOD=trust + command: -d postgres + volumes: + - postgres:/var/lib/postgresql/data + ports: + - 5432:5432 + + adminer: + image: adminer + restart: always + ports: + - 8082:8080 + depends_on: + - db + + db-migrations: + build: + context: ../ + target: migrations + dockerfile: ./playground/Dockerfile + restart: on-failure + env_file: .env.offline + environment: + - FLYWAY_URL=jdbc:postgresql://db/?user=${POSTGRES_USER}&password=${POSTGRES_PASSWORD} + depends_on: + - db + + orderbook: + build: + context: ../ + target: localdev + dockerfile: ./playground/Dockerfile + restart: always + entrypoint: ["/bin/bash", "-c"] + command: + - | + echo "Waiting for chain to be reachable..." + until curl -s -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://chain:8545 | grep -q result; do + echo "Chain not ready, waiting..." + sleep 1 + done + echo "Chain is ready! Building and starting orderbook..." + cargo build --bin orderbook + target/aarch64-unknown-linux-gnu/debug/orderbook + env_file: .env.offline + environment: + - NODE_URL=http://chain:8545 + - DB_WRITE_URL=postgres://db:5432/?user=${POSTGRES_USER}&password=${POSTGRES_PASSWORD} + - DB_READ_URL=postgres://db:5432/?user=${POSTGRES_USER}&password=${POSTGRES_PASSWORD} + - LOG_FILTER=orderbook=trace,shared=trace + - ACCOUNT_BALANCES_SIMULATION=false + - ACCOUNT_BALANCES_SIMULATOR=Web3 + - SIMULATION_NODE_URL=http://chain:8545 + - EIP1271_SKIP_CREATION_VALIDATION=true + - ENABLE_EIP1271_ORDERS=true + - PRICE_ESTIMATORS=None + - PRICE_ESTIMATION_DRIVERS=baseline|http://driver/baseline + - NATIVE_PRICE_ESTIMATORS=baseline|http://driver/baseline + - DRIVERS=baseline|http://driver/baseline + - BIND_ADDRESS=0.0.0.0:80 + - BASELINE_SOURCES=UniswapV2 + - TOKEN_OWNER_FINDERS=liquidity + - AMOUNT_TO_ESTIMATE_PRICES_WITH=100000000000000000 + - HOOKS_CONTRACT_ADDRESS=0x0000000000000000000000000000000000000000 + - RUST_BACKTRACE=1 + - TOML_TRACE_ERROR=1 + - TRACING_COLLECTOR_ENDPOINT=http://tempo:4317 + - TOKIO_CONSOLE=true + - TOKIO_CONSOLE_RETENTION=600sec + - TOKIO_CONSOLE_BIND=0.0.0.0:6669 + volumes: + - ../:/src + depends_on: + db-migrations: + condition: service_completed_successfully + chain: + condition: service_healthy + ports: + - 8080:80 # API + - 9586:9586 # metrics + - 6669:6669 # tokio console + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:80/api/v1/version || exit 1"] + interval: 5s + timeout: 3s + retries: 12 + start_period: 30s + + autopilot: + build: + context: ../ + target: localdev + dockerfile: ./playground/Dockerfile + restart: always + entrypoint: ["/bin/bash", "-c"] + command: + - | + echo "Waiting for chain to be reachable..." + until curl -s -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://chain:8545 | grep -q result; do + sleep 1 + done + echo "Chain is ready! Building and starting autopilot..." + cargo build --bin autopilot + target/aarch64-unknown-linux-gnu/debug/autopilot + env_file: .env.offline + environment: + - DB_WRITE_URL=postgres://db:5432/?user=${POSTGRES_USER}&password=${POSTGRES_PASSWORD} + - DB_READ_URL=postgres://db:5432/?user=${POSTGRES_USER}&password=${POSTGRES_PASSWORD} + - LOG_FILTER=trace,autopilot=trace,shared=debug,shared::price_estimation=trace,autopilot::solvable_orders=trace,autopilot::run=trace + - NODE_URL=http://chain:8545 + - SIMULATION_NODE_URL=http://chain:8545 + - SETTLE_INTERVAL=15s + - GAS_ESTIMATORS=Native,Web3 + - PRICE_ESTIMATORS=None + - NATIVE_PRICE_ESTIMATORS=baseline|http://driver/baseline + - BLOCK_STREAM_POLL_INTERVAL=1s + - NATIVE_PRICE_CACHE_MAX_UPDATE_SIZE=100 + - NATIVE_PRICE_CACHE_MAX_AGE=20m + - SOLVER_TIME_LIMIT=5 + - PRICE_ESTIMATION_DRIVERS=baseline|http://driver/baseline + - RUN_LOOP_NATIVE_PRICE_TIMEOUT=5s + - NATIVE_PRICE_ESTIMATORS=baseline|http://driver/baseline + - NATIVE_PRICE_ESTIMATION_RESULTS_REQUIRED=1 + - DRIVERS=baseline|http://driver/baseline|0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + - BASELINE_SOURCES=UniswapV2 + - TOKEN_OWNER_FINDERS=liquidity + - DISABLE_ORDER_FILTERING=true + - SKIP_EVENT_SYNC=true + - AMOUNT_TO_ESTIMATE_PRICES_WITH=100000000000000000 + - HOOKS_CONTRACT_ADDRESS=0x0000000000000000000000000000000000000000 + - RUST_BACKTRACE=1 + - TOML_TRACE_ERROR=1 + - TOKIO_CONSOLE=true + - TOKIO_CONSOLE_RETENTION=600sec + - TOKIO_CONSOLE_BIND=0.0.0.0:6669 + volumes: + - ../:/src + depends_on: + orderbook: + condition: service_healthy + chain: + condition: service_healthy + ports: + - 9589:9589 # metrics + - 6670:6669 # tokio console + + driver: + build: + context: ../ + target: localdev + dockerfile: ./playground/Dockerfile + restart: always + entrypoint: ["/bin/bash", "-c"] + command: + - | + echo "Waiting for chain to be reachable..." + until curl -s -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://chain:8545 | grep -q result; do + sleep 1 + done + echo "Chain is ready! Building and starting driver..." + cargo build --bin driver + target/aarch64-unknown-linux-gnu/debug/driver --config configs/offline/driver.toml + env_file: .env.offline + environment: + - ETHRPC=http://chain:8545 + - ADDR=0.0.0.0:80 + - RUST_LOG=driver=trace,shared=trace + - RUST_BACKTRACE=1 + - TOML_TRACE_ERROR=1 + - TRACING_COLLECTOR_ENDPOINT=http://tempo:4317 + - TOKIO_CONSOLE=true + - TOKIO_CONSOLE_RETENTION=600sec + - TOKIO_CONSOLE_BIND=0.0.0.0:6669 + volumes: + - ../:/src + ports: + - 9000:80 # API & metrics + - 6671:6669 # tokio console + depends_on: + chain: + condition: service_healthy + + # baseline (solver engine) + baseline: + build: + context: ../ + target: localdev + dockerfile: ./playground/Dockerfile + restart: always + entrypoint: ["/bin/bash", "-c"] + command: + - | + echo "Waiting for chain to be reachable..." + until curl -s -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://chain:8545 | grep -q result; do + sleep 1 + done + echo "Chain is ready! Building and starting baseline solver..." + cargo build --bin solvers + target/aarch64-unknown-linux-gnu/debug/solvers baseline --config configs/offline/baseline.toml + env_file: .env.offline + environment: + - ADDR=0.0.0.0:80 + - LOG=solvers=trace,shared=trace + - RUST_BACKTRACE=1 + - TOML_TRACE_ERROR=1 + - TOKIO_CONSOLE=true + - TOKIO_CONSOLE_RETENTION=600sec + - TOKIO_CONSOLE_BIND=0.0.0.0:6669 + volumes: + - ../:/src + ports: + - 9001:80 # API & metrics + - 6672:6669 # tokio console + depends_on: + chain: + condition: service_healthy + + frontend: + build: + context: . + dockerfile: Dockerfile.cowswap + args: + - CHAIN=31337 + - ETH_RPC_URL=http://127.0.0.1:8545 + env_file: .env.offline + environment: + - REACT_APP_NETWORK_ID=31337 + - REACT_APP_NETWORK_NAME=Anvil Offline + - REACT_APP_NETWORK_URL_PRODUCTION=http://127.0.0.1:8545 + - REACT_APP_API_URL=http://127.0.0.1:8080 + ports: + - 8000:80 + + explorer: + build: + context: . + dockerfile: Dockerfile.explorer + args: + - CHAIN=31337 + - ETH_RPC_URL=http://chain:8545 + environment: + - REACT_APP_NETWORK_ID=31337 + - REACT_APP_NETWORK_NAME=Anvil Offline + - REACT_APP_NETWORK_URL=http://chain:8545 + ports: + - 8001:80 + + tempo: + image: grafana/tempo:latest + ports: + - "4317:4317" # OTLP gRPC + command: ["-config.file=/etc/tempo.yaml"] + volumes: + - ./tempo.yaml:/etc/tempo.yaml + + grafana: + image: grafana/grafana:latest + ports: + - "3000:3000" + environment: + - GF_AUTH_ANONYMOUS_ENABLED=true + - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin + - GF_AUTH_DISABLE_LOGIN_FORM=true + volumes: + - ./grafana-prometheus.yml:/etc/grafana/provisioning/datasources/prometheus.yml + - ./performance-test-suite/grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards + - ./performance-test-suite/grafana/dashboards:/var/lib/grafana/dashboards + depends_on: + - prometheus + + prometheus: + image: prom/prometheus:latest + container_name: prometheus + restart: always + ports: + - "9090:9090" + volumes: + - ./prometheus.yml:/etc/prometheus/prometheus.yml + - prometheus-data:/prometheus + command: + - "--config.file=/etc/prometheus/prometheus.yml" + - "--storage.tsdb.path=/prometheus" + - "--web.console.libraries=/etc/prometheus/console_libraries" + - "--web.console.templates=/etc/prometheus/consoles" + - "--web.enable-lifecycle" + - "--web.enable-remote-write-receiver" + - "--enable-feature=native-histograms" + - "--storage.tsdb.retention.time=6h" # Keep data for 6 hours only + - "--storage.tsdb.retention.size=5GB" # Maximum 5GB storage + k6: + image: grafana/k6:latest + profiles: ["perf-test"] + volumes: + - ./performance-test-suite/dist:/scripts + - ./performance-test-suite/results:/results + - ./performance-test-suite/signed-orders.json:/signed-orders.json:ro + environment: + - BASE_URL=http://orderbook + - K6_PROMETHEUS_RW_SERVER_URL=http://prometheus:9090/api/v1/write + - K6_PROMETHEUS_RW_TREND_AS_NATIVE_HISTOGRAM=true + - SCENARIO=stress + command: > + run + --out json=/results/summary.json + --out experimental-prometheus-rw + /scripts/load-test.js + depends_on: + orderbook: + condition: service_healthy + driver: + condition: service_started + prometheus: + condition: service_started + networks: + - default + +volumes: + postgres: + prometheus-data: diff --git a/playground/performance-test-suite/.gitignore b/playground/performance-test-suite/.gitignore new file mode 100644 index 0000000000..d0bf721153 --- /dev/null +++ b/playground/performance-test-suite/.gitignore @@ -0,0 +1,36 @@ +# Dependencies +node_modules/ +package-lock.json +yarn.lock + +# Build output +dist/ + +# Test results +results/ +*.json +!package.json +!tsconfig.json +!config.example.json + +# Logs +*.log +npm-debug.log* + +# Environment variables +.env +.env.local + +# IDE +.vscode/ +.idea/ +*.swp +*.swo + +# OS +.DS_Store +Thumbs.db + +# Docker volumes +prometheus-data/ +grafana-data/ diff --git a/playground/performance-test-suite/README.md b/playground/performance-test-suite/README.md new file mode 100644 index 0000000000..265db30f12 --- /dev/null +++ b/playground/performance-test-suite/README.md @@ -0,0 +1,406 @@ +# CoW Protocol Performance Test Suite - POC + +A proof-of-concept performance testing suite for the CoW Protocol Playground using K6 and TypeScript. + +## ๐Ÿš€ Quick Start (Integrated with Offline Mode) + +**The test suite is now fully integrated with the offline mode!** + +```bash +# From the playground directory +cd performance-test-suite +./run-with-offline-mode.sh medium +``` + +That's it! The script will: +- โœ… Start offline mode if not running +- โœ… Build the test suite +- โœ… Run performance tests +- โœ… Show results and dashboard links + +**See [OFFLINE_MODE_INTEGRATION.md](OFFLINE_MODE_INTEGRATION.md) for complete integration guide.** + +## Overview + +This POC demonstrates the key components of the performance testing suite proposed in the grant application: + +- **Load Generation Framework**: Synthetic order generation using TypeScript +- **K6 Integration**: Industry-standard load testing tool with Grafana integration +- **Multiple Test Scenarios**: Pre-configured scenarios (light, medium, heavy, spike, etc.) +- **Metrics Collection**: Prometheus integration for metrics storage +- **Visualization**: Grafana dashboards for real-time monitoring +- **Docker Integration**: Easy deployment alongside offline mode playground + +## Architecture + +``` +โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” +โ”‚ K6 Runner โ”‚ Executes TypeScript load tests +โ”‚ (TypeScript) โ”‚ Generates synthetic orders +โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ + โ”‚ + โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” + โ”‚ โ”‚ CoW Orderbook โ”‚ Target API + โ”‚ โ”‚ API โ”‚ + โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ + โ”‚ + โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” + โ”‚ โ”‚ Prometheus โ”‚ Metrics storage + โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ + โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ + โ”‚ + โ–ผ + โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” + โ”‚ Grafana โ”‚ Visualization + โ”‚ Dashboards โ”‚ + โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ +``` + +## Prerequisites + +- Node.js 18+ and npm +- [K6](https://k6.io/docs/get-started/installation/) installed locally +- Docker and Docker Compose (for containerized testing) +- CoW Protocol Playground running (offline mode or fork mode) + +## Quick Start + +### 1. Install Dependencies + +```bash +npm install +``` + +### 2. Build TypeScript Tests + +```bash +npm run build +``` + +### 3. Run a Test Scenario + +```bash +# Run medium load test (default) +npm test + +# Or run specific scenarios +npm run test:light # Light load (5 VUs, 2 minutes) +npm run test:medium # Medium load (20 VUs, 5 minutes) +npm run test:heavy # Heavy load (50 VUs, 10 minutes) +npm run test:spike # Spike test (sudden traffic surge) +npm run test:rampup # Gradual ramp-up +npm run test:stress # Stress test (push to limits) +npm run test:soak # Soak test (30 minutes sustained) +``` + +### 4. Run with Docker Compose + +```bash +# Start the full stack (K6 + Prometheus + Grafana) +docker-compose -f docker-compose.perf-test.yml up + +# Access Grafana dashboard +open http://localhost:3000 +# Login: admin / admin +``` + +## Test Scenarios + +### Light Load +- **VUs**: 5 +- **Duration**: 2 minutes +- **Use Case**: Smoke testing, basic validation + +### Medium Load +- **VUs**: 20 +- **Duration**: 5 minutes +- **Use Case**: Typical production load simulation + +### Heavy Load +- **VUs**: 50 +- **Duration**: 10 minutes +- **Use Case**: Stress testing under high load + +### Spike Test +- **Pattern**: 5 โ†’ 100 โ†’ 5 VUs +- **Duration**: 5.5 minutes +- **Use Case**: Test elasticity and recovery + +### Ramp-up Test +- **Pattern**: Gradual increase from 1 to 50 VUs +- **Duration**: 10 minutes +- **Use Case**: Test scaling behavior + +### Stress Test +- **Pattern**: Increase from 1 to 200 VUs +- **Duration**: 16 minutes +- **Use Case**: Find system breaking point + +### Soak Test +- **VUs**: 30 +- **Duration**: 30 minutes +- **Use Case**: Detect memory leaks and degradation + +## Configuration + +### Environment Variables + +Configure tests using environment variables: + +```bash +# Set target API URL +export BASE_URL=http://localhost:8080 + +# Run test +npm test + +# Or inline +BASE_URL=http://localhost:8080 npm run test:medium +``` + +### Custom Configuration + +Copy and modify the example configuration: + +```bash +cp config.example.json config.json +# Edit config.json with your settings +``` + +### Token Pairs + +Update token pairs in `src/load-test.ts` to match your deployment: + +```typescript +const TOKEN_PAIRS: TokenPair[] = [ + { + name: 'WETH/USDC', + sellToken: '0xYourTokenAddress', + buyToken: '0xYourTokenAddress', + }, + // Add more pairs... +]; +``` + +## Metrics and Thresholds + +### Custom Metrics + +The test suite tracks: + +- `orders_submitted`: Total orders submitted +- `orders_accepted`: Orders accepted by API +- `orders_failed`: Failed order submissions +- `order_acceptance_rate`: Success rate +- `order_submission_duration`: Time to submit order + +### Default Thresholds + +```typescript +http_req_duration: ['p(95)<1000'] // 95th percentile < 1s +http_req_failed: ['rate<0.05'] // Error rate < 5% +``` + +## Viewing Results + +### Console Output + +K6 provides detailed console output: + +``` + โœ“ status is 201 + โœ“ response has order UID + โœ“ response time < 1000ms + + checks.........................: 100.00% โœ“ 3000 โœ— 0 + data_received..................: 1.5 MB 25 kB/s + data_sent......................: 750 kB 12 kB/s + http_req_duration..............: avg=245ms min=120ms med=230ms max=890ms p(95)=450ms + http_reqs......................: 1000 16.67/s + orders_submitted...............: 1000 16.67/s + orders_accepted................: 980 16.33/s + order_acceptance_rate..........: 98.00% โœ“ 980 โœ— 20 +``` + +### Grafana Dashboard + +Access Grafana at `http://localhost:3000` when running with Docker Compose: + +1. **Login**: admin / admin +2. **Navigate**: CoW Protocol Performance Tests dashboard +3. **View Metrics**: + - HTTP Request Rate + - Request Duration Percentiles (p50, p95, p99) + - Error Rate + - Virtual Users (VUs) + +### Prometheus Queries + +Access Prometheus at `http://localhost:9090`: + +```promql +# Request rate +rate(k6_http_reqs[1m]) + +# 95th percentile latency +histogram_quantile(0.95, rate(k6_http_req_duration_bucket[1m])) + +# Error rate +rate(k6_http_req_failed[1m]) +``` + +## Project Structure + +``` +performance-test-suite/ +โ”œโ”€โ”€ src/ +โ”‚ โ”œโ”€โ”€ load-test.ts # Main K6 test script +โ”‚ โ”œโ”€โ”€ order-generator.ts # Order generation logic +โ”‚ โ””โ”€โ”€ scenarios.ts # Test scenario definitions +โ”œโ”€โ”€ dist/ # Compiled JavaScript output +โ”œโ”€โ”€ grafana/ +โ”‚ โ”œโ”€โ”€ provisioning/ # Grafana datasource config +โ”‚ โ””โ”€โ”€ dashboards/ # Dashboard JSON definitions +โ”œโ”€โ”€ prometheus/ +โ”‚ โ””โ”€โ”€ prometheus.yml # Prometheus configuration +โ”œโ”€โ”€ results/ # Test results output +โ”œโ”€โ”€ package.json # npm dependencies +โ”œโ”€โ”€ tsconfig.json # TypeScript configuration +โ”œโ”€โ”€ webpack.config.js # Webpack bundling config +โ”œโ”€โ”€ docker-compose.perf-test.yml # Docker compose setup +โ””โ”€โ”€ README.md # This file +``` + +## Integration with Offline Mode + +The test suite is **fully integrated** with the offline mode: + +### Using the Helper Script (Recommended) + +```bash +./run-with-offline-mode.sh medium +``` + +### Manual Integration + +1. **Start offline mode**: + ```bash + cd .. + docker-compose -f docker-compose.offline.yml up -d + ``` + +2. **Build and run tests**: + ```bash + cd performance-test-suite + npm install && npm run build + cd .. + docker-compose -f docker-compose.offline.yml run --rm k6 + ``` + +3. **View results**: + - Grafana: http://localhost:3000 + - Prometheus: http://localhost:9090 + - JSON: `performance-test-suite/results/summary.json` + +**Complete integration guide**: [OFFLINE_MODE_INTEGRATION.md](OFFLINE_MODE_INTEGRATION.md) + +## Development + +### Watch Mode + +Auto-rebuild on file changes: + +```bash +npm run watch +``` + +### Adding Custom Scenarios + +Edit `src/scenarios.ts`: + +```typescript +export const customScenario: Options = { + scenarios: { + custom: { + executor: 'constant-vus', + vus: 30, + duration: '10m', + }, + }, + thresholds: { + http_req_duration: ['p(95)<800'], + http_req_failed: ['rate<0.03'], + }, +}; +``` + +### Extending Order Generation + +Modify `src/order-generator.ts` to: +- Add new token pairs +- Implement custom order patterns +- Add signature generation +- Customize order parameters + +## Limitations (POC) + +This POC demonstrates the core concepts but has some limitations: + +1. **Simplified Order Structure**: Orders are not signed with real signatures +2. **Token Addresses**: Uses example addresses, needs deployment-specific configuration +3. **No Order Tracking**: Does not track order settlement, only submission +4. **Basic Metrics**: Limited to HTTP-level metrics, not order lifecycle metrics +5. **No Baseline Comparison**: Does not implement regression detection + +## Next Steps (Full Implementation) + +Based on the grant milestones: + +### M1: Load Generation Framework โœ“ (POC Complete) +- [x] Order generation engine +- [x] Multiple concurrent traders simulation +- [x] CLI tool interface +- [x] Order submission strategies + +### M2: Performance Benchmarking (TODO) +- [ ] Order lifecycle timing (submission โ†’ settlement) +- [ ] Baseline snapshot system +- [ ] Regression detection algorithms +- [ ] Automated reporting + +### M3: Metrics & Visualization (Partially Complete) +- [x] Prometheus integration +- [x] Basic Grafana dashboards +- [ ] Custom performance metrics exporter +- [ ] Alert rules configuration + +### M4: Test Scenarios โœ“ (POC Complete) +- [x] Predefined scenario library +- [x] Configuration system +- [x] Example scenarios with documentation + +### M5: Integration & Documentation (TODO) +- [ ] End-to-end integration with offline mode +- [ ] Fork mode exploration +- [ ] Comprehensive documentation +- [ ] Performance overhead measurement + +## Resources + +- [K6 Documentation](https://k6.io/docs/) +- [K6 TypeScript Support](https://k6.io/docs/using-k6/test-authoring/create-tests-from-recordings/) +- [Prometheus Integration](https://k6.io/docs/results-output/real-time/prometheus-remote-write/) +- [Grafana Dashboards](https://grafana.com/grafana/dashboards/) +- [CoW Protocol Documentation](https://docs.cow.fi/) + +## Contributing + +This is a POC for the grant application. Future contributions will follow CoW Protocol standards. + +## License + +MIT + +## Authors + +bleu - @yvesfracari @ribeirojose @mendesfabio @lgahdl diff --git a/playground/performance-test-suite/config.example.json b/playground/performance-test-suite/config.example.json new file mode 100644 index 0000000000..99de125a3c --- /dev/null +++ b/playground/performance-test-suite/config.example.json @@ -0,0 +1,61 @@ +{ + "baseUrl": "http://localhost:8080", + "orderbookApi": "/api/v1", + "tokenPairs": [ + { + "name": "WETH/USDC", + "sellToken": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "buyToken": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + }, + { + "name": "WETH/DAI", + "sellToken": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "buyToken": "0x6B175474E89094C44Da98b954EedeAC495271d0F" + }, + { + "name": "USDC/DAI", + "sellToken": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "buyToken": "0x6B175474E89094C44Da98b954EedeAC495271d0F" + } + ], + "orderGeneration": { + "minAmount": "1000000000000000000", + "maxAmount": "10000000000000000000", + "orderTypes": ["market", "limit"] + }, + "scenarios": { + "light": { + "description": "Light load for smoke testing", + "vus": 5, + "duration": "2m" + }, + "medium": { + "description": "Medium load representing typical production", + "vus": 20, + "duration": "5m" + }, + "heavy": { + "description": "Heavy load for stress testing", + "vus": 50, + "duration": "10m" + }, + "spike": { + "description": "Traffic spike testing", + "stages": [ + { "duration": "1m", "target": 5 }, + { "duration": "30s", "target": 100 }, + { "duration": "2m", "target": 100 }, + { "duration": "1m", "target": 5 } + ] + } + }, + "thresholds": { + "http_req_duration": { + "p95": 1000, + "p99": 2000 + }, + "http_req_failed": { + "rate": 0.05 + } + } +} diff --git a/playground/performance-test-suite/grafana/provisioning/dashboards/dashboard.yml b/playground/performance-test-suite/grafana/provisioning/dashboards/dashboard.yml new file mode 100644 index 0000000000..bc77609233 --- /dev/null +++ b/playground/performance-test-suite/grafana/provisioning/dashboards/dashboard.yml @@ -0,0 +1,12 @@ +apiVersion: 1 + +providers: + - name: 'CoW Protocol Performance Tests' + orgId: 1 + folder: '' + type: file + disableDeletion: false + updateIntervalSeconds: 10 + allowUiUpdates: true + options: + path: /var/lib/grafana/dashboards diff --git a/playground/performance-test-suite/grafana/provisioning/datasources/datasource.yml b/playground/performance-test-suite/grafana/provisioning/datasources/datasource.yml new file mode 100644 index 0000000000..28ecfaac64 --- /dev/null +++ b/playground/performance-test-suite/grafana/provisioning/datasources/datasource.yml @@ -0,0 +1,11 @@ +apiVersion: 1 + +datasources: + - name: Prometheus + type: prometheus + access: proxy + url: http://prometheus:9090 + isDefault: true + editable: true + jsonData: + timeInterval: "5s" diff --git a/playground/performance-test-suite/package.json b/playground/performance-test-suite/package.json new file mode 100644 index 0000000000..0f826a3ece --- /dev/null +++ b/playground/performance-test-suite/package.json @@ -0,0 +1,41 @@ +{ + "name": "cow-protocol-performance-test-suite", + "version": "0.1.0", + "description": "Performance testing suite for CoW Protocol Playground using K6", + "main": "dist/load-test.js", + "scripts": { + "build": "webpack", + "sign-orders": "node scripts/sign-orders.js", + "test": "npm run build && k6 run dist/load-test.js", + "test:light": "npm run build && k6 run dist/load-test.js --env SCENARIO=light", + "test:medium": "npm run build && k6 run dist/load-test.js --env SCENARIO=medium", + "test:heavy": "npm run build && k6 run dist/load-test.js --env SCENARIO=heavy", + "test:spike": "npm run build && k6 run dist/load-test.js --env SCENARIO=spike", + "test:rampup": "npm run build && k6 run dist/load-test.js --env SCENARIO=rampup", + "test:stress": "npm run build && k6 run dist/load-test.js --env SCENARIO=stress", + "test:soak": "npm run build && k6 run dist/load-test.js --env SCENARIO=soak", + "test:custom": "npm run build && k6 run dist/load-test.js --env BASE_URL=$BASE_URL", + "watch": "webpack --watch", + "clean": "rm -rf dist" + }, + "keywords": [ + "k6", + "performance", + "load-testing", + "cow-protocol", + "blockchain", + "defi" + ], + "author": "bleu", + "license": "MIT", + "devDependencies": { + "@types/k6": "^0.52.0", + "typescript": "^5.3.3", + "webpack": "^5.89.0", + "webpack-cli": "^5.1.4", + "ts-loader": "^9.5.1" + }, + "dependencies": { + "ethers": "^6.13.0" + } +} diff --git a/playground/performance-test-suite/prometheus/prometheus.yml b/playground/performance-test-suite/prometheus/prometheus.yml new file mode 100644 index 0000000000..f1ff7854e7 --- /dev/null +++ b/playground/performance-test-suite/prometheus/prometheus.yml @@ -0,0 +1,60 @@ +global: + scrape_interval: 15s + evaluation_interval: 15s + external_labels: + cluster: 'cow-protocol-perf-test' + environment: 'local' + +# Alertmanager configuration (optional) +# alerting: +# alertmanagers: +# - static_configs: +# - targets: +# - 'alertmanager:9093' + +# Load rules once and periodically evaluate them +# rule_files: +# - "alerts.yml" + +scrape_configs: + # Prometheus self-monitoring + - job_name: 'prometheus' + static_configs: + - targets: ['localhost:9090'] + + # K6 metrics (if exposed via prometheus output) + - job_name: 'k6' + static_configs: + - targets: ['k6:6565'] + scrape_interval: 5s + + # CoW Protocol Services (if available in offline mode) + # Uncomment and adjust these based on your deployment + + # - job_name: 'orderbook' + # static_configs: + # - targets: ['orderbook:8080'] + # metrics_path: '/metrics' + + # - job_name: 'autopilot' + # static_configs: + # - targets: ['autopilot:9589'] + # metrics_path: '/metrics' + + # - job_name: 'driver' + # static_configs: + # - targets: ['driver:9590'] + # metrics_path: '/metrics' + + # - job_name: 'solver' + # static_configs: + # - targets: ['solver:8000'] + # metrics_path: '/metrics' + +# Remote write configuration for K6 +remote_write: + - url: http://localhost:9090/api/v1/write + queue_config: + max_samples_per_send: 1000 + max_shards: 200 + capacity: 2500 diff --git a/playground/performance-test-suite/scripts/sign-orders.js b/playground/performance-test-suite/scripts/sign-orders.js new file mode 100644 index 0000000000..fbdf08ab89 --- /dev/null +++ b/playground/performance-test-suite/scripts/sign-orders.js @@ -0,0 +1,265 @@ +#!/usr/bin/env node +/** + * Sign CoW Protocol Orders with Real EIP-712 Signatures + * + * This script generates a pool of pre-signed orders using ethers.js + * for use in K6 load testing. Since K6 cannot generate real ECDSA signatures + * (lacks secp256k1 support), we pre-generate signed orders here. + * + * Usage: + * node scripts/sign-orders.js [count] + * + * Options: + * count - Number of orders to generate (default: 1000) + */ + +const { ethers } = require('ethers'); +const fs = require('fs'); +const path = require('path'); + +// Configuration +const CHAIN_ID = 31337; // Anvil +const SETTLEMENT_CONTRACT = '0xb7f8bc63bbcad18155201308c8f3540b07f84f5e'; +const OUTPUT_FILE = path.join(__dirname, '../signed-orders.json'); + +// Token configurations with decimals +const TOKENS = { + WETH: { + address: '0x5FbDB2315678afecb367f032d93F642f64180aa3', + decimals: 18, + }, + USDC: { + address: '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0', + decimals: 6, + }, + DAI: { + address: '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9', + decimals: 18, + }, +}; + +// Token pairs (from load-test.ts) +const TOKEN_PAIRS = [ + { + name: 'WETH/USDC', + sellToken: TOKENS.WETH, + buyToken: TOKENS.USDC, + }, + { + name: 'WETH/DAI', + sellToken: TOKENS.WETH, + buyToken: TOKENS.DAI, + }, + { + name: 'USDC/DAI', + sellToken: TOKENS.USDC, + buyToken: TOKENS.DAI, + }, +]; + +// Anvil default private keys +const ANVIL_PRIVATE_KEYS = [ + '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80', + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d', + '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a', + '0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6', + '0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a', + '0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba', + '0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e', + '0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356', + '0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97', + '0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6', +]; + +// EIP-712 Domain for CoW Protocol +const DOMAIN = { + name: 'Gnosis Protocol', + version: 'v2', + chainId: CHAIN_ID, + verifyingContract: SETTLEMENT_CONTRACT, +}; + +// EIP-712 Types for CoW Protocol Order +const TYPES = { + Order: [ + { name: 'sellToken', type: 'address' }, + { name: 'buyToken', type: 'address' }, + { name: 'receiver', type: 'address' }, + { name: 'sellAmount', type: 'uint256' }, + { name: 'buyAmount', type: 'uint256' }, + { name: 'validTo', type: 'uint32' }, + { name: 'appData', type: 'bytes32' }, + { name: 'feeAmount', type: 'uint256' }, + { name: 'kind', type: 'string' }, + { name: 'partiallyFillable', type: 'bool' }, + { name: 'sellTokenBalance', type: 'string' }, + { name: 'buyTokenBalance', type: 'string' }, + ], +}; + +/** + * Generate random amount between min and max + */ +function randomBigInt(min, max) { + const range = max - min; + const randomValue = BigInt(Math.floor(Math.random() * Number(range))); + return min + randomValue; +} + +/** + * Generate random float between min and max + */ +function randomFloat(min, max) { + return Math.random() * (max - min) + min; +} + +/** + * Random choice from array + */ +function randomChoice(array) { + return array[Math.floor(Math.random() * array.length)]; +} + +/** + * Parse amount with correct decimals for a token + */ +function parseAmount(amount, decimals) { + return ethers.parseUnits(amount, decimals); +} + +/** + * Generate a single order (unsigned) + */ +function generateOrder(index) { + const pair = randomChoice(TOKEN_PAIRS); + + // Generate amounts with correct decimals for each token + const minAmount = parseAmount('1', pair.sellToken.decimals); // 1 token + const maxAmount = parseAmount('10', pair.sellToken.decimals); // 10 tokens + const sellAmount = randomBigInt(minAmount, maxAmount); + + // Buy amount with price variation - must account for decimal differences + const priceVariation = randomFloat(0.95, 1.05); + + // Convert sellAmount to a comparable unit, apply price variation, then scale to buyToken decimals + // If selling USDC (6 decimals) for DAI (18 decimals), we need to scale up + const decimalDifference = pair.buyToken.decimals - pair.sellToken.decimals; + const scaleFactor = 10n ** BigInt(Math.abs(decimalDifference)); + + let buyAmount; + if (decimalDifference >= 0) { + // Buy token has more decimals - scale up + buyAmount = (sellAmount * scaleFactor * BigInt(Math.floor(priceVariation * 1000))) / 1000n; + } else { + // Buy token has fewer decimals - scale down + buyAmount = (sellAmount * BigInt(Math.floor(priceVariation * 1000))) / (scaleFactor * 1000n); + } + + // Ensure buyAmount is at least 1 + buyAmount = buyAmount > 0n ? buyAmount : 1n; + + // Valid for 1 hour from now (CoW Protocol orderbook has a max validTo limit) + const validTo = Math.floor(Date.now() / 1000) + 3600; + + // Fee must be zero for offline mode (no fee mechanism configured) + const feeAmount = 0n; + + return { + sellToken: pair.sellToken.address, + buyToken: pair.buyToken.address, + receiver: ethers.ZeroAddress, // Will be set to signer address + sellAmount: sellAmount.toString(), + buyAmount: buyAmount.toString(), + validTo, + appData: '0x0000000000000000000000000000000000000000000000000000000000000000', + feeAmount: feeAmount.toString(), + kind: 'sell', + partiallyFillable: false, + sellTokenBalance: 'erc20', + buyTokenBalance: 'erc20', + }; +} + +/** + * Sign an order with EIP-712 + */ +async function signOrder(wallet, order) { + // CoW Protocol uses zero address for receiver when it's the same as owner + const orderToSign = { + ...order, + receiver: ethers.ZeroAddress, + }; + + // Sign typed data + const signature = await wallet.signTypedData(DOMAIN, TYPES, orderToSign); + + // Return complete signed order - receiver can be omitted (defaults to signer) + return { + sellToken: orderToSign.sellToken, + buyToken: orderToSign.buyToken, + receiver: ethers.ZeroAddress, + sellAmount: orderToSign.sellAmount, + buyAmount: orderToSign.buyAmount, + validTo: orderToSign.validTo, + appData: orderToSign.appData, + feeAmount: orderToSign.feeAmount, + kind: orderToSign.kind, + partiallyFillable: orderToSign.partiallyFillable, + sellTokenBalance: orderToSign.sellTokenBalance, + buyTokenBalance: orderToSign.buyTokenBalance, + signingScheme: 'eip712', + signature, + from: wallet.address, + }; +} + +/** + * Main function + */ +async function main() { + const count = parseInt(process.argv[2] || '1000', 10); + + console.log(`๐Ÿ” Generating ${count} signed orders with real EIP-712 signatures...`); + console.log(`๐Ÿ“ Chain ID: ${CHAIN_ID}`); + console.log(`๐Ÿ“ Settlement Contract: ${SETTLEMENT_CONTRACT}`); + console.log(''); + + const signedOrders = []; + const startTime = Date.now(); + + for (let i = 0; i < count; i++) { + // Rotate through Anvil accounts + const privateKey = ANVIL_PRIVATE_KEYS[i % ANVIL_PRIVATE_KEYS.length]; + const wallet = new ethers.Wallet(privateKey); + + // Generate unsigned order + const order = generateOrder(i); + + // Sign it + const signedOrder = await signOrder(wallet, order); + signedOrders.push(signedOrder); + + // Progress indicator + if ((i + 1) % 100 === 0) { + console.log(`โœ… Signed ${i + 1}/${count} orders...`); + } + } + + const duration = ((Date.now() - startTime) / 1000).toFixed(2); + + // Write to file + fs.writeFileSync(OUTPUT_FILE, JSON.stringify(signedOrders, null, 2)); + + console.log(''); + console.log(`โœ… Successfully generated ${count} signed orders in ${duration}s`); + console.log(`๐Ÿ“ Output: ${OUTPUT_FILE}`); + console.log(`๐Ÿ“Š File size: ${(fs.statSync(OUTPUT_FILE).size / 1024 / 1024).toFixed(2)} MB`); + console.log(''); + console.log('๐Ÿš€ Ready for K6 load testing!'); +} + +// Run +main().catch((error) => { + console.error('โŒ Error:', error); + process.exit(1); +}); diff --git a/playground/performance-test-suite/src/eip712-signer.ts b/playground/performance-test-suite/src/eip712-signer.ts new file mode 100644 index 0000000000..51bcf6527b --- /dev/null +++ b/playground/performance-test-suite/src/eip712-signer.ts @@ -0,0 +1,227 @@ +/** + * EIP-712 Order Signing for CoW Protocol + * Adapted from poc-offline-mode/scripts/sign_order.py + */ + +import crypto from 'k6/crypto'; + +export interface OrderParams { + sellToken: string; + buyToken: string; + receiver: string; + sellAmount: string; + buyAmount: string; + validTo: number; + appData: string; + feeAmount: string; + kind: string; + partiallyFillable: boolean; + sellTokenBalance: string; + buyTokenBalance: string; +} + +export interface SignedOrder extends OrderParams { + from: string; + signature: string; + signingScheme: string; +} + +/** + * EIP-712 Domain for CoW Protocol + */ +function getEIP712Domain(chainId: number, verifyingContract: string) { + return { + name: 'Gnosis Protocol', + version: 'v2', + chainId, + verifyingContract, + }; +} + +/** + * EIP-712 Type definition for CoW Protocol Order + */ +const ORDER_TYPE = { + Order: [ + { name: 'sellToken', type: 'address' }, + { name: 'buyToken', type: 'address' }, + { name: 'receiver', type: 'address' }, + { name: 'sellAmount', type: 'uint256' }, + { name: 'buyAmount', type: 'uint256' }, + { name: 'validTo', type: 'uint32' }, + { name: 'appData', type: 'bytes32' }, + { name: 'feeAmount', type: 'uint256' }, + { name: 'kind', type: 'string' }, + { name: 'partiallyFillable', type: 'bool' }, + { name: 'sellTokenBalance', type: 'string' }, + { name: 'buyTokenBalance', type: 'string' }, + ], +}; + +/** + * Simple keccak256 implementation using k6 crypto + * Note: This is a simplified implementation for POC purposes + */ +function keccak256(data: string): string { + // In a real implementation, you would use a proper keccak256 library + // For K6 testing, we'll generate a deterministic hash based on input + const hash = crypto.sha256(data, 'hex'); + return '0x' + hash; +} + +/** + * Encode EIP-712 typed data hash + */ +function encodeTypeHash(typeName: string, typeData: any[]): string { + const typeString = `${typeName}(${typeData.map((t) => `${t.type} ${t.name}`).join(',')})`; + return keccak256(typeString); +} + +/** + * Encode EIP-712 domain separator + */ +function encodeDomainSeparator(chainId: number, verifyingContract: string): string { + const domain = getEIP712Domain(chainId, verifyingContract); + const domainTypeHash = encodeTypeHash('EIP712Domain', [ + { name: 'name', type: 'string' }, + { name: 'version', type: 'string' }, + { name: 'chainId', type: 'uint256' }, + { name: 'verifyingContract', type: 'address' }, + ]); + + // Simplified encoding - in production, use proper ABI encoding + const encoded = JSON.stringify(domain); + return keccak256(domainTypeHash + encoded); +} + +/** + * Encode order struct hash + */ +function encodeOrderHash(order: OrderParams): string { + const orderTypeHash = encodeTypeHash('Order', ORDER_TYPE.Order); + + // Simplified encoding - in production, use proper ABI encoding + const encoded = JSON.stringify(order); + return keccak256(orderTypeHash + encoded); +} + +/** + * Generate EIP-712 signature digest + */ +function getSignatureDigest( + chainId: number, + verifyingContract: string, + order: OrderParams +): string { + const domainSeparator = encodeDomainSeparator(chainId, verifyingContract); + const orderHash = encodeOrderHash(order); + + // EIP-712 signature: keccak256("\x19\x01" โ€– domainSeparator โ€– orderHash) + return keccak256('\x19\x01' + domainSeparator + orderHash); +} + +/** + * Generate a mock signature for testing purposes + * + * NOTE: This generates a MOCK signature for POC/testing only! + * In production, you need a proper wallet to sign the EIP-712 digest. + * + * K6 doesn't have access to crypto wallets or secp256k1 signing, + * so for load testing we generate deterministic mock signatures. + */ +function generateMockSignature(digest: string, privateKey: string): string { + // Generate deterministic "signature" based on digest and key + // This is NOT a real ECDSA signature - just for load testing! + const combined = digest + privateKey; + const hash = crypto.sha256(combined, 'hex'); + + // ECDSA signature format: 65 bytes (r: 32, s: 32, v: 1) + // We'll create a deterministic 65-byte hex string + const r = hash.substring(0, 64); + const s = crypto.sha256(hash, 'hex').substring(0, 64); + const v = '1b'; // Recovery id (27 in hex) + + return '0x' + r + s + v; +} + +/** + * Map of Anvil private keys to their actual addresses + * These are the real addresses derived from Anvil's default private keys + */ +const ANVIL_ADDRESS_MAP: { [key: string]: string } = { + '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8', + '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a': '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC', + '0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6': '0x90F79bf6EB2c4f870365E785982E1f101E93b906', + '0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a': '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65', + '0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba': '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc', + '0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e': '0x976EA74026E726554dB657fA54763abd0C3a0aa9', + '0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356': '0x14dC79964da2C08b23698B3D3cc7Ca32193d9955', + '0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97': '0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f', + '0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6': '0xa0Ee7A142d267C1f36714E4a8F75612F20a79720', +}; + +/** + * Derive address from private key + * For Anvil accounts, we use the actual addresses + * For other keys, generate deterministic address (for testing only) + */ +function getAddressFromPrivateKey(privateKey: string): string { + // Check if this is a known Anvil account + if (ANVIL_ADDRESS_MAP[privateKey]) { + return ANVIL_ADDRESS_MAP[privateKey]; + } + + // For unknown keys, generate deterministic address + const hash = crypto.sha256(privateKey, 'hex'); + return '0x' + hash.substring(0, 40); +} + +/** + * Sign a CoW Protocol order with EIP-712 + * + * @param privateKey - Private key (for POC, can be any string) + * @param chainId - Chain ID (31337 for Anvil) + * @param settlementContract - GPv2Settlement contract address + * @param orderParams - Order parameters to sign + * @returns Signed order with signature + */ +export function signOrder( + privateKey: string, + chainId: number, + settlementContract: string, + orderParams: OrderParams +): SignedOrder { + // Get signature digest + const digest = getSignatureDigest(chainId, settlementContract, orderParams); + + // Generate mock signature (for load testing only!) + const signature = generateMockSignature(digest, privateKey); + + // Derive address + const from = getAddressFromPrivateKey(privateKey); + + // Return signed order + return { + ...orderParams, + from, + signature, + signingScheme: 'eip712', + }; +} + +/** + * Default Anvil account private keys (for testing) + */ +export const ANVIL_ACCOUNTS = [ + '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80', // Account #0 + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d', // Account #1 + '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a', // Account #2 + '0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6', // Account #3 + '0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a', // Account #4 + '0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba', // Account #5 + '0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e', // Account #6 + '0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356', // Account #7 + '0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97', // Account #8 + '0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6', // Account #9 +]; diff --git a/playground/performance-test-suite/src/globals.d.ts b/playground/performance-test-suite/src/globals.d.ts new file mode 100644 index 0000000000..1bdd298b1c --- /dev/null +++ b/playground/performance-test-suite/src/globals.d.ts @@ -0,0 +1,9 @@ +// Global type declarations for K6 +declare const console: { + log: (...args: any[]) => void; + error: (...args: any[]) => void; + warn: (...args: any[]) => void; + info: (...args: any[]) => void; +}; + +declare const __ENV: Record; diff --git a/playground/performance-test-suite/src/load-test.ts b/playground/performance-test-suite/src/load-test.ts new file mode 100644 index 0000000000..82f52e37e6 --- /dev/null +++ b/playground/performance-test-suite/src/load-test.ts @@ -0,0 +1,197 @@ +/** + * CoW Protocol Performance Test Suite - Main Load Test + * K6 test script for load testing the CoW Protocol Playground + */ + +import http from 'k6/http'; +import { check, sleep } from 'k6'; +import { Counter, Rate, Trend } from 'k6/metrics'; +import { getSignedOrderRoundRobin, getPoolStats } from './signed-order-pool'; +import { getScenario } from './scenarios'; +import execution from 'k6/execution'; + +// Custom metrics - Counters +const ordersSubmitted = new Counter('orders_submitted'); +const ordersAccepted = new Counter('orders_accepted'); +const ordersFailed = new Counter('orders_failed'); + +// HTTP Status Code Counters +const status201 = new Counter('http_status_201'); +const status400 = new Counter('http_status_400'); +const status404 = new Counter('http_status_404'); +const status500 = new Counter('http_status_500'); + +// Error Type Counters +const errorInsufficientBalance = new Counter('error_insufficient_balance'); +const errorInsufficientAllowance = new Counter('error_insufficient_allowance'); +const errorDuplicateOrder = new Counter('error_duplicate_order'); +const errorNonZeroFee = new Counter('error_non_zero_fee'); +const errorExcessiveValidTo = new Counter('error_excessive_valid_to'); +const errorWrongOwner = new Counter('error_wrong_owner'); +const errorOther = new Counter('error_other'); + +// Rates +const orderAcceptanceRate = new Rate('order_acceptance_rate'); +const successRate = new Rate('success_rate'); + +// Trends +const orderSubmissionDuration = new Trend('order_submission_duration'); +const successfulOrderDuration = new Trend('successful_order_duration'); +const failedOrderDuration = new Trend('failed_order_duration'); + +// Test configuration from environment variables +const BASE_URL = __ENV.BASE_URL || 'http://localhost:8080'; +const ORDERBOOK_API = `${BASE_URL}/api/v1`; + +// K6 options - use scenario from environment or default to medium load +const scenarioName = __ENV.SCENARIO || 'medium'; +export const options = getScenario(scenarioName); + +/** + * Setup function - runs once before test + */ +export function setup() { + console.log('Starting CoW Protocol Performance Test'); + console.log(`Target: ${BASE_URL}`); + console.log(`Scenario: ${scenarioName}`); + console.log(`Configuration: ${JSON.stringify(options.scenarios)}`); + + // Get pool stats + const poolStats = getPoolStats(); + console.log(`Pre-signed orders loaded: ${poolStats.totalOrders}`); + console.log(`Memory usage: ${(poolStats.memoryUsage / 1024 / 1024).toFixed(2)} MB`); + + // Verify API is accessible + const healthCheck = http.get(`${BASE_URL}/health`); + if (healthCheck.status !== 200) { + console.warn(`Warning: Health check failed with status ${healthCheck.status}`); + } + + return { + startTime: Date.now(), + }; +} + +/** + * Main test function - runs for each VU iteration + */ +export default function (data: any) { + // Get a pre-signed order from the pool using round-robin + // This ensures each order is used sequentially across all VUs + const globalIteration = execution.scenario.iterationInTest; + const order = getSignedOrderRoundRobin(globalIteration); + + // Submit order to orderbook API + const payload = JSON.stringify(order); + const params = { + headers: { + 'Content-Type': 'application/json', + }, + tags: { + name: 'SubmitOrder', + }, + }; + + const startTime = Date.now(); + const response = http.post(`${ORDERBOOK_API}/orders`, payload, params); + const duration = Date.now() - startTime; + + // Record basic metrics + ordersSubmitted.add(1); + orderSubmissionDuration.add(duration); + + // Record HTTP status codes + if (response.status === 201) { + status201.add(1); + ordersAccepted.add(1); + orderAcceptanceRate.add(1); + successRate.add(1); + successfulOrderDuration.add(duration); + } else if (response.status === 400) { + status400.add(1); + ordersFailed.add(1); + orderAcceptanceRate.add(0); + successRate.add(0); + failedOrderDuration.add(duration); + + // Parse error type from response body + try { + const errorBody = JSON.parse(response.body as string); + const errorType = errorBody.errorType || ''; + + switch (errorType) { + case 'InsufficientBalance': + errorInsufficientBalance.add(1); + break; + case 'InsufficientAllowance': + errorInsufficientAllowance.add(1); + break; + case 'DuplicateOrder': + errorDuplicateOrder.add(1); + break; + case 'NonZeroFee': + errorNonZeroFee.add(1); + break; + case 'ExcessiveValidTo': + errorExcessiveValidTo.add(1); + break; + case 'WrongOwner': + errorWrongOwner.add(1); + break; + default: + errorOther.add(1); + } + } catch { + errorOther.add(1); + } + + console.log(`Order submission failed: ${response.status} - ${response.body}`); + } else if (response.status === 404) { + status404.add(1); + ordersFailed.add(1); + orderAcceptanceRate.add(0); + successRate.add(0); + failedOrderDuration.add(duration); + console.log(`Order submission failed: ${response.status} - ${response.body}`); + } else if (response.status >= 500) { + status500.add(1); + ordersFailed.add(1); + orderAcceptanceRate.add(0); + successRate.add(0); + failedOrderDuration.add(duration); + console.log(`Order submission failed: ${response.status} - ${response.body}`); + } else { + ordersFailed.add(1); + orderAcceptanceRate.add(0); + successRate.add(0); + failedOrderDuration.add(duration); + console.log(`Order submission failed: ${response.status} - ${response.body}`); + } + + // Check response + check(response, { + 'status is 201': (r) => r.status === 201, + 'response has order UID': (r) => { + try { + const body = JSON.parse(r.body as string); + return body.hasOwnProperty('orderUid') || body.hasOwnProperty('uid'); + } catch { + return false; + } + }, + 'response time < 1000ms': (r) => r.timings.duration < 1000, + }); + + // Random think time between requests (0.5 - 2 seconds) + sleep(Math.random() * 1.5 + 0.5); +} + +/** + * Teardown function - runs once after test + */ +export function teardown(data: any) { + const duration = (Date.now() - data.startTime) / 1000; + console.log('\nTest completed'); + console.log(`Duration: ${duration.toFixed(2)} seconds`); + console.log('Check k6 output above for detailed metrics'); +} diff --git a/playground/performance-test-suite/src/order-generator.ts b/playground/performance-test-suite/src/order-generator.ts new file mode 100644 index 0000000000..2ce908b2be --- /dev/null +++ b/playground/performance-test-suite/src/order-generator.ts @@ -0,0 +1,209 @@ +/** + * Order Generator Module + * Generates synthetic CoW Protocol orders for performance testing + */ + +import { signOrder, ANVIL_ACCOUNTS, SignedOrder, OrderParams } from './eip712-signer'; + +export enum OrderType { + MARKET = 'market', + LIMIT = 'limit', +} + +export enum OrderSide { + BUY = 'buy', + SELL = 'sell', +} + +export interface TokenPair { + sellToken: string; + buyToken: string; + name: string; +} + +export interface OrderConfig { + tokenPairs: TokenPair[]; + orderTypes: OrderType[]; + minAmount: string; + maxAmount: string; + appData?: string; + chainId?: number; + settlementContract?: string; + enableSigning?: boolean; +} + +export interface GeneratedOrder { + sellToken: string; + buyToken: string; + sellAmount: string; + buyAmount: string; + validTo: number; + appData: string; + feeAmount: string; + kind: 'sell' | 'buy'; + partiallyFillable: boolean; + sellTokenBalance: 'erc20' | 'external'; + buyTokenBalance: 'erc20' | 'internal'; + signingScheme: 'eip712' | 'ethsign' | 'eip1271' | 'presign'; + from: string; + receiver?: string; + signature?: string; +} + +export class OrderGenerator { + private config: OrderConfig; + private orderCount: number = 0; + + constructor(config: OrderConfig) { + this.config = config; + } + + /** + * Generate a single synthetic order + */ + generateOrder( + orderType?: OrderType, + tokenPair?: TokenPair, + owner?: string + ): GeneratedOrder { + // Select order parameters + const selectedOrderType = orderType || this.randomChoice(this.config.orderTypes); + const selectedPair = tokenPair || this.randomChoice(this.config.tokenPairs); + const selectedOwner = owner || this.generateRandomAddress(); + + // Generate amounts + const minAmount = BigInt(this.config.minAmount); + const maxAmount = BigInt(this.config.maxAmount); + const sellAmount = this.randomBigInt(minAmount, maxAmount); + + // For market orders, buy amount has some slippage + // For limit orders, buy amount is at a specific price + let buyAmount: bigint; + if (selectedOrderType === OrderType.MARKET) { + const slippage = this.randomFloat(0.95, 1.05); + const buyAmountNum = Math.floor(Number(sellAmount) * slippage); + buyAmount = buyAmountNum > 0 ? BigInt(buyAmountNum) : BigInt(1); + } else { + const price = this.randomFloat(0.98, 1.02); + const buyAmountNum = Math.floor(Number(sellAmount) * price); + buyAmount = buyAmountNum > 0 ? BigInt(buyAmountNum) : BigInt(1); + } + + // Calculate valid_to (5 minutes from now) + const validTo = Math.floor(Date.now() / 1000) + 300; + + // Generate fee amount (0.1% of sell amount) + const feeAmount = (sellAmount * BigInt(1)) / BigInt(1000); + + // Build unsigned order + const receiver = selectedOwner; // Use owner as receiver for POC + const unsignedOrder: GeneratedOrder = { + sellToken: selectedPair.sellToken, + buyToken: selectedPair.buyToken, + sellAmount: sellAmount.toString(), + buyAmount: buyAmount.toString(), + validTo, + appData: this.config.appData || '0x0000000000000000000000000000000000000000000000000000000000000000', + feeAmount: feeAmount.toString(), + kind: 'sell', + partiallyFillable: false, + sellTokenBalance: 'erc20', + buyTokenBalance: 'erc20', + signingScheme: 'eip712', + from: selectedOwner, + receiver, + }; + + this.orderCount++; + + // If signing is enabled, sign the order + if (this.config.enableSigning) { + return this.signOrderWithEIP712(unsignedOrder); + } + + return unsignedOrder; + } + + /** + * Sign an order using EIP-712 + */ + private signOrderWithEIP712(order: GeneratedOrder): GeneratedOrder { + const chainId = this.config.chainId || 31337; + const settlementContract = this.config.settlementContract || '0x610178dA211FEF7D417bC0e6FeD39F05609AD788'; + + // Select a random Anvil account for signing + const privateKey = ANVIL_ACCOUNTS[this.orderCount % ANVIL_ACCOUNTS.length]; + + // Prepare order params for signing + const orderParams: OrderParams = { + sellToken: order.sellToken, + buyToken: order.buyToken, + receiver: order.receiver || order.from, + sellAmount: order.sellAmount, + buyAmount: order.buyAmount, + validTo: order.validTo, + appData: order.appData, + feeAmount: order.feeAmount, + kind: order.kind, + partiallyFillable: order.partiallyFillable, + sellTokenBalance: order.sellTokenBalance, + buyTokenBalance: order.buyTokenBalance, + }; + + // Sign the order + const signedOrder = signOrder(privateKey, chainId, settlementContract, orderParams); + + // Return signed order with all fields + return { + ...order, + from: signedOrder.from, + signature: signedOrder.signature, + signingScheme: signedOrder.signingScheme as any, + }; + } + + /** + * Generate a batch of orders + */ + generateBatch(count: number): GeneratedOrder[] { + const orders: GeneratedOrder[] = []; + for (let i = 0; i < count; i++) { + orders.push(this.generateOrder()); + } + return orders; + } + + /** + * Get generator statistics + */ + getStats() { + return { + totalOrdersGenerated: this.orderCount, + availablePairs: this.config.tokenPairs.length, + }; + } + + // Utility methods + private randomChoice(array: T[]): T { + return array[Math.floor(Math.random() * array.length)]; + } + + private randomBigInt(min: bigint, max: bigint): bigint { + const range = max - min; + const randomValue = BigInt(Math.floor(Math.random() * Number(range))); + return min + randomValue; + } + + private randomFloat(min: number, max: number): number { + return Math.random() * (max - min) + min; + } + + private generateRandomAddress(): string { + const hex = '0123456789abcdef'; + let address = '0x'; + for (let i = 0; i < 40; i++) { + address += hex[Math.floor(Math.random() * hex.length)]; + } + return address; + } +} diff --git a/playground/performance-test-suite/src/scenarios.ts b/playground/performance-test-suite/src/scenarios.ts new file mode 100644 index 0000000000..3dedb747a2 --- /dev/null +++ b/playground/performance-test-suite/src/scenarios.ts @@ -0,0 +1,180 @@ +/** + * Test Scenarios Configuration + * Defines various load testing scenarios for CoW Protocol + */ + +import { Options } from 'k6/options'; + +/** + * Light Load Scenario + * - Low sustained traffic + * - Good for smoke testing and basic validation + */ +export const lightLoadScenario: Options = { + scenarios: { + light_load: { + executor: 'constant-vus', + vus: 5, + duration: '2m', + }, + }, + thresholds: { + http_req_duration: ['p(95)<500'], // 95% of requests should be below 500ms + http_req_failed: ['rate<0.01'], // Error rate should be below 1% + }, +}; + +/** + * Medium Load Scenario + * - Moderate sustained traffic + * - Represents typical production load + */ +export const mediumLoadScenario: Options = { + scenarios: { + medium_load: { + executor: 'constant-vus', + vus: 20, + duration: '5m', + }, + }, + thresholds: { + http_req_duration: ['p(95)<1000', 'p(99)<2000'], + http_req_failed: ['rate<0.05'], + }, +}; + +/** + * Heavy Load Scenario + * - High sustained traffic + * - Tests system under stress + */ +export const heavyLoadScenario: Options = { + scenarios: { + heavy_load: { + executor: 'constant-vus', + vus: 50, + duration: '10m', + }, + }, + thresholds: { + http_req_duration: ['p(95)<2000', 'p(99)<5000'], + http_req_failed: ['rate<0.10'], + }, +}; + +/** + * Spike Load Scenario + * - Sudden traffic spike + * - Tests system elasticity and recovery + */ +export const spikeLoadScenario: Options = { + scenarios: { + spike_load: { + executor: 'ramping-vus', + startVUs: 5, + stages: [ + { duration: '1m', target: 5 }, // Normal load + { duration: '30s', target: 100 }, // Spike up + { duration: '2m', target: 100 }, // Stay at spike + { duration: '1m', target: 5 }, // Spike down + { duration: '1m', target: 5 }, // Recovery + ], + }, + }, + thresholds: { + http_req_duration: ['p(95)<3000'], + http_req_failed: ['rate<0.15'], + }, +}; + +/** + * Sustained Ramp-up Scenario + * - Gradual traffic increase + * - Tests system scaling behavior + */ +export const rampUpScenario: Options = { + scenarios: { + ramp_up: { + executor: 'ramping-vus', + startVUs: 1, + stages: [ + { duration: '2m', target: 10 }, + { duration: '3m', target: 30 }, + { duration: '3m', target: 50 }, + { duration: '2m', target: 10 }, + ], + }, + }, + thresholds: { + http_req_duration: ['p(95)<1500'], + http_req_failed: ['rate<0.05'], + }, +}; + +/** + * Stress Test Scenario + * - Push system to its limits + * - Find breaking point + */ +export const stressTestScenario: Options = { + scenarios: { + stress_test: { + executor: 'ramping-vus', + startVUs: 1, + stages: [ + { duration: '2m', target: 50 }, + { duration: '5m', target: 100 }, + { duration: '2m', target: 150 }, + { duration: '5m', target: 200 }, + { duration: '2m', target: 0 }, + ], + }, + }, + thresholds: { + http_req_duration: ['p(95)<5000'], + http_req_failed: ['rate<0.20'], + }, +}; + +/** + * Soak Test Scenario + * - Long-duration test + * - Detects memory leaks and degradation over time + */ +export const soakTestScenario: Options = { + scenarios: { + soak_test: { + executor: 'constant-vus', + vus: 30, + duration: '30m', + }, + }, + thresholds: { + http_req_duration: ['p(95)<1000'], + http_req_failed: ['rate<0.05'], + }, +}; + +/** + * Get scenario by name + */ +export function getScenario(name: string): Options { + const scenarios: Record = { + light: lightLoadScenario, + medium: mediumLoadScenario, + heavy: heavyLoadScenario, + spike: spikeLoadScenario, + rampup: rampUpScenario, + stress: stressTestScenario, + soak: soakTestScenario, + }; + + return scenarios[name] || mediumLoadScenario; +} + +/** + * List all available scenarios + */ +export function listScenarios(): string[] { + return ['light', 'medium', 'heavy', 'spike', 'rampup', 'stress', 'soak']; +} diff --git a/playground/performance-test-suite/src/signed-order-pool.ts b/playground/performance-test-suite/src/signed-order-pool.ts new file mode 100644 index 0000000000..96496c032b --- /dev/null +++ b/playground/performance-test-suite/src/signed-order-pool.ts @@ -0,0 +1,41 @@ +/** + * Signed Order Pool + * Manages a pool of pre-signed orders for K6 load testing + */ + +import { SharedArray } from 'k6/data'; + +// Load pre-signed orders from JSON file +// SharedArray ensures orders are loaded once and shared across all VUs +export const signedOrders = new SharedArray('signedOrders', function () { + // Read the signed orders file + const data = open('../signed-orders.json'); + return JSON.parse(data); +}); + +/** + * Get a random signed order from the pool + */ +export function getRandomSignedOrder() { + const index = Math.floor(Math.random() * signedOrders.length); + return signedOrders[index]; +} + +/** + * Get a signed order by round-robin + * Use VU iteration to distribute orders evenly + */ +export function getSignedOrderRoundRobin(iteration: number) { + const index = iteration % signedOrders.length; + return signedOrders[index]; +} + +/** + * Get pool statistics + */ +export function getPoolStats() { + return { + totalOrders: signedOrders.length, + memoryUsage: JSON.stringify(signedOrders).length, + }; +} diff --git a/playground/performance-test-suite/tsconfig.json b/playground/performance-test-suite/tsconfig.json new file mode 100644 index 0000000000..c1195bd163 --- /dev/null +++ b/playground/performance-test-suite/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ESNext", + "moduleResolution": "node", + "lib": ["ES2020"], + "strict": false, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "noImplicitAny": false, + "strictNullChecks": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "types": ["k6"], + "outDir": "./dist", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/playground/performance-test-suite/webpack.config.js b/playground/performance-test-suite/webpack.config.js new file mode 100644 index 0000000000..04960173c4 --- /dev/null +++ b/playground/performance-test-suite/webpack.config.js @@ -0,0 +1,33 @@ +const path = require('path'); + +module.exports = { + mode: 'production', + entry: './src/load-test.ts', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'load-test.js', + libraryTarget: 'commonjs', + }, + resolve: { + extensions: ['.ts', '.js'], + }, + module: { + rules: [ + { + test: /\.ts$/, + use: 'ts-loader', + exclude: /node_modules/, + }, + ], + }, + target: 'web', + externals: [ + /^k6(\/.*)?$/, + ], + stats: { + colors: true, + }, + optimization: { + minimize: false, + }, +}; diff --git a/playground/poc-offline-mode/.env.example b/playground/poc-offline-mode/.env.example new file mode 100644 index 0000000000..3f517b5158 --- /dev/null +++ b/playground/poc-offline-mode/.env.example @@ -0,0 +1,41 @@ +# Blockchain Node +RPC_URL=http://localhost:8545 +CHAIN_ID=31337 + +# Deployer Account (Anvil account #0) +DEPLOYER_ADDRESS=0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 +DEPLOYER_PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 + +# Test Accounts +ALICE_ADDRESS=0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 +ALICE_PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 + +BOB_ADDRESS=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 +BOB_PRIVATE_KEY=0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d + +CAROL_ADDRESS=0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC +CAROL_PRIVATE_KEY=0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a + +# Contract Addresses (populated after deployment) +WETH_ADDRESS= +USDC_ADDRESS= +DAI_ADDRESS= + +UNISWAP_V2_FACTORY= +UNISWAP_V2_ROUTER= +WETH_USDC_PAIR= +WETH_DAI_PAIR= +USDC_DAI_PAIR= + +SETTLEMENT_ADDRESS= +VAULT_RELAYER_ADDRESS= +AUTHENTICATOR_ADDRESS= + +# Solver Configuration +SOLVER_ADDRESS=0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 +DRIVER_URL=http://localhost:11088 + +# State Management +STATE_FILE=state/poc-state.json +INITIAL_STATE_FILE=state/poc-state-initial.json +METADATA_FILE=state/metadata.json diff --git a/playground/poc-offline-mode/.gitignore b/playground/poc-offline-mode/.gitignore new file mode 100644 index 0000000000..51b9438379 --- /dev/null +++ b/playground/poc-offline-mode/.gitignore @@ -0,0 +1,34 @@ +# Environment +.env + +# Foundry +contracts/out/ +contracts/cache/ +contracts/broadcast/ +contracts/lib/ +contracts/out-cow-protocol +contracts/out-uniswap-v2 + +# State files (keep initial, ignore runtime) +state/backups/ + +# Logs +*.log + +# OS +.DS_Store +Thumbs.db + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Temporary files +tmp/ +temp/ + +cache/ +broadcast/ \ No newline at end of file diff --git a/playground/poc-offline-mode/Dockerfile b/playground/poc-offline-mode/Dockerfile new file mode 100644 index 0000000000..ebff78b200 --- /dev/null +++ b/playground/poc-offline-mode/Dockerfile @@ -0,0 +1,13 @@ +FROM ghcr.io/foundry-rs/foundry:latest + +# Switch to root to install packages +USER root + +# Install jq for parsing JSON in deployment script +# Foundry image is Debian-based +RUN apt-get update && apt-get install -y jq && rm -rf /var/lib/apt/lists/* + +# Switch back to foundry user +USER foundry + +WORKDIR /workspace diff --git a/playground/poc-offline-mode/README.md b/playground/poc-offline-mode/README.md new file mode 100644 index 0000000000..acddce9abe --- /dev/null +++ b/playground/poc-offline-mode/README.md @@ -0,0 +1,310 @@ +# CoW Protocol Offline Playground + +A self-contained, offline development environment for CoW Protocol that runs locally without requiring mainnet forks or archive nodes. + +## What is this? + +The CoW Protocol Offline Playground is a complete local blockchain environment that includes: + +- **Local Anvil node** with persistent state +- **CoW Protocol contracts**: Settlement, VaultRelayer, Authenticator +- **DEX infrastructure**: Uniswap V2 (with liquidity pools) +- **Test tokens**: WETH, USDC, DAI +- **CoW Protocol services**: Orderbook API, Autopilot, Driver, Baseline Solver +- **Mock Balancer Vault** for settlement execution + +All services work out-of-the-box with proper configuration pointing to the local blockchain. + +## Quick Start + +### Prerequisites + +- Docker and Docker Compose +- Foundry (forge, cast, anvil) +- jq (for JSON parsing) +- Python 3 (for order signing) + +### Initialize the Environment + +1. **Start all services** (this will automatically load the existing blockchain state): + ```bash + cd /path/to/playground + docker-compose -f docker-compose.offline.yml up -d + ``` + + The Anvil node will automatically load the pre-deployed state from `poc-offline-mode/state/poc-state.json`. + +2. **Wait for services to be ready**: + ```bash + # Wait for orderbook API to be available + curl --retry 24 --retry-delay 5 --retry-all-errors http://localhost:8080/api/v1/version + ``` + +3. **Run the end-to-end test**: + ```bash + ./test_playground_offline_cow.sh + ``` + + This script will: + - Create two orders (peer-to-peer matching) + - Wait for autopilot to match and settle them + - Verify balances changed correctly + +### Access Points + +Once running, you can access: + +- **Orderbook API**: http://localhost:8080 +- **Anvil RPC**: http://localhost:8545 +- **Driver API**: http://localhost:9000 +- **Grafana (monitoring)**: http://localhost:3000 +- **Prometheus (metrics)**: http://localhost:9090 +- **Adminer (database)**: http://localhost:8082 + +### Contract Addresses + +All deployed contract addresses are stored in: +``` +poc-offline-mode/config/addresses.json +``` + +Example: +```json +{ + "chainId": "31337", + "tokens": { + "WETH": "0x5FbDB2315678afecb367f032d93F642f64180aa3", + "USDC": "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0", + "DAI": "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" + }, + "cowProtocol": { + "settlement": "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e", + "vaultRelayer": "0x8dAF17A20c9DBA35f005b6324F493785D239719d", + "balancerVault": "0x8A791620dd6260079BF849Dc5567aDC3F2FdC318" + } +} +``` + +## Building Contracts from Source + +If you need to rebuild contracts (for example, after modifying sources), use the Foundry profiles: + +### Profile Overview + +The project uses three Foundry profiles to handle different Solidity versions: + +| Profile | Solidity Version | Contracts | Output Directory | +|---------|------------------|-----------|------------------| +| `default` | 0.8.26 | Custom contracts (tokens, mocks) | `contracts/out` | +| `uniswap-v2` | 0.5.16 | Uniswap V2 Core (Factory, Pair) | `contracts/out-uniswap-v2` | +| `uniswap-v2-periphery` | 0.6.6 | Uniswap V2 Router | `contracts/out-uniswap-v2-periphery` | +| `cow-protocol` | 0.7.6 | CoW Protocol contracts | `contracts/out-cow-protocol` | + +### Building Specific Contracts + +From the `poc-offline-mode` directory: + +```bash +# Build custom contracts (default profile) +forge build + +# Build Uniswap V2 Core (Factory, Pair) +forge build --profile uniswap-v2 + +# Build Uniswap V2 Router +forge build --profile uniswap-v2-periphery + +# Build CoW Protocol contracts +forge build --profile cow-protocol +``` + +### Build All Contracts + +To rebuild everything: + +```bash +forge build && \ +forge build --profile uniswap-v2 && \ +forge build --profile uniswap-v2-periphery && \ +forge build --profile cow-protocol +``` + +## Deploying from Scratch + +If you want to deploy everything from scratch (instead of loading the existing state): + +1. **Delete the existing state**: + ```bash + rm poc-offline-mode/state/poc-state.json + ``` + +2. **Start Anvil and services**: + ```bash + docker-compose -f docker-compose.offline.yml up -d chain + ``` + +3. **Run the deployment script**: + ```bash + cd poc-offline-mode + ./scripts/deploy-all.sh + ``` + + This will deploy: + - Step 1: Tokens (WETH, USDC, DAI) + - Step 2: Uniswap V2 (Factory, Router) + - Step 3: Mock Balancer Vault + - Step 4: CoW Protocol (Settlement, VaultRelayer, Authenticator) + - Step 5: Uniswap V2 Pairs with liquidity + - Step 6: Save addresses to `config/addresses.json` + +4. **Start the remaining services**: + ```bash + docker-compose -f docker-compose.offline.yml up -d + ``` + +### Important Note: UniswapV2Library Init Code Hash + +โš ๏ธ **Known Issue**: If you deploy from scratch, you may need to update the init code hash in UniswapV2Library.sol + +The Uniswap V2 Router uses a hardcoded init code hash to compute pair addresses via CREATE2. The hash differs between Foundry and Hardhat/Truffle deployments. + +**Mainnet hash** (original): +```solidity +hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' +``` + +**Foundry hash** (for local deployment): +```solidity +hex'b6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e' +``` + +**Location**: `contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol` (line 24) + +**How to fix**: +```solidity +// calculates the CREATE2 address for a pair without making any external calls +function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) { + (address token0, address token1) = sortTokens(tokenA, tokenB); + pair = address(uint(keccak256(abi.encodePacked( + hex'ff', + factory, + keccak256(abi.encodePacked(token0, token1)), + hex'b6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e' // Foundry init code hash + )))); +} +``` + +After updating, rebuild the periphery contracts: +```bash +forge build --profile uniswap-v2-periphery +``` + +**Note**: The current `poc-state.json` already has the correct hash deployed, so this is only needed if deploying from scratch. + +## Configuration Files + +### Docker Configuration + +- **`docker-compose.offline.yml`**: Defines all services (chain, database, orderbook, autopilot, driver, baseline solver) +- **`.env.offline`**: Environment variables for services + +### Solver Configuration + +- **`configs/offline/driver.toml`**: Driver configuration for offline mode + - Chain ID: 31337 + - Settlement contract address + - Gas estimation settings + +### Blockchain State + +- **`state/poc-state.json`**: Persistent Anvil blockchain state + - Contains all deployed contracts + - Pre-seeded liquidity pools + - Can be loaded/dumped by Anvil + +## Architecture + +``` +โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” +โ”‚ Anvil (31337) โ”‚ โ† Local blockchain with persistent state +โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ + โ”‚ + โ”Œโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” + โ”‚ โ”‚ +โ”Œโ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ” +โ”‚ Tokens โ”‚ โ”‚ DEX Contracts โ”‚ +โ”‚ WETH, USDC โ”‚ โ”‚ Uniswap V2 โ”‚ +โ”‚ DAI โ”‚ โ”‚ (with pools) โ”‚ +โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ + โ”‚ + โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค + โ”‚ โ”‚ + โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ” + โ”‚ CoW Protocol โ”‚ โ”‚ Balancer Vault โ”‚ + โ”‚ Settlement โ”‚โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚ (Mock) โ”‚ + โ”‚ VaultRelayer โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ + โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ + โ”‚ + โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” + โ”‚ โ”‚ +โ”Œโ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ” +โ”‚Orderbookโ”‚ โ”‚Autopilot โ”‚ โ”‚Driverโ”‚ โ”‚Baseline โ”‚ +โ”‚ API โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Solver โ”‚ +โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ +``` + +## Troubleshooting + +### Services not starting + +Check Docker logs: +```bash +docker-compose -f docker-compose.offline.yml logs -f [service_name] +``` + +Services: `chain`, `orderbook`, `autopilot`, `driver`, `baseline` + +### Orders not settling + +1. Check if services are running: + ```bash + docker-compose -f docker-compose.offline.yml ps + ``` + +2. Check driver logs for errors: + ```bash + docker-compose -f docker-compose.offline.yml logs driver --tail=50 + ``` + +3. Verify token approvals are set for VaultRelayer + +### Reset everything + +```bash +# Stop all services +docker-compose -f docker-compose.offline.yml down -v + +# Remove state (optional - will require redeployment) +rm poc-offline-mode/state/poc-state.json + +# Start fresh +docker-compose -f docker-compose.offline.yml up -d +``` + +## Development Workflow + +1. **Make code changes** to contracts or services +2. **Rebuild contracts** using appropriate Foundry profile +3. **Redeploy** using `scripts/deploy-all.sh` (or keep existing state) +4. **Restart services**: `docker-compose -f docker-compose.offline.yml restart` +5. **Test changes** using `test_playground_offline_cow.sh` + +## Learn More + +- [CoW Protocol Documentation](https://docs.cow.fi/) +- [Foundry Book](https://book.getfoundry.sh/) +- [Grant Application](grant_application-by-hand.md) - Full project roadmap and architecture + +## License + +This project is part of the CoW Protocol ecosystem and follows the same open-source licensing. diff --git a/playground/poc-offline-mode/config/addresses.json b/playground/poc-offline-mode/config/addresses.json new file mode 100644 index 0000000000..1fc4845c10 --- /dev/null +++ b/playground/poc-offline-mode/config/addresses.json @@ -0,0 +1,23 @@ +{ + "chainId": "31337", + "tokens": { + "WETH": "0x5FbDB2315678afecb367f032d93F642f64180aa3", + "USDC": "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0", + "DAI": "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" + }, + "uniswapV2": { + "factory": "0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9", + "router": "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707", + "pairs": { + "WETH-USDC": "0x5a270E627326BF3D504d7E41CCff73ca6aF16227", + "WETH-DAI": "0xFF5C725f53c37fFf771dB3CdA7A8b0178F622B60", + "USDC-DAI": "0x94eCCB8E4635821e636C6651D2A5964562d31C5d" + } + }, + "cowProtocol": { + "settlement": "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e", + "authenticator": "0x610178dA211FEF7D417bC0e6FeD39F05609AD788", + "vaultRelayer": "0x8dAF17A20c9DBA35f005b6324F493785D239719d", + "balancerVault": "0x8A791620dd6260079BF849Dc5567aDC3F2FdC318" + } +} diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/Babylonian.sol/Babylonian.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/Babylonian.sol/Babylonian.json new file mode 100644 index 0000000000..044552c981 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/Babylonian.sol/Babylonian.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209f2865ee67ce3bd016662aae09d1e9dafe17580f822d79e03dda9ebe43c5535f64736f6c63430006060033","sourceMap":"210:1371:0:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209f2865ee67ce3bd016662aae09d1e9dafe17580f822d79e03dda9ebe43c5535f64736f6c63430006060033","sourceMap":"210:1371:0:-:0;;;;;;12:1:-1;9;2:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol\":\"Babylonian\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol":"Babylonian"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol":{"keccak256":"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177","urls":["bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069","dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ"],"license":null}},"version":1},"id":0} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/BitMath.sol/BitMath.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/BitMath.sol/BitMath.json new file mode 100644 index 0000000000..c91e9d9e3f --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/BitMath.sol/BitMath.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122061427804e3a8477127920166e25b42df0eb3e43191fb979dfba5e068a10ccc3164736f6c63430006060033","sourceMap":"71:2043:1:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122061427804e3a8477127920166e25b42df0eb3e43191fb979dfba5e068a10ccc3164736f6c63430006060033","sourceMap":"71:2043:1:-:0;;;;;;12:1:-1;9;2:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol\":\"BitMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7\",\"urls\":[\"bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727\",\"dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol":"BitMath"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol":{"keccak256":"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7","urls":["bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727","dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH"],"license":null}},"version":1},"id":1} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/DeflatingERC20.sol/DeflatingERC20.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/DeflatingERC20.sol/DeflatingERC20.json new file mode 100644 index 0000000000..70bb59d0fd --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/DeflatingERC20.sol/DeflatingERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_totalSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PERMIT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"value","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":"value","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}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50604051610e14380380610e148339818101604052602081101561003357600080fd5b50516040514690806052610dc28239604080519182900360520182208282018252601483527f4465666c6174696e67205465737420546f6b656e0000000000000000000000006020938401528151808301835260018152603160f81b908401528151808401919091527ff89e31130e6fd3d87d62a1ac2770fba58bed5a06c47ce70fa97f8218b1b2743a818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061012633836001600160e01b0361012d16565b505061022d565b610146816000546101cf60201b610ade1790919060201c565b60009081556001600160a01b038316815260016020908152604090912054610177918390610ade6101cf821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610227576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610b868061023c6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280601481526020017f4465666c6174696e67205465737420546f6b656e00000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020017f445454000000000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f4558504952454400000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f5349474e4154555245000000000000000000000000000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b606481046109218482610a19565b6000610933838363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff861660009081526001602052604090205490915061096c908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff80871660009081526001602052604080822093909355908616815220546109ae908263ffffffff610ade16565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054610a4f908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554610a89908263ffffffff6108a116565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea26469706673582212209e1ccb663d68c6e0c950f5879b9122725dd86c61940b89843347e35fa05c583f64736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","sourceMap":"62:3507:27:-:0;;;864:504;5:9:-1;2:2;;;27:1;24;17:12;2:2;864:504:27;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;864:504:27;1066:95;;968:9;;1066:95;;;;;;;;;;;;;;;;1195:4;;;;;;;;;;;;;;1229:10;;;;;;;;;;-1:-1:-1;;;1229:10:27;;;;1038:272;;;;;;;;;1179:22;1038:272;;;;1219:21;1038:272;;;;;;;;;;1291:4;1038:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1038:272:27;;;;;;;1015:305;;;;;996:16;:324;-1:-1:-1;1330:31:27;1336:10;1348:12;-1:-1:-1;;;;;1330:5:27;:31;:::i;:::-;864:504;;62:3507;;1374:197;1446:22;1462:5;1446:11;;:15;;;;;;:22;;;;:::i;:::-;1432:11;:36;;;-1:-1:-1;;;;;1494:13:27;;;;:9;:13;;;;;;;;;:24;;1512:5;;1494:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1478:13:27;;;;;;:9;:13;;;;;;;;:40;;;;1533:31;;;;;;;1478:13;;;;1533:31;;;;;;;;;;1374:197;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;;;;:::o;62:3507:27:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280601481526020017f4465666c6174696e67205465737420546f6b656e00000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020017f445454000000000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f4558504952454400000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f5349474e4154555245000000000000000000000000000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b606481046109218482610a19565b6000610933838363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff861660009081526001602052604090205490915061096c908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff80871660009081526001602052604080822093909355908616815220546109ae908263ffffffff610ade16565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526001602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054610a4f908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554610a89908263ffffffff6108a116565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea26469706673582212209e1ccb663d68c6e0c950f5879b9122725dd86c61940b89843347e35fa05c583f64736f6c63430006060033","sourceMap":"62:3507:27:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;62:3507:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;122:52:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;122:52:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2334:144;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2334:144:27;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;264:24;;;:::i;:::-;;;;;;;;;;;;;;;;2626:295;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2626:295:27;;;;;;;;;;;;;;;;;;:::i;550:108::-;;;:::i;223:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;409:31;;;:::i;294:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;294:41:27;;;;:::i;664:38::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;664:38:27;;;;:::i;180:37::-;;;:::i;2484:136::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2484:136:27;;;;;;;;;:::i;2927:640::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;2927:640:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;341:61;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;341:61:27;;;;;;;;;;;:::i;122:52::-;;;;;;;;;;;;;;;;;;;:::o;2334:144::-;2398:4;2414:36;2423:10;2435:7;2444:5;2414:8;:36::i;:::-;-1:-1:-1;2467:4:27;2334:144;;;;;:::o;264:24::-;;;;:::o;2626:295::-;2724:15;;;2704:4;2724:15;;;:9;:15;;;;;;;;2740:10;2724:27;;;;;;;;2760:2;2724:39;2720:138;;2809:15;;;;;;;:9;:15;;;;;;;;2825:10;2809:27;;;;;;;;:38;;2841:5;2809:38;:31;:38;:::i;:::-;2779:15;;;;;;;:9;:15;;;;;;;;2795:10;2779:27;;;;;;;:68;2720:138;2867:26;2877:4;2883:2;2887:5;2867:9;:26::i;:::-;-1:-1:-1;2910:4:27;2626:295;;;;;:::o;550:108::-;592:66;550:108;:::o;223:35::-;256:2;223:35;:::o;409:31::-;;;;:::o;294:41::-;;;;;;;;;;;;;:::o;664:38::-;;;;;;;;;;;;;:::o;180:37::-;;;;;;;;;;;;;;;;;;;:::o;2484:136::-;2544:4;2560:32;2570:10;2582:2;2586:5;2560:9;:32::i;2927:640::-;3072:15;3060:8;:27;;3052:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3211:16;;3306:13;;;;3109:14;3306:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3255:77;;592:66;3255:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3255:77:27;;;;;3245:88;;;;;;3149:198;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3149:198:27;;;;;;3126:231;;;;;;;;;3394:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3109:14;;3306:15;3394:26;;;;;-1:-1:-1;3394:26:27;;;;;;;;;;3306:15;3394:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3394:26:27;;;;;;-1:-1:-1;;3438:30:27;;;;;;;:59;;;3492:5;3472:25;;:16;:25;;;3438:59;3430:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3529:31;3538:5;3545:7;3554:5;3529:8;:31::i;:::-;2927:640;;;;;;;;;:::o;341:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1788:166::-;1868:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1916:31;;;;;;;;;;;;;;;;;1788:166;;;:::o;286:127:23:-;369:5;;;364:16;;;;356:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1960:368:27;2061:3;2053:11;;2074:23;2080:4;2053:11;2074:5;:23::i;:::-;2107:19;2129:21;:5;2139:10;2129:21;:9;:21;:::i;:::-;2178:15;;;;;;;:9;:15;;;;;;2107:43;;-1:-1:-1;2178:35:27;;2107:43;2178:35;:19;:35;:::i;:::-;2160:15;;;;;;;;:9;:15;;;;;;:53;;;;2239:13;;;;;;;:33;;2257:14;2239:33;:17;:33;:::i;:::-;2223:13;;;;;;;;:9;:13;;;;;;;;;:49;;;;2287:34;;;;;;;2223:13;;2287:34;;;;;;;;;;;;;1960:368;;;;;:::o;1577:205::-;1655:15;;;;;;;:9;:15;;;;;;:26;;1675:5;1655:26;:19;:26;:::i;:::-;1637:15;;;;;;;:9;:15;;;;;:44;;;;1705:11;:22;;1721:5;1705:22;:15;:22;:::i;:::-;1691:11;:36;;;1742:33;;;;;;;;;;;;;;;;;;;;;;1577:205;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/test/DeflatingERC20.sol\":\"DeflatingERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]},\"contracts/lib/v2-periphery/contracts/test/DeflatingERC20.sol\":{\"keccak256\":\"0xd0f1fe4acdc946aab9b96bba11f81bf5a29e623a35343ba6f11312a43db40667\",\"urls\":[\"bzz-raw://4bdb93acf1bd0d35f91ea253f8aa511853f69afbf8aab67acdd2392dca11ff88\",\"dweb:/ipfs/QmNYrScD6PpZg3FcAKK1Da55991UzPsNCVfxe236uCWDa6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/test/DeflatingERC20.sol":"DeflatingERC20"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null},"contracts/lib/v2-periphery/contracts/test/DeflatingERC20.sol":{"keccak256":"0xd0f1fe4acdc946aab9b96bba11f81bf5a29e623a35343ba6f11312a43db40667","urls":["bzz-raw://4bdb93acf1bd0d35f91ea253f8aa511853f69afbf8aab67acdd2392dca11ff88","dweb:/ipfs/QmNYrScD6PpZg3FcAKK1Da55991UzPsNCVfxe236uCWDa6"],"license":null}},"version":1},"id":27} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ERC20.sol/ERC20.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ERC20.sol/ERC20.json new file mode 100644 index 0000000000..74315bc3ff --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ERC20.sol/ERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_totalSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PERMIT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"value","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":"value","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}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50604051610d17380380610d178339818101604052602081101561003357600080fd5b50516040514690806052610cc58239604080519182900360520182208282018252600a8352692a32b9ba102a37b5b2b760b11b6020938401528151808301835260018152603160f81b908401528151808401919091527f81e8ad438398ab0d4a2a7ecb159490c091bb27c67ace5181f70084e30fadaea2818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018590523060a0808301919091528251808303909101815260c090910190915280519101206003555061011333836001600160e01b0361011a16565b505061021a565b610133816000546101bc60201b6109f41790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101649183906109f46101bc821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610214576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610a9c806102296000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f5465737420546f6b656e0000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600281526020017f545400000000000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f4558504952454400000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f5349474e4154555245000000000000000000000000000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea26469706673582212208460d02b66bd6ceba90df4ac14d88dc4a0e69dc927506dd01d330ac38788ae6764736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","sourceMap":"62:3335:28:-:0;;;844:504;5:9:-1;2:2;;;27:1;24;17:12;2:2;844:504:28;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;844:504:28;1046:95;;948:9;;1046:95;;;;;;;;;;;;;;;;1175:4;;;;;;;;-1:-1:-1;;;1175:4:28;;;;;1209:10;;;;;;;;;;-1:-1:-1;;;1209:10:28;;;;1018:272;;;;;;;;;1159:22;1018:272;;;;1199:21;1018:272;;;;;;;;;;1271:4;1018:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1018:272:28;;;;;;;995:305;;;;;976:16;:324;-1:-1:-1;1310:31:28;1316:10;1328:12;-1:-1:-1;;;;;1310:5:28;:31;:::i;:::-;844:504;;62:3335;;1354:197;1426:22;1442:5;1426:11;;:15;;;;;;:22;;;;:::i;:::-;1412:11;:36;;;-1:-1:-1;;;;;1474:13:28;;;;:9;:13;;;;;;;;;:24;;1492:5;;1474:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1458:13:28;;;;;;:9;:13;;;;;;;;:40;;;;1513:31;;;;;;;1458:13;;;;1513:31;;;;;;;;;;1354:197;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;-1:-1:-1;;;224:49:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;;;;:::o;62:3335:28:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f5465737420546f6b656e0000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600281526020017f545400000000000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f4558504952454400000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f5349474e4154555245000000000000000000000000000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea26469706673582212208460d02b66bd6ceba90df4ac14d88dc4a0e69dc927506dd01d330ac38788ae6764736f6c63430006060033","sourceMap":"62:3335:28:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;62:3335:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;113:42:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;113:42:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2162:144;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2162:144:28;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;244:24;;;:::i;:::-;;;;;;;;;;;;;;;;2454:295;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2454:295:28;;;;;;;;;;;;;;;;;;:::i;530:108::-;;;:::i;203:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;389:31;;;:::i;274:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;274:41:28;;;;:::i;644:38::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;644:38:28;;;;:::i;161:36::-;;;:::i;2312:136::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2312:136:28;;;;;;;;;:::i;2755:640::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;2755:640:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;321:61;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;321:61:28;;;;;;;;;;;:::i;113:42::-;;;;;;;;;;;;;;;;;;;:::o;2162:144::-;2226:4;2242:36;2251:10;2263:7;2272:5;2242:8;:36::i;:::-;-1:-1:-1;2295:4:28;2162:144;;;;;:::o;244:24::-;;;;:::o;2454:295::-;2552:15;;;2532:4;2552:15;;;:9;:15;;;;;;;;2568:10;2552:27;;;;;;;;2588:2;2552:39;2548:138;;2637:15;;;;;;;:9;:15;;;;;;;;2653:10;2637:27;;;;;;;;:38;;2669:5;2637:38;:31;:38;:::i;:::-;2607:15;;;;;;;:9;:15;;;;;;;;2623:10;2607:27;;;;;;;:68;2548:138;2695:26;2705:4;2711:2;2715:5;2695:9;:26::i;:::-;-1:-1:-1;2738:4:28;2454:295;;;;;:::o;530:108::-;572:66;530:108;:::o;203:35::-;236:2;203:35;:::o;389:31::-;;;;:::o;274:41::-;;;;;;;;;;;;;:::o;644:38::-;;;;;;;;;;;;;:::o;161:36::-;;;;;;;;;;;;;;;;;;;:::o;2312:136::-;2372:4;2388:32;2398:10;2410:2;2414:5;2388:9;:32::i;2755:640::-;2900:15;2888:8;:27;;2880:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3039:16;;3134:13;;;;2937:14;3134:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3083:77;;572:66;3083:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3083:77:28;;;;;3073:88;;;;;;2977:198;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2977:198:28;;;;;;2954:231;;;;;;;;;3222:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2937:14;;3134:15;3222:26;;;;;-1:-1:-1;3222:26:28;;;;;;;;;;3134:15;3222:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3222:26:28;;;;;;-1:-1:-1;;3266:30:28;;;;;;;:59;;;3320:5;3300:25;;:16;:25;;;3266:59;3258:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3357:31;3366:5;3373:7;3382:5;3357:8;:31::i;:::-;2755:640;;;;;;;;;:::o;321:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1768:166::-;1848:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1896:31;;;;;;;;;;;;;;;;;1768:166;;;:::o;286:127:23:-;369:5;;;364:16;;;;356:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1940:216:28;2033:15;;;;;;;:9;:15;;;;;;:26;;2053:5;2033:26;:19;:26;:::i;:::-;2015:15;;;;;;;;:9;:15;;;;;;:44;;;;2085:13;;;;;;;:24;;2103:5;2085:24;:17;:24;:::i;:::-;2069:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2124:25;;;;;;;2069:13;;2124:25;;;;;;;;;;;;;1940:216;;;:::o;154:126:23:-;237:5;;;232:16;;;;224:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/test/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]},\"contracts/lib/v2-periphery/contracts/test/ERC20.sol\":{\"keccak256\":\"0xf8b6341cb3bbfbf7f7f3ae80bbec2065f93a4d22384c3d0bb4e7efee6829dec4\",\"urls\":[\"bzz-raw://54e8be709ed8e21ea15d7730781b05be2264eaa5f87de8e8625024e48c79cfe8\",\"dweb:/ipfs/QmPJi4kXPDncCCBY8xb779anc25S4XUEf1FoheZJKGLWtc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/test/ERC20.sol":"ERC20"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null},"contracts/lib/v2-periphery/contracts/test/ERC20.sol":{"keccak256":"0xf8b6341cb3bbfbf7f7f3ae80bbec2065f93a4d22384c3d0bb4e7efee6829dec4","urls":["bzz-raw://54e8be709ed8e21ea15d7730781b05be2264eaa5f87de8e8625024e48c79cfe8","dweb:/ipfs/QmPJi4kXPDncCCBY8xb779anc25S4XUEf1FoheZJKGLWtc"],"license":null}},"version":1},"id":28} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleComputeLiquidityValue.sol/ExampleComputeLiquidityValue.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleComputeLiquidityValue.sol/ExampleComputeLiquidityValue.json new file mode 100644 index 0000000000..95d4557725 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleComputeLiquidityValue.sol/ExampleComputeLiquidityValue.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"factory_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getGasCostOfGetLiquidityValueAfterArbitrageToPrice","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"truePriceTokenA","type":"uint256","internalType":"uint256"},{"name":"truePriceTokenB","type":"uint256","internalType":"uint256"},{"name":"liquidityAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLiquidityValue","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"liquidityAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"tokenAAmount","type":"uint256","internalType":"uint256"},{"name":"tokenBAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLiquidityValueAfterArbitrageToPrice","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"truePriceTokenA","type":"uint256","internalType":"uint256"},{"name":"truePriceTokenB","type":"uint256","internalType":"uint256"},{"name":"liquidityAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"tokenAAmount","type":"uint256","internalType":"uint256"},{"name":"tokenBAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReservesAfterArbitrage","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"truePriceTokenA","type":"uint256","internalType":"uint256"},{"name":"truePriceTokenB","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"reserveA","type":"uint256","internalType":"uint256"},{"name":"reserveB","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x60a060405234801561001057600080fd5b506040516114043803806114048339818101604052602081101561003357600080fd5b5051606081901b6001600160601b0319166080526001600160a01b031661138961007b600039806101fa5280610238528061027b52806102b952806102e352506113896000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806380caa3531161005057806380caa3531461011d578063c45a01551461017e578063d9b7a6e7146101af57610067565b80633558e94c1461006c57806369a2fcbd146100ce575b600080fd5b6100b56004803603608081101561008257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604081013590606001356101f2565b6040805192835260208301919091528051918290030190f35b6100b5600480360360a08110156100e457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060800135610230565b61016c600480360360a081101561013357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060800135610270565b60408051918252519081900360200190f35b6101866102b7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b5600480360360608110156101c557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356102db565b6000806102227f000000000000000000000000000000000000000000000000000000000000000087878787610316565b915091505b94509492505050565b6000806102617f000000000000000000000000000000000000000000000000000000000000000088888888886103f5565b915091505b9550959350505050565b6000805a90506102a47f000000000000000000000000000000000000000000000000000000000000000088888888886103f5565b505060005a909103979650505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008061030a7f0000000000000000000000000000000000000000000000000000000000000000868686610641565b91509150935093915050565b600080610324878787610824565b909250905081158015906103385750600081115b61038d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180611288602d913960400191505060405180910390fd5b60008061039c8686868661090c565b9150915080600014156103b157506102669050565b81156103d25760006103c48286866109f7565b9482019490930392506103e9565b60006103df8285876109f7565b9094039350918201915b50509550959350505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b505afa15801561046b573d6000803e3d6000fd5b505050506040513d602081101561048157600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161415905060006104aa8a8a8a610b1b565b90506000826104ba57600061052d565b8173ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050057600080fd5b505afa158015610514573d6000803e3d6000fd5b505050506040513d602081101561052a57600080fd5b50515b905060008273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561057757600080fd5b505afa15801561058b573d6000803e3d6000fd5b505050506040513d60208110156105a157600080fd5b505190508681108015906105b55750600087115b61060a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806113026027913960400191505060405180910390fd5b60008061061a8e8e8e8e8e610316565b9150915061062c8282858c8a89610c06565b97509750505050505050965096945050505050565b600080600080610652888888610824565b915091506000610663898989610b1b565b905060008073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c457600080fd5b505afa1580156106d8573d6000803e3d6000fd5b505050506040513d60208110156106ee57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161415905060008161071857600061078b565b8273ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561075e57600080fd5b505afa158015610772573d6000803e3d6000fd5b505050506040513d602081101561078857600080fd5b50515b905060008373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d557600080fd5b505afa1580156107e9573d6000803e3d6000fd5b505050506040513d60208110156107ff57600080fd5b505190506108118686838c8787610c06565b9750975050505050505094509492505050565b60008060006108338585610cdf565b509050600080610844888888610b1b565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561088957600080fd5b505afa15801561089d573d6000803e3d6000fd5b505050506040513d60608110156108b357600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146108fa5780826108fd565b81815b90999098509650505050505050565b6000808561091b858786610e32565b1091506000610930858563ffffffff610f0716565b9050600061098261097d61094c846103e863ffffffff610f0716565b866109575789610959565b8a5b6109786103e58961096a578d61096c565b8c5b9063ffffffff610f0716565b610e32565b610f93565b905060006103e5856109a5576109a0876103e863ffffffff610f0716565b6109b7565b6109b7886103e863ffffffff610f0716565b816109be57fe5b049050808210156109d9575060009350839250610227915050565b6109e9828263ffffffff6110e816565b935050505094509492505050565b6000808411610a51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611329602b913960400191505060405180910390fd5b600083118015610a615750600082115b610ab6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806112da6028913960400191505060405180910390fd5b6000610aca856103e563ffffffff610f0716565b90506000610ade828563ffffffff610f0716565b90506000610b0483610af8886103e863ffffffff610f0716565b9063ffffffff61115a16565b9050808281610b0f57fe5b04979650505050505050565b6000806000610b2a8585610cdf565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080838015610c165750600083115b15610c9e576000610c3061097d8a8a63ffffffff610f0716565b90506000610c3d85610f93565b905080821115610c9b57876000610c5a848463ffffffff6110e816565b90506000610c7384610af887600563ffffffff610f0716565b90506000610c82848484610e32565b9050610c948c8263ffffffff61115a16565b9b50505050505b50505b85610caf898763ffffffff610f0716565b81610cb657fe5b0486610cc8898863ffffffff610f0716565b81610ccf57fe5b0491509150965096945050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610d67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806112b56025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610da1578284610da4565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610e2b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b6000806000610e4186866111cc565b9150915060008480610e4f57fe5b868809905082811115610e63576001820391505b918290039181610e8157848381610e7657fe5b049350505050610f00565b848210610eef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610efa838387611217565b93505050505b9392505050565b6000811580610f2257505080820282828281610f1f57fe5b04145b610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b600081610fa2575060006110e3565b8160017001000000000000000000000000000000008210610fc85760809190911c9060401b5b680100000000000000008210610fe35760409190911c9060201b5b6401000000008210610ffa5760209190911c9060101b5b62010000821061100f5760109190911c9060081b5b61010082106110235760089190911c9060041b5b601082106110365760049190911c9060021b5b600882106110425760011b5b600181858161104d57fe5b048201901c9050600181858161105f57fe5b048201901c9050600181858161107157fe5b048201901c9050600181858161108357fe5b048201901c9050600181858161109557fe5b048201901c905060018185816110a757fe5b048201901c905060018185816110b957fe5b048201901c905060008185816110cb57fe5b0490508082106110db57806110dd565b815b93505050505b919050565b80820382811115610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b80820182811015610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8486099050838502925082810391508281101561120f576001820391505b509250929050565b6000818103821680838161122757fe5b04925080858161123357fe5b04945080816000038161124257fe5b6002858103808702820302808702820302808702820302808702820302808702820302808702820302958602900390940293046001019390930293909301029291505056fe556e697377617056324172626974726167654c6962726172793a205a45524f5f504149525f5245534552564553556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459436f6d707574654c697175696469747956616c75653a204c49515549444954595f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a26469706673582212209704f63f53a97327a248f61ef82647bb0bef4ab3a3745e25fbe0d328340bb60664736f6c63430006060033","sourceMap":"83:2433:11:-:0;;;199:72;5:9:-1;2:2;;;27:1;24;17:12;2:2;199:72:11;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;199:72:11;246:18;;;;-1:-1:-1;;;;;;246:18:11;;;-1:-1:-1;;;;;83:2433:11;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100675760003560e01c806380caa3531161005057806380caa3531461011d578063c45a01551461017e578063d9b7a6e7146101af57610067565b80633558e94c1461006c57806369a2fcbd146100ce575b600080fd5b6100b56004803603608081101561008257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604081013590606001356101f2565b6040805192835260208301919091528051918290030190f35b6100b5600480360360a08110156100e457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060800135610230565b61016c600480360360a081101561013357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060800135610270565b60408051918252519081900360200190f35b6101866102b7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b5600480360360608110156101c557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356102db565b6000806102227f000000000000000000000000000000000000000000000000000000000000000087878787610316565b915091505b94509492505050565b6000806102617f000000000000000000000000000000000000000000000000000000000000000088888888886103f5565b915091505b9550959350505050565b6000805a90506102a47f000000000000000000000000000000000000000000000000000000000000000088888888886103f5565b505060005a909103979650505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008061030a7f0000000000000000000000000000000000000000000000000000000000000000868686610641565b91509150935093915050565b600080610324878787610824565b909250905081158015906103385750600081115b61038d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180611288602d913960400191505060405180910390fd5b60008061039c8686868661090c565b9150915080600014156103b157506102669050565b81156103d25760006103c48286866109f7565b9482019490930392506103e9565b60006103df8285876109f7565b9094039350918201915b50509550959350505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b505afa15801561046b573d6000803e3d6000fd5b505050506040513d602081101561048157600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161415905060006104aa8a8a8a610b1b565b90506000826104ba57600061052d565b8173ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050057600080fd5b505afa158015610514573d6000803e3d6000fd5b505050506040513d602081101561052a57600080fd5b50515b905060008273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561057757600080fd5b505afa15801561058b573d6000803e3d6000fd5b505050506040513d60208110156105a157600080fd5b505190508681108015906105b55750600087115b61060a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806113026027913960400191505060405180910390fd5b60008061061a8e8e8e8e8e610316565b9150915061062c8282858c8a89610c06565b97509750505050505050965096945050505050565b600080600080610652888888610824565b915091506000610663898989610b1b565b905060008073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c457600080fd5b505afa1580156106d8573d6000803e3d6000fd5b505050506040513d60208110156106ee57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161415905060008161071857600061078b565b8273ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561075e57600080fd5b505afa158015610772573d6000803e3d6000fd5b505050506040513d602081101561078857600080fd5b50515b905060008373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d557600080fd5b505afa1580156107e9573d6000803e3d6000fd5b505050506040513d60208110156107ff57600080fd5b505190506108118686838c8787610c06565b9750975050505050505094509492505050565b60008060006108338585610cdf565b509050600080610844888888610b1b565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561088957600080fd5b505afa15801561089d573d6000803e3d6000fd5b505050506040513d60608110156108b357600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146108fa5780826108fd565b81815b90999098509650505050505050565b6000808561091b858786610e32565b1091506000610930858563ffffffff610f0716565b9050600061098261097d61094c846103e863ffffffff610f0716565b866109575789610959565b8a5b6109786103e58961096a578d61096c565b8c5b9063ffffffff610f0716565b610e32565b610f93565b905060006103e5856109a5576109a0876103e863ffffffff610f0716565b6109b7565b6109b7886103e863ffffffff610f0716565b816109be57fe5b049050808210156109d9575060009350839250610227915050565b6109e9828263ffffffff6110e816565b935050505094509492505050565b6000808411610a51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611329602b913960400191505060405180910390fd5b600083118015610a615750600082115b610ab6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806112da6028913960400191505060405180910390fd5b6000610aca856103e563ffffffff610f0716565b90506000610ade828563ffffffff610f0716565b90506000610b0483610af8886103e863ffffffff610f0716565b9063ffffffff61115a16565b9050808281610b0f57fe5b04979650505050505050565b6000806000610b2a8585610cdf565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080838015610c165750600083115b15610c9e576000610c3061097d8a8a63ffffffff610f0716565b90506000610c3d85610f93565b905080821115610c9b57876000610c5a848463ffffffff6110e816565b90506000610c7384610af887600563ffffffff610f0716565b90506000610c82848484610e32565b9050610c948c8263ffffffff61115a16565b9b50505050505b50505b85610caf898763ffffffff610f0716565b81610cb657fe5b0486610cc8898863ffffffff610f0716565b81610ccf57fe5b0491509150965096945050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610d67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806112b56025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610da1578284610da4565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610e2b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b6000806000610e4186866111cc565b9150915060008480610e4f57fe5b868809905082811115610e63576001820391505b918290039181610e8157848381610e7657fe5b049350505050610f00565b848210610eef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610efa838387611217565b93505050505b9392505050565b6000811580610f2257505080820282828281610f1f57fe5b04145b610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b600081610fa2575060006110e3565b8160017001000000000000000000000000000000008210610fc85760809190911c9060401b5b680100000000000000008210610fe35760409190911c9060201b5b6401000000008210610ffa5760209190911c9060101b5b62010000821061100f5760109190911c9060081b5b61010082106110235760089190911c9060041b5b601082106110365760049190911c9060021b5b600882106110425760011b5b600181858161104d57fe5b048201901c9050600181858161105f57fe5b048201901c9050600181858161107157fe5b048201901c9050600181858161108357fe5b048201901c9050600181858161109557fe5b048201901c905060018185816110a757fe5b048201901c905060018185816110b957fe5b048201901c905060008185816110cb57fe5b0490508082106110db57806110dd565b815b93505050505b919050565b80820382811115610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b80820182811015610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8486099050838502925082810391508281101561120f576001820391505b509250929050565b6000818103821680838161122757fe5b04925080858161123357fe5b04945080816000038161124257fe5b6002858103808702820302808702820302808702820302808702820302808702820302808702820302958602900390940293046001019390930293909301029291505056fe556e697377617056324172626974726167654c6962726172793a205a45524f5f504149525f5245534552564553556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459436f6d707574654c697175696469747956616c75653a204c49515549444954595f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a26469706673582212209704f63f53a97327a248f61ef82647bb0bef4ab3a3745e25fbe0d328340bb60664736f6c63430006060033","sourceMap":"83:2433:11:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;83:2433:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;344:422:11;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;344:422:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1291:540;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;1291:540:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1904:610::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;1904:610:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;160:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;831:374;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;831:374:11;;;;;;;;;;;;;;;;;;:::i;344:422::-;522:16;540;575:184;644:7;665:6;685;705:15;734;575:55;:184::i;:::-;568:191;;;;344:422;;;;;;;;:::o;1291:540::-;1524:20;1554;1598:226;1680:7;1701:6;1721;1741:15;1770;1799;1598:68;:226::i;:::-;1591:233;;;;1291:540;;;;;;;;;:::o;1904:610::-;2149:7;2173:14;2190:9;2173:26;;2209:226;2291:7;2312:6;2332;2352:15;2381;2410;2209:68;:226::i;:::-;;;2445:13;2461:9;2487:20;;;;1904:610;-1:-1:-1;;;;;;;1904:610:11:o;160:32::-;;;:::o;831:374::-;977:20;1007;1051:147;1112:7;1133:6;1153;1173:15;1051:47;:147::i;:::-;1044:154;;;;831:374;;;;;;:::o;1680:1161:25:-;1883:16;1901;1998:53;2027:7;2036:6;2044;1998:28;:53::i;:::-;1975:76;;-1:-1:-1;1975:76:25;-1:-1:-1;2070:12:25;;;;;:28;;;2097:1;2086:8;:12;2070:28;2062:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2226:9;2237:16;2257:82;2286:15;2303;2320:8;2330;2257:28;:82::i;:::-;2225:114;;;;2354:8;2366:1;2354:13;2350:71;;;-1:-1:-1;2383:27:25;;-1:-1:-1;2383:27:25;2350:71;2483:4;2479:356;;;2503:14;2520:59;2550:8;2560;2570;2520:29;:59::i;:::-;2593:20;;;;2627:21;;;;-1:-1:-1;2479:356:25;;;2679:14;2696:59;2726:8;2736;2746;2696:29;:59::i;:::-;2803:21;;;;-1:-1:-1;2769:20:25;;;;2479:356;1680:1161;;;;;;;;;;:::o;4997:984::-;5255:20;5285;5322:10;5381:1;5335:48;;5353:7;5335:32;;;:34;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5335:34:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5335:34:25;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5335:34:25;:48;;;;;-1:-1:-1;5393:19:25;5430:49;5455:7;5464:6;5472;5430:24;:49::i;:::-;5393:87;;5490:10;5503:5;:24;;5526:1;5503:24;;;5511:4;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5511:12:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5511:12:25;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5511:12:25;5503:24;5490:37;;5537:16;5556:4;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5556:18:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5556:18:25;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5556:18:25;;-1:-1:-1;5642:30:25;;;;;;:53;;;5694:1;5676:15;:19;5642:53;5634:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5751:14;5767;5785:84;5811:7;5820:6;5828;5836:15;5853;5785:25;:84::i;:::-;5750:119;;;;5887:87;5909:9;5920;5931:11;5944:15;5961:5;5968;5887:21;:87::i;:::-;5880:94;;;;;;;;;;4997:984;;;;;;;;;:::o;4088:683::-;4250:20;4272;4305:17;4324;4345:53;4374:7;4383:6;4391;4345:28;:53::i;:::-;4304:94;;;;4408:19;4445:49;4470:7;4479:6;4487;4445:24;:49::i;:::-;4408:87;;4505:10;4564:1;4518:48;;4536:7;4518:32;;;:34;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4518:34:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4518:34:25;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4518:34:25;:48;;;;;-1:-1:-1;4576:10:25;4518:48;4589:24;;4612:1;4589:24;;;4597:4;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4597:12:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4597:12:25;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4597:12:25;4589:24;4576:37;;4623:16;4642:4;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4642:18:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4642:18:25;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4642:18:25;;-1:-1:-1;4677:87:25;4699:9;4710;4642:18;4734:15;4751:5;4758;4677:21;:87::i;:::-;4670:94;;;;;;;;;;4088:683;;;;;;;:::o;1241:387:24:-;1334:13;1349;1375:14;1394:26;1405:6;1413;1394:10;:26::i;:::-;1374:46;;;1431:13;1446;1479:32;1487:7;1496:6;1504;1479:7;:32::i;:::-;1464:60;;;:62;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1464:62:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1464:62:24;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1464:62:24;;;;;;;1430:96;;;;;-1:-1:-1;1430:96:24;;-1:-1:-1;1559:16:24;;;;;;;;:62;;1602:8;1612;1559:62;;;1579:8;1589;1559:62;1536:85;;;;-1:-1:-1;1241:387:24;-1:-1:-1;;;;;;;1241:387:24:o;640:903:25:-;825:9;836:16;926:15;871:52;887:8;897:15;914:8;871:15;:52::i;:::-;:70;;-1:-1:-1;952:17:25;972:22;:8;985;972:22;:12;:22;:::i;:::-;952:42;-1:-1:-1;1005:16:25;1024:232;1053:193;1086:19;952:42;1100:4;1086:19;:13;:19;:::i;:::-;1123:4;:40;;1148:15;1123:40;;;1130:15;1123:40;1181:51;1228:3;1182:4;:40;;1207:15;1182:40;;;1189:15;1182:40;1181:46;:51;:46;:51;:::i;:::-;1053:15;:193::i;:::-;1024:15;:232::i;:::-;1005:251;;1266:17;1337:3;1287:4;:46;;1315:18;:8;1328:4;1315:18;:12;:18;:::i;:::-;1287:46;;;1294:18;:8;1307:4;1294:18;:12;:18;:::i;:::-;1286:54;;;;;;1266:74;;1366:9;1355:8;:20;1351:43;;;-1:-1:-1;1385:5:25;;-1:-1:-1;1385:5:25;;-1:-1:-1;1377:17:25;;-1:-1:-1;;1377:17:25;1351:43;1513:23;:8;1526:9;1513:23;:12;:23;:::i;:::-;1502:34;;640:903;;;;;;;;;;:::o;2174:510:24:-;2267:14;2312:1;2301:8;:12;2293:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2391:1;2379:9;:13;:31;;;;;2409:1;2396:10;:14;2379:31;2371:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2465:20;2488:17;:8;2501:3;2488:17;:12;:17;:::i;:::-;2465:40;-1:-1:-1;2515:14:24;2532:31;2465:40;2552:10;2532:31;:19;:31;:::i;:::-;2515:48;-1:-1:-1;2573:16:24;2592:40;2616:15;2592:19;:9;2606:4;2592:19;:13;:19;:::i;:::-;:23;:40;:23;:40;:::i;:::-;2573:59;;2666:11;2654:9;:23;;;;;;;2174:510;-1:-1:-1;;;;;;;2174:510:24:o;715:470::-;804:12;829:14;845;863:26;874:6;882;863:10;:26::i;:::-;1023:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;1023:32:24;;;;;1013:43;;;;;;929:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;929:246:24;;;;;;;919:257;;;;;;;;;715:470;-1:-1:-1;;;;;715:470:24:o;2916:910:25:-;3132:20;3154;3190:5;:18;;;;;3207:1;3199:5;:9;3190:18;3186:525;;;3224:10;3237:41;3253:24;:9;3267;3253:24;:13;:24;:::i;3237:41::-;3224:54;;3292:14;3309:22;3325:5;3309:15;:22::i;:::-;3292:39;;3357:9;3349:5;:17;3345:356;;;3404:11;3386:15;3451:20;:5;3461:9;3451:20;:9;:20;:::i;:::-;3433:38;-1:-1:-1;3489:16:25;3508:27;3525:9;3508:12;:5;3518:1;3508:12;:9;:12;:::i;:27::-;3489:46;;3553:17;3573:52;3589:10;3601;3613:11;3573:15;:52::i;:::-;3553:72;-1:-1:-1;3657:29:25;:11;3553:72;3657:29;:15;:29;:::i;:::-;3643:43;;3345:356;;;;;3186:525;;;3761:11;3728:30;:9;3742:15;3728:30;:13;:30;:::i;:::-;:44;;;;;;3807:11;3774:30;:9;3788:15;3774:30;:13;:30;:::i;:::-;:44;;;;;;3720:99;;;;2916:910;;;;;;;;;:::o;281:345:24:-;356:14;372;416:6;406:16;;:6;:16;;;;398:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;502:6;493:15;;:6;:15;;;:53;;531:6;539;493:53;;;512:6;520;493:53;474:72;;-1:-1:-1;474:72:24;-1:-1:-1;564:20:24;;;556:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;281:345;;;;;:::o;897:373:3:-;999:7;1019:9;1030;1043:13;1051:1;1054;1043:7;:13::i;:::-;1018:38;;;;1067:10;1093:1;1080:15;;;;;1090:1;1087;1080:15;1067:28;;1114:1;1109:2;:6;1105:18;;;1122:1;1117:6;;;;1105:18;1133:7;;;;;1155:6;1151:24;;1174:1;1170;:5;;;;;;1163:12;;;;;;;1151:24;1198:1;1194;:5;1186:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:16;1255:1;1258;1261;1247:7;:16::i;:::-;1240:23;;;;;897:373;;;;;;:::o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;419:140;;;;:::o;382:1197:0:-;430:7;453:6;449:20;;-1:-1:-1;468:1:0;461:8;;449:20;644:1;667;688:35;682:41;;678:104;;746:3;739:10;;;;;769:2;763:8;678:104;801:19;795:2;:25;791:87;;843:2;836:9;;;;;865:2;859:8;791:87;897:11;891:2;:17;887:79;;931:2;924:9;;;;;953:2;947:8;887:79;985:7;979:2;:13;975:74;;1015:2;1008:9;;;;;1037:1;1031:7;975:74;1068:5;1062:2;:11;1058:71;;1096:1;1089:8;;;;;1117:1;1111:7;1058:71;1148:4;1142:2;:10;1138:70;;1175:1;1168:8;;;;;1196:1;1190:7;1138:70;1227:3;1221:2;:9;1217:47;;1252:1;1246:7;1217:47;1292:1;1286;1282;:5;;;;;;1278:1;:9;1277:16;;1273:20;;1322:1;1316;1312;:5;;;;;;1308:1;:9;1307:16;;1303:20;;1352:1;1346;1342;:5;;;;;;1338:1;:9;1337:16;;1333:20;;1382:1;1376;1372;:5;;;;;;1368:1;:9;1367:16;;1363:20;;1412:1;1406;1402;:5;;;;;;1398:1;:9;1397:16;;1393:20;;1442:1;1436;1432;:5;;;;;;1428:1;:9;1427:16;;1423:20;;1472:1;1466;1462;:5;;;;;;1458:1;:9;1457:16;;1453:20;;1520:10;1537:1;1533;:5;;;;;;1520:18;;1560:2;1556:1;:6;:15;;1569:2;1556:15;;;1565:1;1556:15;1548:24;;;;;382:1197;;;;:::o;286:127:23:-;369:5;;;364:16;;;;356:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;237:5;;;232:16;;;;224:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:206:3;278:9;;;344:2;333:1;330;323:25;310:38;;366:1;362;:5;358:9;;386:1;381:2;:6;377:10;;406:1;401:2;:6;397:18;;;414:1;409:6;;;;397:18;216:206;;;;;;:::o;428:463::-;530:7;568:2;;;564:6;;;569:1;564:6;580:9;;;;;;;604:4;599:9;;;;;;;;;638:4;630;629:5;;628:14;;;;;685:1;:9;;;713:5;;;709:9;;704:14;737:5;;;733:9;;728:14;761:5;;;757:9;;752:14;785:5;;;781:9;;776:14;809:5;;;805:9;;800:14;833:5;;;829:9;;824:14;857:5;;;853:9;;848:14;;;628;;645:1;628:18;623:24;;;;618:29;;;;879:5;;428:463;-1:-1:-1;;428:463:3:o","linkReferences":{},"immutableReferences":{"5483":[{"start":506,"length":32},{"start":568,"length":32},{"start":635,"length":32},{"start":697,"length":32},{"start":739,"length":32}]}},"methodIdentifiers":{"factory()":"c45a0155","getGasCostOfGetLiquidityValueAfterArbitrageToPrice(address,address,uint256,uint256,uint256)":"80caa353","getLiquidityValue(address,address,uint256)":"d9b7a6e7","getLiquidityValueAfterArbitrageToPrice(address,address,uint256,uint256,uint256)":"69a2fcbd","getReservesAfterArbitrage(address,address,uint256,uint256)":"3558e94c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidityAmount\",\"type\":\"uint256\"}],\"name\":\"getGasCostOfGetLiquidityValueAfterArbitrageToPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidityAmount\",\"type\":\"uint256\"}],\"name\":\"getLiquidityValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenBAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidityAmount\",\"type\":\"uint256\"}],\"name\":\"getLiquidityValueAfterArbitrageToPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenBAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenB\",\"type\":\"uint256\"}],\"name\":\"getReservesAfterArbitrage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/examples/ExampleComputeLiquidityValue.sol\":\"ExampleComputeLiquidityValue\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]},\"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9\",\"urls\":[\"bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407\",\"dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891\",\"urls\":[\"bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389\",\"dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"contracts/lib/v2-periphery/contracts/examples/ExampleComputeLiquidityValue.sol\":{\"keccak256\":\"0xcb595901f38f931cc08ff6173028624e20e21c9812d59cb8b9067ca99186f351\",\"urls\":[\"bzz-raw://47a74e9587e38a1e606e56b0b34076094583a831e68afcbf82247593d4b87102\",\"dweb:/ipfs/QmVvzQFp6zKs8zc6TBsXZCAasP3hpUz4Bx5g3kmUDS5862\"]},\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol\":{\"keccak256\":\"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9\",\"urls\":[\"bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c\",\"dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2LiquidityMathLibrary.sol\":{\"keccak256\":\"0x61664f03d4f36cfd99bd4b3b874c7a090937a8921ec21c883b155cf22624cc1b\",\"urls\":[\"bzz-raw://571d4797fc11b11288de656361b2a5c01c7df3fba4be2309de83e23a8374b221\",\"dweb:/ipfs/QmPCSC2eX6URTMQ4zoFJPL4uj1d2tKhNMYQWrTVBcqm1UL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"factory_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"truePriceTokenA","type":"uint256"},{"internalType":"uint256","name":"truePriceTokenB","type":"uint256"},{"internalType":"uint256","name":"liquidityAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getGasCostOfGetLiquidityValueAfterArbitrageToPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidityAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getLiquidityValue","outputs":[{"internalType":"uint256","name":"tokenAAmount","type":"uint256"},{"internalType":"uint256","name":"tokenBAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"truePriceTokenA","type":"uint256"},{"internalType":"uint256","name":"truePriceTokenB","type":"uint256"},{"internalType":"uint256","name":"liquidityAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getLiquidityValueAfterArbitrageToPrice","outputs":[{"internalType":"uint256","name":"tokenAAmount","type":"uint256"},{"internalType":"uint256","name":"tokenBAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"truePriceTokenA","type":"uint256"},{"internalType":"uint256","name":"truePriceTokenB","type":"uint256"}],"stateMutability":"view","type":"function","name":"getReservesAfterArbitrage","outputs":[{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/examples/ExampleComputeLiquidityValue.sol":"ExampleComputeLiquidityValue"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol":{"keccak256":"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177","urls":["bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069","dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol":{"keccak256":"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9","urls":["bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407","dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol":{"keccak256":"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891","urls":["bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389","dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"contracts/lib/v2-periphery/contracts/examples/ExampleComputeLiquidityValue.sol":{"keccak256":"0xcb595901f38f931cc08ff6173028624e20e21c9812d59cb8b9067ca99186f351","urls":["bzz-raw://47a74e9587e38a1e606e56b0b34076094583a831e68afcbf82247593d4b87102","dweb:/ipfs/QmVvzQFp6zKs8zc6TBsXZCAasP3hpUz4Bx5g3kmUDS5862"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol":{"keccak256":"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9","urls":["bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c","dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2LiquidityMathLibrary.sol":{"keccak256":"0x61664f03d4f36cfd99bd4b3b874c7a090937a8921ec21c883b155cf22624cc1b","urls":["bzz-raw://571d4797fc11b11288de656361b2a5c01c7df3fba4be2309de83e23a8374b221","dweb:/ipfs/QmPCSC2eX6URTMQ4zoFJPL4uj1d2tKhNMYQWrTVBcqm1UL"],"license":null}},"version":1},"id":11} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleFlashSwap.sol/ExampleFlashSwap.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleFlashSwap.sol/ExampleFlashSwap.json new file mode 100644 index 0000000000..e0e2de21b6 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleFlashSwap.sol/ExampleFlashSwap.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_factory","type":"address","internalType":"address"},{"name":"_factoryV1","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"uniswapV2Call","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b506040516116283803806116288339818101604052606081101561003357600080fd5b5080516020808301516040938401516001600160601b0319606083811b821660805285901b1660a05284516315ab88c960e31b815294519394919390926001600160a01b0384169263ad5c46489260048083019392829003018186803b15801561009c57600080fd5b505afa1580156100b0573d6000803e3d6000fd5b505050506040513d60208110156100c657600080fd5b50516001600160601b031960609190911b1660c05250505060805160601c60a05160601c60c05160601c6114e8610140600039806102e15280610316528061037552806103de528061044a528061078b52806108545280610a215250806101f652806107445280610b345250806104e552506114e86000f3fe6080604052600436106100225760003560e01c806310d1e85c1461002e57610029565b3661002957005b600080fd5b34801561003a57600080fd5b506100d46004803603608081101561005157600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561009557600080fd5b8201836020820111156100a757600080fd5b803590602001918460018302840111640100000000831117156100c957600080fd5b5090925090506100d6565b005b604080516002808252606080830184529260208301908036833701905050905060008060003373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561014157600080fd5b505afa158015610155573d6000803e3d6000fd5b505050506040513d602081101561016b57600080fd5b5051604080517fd21220a70000000000000000000000000000000000000000000000000000000081529051919250600091339163d21220a7916004808301926020929190829003018186803b1580156101c357600080fd5b505afa1580156101d7573d6000803e3d6000fd5b505050506040513d60208110156101ed57600080fd5b5051905061021c7f00000000000000000000000000000000000000000000000000000000000000008383610cdc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461025057fe5b88158061025b575087155b61026157fe5b881561026d578061026f565b815b8560008151811061027c57fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015288156102ad57816102af565b805b856001815181106102bc57fe5b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101527f00000000000000000000000000000000000000000000000000000000000000008116908316146103105788610312565b875b93507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461036d578761036f565b885b925050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16836000815181106103b757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16148061044057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168360018151811061042057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16145b61044657fe5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168460008151811061048c57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16146104c957836000815181106104bc57fe5b60200260200101516104df565b836001815181106104d657fe5b60200260200101515b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166306f2bf62836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561058057600080fd5b505afa158015610594573d6000803e3d6000fd5b505050506040513d60208110156105aa57600080fd5b5051905083156109c3576000878760208110156105c657600080fd5b50604080517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018990529151923593509085169163095ea7b3916044808201926020929091908290030181600087803b15801561064457600080fd5b505af1158015610658573d6000803e3d6000fd5b505050506040513d602081101561066e57600080fd5b5050604080517f95e3c50b00000000000000000000000000000000000000000000000000000000815260048101879052602481018390527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6044820152905160009173ffffffffffffffffffffffffffffffffffffffff8516916395e3c50b9160648082019260209290919082900301818787803b15801561070f57600080fd5b505af1158015610723573d6000803e3d6000fd5b505050506040513d602081101561073957600080fd5b50519050600061076a7f0000000000000000000000000000000000000000000000000000000000000000888a610dc7565b60008151811061077657fe5b6020026020010151905080821161078957fe5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b5050604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101869052905173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016945063a9059cbb9350604480830193506020928290030181600087803b15801561089d57600080fd5b505af11580156108b1573d6000803e3d6000fd5b505050506040513d60208110156108c757600080fd5b50516108cf57fe5b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff8f1690838503906040518082805190602001908083835b6020831061094857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161090b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146109aa576040519150601f19603f3d011682016040523d82523d6000602084013e6109af565b606091505b50509050806109ba57fe5b50505050610cd0565b6000878760208110156109d557600080fd5b50604080517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810187905290519135925073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691632e1a7d4d9160248082019260009290919082900301818387803b158015610a6957600080fd5b505af1158015610a7d573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663f39b5b9b86847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518463ffffffff1660e01b815260040180838152602001828152602001925050506020604051808303818588803b158015610afe57600080fd5b505af1158015610b12573d6000803e3d6000fd5b50505050506040513d6020811015610b2957600080fd5b505190506000610b5a7f0000000000000000000000000000000000000000000000000000000000000000878a610dc7565b600081518110610b6657fe5b60200260200101519050808211610b7957fe5b604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101839052905173ffffffffffffffffffffffffffffffffffffffff87169163a9059cbb9160448083019260209291908290030181600087803b158015610bee57600080fd5b505af1158015610c02573d6000803e3d6000fd5b505050506040513d6020811015610c1857600080fd5b5051610c2057fe5b604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8f81166004830152838503602483015291519187169163a9059cbb916044808201926020929091908290030181600087803b158015610c9a57600080fd5b505af1158015610cae573d6000803e3d6000fd5b505050506040513d6020811015610cc457600080fd5b5051610ccc57fe5b5050505b50505050505050505050565b6000806000610ceb8585610f6a565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6060600282511015610e3a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015610e5257600080fd5b50604051908082528060200260200182016040528015610e7c578160200160208202803683370190505b5090508281600183510381518110610e9057fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b8015610f6257600080610efd87866001860381518110610edc57fe5b6020026020010151878681518110610ef057fe5b60200260200101516110bd565b91509150610f1f848481518110610f1057fe5b602002602001015183836111a5565b846001850381518110610f2e57fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01610ec0565b509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ff2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806114666025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061102c57828461102f565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff82166110b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b60008060006110cc8585610f6a565b5090506000806110dd888888610cdc565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561112257600080fd5b505afa158015611136573d6000803e3d6000fd5b505050506040513d606081101561114c57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff87811690841614611193578082611196565b81815b90999098509650505050505050565b60008084116111ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061143a602c913960400191505060405180910390fd5b60008311801561120f5750600082115b611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061148b6028913960400191505060405180910390fd5b60006112886103e861127c868863ffffffff6112c916565b9063ffffffff6112c916565b905060006112a26103e561127c868963ffffffff61135516565b90506112bf60018284816112b257fe5b049063ffffffff6113c716565b9695505050505050565b60008115806112e4575050808202828282816112e157fe5b04145b61134f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b8082038281111561134f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b8082018281101561134f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459a264697066735822122033c83cc4632c1dcddc9c2543bd3c0ff210305b975909f42bca43c40521572f4d64736f6c63430006060033","sourceMap":"355:3381:12:-:0;;;508:216;5:9:-1;2:2;;;27:1;24;17:12;2:2;508:216:12;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;508:216:12;;;;;;;;;;;;-1:-1:-1;;;;;;508:216:12;591:41;;;;;;;642:18;;;;;;683:33;;-1:-1:-1;;;683:33:12;;;;508:216;;;;;;-1:-1:-1;;;;;683:31:12;;;;;:33;;;;;508:216;683:33;;;;;:31;:33;;;2:2:-1;;;;27:1;24;17:12;2:2;683:33:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;683:33:12;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;683:33:12;-1:-1:-1;;;;;;670:47:12;;;;;;;;-1:-1:-1;;;355:3381:12;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100225760003560e01c806310d1e85c1461002e57610029565b3661002957005b600080fd5b34801561003a57600080fd5b506100d46004803603608081101561005157600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561009557600080fd5b8201836020820111156100a757600080fd5b803590602001918460018302840111640100000000831117156100c957600080fd5b5090925090506100d6565b005b604080516002808252606080830184529260208301908036833701905050905060008060003373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561014157600080fd5b505afa158015610155573d6000803e3d6000fd5b505050506040513d602081101561016b57600080fd5b5051604080517fd21220a70000000000000000000000000000000000000000000000000000000081529051919250600091339163d21220a7916004808301926020929190829003018186803b1580156101c357600080fd5b505afa1580156101d7573d6000803e3d6000fd5b505050506040513d60208110156101ed57600080fd5b5051905061021c7f00000000000000000000000000000000000000000000000000000000000000008383610cdc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461025057fe5b88158061025b575087155b61026157fe5b881561026d578061026f565b815b8560008151811061027c57fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015288156102ad57816102af565b805b856001815181106102bc57fe5b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101527f00000000000000000000000000000000000000000000000000000000000000008116908316146103105788610312565b875b93507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461036d578761036f565b885b925050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16836000815181106103b757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16148061044057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168360018151811061042057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16145b61044657fe5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168460008151811061048c57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16146104c957836000815181106104bc57fe5b60200260200101516104df565b836001815181106104d657fe5b60200260200101515b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166306f2bf62836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561058057600080fd5b505afa158015610594573d6000803e3d6000fd5b505050506040513d60208110156105aa57600080fd5b5051905083156109c3576000878760208110156105c657600080fd5b50604080517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018990529151923593509085169163095ea7b3916044808201926020929091908290030181600087803b15801561064457600080fd5b505af1158015610658573d6000803e3d6000fd5b505050506040513d602081101561066e57600080fd5b5050604080517f95e3c50b00000000000000000000000000000000000000000000000000000000815260048101879052602481018390527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6044820152905160009173ffffffffffffffffffffffffffffffffffffffff8516916395e3c50b9160648082019260209290919082900301818787803b15801561070f57600080fd5b505af1158015610723573d6000803e3d6000fd5b505050506040513d602081101561073957600080fd5b50519050600061076a7f0000000000000000000000000000000000000000000000000000000000000000888a610dc7565b60008151811061077657fe5b6020026020010151905080821161078957fe5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b5050604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101869052905173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016945063a9059cbb9350604480830193506020928290030181600087803b15801561089d57600080fd5b505af11580156108b1573d6000803e3d6000fd5b505050506040513d60208110156108c757600080fd5b50516108cf57fe5b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff8f1690838503906040518082805190602001908083835b6020831061094857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161090b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146109aa576040519150601f19603f3d011682016040523d82523d6000602084013e6109af565b606091505b50509050806109ba57fe5b50505050610cd0565b6000878760208110156109d557600080fd5b50604080517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810187905290519135925073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691632e1a7d4d9160248082019260009290919082900301818387803b158015610a6957600080fd5b505af1158015610a7d573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663f39b5b9b86847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518463ffffffff1660e01b815260040180838152602001828152602001925050506020604051808303818588803b158015610afe57600080fd5b505af1158015610b12573d6000803e3d6000fd5b50505050506040513d6020811015610b2957600080fd5b505190506000610b5a7f0000000000000000000000000000000000000000000000000000000000000000878a610dc7565b600081518110610b6657fe5b60200260200101519050808211610b7957fe5b604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101839052905173ffffffffffffffffffffffffffffffffffffffff87169163a9059cbb9160448083019260209291908290030181600087803b158015610bee57600080fd5b505af1158015610c02573d6000803e3d6000fd5b505050506040513d6020811015610c1857600080fd5b5051610c2057fe5b604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8f81166004830152838503602483015291519187169163a9059cbb916044808201926020929091908290030181600087803b158015610c9a57600080fd5b505af1158015610cae573d6000803e3d6000fd5b505050506040513d6020811015610cc457600080fd5b5051610ccc57fe5b5050505b50505050505050505050565b6000806000610ceb8585610f6a565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6060600282511015610e3a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015610e5257600080fd5b50604051908082528060200260200182016040528015610e7c578160200160208202803683370190505b5090508281600183510381518110610e9057fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b8015610f6257600080610efd87866001860381518110610edc57fe5b6020026020010151878681518110610ef057fe5b60200260200101516110bd565b91509150610f1f848481518110610f1057fe5b602002602001015183836111a5565b846001850381518110610f2e57fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01610ec0565b509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ff2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806114666025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061102c57828461102f565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff82166110b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b60008060006110cc8585610f6a565b5090506000806110dd888888610cdc565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561112257600080fd5b505afa158015611136573d6000803e3d6000fd5b505050506040513d606081101561114c57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff87811690841614611193578082611196565b81815b90999098509650505050505050565b60008084116111ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061143a602c913960400191505060405180910390fd5b60008311801561120f5750600082115b611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061148b6028913960400191505060405180910390fd5b60006112886103e861127c868863ffffffff6112c916565b9063ffffffff6112c916565b905060006112a26103e561127c868963ffffffff61135516565b90506112bf60018284816112b257fe5b049063ffffffff6113c716565b9695505050505050565b60008115806112e4575050808202828282816112e157fe5b04145b61134f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b8082038281111561134f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b8082018281101561134f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459a264697066735822122033c83cc4632c1dcddc9c2543bd3c0ff210305b975909f42bca43c40521572f4d64736f6c63430006060033","sourceMap":"355:3381:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1081:2653:12;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1081:2653:12;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;1081:2653:12;;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;1081:2653:12;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1081:2653:12;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;1081:2653:12;;-1:-1:-1;1081:2653:12;-1:-1:-1;1081:2653:12;:::i;:::-;;;1221:16;;;1235:1;1221:16;;;1197:21;1221:16;;;;;1197:21;1221:16;;;;;109:14:-1;1221:16:12;88:42:-1;144:17;;-1:-1;1221:16:12;1197:40;;1247:16;1273:14;1361;1393:10;1378:33;;;:35;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1378:35:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1378:35:12;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1378:35:12;1440;;;;;;;;1378;;-1:-1:-1;1423:14:12;;1455:10;;1440:33;;:35;;;;;1378;;1440;;;;;;;1455:10;1440:35;;;2:2:-1;;;;27:1;24;17:12;2:2;1440:35:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1440:35:12;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1440:35:12;;-1:-1:-1;1506:49:12;1531:7;1540:6;1440:35;1506:24;:49::i;:::-;1492:63;;:10;:63;;;1485:71;;;;1621:12;;;:28;;-1:-1:-1;1637:12:12;;1621:28;1614:36;;;;1705:12;;:30;;1729:6;1705:30;;;1720:6;1705:30;1695:4;1700:1;1695:7;;;;;;;;:40;;;;:7;;;;;;;;;;;:40;1755:12;;:30;;1779:6;1755:30;;;1770:6;1755:30;1745:4;1750:1;1745:7;;;;;;;;:40;;;;:7;;;;;;;;;:40;1827:4;1809:23;;;;;;:43;;1845:7;1809:43;;;1835:7;1809:43;1795:57;;1892:4;1874:23;;:6;:23;;;:43;;1910:7;1874:43;;;1900:7;1874:43;1862:55;;1081:2653;;1964:4;1945:24;;:4;1950:1;1945:7;;;;;;;;;;;;;;:24;;;:52;;;;1992:4;1973:24;;:4;1978:1;1973:7;;;;;;;;;;;;;;:24;;;1945:52;1938:60;;;;2056:12;2097:4;2078:24;;:4;2083:1;2078:7;;;;;;;;;;;;;;:24;;;:44;;2115:4;2120:1;2115:7;;;;;;;;;;;;;;2078:44;;;2105:4;2110:1;2105:7;;;;;;;;;;;;;;2078:44;2056:67;;2133:29;2184:9;:21;;;2214:5;2184:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2184:37:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2184:37:12;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2184:37:12;;-1:-1:-1;2256:15:12;;2252:1476;;2288:11;2314:4;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2391:47:12;;;;;;:13;:47;;;;;;;;;;;;;;;2303:24;;;-1:-1:-1;2391:13:12;;;;;;:47;;;;;2303:24;;2391:47;;;;;;;;-1:-1:-1;2391:13:12;:47;;;2:2:-1;;;;27:1;24;17:12;2:2;2391:47:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2391:47:12;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;2474:61:12;;;;;;;;;;;;;;;;;;2531:2;2474:61;;;;;;2452:19;;2474:30;;;;;;:61;;;;;2391:47;;2474:61;;;;;;;;2452:19;2474:30;:61;;;2:2:-1;;;;27:1;24;17:12;2:2;2474:61:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2474:61:12;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2474:61:12;;-1:-1:-1;2549:19:12;2571:57;2601:7;2610:11;2623:4;2571:29;:57::i;:::-;2629:1;2571:60;;;;;;;;;;;;;;2549:82;;2669:14;2652;:31;2645:39;;;;2763:4;:12;;;2783:14;2763:37;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2763:37:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2821:41:12;;;;;;2835:10;2821:41;;;;;;;;;;;;:13;:4;:13;;-1:-1:-1;2821:13:12;;-1:-1:-1;2821:41:12;;;;;-1:-1:-1;2821:41:12;;;;;;;-1:-1:-1;2821:13:12;:41;;;2:2:-1;;;;27:1;24;17:12;2:2;2821:41:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2821:41:12;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2821:41:12;2814:49;;;;2973:12;;;2904;2973;;;;;;;;;2921:11;;;;2940:31;;;;2921:65;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2921:65:12;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;2903:83:12;;;3031:7;3024:15;;;;2252:1476;;;;;;;3071:14;3100:4;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3177:24:12;;;;;;;;;;;;;;3089;;;-1:-1:-1;3177:13:12;:4;:13;;;;:24;;;;;-1:-1:-1;;3177:24:12;;;;;;;;-1:-1:-1;3177:13:12;:24;;;2:2:-1;;;;27:1;24;17:12;2:2;3177:24:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3177:24:12;;;;3215:19;3237:10;:30;;;3275:9;3286;3302:2;3237:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3237:69:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3237:69:12;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3237:69:12;;-1:-1:-1;3320:19:12;3342:55;3372:7;3381:9;3392:4;3342:29;:55::i;:::-;3398:1;3342:58;;;;;;;;;;;;;;3320:80;;3438:14;3421;:31;3414:39;;;;3542:42;;;;;;3557:10;3542:42;;;;;;;;;;;;:14;;;;;;:42;;;;;;;;;;;;;;-1:-1:-1;3542:14:12;:42;;;2:2:-1;;;;27:1;24;17:12;2:2;3542:42:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3542:42:12;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3542:42:12;3535:50;;;;3634:55;;;;;;:14;:55;;;;;;;3657:31;;;3634:55;;;;;;:14;;;;;;:55;;;;;;;;;;;;;;;-1:-1:-1;3634:14:12;:55;;;2:2:-1;;;;27:1;24;17:12;2:2;3634:55:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3634:55:12;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3634:55:12;3627:63;;;;2252:1476;;;;1081:2653;;;;;;;;;;:::o;715:470:24:-;804:12;829:14;845;863:26;874:6;882;863:10;:26::i;:::-;1023:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;1023:32:24;;;;;1013:43;;;;;;929:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;929:246:24;;;;;;;919:257;;;;;;;;;715:470;-1:-1:-1;;;;;715:470:24:o;3928:524::-;4029:21;4085:1;4070:4;:11;:16;;4062:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4152:4;:11;4141:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4141:23:24;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;4141:23:24;;4131:33;;4204:9;4174:7;4199:1;4182:7;:14;:18;4174:27;;;;;;;;;;;;;;;;;:39;4237:11;;:15;;4223:223;4254:5;;4223:223;;4281:14;4297:15;4316:42;4328:7;4337:4;4346:1;4342;:5;4337:11;;;;;;;;;;;;;;4350:4;4355:1;4350:7;;;;;;;;;;;;;;4316:11;:42::i;:::-;4280:78;;;;4389:46;4401:7;4409:1;4401:10;;;;;;;;;;;;;;4413:9;4424:10;4389:11;:46::i;:::-;4372:7;4384:1;4380;:5;4372:14;;;;;;;;;;;;;;;;;:63;-1:-1:-1;;4261:3:24;;4223:223;;;;3928:524;;;;;:::o;281:345::-;356:14;372;416:6;406:16;;:6;:16;;;;398:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;502:6;493:15;;:6;:15;;;:53;;531:6;539;493:53;;;512:6;520;493:53;474:72;;-1:-1:-1;474:72:24;-1:-1:-1;564:20:24;;;556:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;281:345;;;;;:::o;1241:387::-;1334:13;1349;1375:14;1394:26;1405:6;1413;1394:10;:26::i;:::-;1374:46;;;1431:13;1446;1479:32;1487:7;1496:6;1504;1479:7;:32::i;:::-;1464:60;;;:62;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1464:62:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1464:62:24;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1464:62:24;;;;;;;1430:96;;;;;-1:-1:-1;1430:96:24;;-1:-1:-1;1559:16:24;;;;;;;;:62;;1602:8;1612;1559:62;;;1579:8;1589;1559:62;1536:85;;;;-1:-1:-1;1241:387:24;-1:-1:-1;;;;;;;1241:387:24:o;2802:466::-;2895:13;2940:1;2928:9;:13;2920:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:1;3008:9;:13;:31;;;;;3038:1;3025:10;:14;3008:31;3000:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3094:14;3111:34;3140:4;3111:24;:9;3125;3111:24;:13;:24;:::i;:::-;:28;:34;:28;:34;:::i;:::-;3094:51;-1:-1:-1;3155:16:24;3174:34;3204:3;3174:25;:10;3189:9;3174:25;:14;:25;:::i;:34::-;3155:53;;3229:32;3259:1;3242:11;3230:9;:23;;;;;;;3229:32;:29;:32;:::i;:::-;3218:43;2802:466;-1:-1:-1;;;;;;2802:466:24:o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;419:140;;;;:::o;286:127::-;369:5;;;364:16;;;;356:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;237:5;;;232:16;;;;224:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"5623":[{"start":1253,"length":32}],"5625":[{"start":502,"length":32},{"start":1860,"length":32},{"start":2868,"length":32}],"5627":[{"start":737,"length":32},{"start":790,"length":32},{"start":885,"length":32},{"start":990,"length":32},{"start":1098,"length":32},{"start":1931,"length":32},{"start":2132,"length":32},{"start":2593,"length":32}]}},"methodIdentifiers":{"uniswapV2Call(address,uint256,uint256,bytes)":"10d1e85c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_factoryV1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV2Call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/examples/ExampleFlashSwap.sol\":\"ExampleFlashSwap\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Callee.sol\":{\"keccak256\":\"0xdb17a1fb73e261e736ae8862be2d9a32964fc4b3741f48980f5cdc9d92b99a96\",\"urls\":[\"bzz-raw://468dab23a95d9d9b7d6ce74008d45eef3de2f137ede604e6be6c5e7d0121c5e9\",\"dweb:/ipfs/QmcXwjTfp6tCRgf1KsNQyUAtrqKhiaN6fbaHVGr22eficP\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"contracts/lib/v2-periphery/contracts/examples/ExampleFlashSwap.sol\":{\"keccak256\":\"0x4c0cc368f1714c85db2e43ffa73e6dc8b8567a5d9cd7bf20845c47ba70df3445\",\"urls\":[\"bzz-raw://ca2f16598121422aff21cc77734c32f503b8aaa0d37ed87040c3e2c2892312d3\",\"dweb:/ipfs/QmRYVpNNJbB2g9Kx2CzQtEcphnLa2dJduLhMTmD1N8U9wj\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3\",\"urls\":[\"bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66\",\"dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":{\"keccak256\":\"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2\",\"urls\":[\"bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb\",\"dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IWETH.sol\":{\"keccak256\":\"0xfc10758fd8dba790c39468dccd358cb7cef06ae7c4781832cc7aa76f91f167e6\",\"urls\":[\"bzz-raw://dc22493dea6c60d47835eeba53726f8a6f76f4fcd798d40e54608a1380515d49\",\"dweb:/ipfs/QmS1QVcBRH4TELYNE7XCfjSVQEWFupyaNLKmMkKH7iPjrm\"]},\"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Exchange.sol\":{\"keccak256\":\"0xcec8976f205e71a3a5ebdd7130d321484df4e4b6b1091d21d435173acfb6e14b\",\"urls\":[\"bzz-raw://681de3c6ee08cccee6839b3a65f8d80c2c6e55ba5a3aba51f83578a5fef52a65\",\"dweb:/ipfs/QmcJMhgj7CgchN4sxR8MbzJt8DrbJuB6PCdD2fdQ9Ct1qi\"]},\"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Factory.sol\":{\"keccak256\":\"0x2a554e26d874fa4b10736f2e2ac1ba6253cd1ad08a97bd941cb0a41015565589\",\"urls\":[\"bzz-raw://bbe29db0ebf08621cb4211219c02262be9c7510fe03bab94f849a38993f957d6\",\"dweb:/ipfs/QmTutAVpjg925m4JLqHTvukdTyoTr77FotAUAA2AzGug1f\"]},\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol\":{\"keccak256\":\"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9\",\"urls\":[\"bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c\",\"dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_factoryV1","type":"address"},{"internalType":"address","name":"router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV2Call"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/examples/ExampleFlashSwap.sol":"ExampleFlashSwap"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Callee.sol":{"keccak256":"0xdb17a1fb73e261e736ae8862be2d9a32964fc4b3741f48980f5cdc9d92b99a96","urls":["bzz-raw://468dab23a95d9d9b7d6ce74008d45eef3de2f137ede604e6be6c5e7d0121c5e9","dweb:/ipfs/QmcXwjTfp6tCRgf1KsNQyUAtrqKhiaN6fbaHVGr22eficP"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"contracts/lib/v2-periphery/contracts/examples/ExampleFlashSwap.sol":{"keccak256":"0x4c0cc368f1714c85db2e43ffa73e6dc8b8567a5d9cd7bf20845c47ba70df3445","urls":["bzz-raw://ca2f16598121422aff21cc77734c32f503b8aaa0d37ed87040c3e2c2892312d3","dweb:/ipfs/QmRYVpNNJbB2g9Kx2CzQtEcphnLa2dJduLhMTmD1N8U9wj"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol":{"keccak256":"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3","urls":["bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66","dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol":{"keccak256":"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2","urls":["bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb","dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IWETH.sol":{"keccak256":"0xfc10758fd8dba790c39468dccd358cb7cef06ae7c4781832cc7aa76f91f167e6","urls":["bzz-raw://dc22493dea6c60d47835eeba53726f8a6f76f4fcd798d40e54608a1380515d49","dweb:/ipfs/QmS1QVcBRH4TELYNE7XCfjSVQEWFupyaNLKmMkKH7iPjrm"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Exchange.sol":{"keccak256":"0xcec8976f205e71a3a5ebdd7130d321484df4e4b6b1091d21d435173acfb6e14b","urls":["bzz-raw://681de3c6ee08cccee6839b3a65f8d80c2c6e55ba5a3aba51f83578a5fef52a65","dweb:/ipfs/QmcJMhgj7CgchN4sxR8MbzJt8DrbJuB6PCdD2fdQ9Ct1qi"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Factory.sol":{"keccak256":"0x2a554e26d874fa4b10736f2e2ac1ba6253cd1ad08a97bd941cb0a41015565589","urls":["bzz-raw://bbe29db0ebf08621cb4211219c02262be9c7510fe03bab94f849a38993f957d6","dweb:/ipfs/QmTutAVpjg925m4JLqHTvukdTyoTr77FotAUAA2AzGug1f"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol":{"keccak256":"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9","urls":["bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c","dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR"],"license":null}},"version":1},"id":12} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleOracleSimple.sol/ExampleOracleSimple.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleOracleSimple.sol/ExampleOracleSimple.json new file mode 100644 index 0000000000..9b08e117c9 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleOracleSimple.sol/ExampleOracleSimple.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"factory","type":"address","internalType":"address"},{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"PERIOD","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blockTimestampLast","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"consult","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"price0Average","inputs":[],"outputs":[{"name":"_x","type":"uint224","internalType":"uint224"}],"stateMutability":"view"},{"type":"function","name":"price0CumulativeLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"price1Average","inputs":[],"outputs":[{"name":"_x","type":"uint224","internalType":"uint224"}],"stateMutability":"view"},{"type":"function","name":"price1CumulativeLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"update","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b50604051620015c5380380620015c5833981810160405260608110156200003757600080fd5b50805160208083015160409093015191929190600090620000679085908590859062000d1b6200037d821b17901c565b9050806001600160a01b03166080816001600160a01b031660601b81525050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015620000c057600080fd5b505afa158015620000d5573d6000803e3d6000fd5b505050506040513d6020811015620000ec57600080fd5b505160601b6001600160601b03191660a0526040805163d21220a760e01b815290516001600160a01b0383169163d21220a7916004808301926020929190829003018186803b1580156200013f57600080fd5b505afa15801562000154573d6000803e3d6000fd5b505050506040513d60208110156200016b57600080fd5b505160601b6001600160601b03191660c05260408051635909c0d560e01b815290516001600160a01b03831691635909c0d5916004808301926020929190829003018186803b158015620001be57600080fd5b505afa158015620001d3573d6000803e3d6000fd5b505050506040513d6020811015620001ea57600080fd5b505160005560408051635a3d549360e01b815290516001600160a01b03831691635a3d5493916004808301926020929190829003018186803b1580156200023057600080fd5b505afa15801562000245573d6000803e3d6000fd5b505050506040513d60208110156200025c57600080fd5b505160015560408051630240bc6b60e21b8152905160009182916001600160a01b03851691630902f1ac916004808301926060929190829003018186803b158015620002a757600080fd5b505afa158015620002bc573d6000803e3d6000fd5b505050506040513d6060811015620002d357600080fd5b50805160208201516040909201516002805463ffffffff191663ffffffff909216919091179055925090506001600160701b038216158015906200031f57506001600160701b03811615155b62000371576040805162461bcd60e51b815260206004820181905260248201527f4578616d706c654f7261636c6553696d706c653a204e4f5f5245534552564553604482015290519081900360640190fd5b5050505050506200053d565b600080806200039685856001600160e01b036200045a16565b604080516001600160601b0319606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080826001600160a01b0316846001600160a01b03161415620004b05760405162461bcd60e51b8152600401808060200182810382526025815260200180620015a06025913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610620004d2578284620004d5565b83835b90925090506001600160a01b03821662000536576040805162461bcd60e51b815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b60805160601c60a05160601c60c05160601c6110236200057d600039806102a952806105da5250806101cd52806101f35250806103e452506110236000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a2e6204511610076578063b4d1d7951161005b578063b4d1d7951461019a578063c5700a02146101a2578063d21220a7146101c3576100be565b8063a2e6204514610188578063a6bb453914610192576100be565b80635909c0d5116100a75780635909c0d51461013f5780635a3d5493146101475780635e6aaf2c1461014f576100be565b80630dfe1681146100c35780633ddac953146100f4575b600080fd5b6100cb6101cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61012d6004803603604081101561010a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356101ef565b60408051918252519081900360200190f35b61012d6103aa565b61012d6103b0565b6101576103b6565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101906103da565b005b6101576105a1565b61012d6105c5565b6101aa6105cc565b6040805163ffffffff9092168252519081900360200190f35b6100cb6105d8565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156102a75760408051602081019091526003547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815261028c90610287908463ffffffff6105fc16565b6106bf565b71ffffffffffffffffffffffffffffffffffff1690506103a4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461034b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fa56022913960400191505060405180910390fd5b60408051602081019091526004547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815261038d90610287908463ffffffff6105fc16565b71ffffffffffffffffffffffffffffffffffff1690505b92915050565b60005481565b60015481565b6004547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681565b60008060006104087f00000000000000000000000000000000000000000000000000000000000000006106c6565b600254929550909350915063ffffffff90811682039062015180908216101561047c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610fc76027913960400191505060405180910390fd5b60405180602001604052808263ffffffff1660005487038161049a57fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9081169091529051600380547fffffffff0000000000000000000000000000000000000000000000000000000016919092161790556040805160208101909152600154819063ffffffff84169086038161050e57fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9081169091529051600480547fffffffff00000000000000000000000000000000000000000000000000000000169190921617905550600092909255600155600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909216919091179055565b6003547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681565b6201518081565b60025463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b610604610cf6565b600082158061063f57505082517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168281029083828161063c57fe5b04145b6106aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4669786564506f696e743a3a6d756c3a206f766572666c6f7700000000000000604482015290519081900360640190fd5b60408051602081019091529081529392505050565b5160701c90565b60008060006106d361094d565b90508373ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561071b57600080fd5b505afa15801561072f573d6000803e3d6000fd5b505050506040513d602081101561074557600080fd5b5051604080517f5a3d5493000000000000000000000000000000000000000000000000000000008152905191945073ffffffffffffffffffffffffffffffffffffffff861691635a3d549391600480820192602092909190829003018186803b1580156107b157600080fd5b505afa1580156107c5573d6000803e3d6000fd5b505050506040513d60208110156107db57600080fd5b5051604080517f0902f1ac00000000000000000000000000000000000000000000000000000000815290519193506000918291829173ffffffffffffffffffffffffffffffffffffffff891691630902f1ac916004808301926060929190829003018186803b15801561084d57600080fd5b505afa158015610861573d6000803e3d6000fd5b505050506040513d606081101561087757600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146109435780840363ffffffff81166108c46dffffffffffffffffffffffffffff808616908716610957565b600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602870196508063ffffffff1661091c856dffffffffffffffffffffffffffff16856dffffffffffffffffffffffffffff16610957565b517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16029590950194505b5050509193909250565b63ffffffff421690565b61095f610d09565b600082116109b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610f7f6026913960400191505060405180910390fd5b826109d257506040805160208101909152600081526103a4565b71ffffffffffffffffffffffffffffffffffff8311610abd57600082607085901b816109fa57fe5b0490507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610a8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b6040518060200160405280827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509150506103a4565b6000610ad9846e01000000000000000000000000000085610b66565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610a8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b6000806000610b758686610c3b565b9150915060008480610b8357fe5b868809905082811115610b97576001820391505b918290039181610bb557848381610baa57fe5b049350505050610c34565b848210610c2357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610c2e838387610c86565b93505050505b9392505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84860990508385029250828103915082811015610c7e576001820391505b509250929050565b60008181038216808381610c9657fe5b049250808581610ca257fe5b049450808160000381610cb157fe5b60028581038087028203028087028203028087028203028087028203028087028203028087028203029586029003909402930460010193909302939093010292915050565b6040518060200160405280600081525090565b60408051602081019091526000815290565b6000806000610d2a8585610e06565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610f5a6025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610ec8578284610ecb565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610f5257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b925092905056fe556e697377617056324c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a3a6672616374696f6e3a206469766973696f6e206279207a65726f4578616d706c654f7261636c6553696d706c653a20494e56414c49445f544f4b454e4578616d706c654f7261636c6553696d706c653a20504552494f445f4e4f545f454c4150534544a26469706673582212200c5ea616cc201b80d1f4cfc4be98f7b208847ac261d9de728ae1bd88196ee94864736f6c63430006060033556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553","sourceMap":"525:2638:13:-:0;;;960:743;5:9:-1;2:2;;;27:1;24;17:12;2:2;960:743:13;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;960:743:13;;;;;;;;;;;;;;;;1038:20;;1076:49;;960:743;;;;;;1076:24;;;;;:49;;:::i;:::-;1038:88;;1143:5;-1:-1:-1;;;;;1136:12:13;;;-1:-1:-1;;;;;1136:12:13;;;;;;;1167:5;-1:-1:-1;;;;;1167:12:13;;:14;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1167:14:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1167:14:13;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1167:14:13;1158:23;;-1:-1:-1;;;;;;1158:23:13;;;1200:14;;;-1:-1:-1;;;1200:14:13;;;;-1:-1:-1;;;;;1200:12:13;;;;;:14;;;;;1167;;1200;;;;;;;:12;:14;;;2:2:-1;;;;27:1;24;17:12;2:2;1200:14:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1200:14:13;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1200:14:13;1191:23;;-1:-1:-1;;;;;;1191:23:13;;;1247:28;;;-1:-1:-1;;;1247:28:13;;;;-1:-1:-1;;;;;1247:26:13;;;;;:28;;;;;1200:14;;1247:28;;;;;;;:26;:28;;;2:2:-1;;;;27:1;24;17:12;2:2;1247:28:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1247:28:13;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1247:28:13;1224:20;:51;1361:28;;;-1:-1:-1;;;1361:28:13;;;;-1:-1:-1;;;;;1361:26:13;;;;;:28;;;;;1247;;1361;;;;;;;:26;:28;;;2:2:-1;;;;27:1;24;17:12;2:2;1361:28:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1361:28:13;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1361:28:13;1338:20;:51;1547:19;;;-1:-1:-1;;;1547:19:13;;;;1452:16;;;;-1:-1:-1;;;;;1547:17:13;;;;;:19;;;;;;;;;;;;;;:17;:19;;;2:2:-1;;;;27:1;24;17:12;2:2;1547:19:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1547:19:13;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1547:19:13;;;;;;;;;;;1525:18;1504:62;;-1:-1:-1;;1504:62:13;;;;;;;;;;;1547:19;-1:-1:-1;1547:19:13;-1:-1:-1;;;;;;1584:13:13;;;;;;:30;;-1:-1:-1;;;;;;1601:13:13;;;;1584:30;1576:75;;;;;-1:-1:-1;;;1576:75:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;960:743;;;;;;525:2638;;715:470:24;804:12;;;863:26;874:6;882;-1:-1:-1;;;;;863:10:24;:26;:::i;:::-;1023:32;;;-1:-1:-1;;;;;;1023:32:24;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;1023:32:24;;;;;1013:43;;;;;;929:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;929:246:24;;;;;;;919:257;;;;;;;;;715:470;-1:-1:-1;;;;;715:470:24:o;281:345::-;356:14;372;416:6;-1:-1:-1;;;;;406:16:24;:6;-1:-1:-1;;;;;406:16:24;;;398:66;;;;-1:-1:-1;;;398:66:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;502:6;-1:-1:-1;;;;;493:15:24;:6;-1:-1:-1;;;;;493:15:24;;:53;;531:6;539;493:53;;;512:6;520;493:53;474:72;;-1:-1:-1;474:72:24;-1:-1:-1;;;;;;564:20:24;;556:63;;;;;-1:-1:-1;;;556:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;281:345;;;;;:::o;525:2638:13:-;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a2e6204511610076578063b4d1d7951161005b578063b4d1d7951461019a578063c5700a02146101a2578063d21220a7146101c3576100be565b8063a2e6204514610188578063a6bb453914610192576100be565b80635909c0d5116100a75780635909c0d51461013f5780635a3d5493146101475780635e6aaf2c1461014f576100be565b80630dfe1681146100c35780633ddac953146100f4575b600080fd5b6100cb6101cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61012d6004803603604081101561010a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356101ef565b60408051918252519081900360200190f35b61012d6103aa565b61012d6103b0565b6101576103b6565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101906103da565b005b6101576105a1565b61012d6105c5565b6101aa6105cc565b6040805163ffffffff9092168252519081900360200190f35b6100cb6105d8565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156102a75760408051602081019091526003547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815261028c90610287908463ffffffff6105fc16565b6106bf565b71ffffffffffffffffffffffffffffffffffff1690506103a4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461034b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fa56022913960400191505060405180910390fd5b60408051602081019091526004547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815261038d90610287908463ffffffff6105fc16565b71ffffffffffffffffffffffffffffffffffff1690505b92915050565b60005481565b60015481565b6004547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681565b60008060006104087f00000000000000000000000000000000000000000000000000000000000000006106c6565b600254929550909350915063ffffffff90811682039062015180908216101561047c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610fc76027913960400191505060405180910390fd5b60405180602001604052808263ffffffff1660005487038161049a57fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9081169091529051600380547fffffffff0000000000000000000000000000000000000000000000000000000016919092161790556040805160208101909152600154819063ffffffff84169086038161050e57fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9081169091529051600480547fffffffff00000000000000000000000000000000000000000000000000000000169190921617905550600092909255600155600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909216919091179055565b6003547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681565b6201518081565b60025463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b610604610cf6565b600082158061063f57505082517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168281029083828161063c57fe5b04145b6106aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4669786564506f696e743a3a6d756c3a206f766572666c6f7700000000000000604482015290519081900360640190fd5b60408051602081019091529081529392505050565b5160701c90565b60008060006106d361094d565b90508373ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561071b57600080fd5b505afa15801561072f573d6000803e3d6000fd5b505050506040513d602081101561074557600080fd5b5051604080517f5a3d5493000000000000000000000000000000000000000000000000000000008152905191945073ffffffffffffffffffffffffffffffffffffffff861691635a3d549391600480820192602092909190829003018186803b1580156107b157600080fd5b505afa1580156107c5573d6000803e3d6000fd5b505050506040513d60208110156107db57600080fd5b5051604080517f0902f1ac00000000000000000000000000000000000000000000000000000000815290519193506000918291829173ffffffffffffffffffffffffffffffffffffffff891691630902f1ac916004808301926060929190829003018186803b15801561084d57600080fd5b505afa158015610861573d6000803e3d6000fd5b505050506040513d606081101561087757600080fd5b5080516020820151604090920151909450909250905063ffffffff808216908516146109435780840363ffffffff81166108c46dffffffffffffffffffffffffffff808616908716610957565b600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602870196508063ffffffff1661091c856dffffffffffffffffffffffffffff16856dffffffffffffffffffffffffffff16610957565b517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16029590950194505b5050509193909250565b63ffffffff421690565b61095f610d09565b600082116109b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610f7f6026913960400191505060405180910390fd5b826109d257506040805160208101909152600081526103a4565b71ffffffffffffffffffffffffffffffffffff8311610abd57600082607085901b816109fa57fe5b0490507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610a8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b6040518060200160405280827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509150506103a4565b6000610ad9846e01000000000000000000000000000085610b66565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610a8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b6000806000610b758686610c3b565b9150915060008480610b8357fe5b868809905082811115610b97576001820391505b918290039181610bb557848381610baa57fe5b049350505050610c34565b848210610c2357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610c2e838387610c86565b93505050505b9392505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84860990508385029250828103915082811015610c7e576001820391505b509250929050565b60008181038216808381610c9657fe5b049250808581610ca257fe5b049450808160000381610cb157fe5b60028581038087028203028087028203028087028203028087028203028087028203028087028203029586029003909402930460010193909302939093010292915050565b6040518060200160405280600081525090565b60408051602081019091526000815290565b6000806000610d2a8585610e06565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610f5a6025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610ec8578284610ecb565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610f5257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b925092905056fe556e697377617056324c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a3a6672616374696f6e3a206469766973696f6e206279207a65726f4578616d706c654f7261636c6553696d706c653a20494e56414c49445f544f4b454e4578616d706c654f7261636c6553696d706c653a20504552494f445f4e4f545f454c4150534544a26469706673582212200c5ea616cc201b80d1f4cfc4be98f7b208847ac261d9de728ae1bd88196ee94864736f6c63430006060033","sourceMap":"525:2638:13:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;525:2638:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;669:31:13;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2804:357;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2804:357:13;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;744:35;;;:::i;785:::-;;;:::i;912:41::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1709:988;;;:::i;:::-;;865:41;;;:::i;589:38::-;;;:::i;826:33::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;706:31;;;:::i;669:::-;;;:::o;2804:357::-;2874:14;2913:6;2904:15;;:5;:15;;;2900:255;;;2947:17;;;;;;;;;:13;:17;;;;;:39;;:27;;2965:8;2947:27;:17;:27;:::i;:::-;:37;:39::i;:::-;2935:51;;;;2900:255;;;3034:6;3025:15;;:5;:15;;;3017:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:17;;;;;;;;;:13;:17;;;;;:39;;:27;;3123:8;3105:27;:17;:27;:::i;:39::-;3093:51;;;;2900:255;2804:357;;;;:::o;744:35::-;;;;:::o;785:::-;;;;:::o;912:41::-;;;;;;:::o;1709:988::-;1747:21;1770;1793;1830:61;1885:4;1830:46;:61::i;:::-;1939:18;;1746:145;;-1:-1:-1;1746:145:13;;-1:-1:-1;1746:145:13;-1:-1:-1;1939:18:13;;;;1922:35;;;619:8;2080:21;;;;;2072:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2348:86;;;;;;;;2421:11;2377:55;;2397:20;;2378:16;:39;2377:55;;;;;;2348:86;;;;;;;2332:102;;:13;:102;;;;;;;;;;;2460:86;;;;;;;;;-1:-1:-1;2509:20:13;2460:86;;2489:55;;;;2490:39;;2489:55;;;;;;2460:86;;;;;;;2444:102;;:13;:102;;;;;;;;;;;-1:-1:-1;;2557:39:13;;;;-1:-1:-1;2606:39:13;2655:18;:35;;;;;;;;;;;;;;1709:988::o;865:41::-;;;;;;:::o;589:38::-;619:8;589:38;:::o;826:33::-;;;;;;:::o;706:31::-;;;:::o;1694:237:2:-;1764:16;;:::i;:::-;1792:9;1823:6;;;:42;;-1:-1:-1;;1858:7:2;;1833:32;;1838:11;;;;1853:1;1838:11;1853:1;1833:21;;;;;:32;1823:42;1815:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:12;;;;;;;;;;;;;1694:237;-1:-1:-1;;;1694:237:2:o;1472:128::-;1571:7;531:3;1571:21;;1472:128::o;646:1040:26:-;730:21;753;776;826:23;:21;:23::i;:::-;809:40;;893:4;878:41;;;:43;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;878:43:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;878:43:26;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;878:43:26;950;;;;;;;;878;;-1:-1:-1;950:41:26;;;;;;:43;;;;;878;;950;;;;;;;;:41;:43;;;2:2:-1;;;;27:1;24;17:12;2:2;950:43:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;950:43:26;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;950:43:26;1170:34;;;;;;;;950:43;;-1:-1:-1;1105:16:26;;;;;;1170:32;;;;;;:34;;;;;;;;;;;;;;:32;:34;;;2:2:-1;;;;27:1;24;17:12;2:2;1170:34:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1170:34:26;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1170:34:26;;;;;;;;;;;;;-1:-1:-1;1170:34:26;;-1:-1:-1;1170:34:26;-1:-1:-1;1218:36:26;;;;;;;;1214:466;;1338:35;;;1481:62;;;1486:39;;;;;;;;:19;:39::i;:::-;:42;;;1481:48;;:62;1461:82;;;;1658:11;1607:62;;1612:39;1632:8;1612:39;;1642:8;1612:39;;:19;:39::i;:::-;:42;1607:48;;:62;1587:82;;;;;-1:-1:-1;1214:466:26;646:1040;;;;;;;;:::o;422:121::-;510:25;:15;:25;;422:121::o;4526:706:2:-;4607:16;;:::i;:::-;4657:1;4643:11;:15;4635:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4715:14;4711:50;;-1:-1:-1;4738:23:2;;;;;;;;;-1:-1:-1;4738:23:2;;4731:30;;4711:50;4776:24;;;4772:454;;4816:14;4861:11;531:3;4834:23;;;4861:11;4833:39;;;;;;-1:-1:-1;4894:21:2;;;;4886:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4971:26;;;;;;;;4989:6;4971:26;;;;;4964:33;;;;;4772:454;5028:14;5045:45;5061:9;571:31;5078:11;5045:15;:45::i;:::-;5028:62;-1:-1:-1;5112:21:2;;;;5104:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;897:373:3;999:7;1019:9;1030;1043:13;1051:1;1054;1043:7;:13::i;:::-;1018:38;;;;1067:10;1093:1;1080:15;;;;;1090:1;1087;1080:15;1067:28;;1114:1;1109:2;:6;1105:18;;;1122:1;1117:6;;;;1105:18;1133:7;;;;;1155:6;1151:24;;1174:1;1170;:5;;;;;;1163:12;;;;;;;1151:24;1198:1;1194;:5;1186:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:16;1255:1;1258;1261;1247:7;:16::i;:::-;1240:23;;;;;897:373;;;;;;:::o;216:206::-;278:9;;;344:2;333:1;330;323:25;310:38;;366:1;362;:5;358:9;;386:1;381:2;:6;377:10;;406:1;401:2;:6;397:18;;;414:1;409:6;;;;397:18;216:206;;;;;;:::o;428:463::-;530:7;568:2;;;564:6;;;569:1;564:6;580:9;;;;;;;604:4;599:9;;;;;;;;;638:4;630;629:5;;628:14;;;;;685:1;:9;;;713:5;;;709:9;;704:14;737:5;;;733:9;;728:14;761:5;;;757:9;;752:14;785:5;;;781:9;;776:14;809:5;;;805:9;;800:14;833:5;;;829:9;;824:14;857:5;;;853:9;;848:14;;;628;;645:1;628:18;623:24;;;;618:29;;;;879:5;;428:463;-1:-1:-1;;428:463:3:o;525:2638:13:-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;525:2638:13;;;:::o;715:470:24:-;804:12;829:14;845;863:26;874:6;882;863:10;:26::i;:::-;1023:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;1023:32:24;;;;;1013:43;;;;;;929:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;929:246:24;;;;;;;919:257;;;;;;;;;715:470;-1:-1:-1;;;;;715:470:24:o;281:345::-;356:14;372;416:6;406:16;;:6;:16;;;;398:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;502:6;493:15;;:6;:15;;;:53;;531:6;539;493:53;;;512:6;520;493:53;474:72;;-1:-1:-1;474:72:24;-1:-1:-1;564:20:24;;;556:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;281:345;;;;;:::o","linkReferences":{},"immutableReferences":{"6001":[{"start":996,"length":32}],"6003":[{"start":461,"length":32},{"start":499,"length":32}],"6005":[{"start":681,"length":32},{"start":1498,"length":32}]}},"methodIdentifiers":{"PERIOD()":"b4d1d795","blockTimestampLast()":"c5700a02","consult(address,uint256)":"3ddac953","price0Average()":"a6bb4539","price0CumulativeLast()":"5909c0d5","price1Average()":"5e6aaf2c","price1CumulativeLast()":"5a3d5493","token0()":"0dfe1681","token1()":"d21220a7","update()":"a2e62045"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockTimestampLast\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"consult\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0Average\",\"outputs\":[{\"internalType\":\"uint224\",\"name\":\"_x\",\"type\":\"uint224\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1Average\",\"outputs\":[{\"internalType\":\"uint224\",\"name\":\"_x\",\"type\":\"uint224\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/examples/ExampleOracleSimple.sol\":\"ExampleOracleSimple\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]},\"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7\",\"urls\":[\"bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727\",\"dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH\"]},\"contracts/lib/solidity-lib/contracts/libraries/FixedPoint.sol\":{\"keccak256\":\"0xc3a39b8a11715cea45ad9f67f50e4e4c33778c1124acd59e90daf064c9a93974\",\"urls\":[\"bzz-raw://2c6c3cdcdb30caa5d15477550003b5dbb174cb2c0be3c012af030fce3d043f28\",\"dweb:/ipfs/QmWh3n5g6zq3umJcURnKCFhhif2c8yb6mKczFjfoCNLC3g\"]},\"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9\",\"urls\":[\"bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407\",\"dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891\",\"urls\":[\"bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389\",\"dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"contracts/lib/v2-periphery/contracts/examples/ExampleOracleSimple.sol\":{\"keccak256\":\"0x40f1c32a36e7688e99fc29bb666f2996517f2bd7aa67469a5ad051e423324b08\",\"urls\":[\"bzz-raw://ea3df2a5b24a286ce642f30ab78e84210e5763bf06b5fff852fa51d583227233\",\"dweb:/ipfs/QmZcAxiCa1GwZLyNGomyssMAwks1TAtm1ceLM9yTZ7CGRN\"]},\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol\":{\"keccak256\":\"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9\",\"urls\":[\"bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c\",\"dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2OracleLibrary.sol\":{\"keccak256\":\"0x993538630a9568290c39140d54c034a66cf1b95cdeef4ba804a948c4ee2fc311\",\"urls\":[\"bzz-raw://adff017b539750d5ac84403360967c4d6b02a1ee9b8f2487f0bcddd7fa7c523e\",\"dweb:/ipfs/QmQqUiUvoezf33f2SZa64M8KgksHSXFPrGuwDvxijtXYMo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blockTimestampLast","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"view","type":"function","name":"consult","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price0Average","outputs":[{"internalType":"uint224","name":"_x","type":"uint224"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price1Average","outputs":[{"internalType":"uint224","name":"_x","type":"uint224"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"update"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/examples/ExampleOracleSimple.sol":"ExampleOracleSimple"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol":{"keccak256":"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177","urls":["bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069","dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol":{"keccak256":"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7","urls":["bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727","dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/FixedPoint.sol":{"keccak256":"0xc3a39b8a11715cea45ad9f67f50e4e4c33778c1124acd59e90daf064c9a93974","urls":["bzz-raw://2c6c3cdcdb30caa5d15477550003b5dbb174cb2c0be3c012af030fce3d043f28","dweb:/ipfs/QmWh3n5g6zq3umJcURnKCFhhif2c8yb6mKczFjfoCNLC3g"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol":{"keccak256":"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9","urls":["bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407","dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol":{"keccak256":"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891","urls":["bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389","dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"contracts/lib/v2-periphery/contracts/examples/ExampleOracleSimple.sol":{"keccak256":"0x40f1c32a36e7688e99fc29bb666f2996517f2bd7aa67469a5ad051e423324b08","urls":["bzz-raw://ea3df2a5b24a286ce642f30ab78e84210e5763bf06b5fff852fa51d583227233","dweb:/ipfs/QmZcAxiCa1GwZLyNGomyssMAwks1TAtm1ceLM9yTZ7CGRN"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol":{"keccak256":"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9","urls":["bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c","dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2OracleLibrary.sol":{"keccak256":"0x993538630a9568290c39140d54c034a66cf1b95cdeef4ba804a948c4ee2fc311","urls":["bzz-raw://adff017b539750d5ac84403360967c4d6b02a1ee9b8f2487f0bcddd7fa7c523e","dweb:/ipfs/QmQqUiUvoezf33f2SZa64M8KgksHSXFPrGuwDvxijtXYMo"],"license":null}},"version":1},"id":13} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleSlidingWindowOracle.sol/ExampleSlidingWindowOracle.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleSlidingWindowOracle.sol/ExampleSlidingWindowOracle.json new file mode 100644 index 0000000000..789b52c50e --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleSlidingWindowOracle.sol/ExampleSlidingWindowOracle.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"factory_","type":"address","internalType":"address"},{"name":"windowSize_","type":"uint256","internalType":"uint256"},{"name":"granularity_","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"consult","inputs":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"tokenOut","type":"address","internalType":"address"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"granularity","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"observationIndexOf","inputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"index","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"pairObservations","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"price0Cumulative","type":"uint256","internalType":"uint256"},{"name":"price1Cumulative","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"periodSize","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"update","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"windowSize","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x61010060405234801561001157600080fd5b506040516113943803806113948339818101604052606081101561003457600080fd5b5080516020820151604090920151909190600160ff82161161009d576040805162461bcd60e51b815260206004820181905260248201527f536c6964696e6757696e646f774f7261636c653a204752414e554c4152495459604482015290519081900360640190fd5b8160ff82168082816100ab57fe5b0460e081905202146100ee5760405162461bcd60e51b81526004018080602001828103825260308152602001806113646030913960400191505060405180910390fd5b606083901b6001600160601b03191660805260a082905260f881901b7fff000000000000000000000000000000000000000000000000000000000000001660c05260e0516001600160a01b039093169260ff909116906111c561019f600039806102f7528061059452806105e752806106475250806101f452806104d752806106135280610766525080610218528061027e528061031b525080610242528061045c528061048552506111c56000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a01551461015f578063c640752d14610190578063dbaad32f146101cd578063e4463eb2146101ea57610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e4214610108575b600080fd5b6100956101f2565b6040805160ff9092168252519081900360200190f35b6100b3610216565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040909101351661023a565b6101416004803603604081101561011e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561041b565b60408051938452602084019290925282820152519081900360600190f35b61016761045a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101cb600480360360408110156101a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661047e565b005b610095600480360360208110156101e357600080fd5b50356105e2565b6100b3610645565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102687f00000000000000000000000000000000000000000000000000000000000000008685610669565b9050600061027582610754565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806110e66033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f000000000000000000000000000000000000000000000000000000000000000003811015610393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611119602c913960400191505060405180910390fd5b60008061039f856107fc565b509150915060006103b08a89610a83565b5090508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610404576103f7856001015484868c610bd6565b9650505050505050610414565b6103f7856002015483868c610bd6565b9392505050565b6000602052816000526040600020818154811061043457fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104ab7f00000000000000000000000000000000000000000000000000000000000000008484610669565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff168110156105365773ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054600190810182559152016104d5565b506000610542426105e2565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604081208054929350909160ff841690811061057b57fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105da576000806105c6866107fc565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161060e57fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161063d57fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006106788585610a83565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080610760426105e2565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff168161079657fe5b0690506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208160ff16815481106107e557fe5b906000526020600020906003020192505050919050565b6000806000610809610c49565b90508373ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d602081101561087b57600080fd5b5051604080517f5a3d5493000000000000000000000000000000000000000000000000000000008152905191945073ffffffffffffffffffffffffffffffffffffffff861691635a3d549391600480820192602092909190829003018186803b1580156108e757600080fd5b505afa1580156108fb573d6000803e3d6000fd5b505050506040513d602081101561091157600080fd5b5051604080517f0902f1ac00000000000000000000000000000000000000000000000000000000815290519193506000918291829173ffffffffffffffffffffffffffffffffffffffff891691630902f1ac916004808301926060929190829003018186803b15801561098357600080fd5b505afa158015610997573d6000803e3d6000fd5b505050506040513d60608110156109ad57600080fd5b5080516020820151604090920151909450909250905063ffffffff80821690851614610a795780840363ffffffff81166109fa6dffffffffffffffffffffffffffff808616908716610c53565b600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602870196508063ffffffff16610a52856dffffffffffffffffffffffffffff16856dffffffffffffffffffffffffffff16610c53565b517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16029590950194505b5050509193909250565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610b0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806111456025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610b45578284610b48565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610bcf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b6000610be06110c0565b60405180602001604052808588880381610bf657fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690529050610c2b610c268285610e68565b610f2b565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610c5b6110c0565b60008211610cb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061116a6026913960400191505060405180910390fd5b82610cce5750604080516020810190915260008152610e62565b71ffffffffffffffffffffffffffffffffffff8311610db957600082607085901b81610cf657fe5b0490507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610d8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b6040518060200160405280827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815250915050610e62565b6000610dd5846e01000000000000000000000000000085610f32565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610d8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b92915050565b610e706110d2565b6000821580610eab57505082517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682810290838281610ea857fe5b04145b610f1657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4669786564506f696e743a3a6d756c3a206f766572666c6f7700000000000000604482015290519081900360640190fd5b60408051602081019091529081529392505050565b5160701c90565b6000806000610f418686611005565b9150915060008480610f4f57fe5b868809905082811115610f63576001820391505b918290039181610f8157848381610f7657fe5b049350505050610414565b848210610fef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610ffa838387611050565b979650505050505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84860990508385029250828103915082811015611048576001820391505b509250929050565b6000818103821680838161106057fe5b04925080858161106c57fe5b04945080816000038161107b57fe5b60028581038087028203028087028203028087028203028087028203028087028203028087028203029586029003909402930460010193909302939093010292915050565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c4150534544556e697377617056324c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a3a6672616374696f6e3a206469766973696f6e206279207a65726fa26469706673582212203a50b133474090c09a1914393223b587c596236cd987a00dfd1bce9c5d6a88e464736f6c63430006060033536c6964696e6757696e646f774f7261636c653a2057494e444f575f4e4f545f4556454e4c595f444956495349424c45","sourceMap":"704:5705:14:-:0;;;1975:427;5:9:-1;2:2;;;27:1;24;17:12;2:2;1975:427:14;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1975:427:14;;;;;;;;;;;;;;2083:1;2068:16;;;;2060:61;;;;;-1:-1:-1;;;2060:61:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2212:11;2152:56;;;;2212:11;2152:56;2166:26;;;;;2153:39;;;;2152:56;:71;2131:166;;;;-1:-1:-1;;;2131:166:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2307:18;;;;-1:-1:-1;;;;;;2307:18:14;;;2335:24;;;;2369:26;;;;;;;;704:5705;;-1:-1:-1;;;;;704:5705:14;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a01551461015f578063c640752d14610190578063dbaad32f146101cd578063e4463eb2146101ea57610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e4214610108575b600080fd5b6100956101f2565b6040805160ff9092168252519081900360200190f35b6100b3610216565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040909101351661023a565b6101416004803603604081101561011e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561041b565b60408051938452602084019290925282820152519081900360600190f35b61016761045a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101cb600480360360408110156101a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661047e565b005b610095600480360360208110156101e357600080fd5b50356105e2565b6100b3610645565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102687f00000000000000000000000000000000000000000000000000000000000000008685610669565b9050600061027582610754565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806110e66033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f000000000000000000000000000000000000000000000000000000000000000003811015610393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611119602c913960400191505060405180910390fd5b60008061039f856107fc565b509150915060006103b08a89610a83565b5090508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610404576103f7856001015484868c610bd6565b9650505050505050610414565b6103f7856002015483868c610bd6565b9392505050565b6000602052816000526040600020818154811061043457fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104ab7f00000000000000000000000000000000000000000000000000000000000000008484610669565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff168110156105365773ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054600190810182559152016104d5565b506000610542426105e2565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604081208054929350909160ff841690811061057b57fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105da576000806105c6866107fc565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161060e57fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161063d57fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006106788585610a83565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080610760426105e2565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff168161079657fe5b0690506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208160ff16815481106107e557fe5b906000526020600020906003020192505050919050565b6000806000610809610c49565b90508373ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d602081101561087b57600080fd5b5051604080517f5a3d5493000000000000000000000000000000000000000000000000000000008152905191945073ffffffffffffffffffffffffffffffffffffffff861691635a3d549391600480820192602092909190829003018186803b1580156108e757600080fd5b505afa1580156108fb573d6000803e3d6000fd5b505050506040513d602081101561091157600080fd5b5051604080517f0902f1ac00000000000000000000000000000000000000000000000000000000815290519193506000918291829173ffffffffffffffffffffffffffffffffffffffff891691630902f1ac916004808301926060929190829003018186803b15801561098357600080fd5b505afa158015610997573d6000803e3d6000fd5b505050506040513d60608110156109ad57600080fd5b5080516020820151604090920151909450909250905063ffffffff80821690851614610a795780840363ffffffff81166109fa6dffffffffffffffffffffffffffff808616908716610c53565b600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602870196508063ffffffff16610a52856dffffffffffffffffffffffffffff16856dffffffffffffffffffffffffffff16610c53565b517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16029590950194505b5050509193909250565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610b0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806111456025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610b45578284610b48565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610bcf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b6000610be06110c0565b60405180602001604052808588880381610bf657fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690529050610c2b610c268285610e68565b610f2b565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610c5b6110c0565b60008211610cb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061116a6026913960400191505060405180910390fd5b82610cce5750604080516020810190915260008152610e62565b71ffffffffffffffffffffffffffffffffffff8311610db957600082607085901b81610cf657fe5b0490507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610d8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b6040518060200160405280827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815250915050610e62565b6000610dd5846e01000000000000000000000000000085610f32565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610d8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b92915050565b610e706110d2565b6000821580610eab57505082517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682810290838281610ea857fe5b04145b610f1657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4669786564506f696e743a3a6d756c3a206f766572666c6f7700000000000000604482015290519081900360640190fd5b60408051602081019091529081529392505050565b5160701c90565b6000806000610f418686611005565b9150915060008480610f4f57fe5b868809905082811115610f63576001820391505b918290039181610f8157848381610f7657fe5b049350505050610414565b848210610fef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610ffa838387611050565b979650505050505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84860990508385029250828103915082811015611048576001820391505b509250929050565b6000818103821680838161106057fe5b04925080858161106c57fe5b04945080816000038161107b57fe5b60028581038087028203028087028203028087028203028087028203028087028203028087028203029586029003909402930460010193909302939093010292915050565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c4150534544556e697377617056324c6962726172793a204944454e544943414c5f4144445245535345534669786564506f696e743a3a6672616374696f6e3a206469766973696f6e206279207a65726fa26469706673582212203a50b133474090c09a1914393223b587c596236cd987a00dfd1bce9c5d6a88e464736f6c63430006060033","sourceMap":"704:5705:14:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;704:5705:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1643:34:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1058:32;;;:::i;:::-;;;;;;;;;;;;;;;;5345:1062;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5345:1062:14;;;;;;;;;;;;;;;;;;:::i;1911:57::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1911:57:14;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;922:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3373:1050;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3373:1050:14;;;;;;;;;;;:::i;:::-;;2489:185;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2489:185:14;;:::i;1794:32::-;;;:::i;1643:34::-;;;:::o;1058:32::-;;;:::o;5345:1062::-;5435:14;5461:12;5476:52;5501:7;5510;5519:8;5476:24;:52::i;:::-;5461:67;;5538:36;5577:33;5605:4;5577:27;:33::i;:::-;5658:26;;5538:72;;-1:-1:-1;5640:15:14;:44;5717:10;5702:25;;;5694:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5861:10;5874:1;5861:14;5848:10;:27;5833:11;:42;;5825:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5936:21;5959;5985:52;6032:4;5985:46;:52::i;:::-;5935:102;;;;;6048:14;6067:46;6095:7;6104:8;6067:27;:46::i;:::-;6047:66;;;6138:7;6128:17;;:6;:17;;;6124:277;;;6168:92;6185:16;:33;;;6220:16;6238:11;6251:8;6168:16;:92::i;:::-;6161:99;;;;;;;;;;6124:277;6298:92;6315:16;:33;;;6350:16;6368:11;6381:8;6298:16;:92::i;5345:1062::-;;;;;;:::o;1911:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1911:57:14;;-1:-1:-1;1911:57:14;:::o;922:32::-;;;:::o;3373:1050::-;3440:12;3455:49;3480:7;3489:6;3497;3455:24;:49::i;:::-;3601:22;;;3592:6;3601:22;;;;;;;;;;:29;3440:64;;-1:-1:-1;3587:121:14;3636:11;3632:15;;:1;:15;3587:121;;;3668:22;;;:16;:22;;;;;;;;;;27:10:-1;;3668:29:14;23:18:-1;;;45:23;;3668:29:14;;3649:3;3587:121;;;;3772:22;3797:35;3816:15;3797:18;:35::i;:::-;3876:22;;;3842:31;3876:22;;;;;;;;;;:40;;3772:60;;-1:-1:-1;3842:31:14;;3876:40;;;;;;;;;;;;;;;;;;;;;;;4054:21;;3876:40;;-1:-1:-1;4036:15:14;:39;4103:10;4089:24;;4085:332;;;4130:21;4153;4179:52;4226:4;4179:46;:52::i;:::-;-1:-1:-1;4269:15:14;4245:39;;4298:28;;;:47;;;;4359:28;;;:47;-1:-1:-1;;4085:332:14;3373:1050;;;;;;:::o;2489:185::-;2554:11;2577:16;2608:10;2596:9;:22;;;;;;2577:41;;2655:11;2641:25;;:11;:25;;;;;;;2489:185;-1:-1:-1;;;2489:185:14:o;1794:32::-;;;:::o;715:470:24:-;804:12;829:14;845;863:26;874:6;882;863:10;:26::i;:::-;1023:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;1023:32:24;;;;;1013:43;;;;;;929:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;929:246:24;;;;;;;919:257;;;;;;;;;715:470;-1:-1:-1;;;;;715:470:24:o;2795:425:14:-;2868:36;2916:22;2941:35;2960:15;2941:18;:35::i;:::-;2916:60;;3073:27;3128:11;3103:36;;3104:16;3123:1;3104:20;3103:36;;;;;;;;3073:66;;3168:16;:22;3185:4;3168:22;;;;;;;;;;;;;;;3191:21;3168:45;;;;;;;;;;;;;;;;;;;;3149:64;;2795:425;;;;;:::o;646:1040:26:-;730:21;753;776;826:23;:21;:23::i;:::-;809:40;;893:4;878:41;;;:43;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;878:43:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;878:43:26;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;878:43:26;950;;;;;;;;878;;-1:-1:-1;950:41:26;;;;;;:43;;;;;878;;950;;;;;;;;:41;:43;;;2:2:-1;;;;27:1;24;17:12;2:2;950:43:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;950:43:26;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;950:43:26;1170:34;;;;;;;;950:43;;-1:-1:-1;1105:16:26;;;;;;1170:32;;;;;;:34;;;;;;;;;;;;;;:32;:34;;;2:2:-1;;;;27:1;24;17:12;2:2;1170:34:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1170:34:26;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1170:34:26;;;;;;;;;;;;;-1:-1:-1;1170:34:26;;-1:-1:-1;1170:34:26;-1:-1:-1;1218:36:26;;;;;;;;1214:466;;1338:35;;;1481:62;;;1486:39;;;;;;;;:19;:39::i;:::-;:42;;;1481:48;;:62;1461:82;;;;1658:11;1607:62;;1612:39;1632:8;1612:39;;1642:8;1612:39;;:19;:39::i;:::-;:42;1607:48;;:62;1587:82;;;;;-1:-1:-1;1214:466:26;646:1040;;;;;;;;:::o;281:345:24:-;356:14;372;416:6;406:16;;:6;:16;;;;398:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;502:6;493:15;;:6;:15;;;:53;;531:6;539;493:53;;;512:6;520;493:53;474:72;;-1:-1:-1;474:72:24;-1:-1:-1;564:20:24;;;556:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;281:345;;;;;:::o;4623:433:14:-;4778:14;4836:40;;:::i;:::-;4879:110;;;;;;;;4967:11;4943:20;4922:18;:41;4921:57;;;;;;4879:110;;;;4836:153;-1:-1:-1;5011:38:14;:26;4836:153;5028:8;5011:16;:26::i;:::-;:36;:38::i;:::-;4999:50;;;4623:433;-1:-1:-1;;;;;;4623:433:14:o;422:121:26:-;510:25;:15;:25;;422:121::o;4526:706:2:-;4607:16;;:::i;:::-;4657:1;4643:11;:15;4635:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4715:14;4711:50;;-1:-1:-1;4738:23:2;;;;;;;;;-1:-1:-1;4738:23:2;;4731:30;;4711:50;4776:24;;;4772:454;;4816:14;4861:11;531:3;4834:23;;;4861:11;4833:39;;;;;;-1:-1:-1;4894:21:2;;;;4886:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4971:26;;;;;;;;4989:6;4971:26;;;;;4964:33;;;;;4772:454;5028:14;5045:45;5061:9;571:31;5078:11;5045:15;:45::i;:::-;5028:62;-1:-1:-1;5112:21:2;;;;5104:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4772:454;4526:706;;;;:::o;1694:237::-;1764:16;;:::i;:::-;1792:9;1823:6;;;:42;;-1:-1:-1;;1858:7:2;;1833:32;;1838:11;;;;1853:1;1838:11;1853:1;1833:21;;;;;:32;1823:42;1815:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:12;;;;;;;;;;;;;1694:237;-1:-1:-1;;;1694:237:2:o;1472:128::-;1571:7;531:3;1571:21;;1472:128::o;897:373:3:-;999:7;1019:9;1030;1043:13;1051:1;1054;1043:7;:13::i;:::-;1018:38;;;;1067:10;1093:1;1080:15;;;;;1090:1;1087;1080:15;1067:28;;1114:1;1109:2;:6;1105:18;;;1122:1;1117:6;;;;1105:18;1133:7;;;;;1155:6;1151:24;;1174:1;1170;:5;;;;;;1163:12;;;;;;;1151:24;1198:1;1194;:5;1186:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:16;1255:1;1258;1261;1247:7;:16::i;:::-;1240:23;897:373;-1:-1:-1;;;;;;;897:373:3:o;216:206::-;278:9;;;344:2;333:1;330;323:25;310:38;;366:1;362;:5;358:9;;386:1;381:2;:6;377:10;;406:1;401:2;:6;397:18;;;414:1;409:6;;;;397:18;216:206;;;;;;:::o;428:463::-;530:7;568:2;;;564:6;;;569:1;564:6;580:9;;;;;;;604:4;599:9;;;;;;;;;638:4;630;629:5;;628:14;;;;;685:1;:9;;;713:5;;;709:9;;704:14;737:5;;;733:9;;728:14;761:5;;;757:9;;752:14;785:5;;;781:9;;776:14;809:5;;;805:9;;800:14;833:5;;;829:9;;824:14;857:5;;;853:9;;848:14;;;628;;645:1;628:18;623:24;;;;618:29;;;;879:5;;428:463;-1:-1:-1;;428:463:3:o;704:5705:14:-;;;;;;;;;;-1:-1:-1;704:5705:14;;;:::o;:::-;;;;;;;;;;;;;;:::o","linkReferences":{},"immutableReferences":{"6227":[{"start":578,"length":32},{"start":1116,"length":32},{"start":1157,"length":32}],"6229":[{"start":536,"length":32},{"start":638,"length":32},{"start":795,"length":32}],"6231":[{"start":500,"length":32},{"start":1239,"length":32},{"start":1555,"length":32},{"start":1894,"length":32}],"6233":[{"start":759,"length":32},{"start":1428,"length":32},{"start":1511,"length":32},{"start":1607,"length":32}]}},"methodIdentifiers":{"consult(address,uint256,address)":"8c86f1e4","factory()":"c45a0155","granularity()":"556f0dc7","observationIndexOf(uint256)":"dbaad32f","pairObservations(address,uint256)":"bfcc8e42","periodSize()":"e4463eb2","update(address,address)":"c640752d","windowSize()":"8a14117a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"windowSize_\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"granularity_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"}],\"name\":\"consult\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"granularity\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"observationIndexOf\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"pairObservations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price0Cumulative\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price1Cumulative\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"windowSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/examples/ExampleSlidingWindowOracle.sol\":\"ExampleSlidingWindowOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]},\"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7\",\"urls\":[\"bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727\",\"dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH\"]},\"contracts/lib/solidity-lib/contracts/libraries/FixedPoint.sol\":{\"keccak256\":\"0xc3a39b8a11715cea45ad9f67f50e4e4c33778c1124acd59e90daf064c9a93974\",\"urls\":[\"bzz-raw://2c6c3cdcdb30caa5d15477550003b5dbb174cb2c0be3c012af030fce3d043f28\",\"dweb:/ipfs/QmWh3n5g6zq3umJcURnKCFhhif2c8yb6mKczFjfoCNLC3g\"]},\"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9\",\"urls\":[\"bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407\",\"dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891\",\"urls\":[\"bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389\",\"dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"contracts/lib/v2-periphery/contracts/examples/ExampleSlidingWindowOracle.sol\":{\"keccak256\":\"0x841da66bfa9ae7522ae03a2ac66a3f46001ff5bf558f7d5dd1227136eb8693b0\",\"urls\":[\"bzz-raw://1f359569fdbcae1fab55584f51eebd0cd589188e836d385cef3b40d10dfb1264\",\"dweb:/ipfs/QmWq6g4QYfzJuzjmyQjJDxMbojPE7VMSW57B8Zb39KANWv\"]},\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol\":{\"keccak256\":\"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9\",\"urls\":[\"bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c\",\"dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2OracleLibrary.sol\":{\"keccak256\":\"0x993538630a9568290c39140d54c034a66cf1b95cdeef4ba804a948c4ee2fc311\",\"urls\":[\"bzz-raw://adff017b539750d5ac84403360967c4d6b02a1ee9b8f2487f0bcddd7fa7c523e\",\"dweb:/ipfs/QmQqUiUvoezf33f2SZa64M8KgksHSXFPrGuwDvxijtXYMo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"factory_","type":"address"},{"internalType":"uint256","name":"windowSize_","type":"uint256"},{"internalType":"uint8","name":"granularity_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"tokenOut","type":"address"}],"stateMutability":"view","type":"function","name":"consult","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"granularity","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function","name":"observationIndexOf","outputs":[{"internalType":"uint8","name":"index","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"pairObservations","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"price0Cumulative","type":"uint256"},{"internalType":"uint256","name":"price1Cumulative","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"periodSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"update"},{"inputs":[],"stateMutability":"view","type":"function","name":"windowSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/examples/ExampleSlidingWindowOracle.sol":"ExampleSlidingWindowOracle"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol":{"keccak256":"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177","urls":["bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069","dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol":{"keccak256":"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7","urls":["bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727","dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/FixedPoint.sol":{"keccak256":"0xc3a39b8a11715cea45ad9f67f50e4e4c33778c1124acd59e90daf064c9a93974","urls":["bzz-raw://2c6c3cdcdb30caa5d15477550003b5dbb174cb2c0be3c012af030fce3d043f28","dweb:/ipfs/QmWh3n5g6zq3umJcURnKCFhhif2c8yb6mKczFjfoCNLC3g"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol":{"keccak256":"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9","urls":["bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407","dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol":{"keccak256":"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891","urls":["bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389","dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"contracts/lib/v2-periphery/contracts/examples/ExampleSlidingWindowOracle.sol":{"keccak256":"0x841da66bfa9ae7522ae03a2ac66a3f46001ff5bf558f7d5dd1227136eb8693b0","urls":["bzz-raw://1f359569fdbcae1fab55584f51eebd0cd589188e836d385cef3b40d10dfb1264","dweb:/ipfs/QmWq6g4QYfzJuzjmyQjJDxMbojPE7VMSW57B8Zb39KANWv"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol":{"keccak256":"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9","urls":["bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c","dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2OracleLibrary.sol":{"keccak256":"0x993538630a9568290c39140d54c034a66cf1b95cdeef4ba804a948c4ee2fc311","urls":["bzz-raw://adff017b539750d5ac84403360967c4d6b02a1ee9b8f2487f0bcddd7fa7c523e","dweb:/ipfs/QmQqUiUvoezf33f2SZa64M8KgksHSXFPrGuwDvxijtXYMo"],"license":null}},"version":1},"id":14} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleSwapToPrice.sol/ExampleSwapToPrice.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleSwapToPrice.sol/ExampleSwapToPrice.json new file mode 100644 index 0000000000..b5b38e21cd --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/ExampleSwapToPrice.sol/ExampleSwapToPrice.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"factory_","type":"address","internalType":"address"},{"name":"router_","type":"address","internalType":"contract IUniswapV2Router01"}],"stateMutability":"nonpayable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IUniswapV2Router01"}],"stateMutability":"view"},{"type":"function","name":"swapToPrice","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"truePriceTokenA","type":"uint256","internalType":"uint256"},{"name":"truePriceTokenB","type":"uint256","internalType":"uint256"},{"name":"maxSpendTokenA","type":"uint256","internalType":"uint256"},{"name":"maxSpendTokenB","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60c060405234801561001057600080fd5b506040516112c83803806112c88339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606092831b811660a052911b1660805260805160601c60a05160601c61123b61008d600039806101df52806105905250806102c3528061039a52806105b4525061123b6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063bef90fd314610046578063c45a0155146100aa578063f887ea40146100db575b600080fd5b6100a8600480360361010081101561005d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e001356100e3565b005b6100b261058e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b26105b2565b85158015906100f157508415155b61015c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f50524943450000604482015290519081900360640190fd5b8315158061016957508215155b6101d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015290519081900360640190fd5b6000806000806102057f00000000000000000000000000000000000000000000000000000000000000008d8d6105d6565b915091506102158a8a84846106be565b9094509250505080610272576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806111e46022913960400191505060405180910390fd5b60008261027f5785610281565b865b90508082111561028f578091505b60008361029c578a61029e565b8b5b90506000846102ad578c6102af565b8b5b90506102bd823330876107aa565b6102e8827f00000000000000000000000000000000000000000000000000000000000000008661097a565b6040805160028082526060808301845292602083019080368337019050509050828160008151811061031657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811061035e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed1739866000848c8c6040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561046d578181015183820152602001610455565b505050509050019650505050505050600060405180830381600087803b15801561049657600080fd5b505af11580156104aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156104f157600080fd5b810190808051604051939291908464010000000082111561051157600080fd5b90830190602082018581111561052657600080fd5b825186602082028301116401000000008211171561054357600080fd5b82525081516020918201928201910280838360005b83811015610570578181015183820152602001610558565b50505050905001604052505050505050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006105e58585610b41565b5090506000806105f6888888610c94565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561063b57600080fd5b505afa15801561064f573d6000803e3d6000fd5b505050506040513d606081101561066557600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146106ac5780826106af565b81815b90999098509650505050505050565b600080856106cd858786610d7f565b10915060006106e2858563ffffffff610e5416565b9050600061073461072f6106fe846103e863ffffffff610e5416565b86610709578961070b565b8a5b61072a6103e58961071c578d61071e565b8c5b9063ffffffff610e5416565b610d7f565b610ee0565b905060006103e58561075757610752876103e863ffffffff610e5416565b610769565b610769886103e863ffffffff610e5416565b8161077057fe5b0490508082101561078b5750600093508392506107a1915050565b61079b828263ffffffff61103516565b93505050505b94509492505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061088857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161084b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146108ea576040519150601f19603f3d011682016040523d82523d6000602084013e6108ef565b606091505b509150915081801561091d57508051158061091d575080806020019051602081101561091a57600080fd5b50515b610972576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806111636031913960400191505060405180910390fd5b505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310610a5057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a13565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610ab2576040519150601f19603f3d011682016040523d82523d6000602084013e610ab7565b606091505b5091509150818015610ae5575080511580610ae55750808060200190516020811015610ae257600080fd5b50515b610b3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806111b9602b913960400191505060405180910390fd5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610bc9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806111946025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610c03578284610c06565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610c8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b6000806000610ca38585610b41565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6000806000610d8e86866110a7565b9150915060008480610d9c57fe5b868809905082811115610db0576001820391505b918290039181610dce57848381610dc357fe5b049350505050610e4d565b848210610e3c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610e478383876110f2565b93505050505b9392505050565b6000811580610e6f57505080820282828281610e6c57fe5b04145b610eda57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b600081610eef57506000611030565b8160017001000000000000000000000000000000008210610f155760809190911c9060401b5b680100000000000000008210610f305760409190911c9060201b5b6401000000008210610f475760209190911c9060101b5b620100008210610f5c5760109190911c9060081b5b6101008210610f705760089190911c9060041b5b60108210610f835760049190911c9060021b5b60088210610f8f5760011b5b6001818581610f9a57fe5b048201901c90506001818581610fac57fe5b048201901c90506001818581610fbe57fe5b048201901c90506001818581610fd057fe5b048201901c90506001818581610fe257fe5b048201901c90506001818581610ff457fe5b048201901c9050600181858161100657fe5b048201901c9050600081858161101857fe5b049050808210611028578061102a565b815b93505050505b919050565b80820382811115610eda57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848609905083850292508281039150828110156110ea576001820391505b509250929050565b6000818103821680838161110257fe5b04925080858161110e57fe5b04945080816000038161111d57fe5b6002858103808702820302808702820302808702820302808702820302808702820302808702820302958602900390940293046001019390930293909301029291505056fe5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c6564556e697377617056324c6962726172793a204944454e544943414c5f4144445245535345535472616e7366657248656c7065723a3a73616665417070726f76653a20617070726f7665206661696c65644578616d706c6553776170546f50726963653a205a45524f5f414d4f554e545f494ea2646970667358221220b9fdec46b755bf640de05aa00e8d39d28e1d08904f680d0548fb8a92502f667264736f6c63430006060033","sourceMap":"433:2414:15:-:0;;;587:126;5:9:-1;2:2;;;27:1;24;17:12;2:2;587:126:15;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;587:126:15;;;;;;;-1:-1:-1;;;;;;662:18:15;;;;;;;;690:16;;;;;433:2414;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063bef90fd314610046578063c45a0155146100aa578063f887ea40146100db575b600080fd5b6100a8600480360361010081101561005d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e001356100e3565b005b6100b261058e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b26105b2565b85158015906100f157508415155b61015c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f50524943450000604482015290519081900360640190fd5b8315158061016957508215155b6101d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4578616d706c6553776170546f50726963653a205a45524f5f5350454e440000604482015290519081900360640190fd5b6000806000806102057f00000000000000000000000000000000000000000000000000000000000000008d8d6105d6565b915091506102158a8a84846106be565b9094509250505080610272576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806111e46022913960400191505060405180910390fd5b60008261027f5785610281565b865b90508082111561028f578091505b60008361029c578a61029e565b8b5b90506000846102ad578c6102af565b8b5b90506102bd823330876107aa565b6102e8827f00000000000000000000000000000000000000000000000000000000000000008661097a565b6040805160028082526060808301845292602083019080368337019050509050828160008151811061031657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811061035e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed1739866000848c8c6040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561046d578181015183820152602001610455565b505050509050019650505050505050600060405180830381600087803b15801561049657600080fd5b505af11580156104aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156104f157600080fd5b810190808051604051939291908464010000000082111561051157600080fd5b90830190602082018581111561052657600080fd5b825186602082028301116401000000008211171561054357600080fd5b82525081516020918201928201910280838360005b83811015610570578181015183820152602001610558565b50505050905001604052505050505050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006105e58585610b41565b5090506000806105f6888888610c94565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561063b57600080fd5b505afa15801561064f573d6000803e3d6000fd5b505050506040513d606081101561066557600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146106ac5780826106af565b81815b90999098509650505050505050565b600080856106cd858786610d7f565b10915060006106e2858563ffffffff610e5416565b9050600061073461072f6106fe846103e863ffffffff610e5416565b86610709578961070b565b8a5b61072a6103e58961071c578d61071e565b8c5b9063ffffffff610e5416565b610d7f565b610ee0565b905060006103e58561075757610752876103e863ffffffff610e5416565b610769565b610769886103e863ffffffff610e5416565b8161077057fe5b0490508082101561078b5750600093508392506107a1915050565b61079b828263ffffffff61103516565b93505050505b94509492505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061088857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161084b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146108ea576040519150601f19603f3d011682016040523d82523d6000602084013e6108ef565b606091505b509150915081801561091d57508051158061091d575080806020019051602081101561091a57600080fd5b50515b610972576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806111636031913960400191505060405180910390fd5b505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310610a5057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a13565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610ab2576040519150601f19603f3d011682016040523d82523d6000602084013e610ab7565b606091505b5091509150818015610ae5575080511580610ae55750808060200190516020811015610ae257600080fd5b50515b610b3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806111b9602b913960400191505060405180910390fd5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610bc9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806111946025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610c03578284610c06565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610c8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b6000806000610ca38585610b41565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6000806000610d8e86866110a7565b9150915060008480610d9c57fe5b868809905082811115610db0576001820391505b918290039181610dce57848381610dc357fe5b049350505050610e4d565b848210610e3c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610e478383876110f2565b93505050505b9392505050565b6000811580610e6f57505080820282828281610e6c57fe5b04145b610eda57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b600081610eef57506000611030565b8160017001000000000000000000000000000000008210610f155760809190911c9060401b5b680100000000000000008210610f305760409190911c9060201b5b6401000000008210610f475760209190911c9060101b5b620100008210610f5c5760109190911c9060081b5b6101008210610f705760089190911c9060041b5b60108210610f835760049190911c9060021b5b60088210610f8f5760011b5b6001818581610f9a57fe5b048201901c90506001818581610fac57fe5b048201901c90506001818581610fbe57fe5b048201901c90506001818581610fd057fe5b048201901c90506001818581610fe257fe5b048201901c90506001818581610ff457fe5b048201901c9050600181858161100657fe5b048201901c9050600081858161101857fe5b049050808210611028578061102a565b815b93505050505b919050565b80820382811115610eda57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848609905083850292508281039150828110156110ea576001820391505b509250929050565b6000818103821680838161110257fe5b04925080858161110e57fe5b04945080816000038161111d57fe5b6002858103808702820302808702820302808702820302808702820302808702820302808702820302958602900390940293046001019390930293909301029291505056fe5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c6564556e697377617056324c6962726172793a204944454e544943414c5f4144445245535345535472616e7366657248656c7065723a3a73616665417070726f76653a20617070726f7665206661696c65644578616d706c6553776170546f50726963653a205a45524f5f414d4f554e545f494ea2646970667358221220b9fdec46b755bf640de05aa00e8d39d28e1d08904f680d0548fb8a92502f667264736f6c63430006060033","sourceMap":"433:2414:15:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;433:2414:15;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;987:1858:15;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;987:1858:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;548:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;500:42;;;:::i;987:1858::-;1342:20;;;;;:44;;-1:-1:-1;1366:20:15;;;1342:44;1334:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1539:19;;;;:42;;-1:-1:-1;1562:19:15;;;1539:42;1531:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1627:9;1646:16;1687;1705;1725:53;1754:7;1763:6;1771;1725:28;:53::i;:::-;1686:92;;;;1811:158;1887:15;1904;1937:8;1947;1811:58;:158::i;:::-;1792:177;;-1:-1:-1;1792:177:15;-1:-1:-1;;;1998:12:15;1990:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2113:16;2132:4;:38;;2156:14;2132:38;;;2139:14;2132:38;2113:57;;2195:8;2184;:19;2180:69;;;2230:8;2219:19;;2180:69;2259:15;2277:4;:22;;2293:6;2277:22;;;2284:6;2277:22;2259:40;;2309:16;2328:4;:22;;2344:6;2328:22;;;2335:6;2328:22;2309:41;;2360:77;2392:7;2401:10;2421:4;2428:8;2360:31;:77::i;:::-;2447:62;2474:7;2491:6;2500:8;2447:26;:62::i;:::-;2544:16;;;2558:1;2544:16;;;2520:21;2544:16;;;;;2520:21;2544:16;;;;;109:14:-1;2544:16:15;88:42:-1;144:17;;-1:-1;2544:16:15;2520:40;;2580:7;2570:4;2575:1;2570:7;;;;;;;;;;;;;:17;;;;;;;;;;;2607:8;2597:4;2602:1;2597:7;;;;;;;;;;;;;:18;;;;;;;;;;;2626:6;:31;;;2671:8;2693:1;2786:4;2804:2;2820:8;2626:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2626:212:15;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2626:212:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2626:212:15;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2626:212:15;80:15:-1;;;97:9;76:31;65:43;;120:4;113:20;15:2;7:11;;4:2;;;31:1;28;21:12;4:2;2626:212:15;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;2626:212:15;;421:4:-1;412:14;;;;2626:212:15;;;;;412:14:-1;2626:212:15;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2626:212:15;;;;;;;;;;;;987:1858;;;;;;;;;;;;;;:::o;548:32::-;;;:::o;500:42::-;;;:::o;1241:387:24:-;1334:13;1349;1375:14;1394:26;1405:6;1413;1394:10;:26::i;:::-;1374:46;;;1431:13;1446;1479:32;1487:7;1496:6;1504;1479:7;:32::i;:::-;1464:60;;;:62;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1464:62:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1464:62:24;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1464:62:24;;;;;;;1430:96;;;;;-1:-1:-1;1430:96:24;;-1:-1:-1;1559:16:24;;;;;;;;:62;;1602:8;1612;1559:62;;;1579:8;1589;1559:62;1536:85;;;;-1:-1:-1;1241:387:24;-1:-1:-1;;;;;;;1241:387:24:o;640:903:25:-;825:9;836:16;926:15;871:52;887:8;897:15;914:8;871:15;:52::i;:::-;:70;;-1:-1:-1;952:17:25;972:22;:8;985;972:22;:12;:22;:::i;:::-;952:42;-1:-1:-1;1005:16:25;1024:232;1053:193;1086:19;952:42;1100:4;1086:19;:13;:19;:::i;:::-;1123:4;:40;;1148:15;1123:40;;;1130:15;1123:40;1181:51;1228:3;1182:4;:40;;1207:15;1182:40;;;1189:15;1182:40;1181:46;:51;:46;:51;:::i;:::-;1053:15;:193::i;:::-;1024:15;:232::i;:::-;1005:251;;1266:17;1337:3;1287:4;:46;;1315:18;:8;1328:4;1315:18;:12;:18;:::i;:::-;1287:46;;;1294:18;:8;1307:4;1294:18;:12;:18;:::i;:::-;1286:54;;;;;;1266:74;;1366:9;1355:8;:20;1351:43;;;-1:-1:-1;1385:5:25;;-1:-1:-1;1385:5:25;;-1:-1:-1;1377:17:25;;-1:-1:-1;;1377:17:25;1351:43;1513:23;:8;1526:9;1513:23;:12;:23;:::i;:::-;1502:34;;640:903;;;;;;;;;;;:::o;1096:486:4:-;1360:51;;;1349:10;1360:51;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1360:51:4;;;;;;;25:18:-1;;61:17;;96:58;182:15;1360:51:4;179:29:-1;160:49;;1349:63:4;;;;1314:12;;1328:17;;1349:10;;;;1360:51;1349:63;;;25:18:-1;1349:63:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1349:63:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1313:99:4;;;;1443:7;:57;;;;-1:-1:-1;1455:11:4;;:16;;:44;;;1486:4;1475:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1475:24:4;1455:44;1422:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1096:486;;;;;;:::o;212:434::-;436:45;;;425:10;436:45;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;436:45:4;;;;;;;25:18:-1;;61:17;;96:58;182:15;436:45:4;179:29:-1;160:49;;425:57:4;;;;390:12;;404:17;;425:10;;;;436:45;425:57;;;25:18:-1;425:57:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;425:57:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;389:93:4;;;;513:7;:57;;;;-1:-1:-1;525:11:4;;:16;;:44;;;556:4;545:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;545:24:4;525:44;492:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;212:434;;;;;:::o;281:345:24:-;356:14;372;416:6;406:16;;:6;:16;;;;398:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;502:6;493:15;;:6;:15;;;:53;;531:6;539;493:53;;;512:6;520;493:53;474:72;;-1:-1:-1;474:72:24;-1:-1:-1;564:20:24;;;556:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;281:345;;;;;:::o;715:470::-;804:12;829:14;845;863:26;874:6;882;863:10;:26::i;:::-;1023:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;1023:32:24;;;;;1013:43;;;;;;929:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;929:246:24;;;;;;;919:257;;;;;;;;;715:470;-1:-1:-1;;;;;715:470:24:o;897:373:3:-;999:7;1019:9;1030;1043:13;1051:1;1054;1043:7;:13::i;:::-;1018:38;;;;1067:10;1093:1;1080:15;;;;;1090:1;1087;1080:15;1067:28;;1114:1;1109:2;:6;1105:18;;;1122:1;1117:6;;;;1105:18;1133:7;;;;;1155:6;1151:24;;1174:1;1170;:5;;;;;;1163:12;;;;;;;1151:24;1198:1;1194;:5;1186:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:16;1255:1;1258;1261;1247:7;:16::i;:::-;1240:23;;;;;897:373;;;;;;:::o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;419:140;;;;:::o;382:1197:0:-;430:7;453:6;449:20;;-1:-1:-1;468:1:0;461:8;;449:20;644:1;667;688:35;682:41;;678:104;;746:3;739:10;;;;;769:2;763:8;678:104;801:19;795:2;:25;791:87;;843:2;836:9;;;;;865:2;859:8;791:87;897:11;891:2;:17;887:79;;931:2;924:9;;;;;953:2;947:8;887:79;985:7;979:2;:13;975:74;;1015:2;1008:9;;;;;1037:1;1031:7;975:74;1068:5;1062:2;:11;1058:71;;1096:1;1089:8;;;;;1117:1;1111:7;1058:71;1148:4;1142:2;:10;1138:70;;1175:1;1168:8;;;;;1196:1;1190:7;1138:70;1227:3;1221:2;:9;1217:47;;1252:1;1246:7;1217:47;1292:1;1286;1282;:5;;;;;;1278:1;:9;1277:16;;1273:20;;1322:1;1316;1312;:5;;;;;;1308:1;:9;1307:16;;1303:20;;1352:1;1346;1342;:5;;;;;;1338:1;:9;1337:16;;1333:20;;1382:1;1376;1372;:5;;;;;;1368:1;:9;1367:16;;1363:20;;1412:1;1406;1402;:5;;;;;;1398:1;:9;1397:16;;1393:20;;1442:1;1436;1432;:5;;;;;;1428:1;:9;1427:16;;1423:20;;1472:1;1466;1462;:5;;;;;;1458:1;:9;1457:16;;1453:20;;1520:10;1537:1;1533;:5;;;;;;1520:18;;1560:2;1556:1;:6;:15;;1569:2;1556:15;;;1565:1;1556:15;1548:24;;;;;382:1197;;;;:::o;286:127:23:-;369:5;;;364:16;;;;356:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:206:3;278:9;;;344:2;333:1;330;323:25;310:38;;366:1;362;:5;358:9;;386:1;381:2;:6;377:10;;406:1;401:2;:6;397:18;;;414:1;409:6;;;;397:18;216:206;;;;;;:::o;428:463::-;530:7;568:2;;;564:6;;;569:1;564:6;580:9;;;;;;;604:4;599:9;;;;;;;;;638:4;630;629:5;;628:14;;;;;685:1;:9;;;713:5;;;709:9;;704:14;737:5;;;733:9;;728:14;761:5;;;757:9;;752:14;785:5;;;781:9;;776:14;809:5;;;805:9;;800:14;833:5;;;829:9;;824:14;857:5;;;853:9;;848:14;;;628;;645:1;628:18;623:24;;;;618:29;;;;879:5;;428:463;-1:-1:-1;;428:463:3:o","linkReferences":{},"immutableReferences":{"6576":[{"start":707,"length":32},{"start":922,"length":32},{"start":1460,"length":32}],"6578":[{"start":479,"length":32},{"start":1424,"length":32}]}},"methodIdentifiers":{"factory()":"c45a0155","router()":"f887ea40","swapToPrice(address,address,uint256,uint256,uint256,uint256,address,uint256)":"bef90fd3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory_\",\"type\":\"address\"},{\"internalType\":\"contract IUniswapV2Router01\",\"name\":\"router_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"contract IUniswapV2Router01\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSpendTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSpendTokenB\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapToPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/examples/ExampleSwapToPrice.sol\":\"ExampleSwapToPrice\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]},\"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9\",\"urls\":[\"bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407\",\"dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B\"]},\"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd\",\"urls\":[\"bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595\",\"dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891\",\"urls\":[\"bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389\",\"dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"contracts/lib/v2-periphery/contracts/examples/ExampleSwapToPrice.sol\":{\"keccak256\":\"0xef5a7980b21c2f6dfc2ceabdefd937b006bb762b533cc2aa706c1ae7c326a673\",\"urls\":[\"bzz-raw://0960305bdeff4016c92c7b90a87e5cea6cabdb8668fdbbcee349f157b74c7509\",\"dweb:/ipfs/QmYFGWbivNLH3R51trC1Wrb1Ud52r6FkxB42ZUp3J19F3B\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3\",\"urls\":[\"bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66\",\"dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":{\"keccak256\":\"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2\",\"urls\":[\"bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb\",\"dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG\"]},\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol\":{\"keccak256\":\"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9\",\"urls\":[\"bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c\",\"dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2LiquidityMathLibrary.sol\":{\"keccak256\":\"0x61664f03d4f36cfd99bd4b3b874c7a090937a8921ec21c883b155cf22624cc1b\",\"urls\":[\"bzz-raw://571d4797fc11b11288de656361b2a5c01c7df3fba4be2309de83e23a8374b221\",\"dweb:/ipfs/QmPCSC2eX6URTMQ4zoFJPL4uj1d2tKhNMYQWrTVBcqm1UL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"factory_","type":"address"},{"internalType":"contract IUniswapV2Router01","name":"router_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"contract IUniswapV2Router01","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"truePriceTokenA","type":"uint256"},{"internalType":"uint256","name":"truePriceTokenB","type":"uint256"},{"internalType":"uint256","name":"maxSpendTokenA","type":"uint256"},{"internalType":"uint256","name":"maxSpendTokenB","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapToPrice"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/examples/ExampleSwapToPrice.sol":"ExampleSwapToPrice"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol":{"keccak256":"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177","urls":["bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069","dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol":{"keccak256":"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9","urls":["bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407","dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol":{"keccak256":"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd","urls":["bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595","dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol":{"keccak256":"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891","urls":["bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389","dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"contracts/lib/v2-periphery/contracts/examples/ExampleSwapToPrice.sol":{"keccak256":"0xef5a7980b21c2f6dfc2ceabdefd937b006bb762b533cc2aa706c1ae7c326a673","urls":["bzz-raw://0960305bdeff4016c92c7b90a87e5cea6cabdb8668fdbbcee349f157b74c7509","dweb:/ipfs/QmYFGWbivNLH3R51trC1Wrb1Ud52r6FkxB42ZUp3J19F3B"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol":{"keccak256":"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3","urls":["bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66","dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol":{"keccak256":"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2","urls":["bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb","dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol":{"keccak256":"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9","urls":["bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c","dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2LiquidityMathLibrary.sol":{"keccak256":"0x61664f03d4f36cfd99bd4b3b874c7a090937a8921ec21c883b155cf22624cc1b","urls":["bzz-raw://571d4797fc11b11288de656361b2a5c01c7df3fba4be2309de83e23a8374b221","dweb:/ipfs/QmPCSC2eX6URTMQ4zoFJPL4uj1d2tKhNMYQWrTVBcqm1UL"],"license":null}},"version":1},"id":15} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/FixedPoint.sol/FixedPoint.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/FixedPoint.sol/FixedPoint.json new file mode 100644 index 0000000000..a494bc3c0a --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/FixedPoint.sol/FixedPoint.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"Q112","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RESOLUTION","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"}],"bytecode":{"object":"0x60c4610025600b82828239805160001a60731461001857fe5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80633bf7a83e146042578063552f888a14605a575b600080fd5b60486076565b60408051918252519081900360200190f35b60606089565b6040805160ff9092168252519081900360200190f35b6e01000000000000000000000000000081565b60708156fea26469706673582212202aff64d66284c79c0cac988c53cc9e6135f844badc6fce42a3c523282d470e9b64736f6c63430006060033","sourceMap":"251:5884:2:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","linkReferences":{}},"deployedBytecode":{"object":"0x7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80633bf7a83e146042578063552f888a14605a575b600080fd5b60486076565b60408051918252519081900360200190f35b60606089565b6040805160ff9092168252519081900360200190f35b6e01000000000000000000000000000081565b60708156fea26469706673582212202aff64d66284c79c0cac988c53cc9e6135f844badc6fce42a3c523282d470e9b64736f6c63430006060033","sourceMap":"251:5884:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;540:62:2;;;:::i;:::-;;;;;;;;;;;;;;;;496:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;540:62;571:31;540:62;:::o;496:38::-;531:3;496:38;:::o","linkReferences":{}},"methodIdentifiers":{"Q112()":"3bf7a83e","RESOLUTION()":"552f888a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Q112\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESOLUTION\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/solidity-lib/contracts/libraries/FixedPoint.sol\":\"FixedPoint\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]},\"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7\",\"urls\":[\"bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727\",\"dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH\"]},\"contracts/lib/solidity-lib/contracts/libraries/FixedPoint.sol\":{\"keccak256\":\"0xc3a39b8a11715cea45ad9f67f50e4e4c33778c1124acd59e90daf064c9a93974\",\"urls\":[\"bzz-raw://2c6c3cdcdb30caa5d15477550003b5dbb174cb2c0be3c012af030fce3d043f28\",\"dweb:/ipfs/QmWh3n5g6zq3umJcURnKCFhhif2c8yb6mKczFjfoCNLC3g\"]},\"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9\",\"urls\":[\"bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407\",\"dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"Q112","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RESOLUTION","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/solidity-lib/contracts/libraries/FixedPoint.sol":"FixedPoint"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol":{"keccak256":"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177","urls":["bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069","dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol":{"keccak256":"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7","urls":["bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727","dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/FixedPoint.sol":{"keccak256":"0xc3a39b8a11715cea45ad9f67f50e4e4c33778c1124acd59e90daf064c9a93974","urls":["bzz-raw://2c6c3cdcdb30caa5d15477550003b5dbb174cb2c0be3c012af030fce3d043f28","dweb:/ipfs/QmWh3n5g6zq3umJcURnKCFhhif2c8yb6mKczFjfoCNLC3g"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol":{"keccak256":"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9","urls":["bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407","dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B"],"license":null}},"version":1},"id":2} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/FullMath.sol/FullMath.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/FullMath.sol/FullMath.json new file mode 100644 index 0000000000..6b46e954b9 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/FullMath.sol/FullMath.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f4b5d78215f1fa1cfb8638d3f8df572d7ef245e6ad60c5f97b06fa543329194664736f6c63430006060033","sourceMap":"193:1079:3:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f4b5d78215f1fa1cfb8638d3f8df572d7ef245e6ad60c5f97b06fa543329194664736f6c63430006060033","sourceMap":"193:1079:3:-:0;;;;;;12:1:-1;9;2:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol\":\"FullMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9\",\"urls\":[\"bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407\",\"dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol":"FullMath"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol":{"keccak256":"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9","urls":["bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407","dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B"],"license":null}},"version":1},"id":3} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IERC20.sol/IERC20.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IERC20.sol/IERC20.json new file mode 100644 index 0000000000..96009d5e70 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IERC20.sol/IERC20.json @@ -0,0 +1 @@ +{"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":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"value","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":"value","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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3\",\"urls\":[\"bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66\",\"dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol":"IERC20"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol":{"keccak256":"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3","urls":["bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66","dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb"],"license":null}},"version":1},"id":16} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV1Exchange.sol/IUniswapV1Exchange.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV1Exchange.sol/IUniswapV1Exchange.json new file mode 100644 index 0000000000..2010c78113 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV1Exchange.sol/IUniswapV1Exchange.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ethToTokenSwapInput","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"removeLiquidity","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"tokenToEthSwapInput","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","ethToTokenSwapInput(uint256,uint256)":"f39b5b9b","removeLiquidity(uint256,uint256,uint256,uint256)":"f88bf15a","tokenToEthSwapInput(uint256,uint256,uint256)":"95e3c50b","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ethToTokenSwapInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenToEthSwapInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Exchange.sol\":\"IUniswapV1Exchange\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Exchange.sol\":{\"keccak256\":\"0xcec8976f205e71a3a5ebdd7130d321484df4e4b6b1091d21d435173acfb6e14b\",\"urls\":[\"bzz-raw://681de3c6ee08cccee6839b3a65f8d80c2c6e55ba5a3aba51f83578a5fef52a65\",\"dweb:/ipfs/QmcJMhgj7CgchN4sxR8MbzJt8DrbJuB6PCdD2fdQ9Ct1qi\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function","name":"ethToTokenSwapInput","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"tokenToEthSwapInput","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Exchange.sol":"IUniswapV1Exchange"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Exchange.sol":{"keccak256":"0xcec8976f205e71a3a5ebdd7130d321484df4e4b6b1091d21d435173acfb6e14b","urls":["bzz-raw://681de3c6ee08cccee6839b3a65f8d80c2c6e55ba5a3aba51f83578a5fef52a65","dweb:/ipfs/QmcJMhgj7CgchN4sxR8MbzJt8DrbJuB6PCdD2fdQ9Ct1qi"],"license":null}},"version":1},"id":21} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV1Factory.sol/IUniswapV1Factory.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV1Factory.sol/IUniswapV1Factory.json new file mode 100644 index 0000000000..5aa08daa6f --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV1Factory.sol/IUniswapV1Factory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getExchange","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getExchange(address)":"06f2bf62"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getExchange\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Factory.sol\":\"IUniswapV1Factory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Factory.sol\":{\"keccak256\":\"0x2a554e26d874fa4b10736f2e2ac1ba6253cd1ad08a97bd941cb0a41015565589\",\"urls\":[\"bzz-raw://bbe29db0ebf08621cb4211219c02262be9c7510fe03bab94f849a38993f957d6\",\"dweb:/ipfs/QmTutAVpjg925m4JLqHTvukdTyoTr77FotAUAA2AzGug1f\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"getExchange","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Factory.sol":"IUniswapV1Factory"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Factory.sol":{"keccak256":"0x2a554e26d874fa4b10736f2e2ac1ba6253cd1ad08a97bd941cb0a41015565589","urls":["bzz-raw://bbe29db0ebf08621cb4211219c02262be9c7510fe03bab94f849a38993f957d6","dweb:/ipfs/QmTutAVpjg925m4JLqHTvukdTyoTr77FotAUAA2AzGug1f"],"license":null}},"version":1},"id":22} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Callee.sol/IUniswapV2Callee.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Callee.sol/IUniswapV2Callee.json new file mode 100644 index 0000000000..6efe9deb88 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Callee.sol/IUniswapV2Callee.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"uniswapV2Call","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"uniswapV2Call(address,uint256,uint256,bytes)":"10d1e85c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV2Call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Callee.sol\":\"IUniswapV2Callee\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Callee.sol\":{\"keccak256\":\"0xdb17a1fb73e261e736ae8862be2d9a32964fc4b3741f48980f5cdc9d92b99a96\",\"urls\":[\"bzz-raw://468dab23a95d9d9b7d6ce74008d45eef3de2f137ede604e6be6c5e7d0121c5e9\",\"dweb:/ipfs/QmcXwjTfp6tCRgf1KsNQyUAtrqKhiaN6fbaHVGr22eficP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV2Call"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Callee.sol":"IUniswapV2Callee"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Callee.sol":{"keccak256":"0xdb17a1fb73e261e736ae8862be2d9a32964fc4b3741f48980f5cdc9d92b99a96","urls":["bzz-raw://468dab23a95d9d9b7d6ce74008d45eef3de2f137ede604e6be6c5e7d0121c5e9","dweb:/ipfs/QmcXwjTfp6tCRgf1KsNQyUAtrqKhiaN6fbaHVGr22eficP"],"license":null}},"version":1},"id":5} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Factory.sol/IUniswapV2Factory.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Factory.sol/IUniswapV2Factory.json new file mode 100644 index 0000000000..4fa962fb42 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Factory.sol/IUniswapV2Factory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allPairs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"allPairsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"createPair","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"feeTo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"feeToSetter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPair","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setFeeTo","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeToSetter","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"PairCreated","inputs":[{"name":"token0","type":"address","indexed":true,"internalType":"address"},{"name":"token1","type":"address","indexed":true,"internalType":"address"},{"name":"pair","type":"address","indexed":false,"internalType":"address"},{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allPairs(uint256)":"1e3dd18b","allPairsLength()":"574f2ba3","createPair(address,address)":"c9c65396","feeTo()":"017e7e58","feeToSetter()":"094b7415","getPair(address,address)":"e6a43905","setFeeTo(address)":"f46901ed","setFeeToSetter(address)":"a2e74af6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"PairCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allPairsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeToSetter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891\",\"urls\":[\"bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389\",\"dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token0","type":"address","indexed":true},{"internalType":"address","name":"token1","type":"address","indexed":true},{"internalType":"address","name":"pair","type":"address","indexed":false},{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"PairCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"allPairs","outputs":[{"internalType":"address","name":"pair","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allPairsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createPair","outputs":[{"internalType":"address","name":"pair","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeToSetter","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"view","type":"function","name":"getPair","outputs":[{"internalType":"address","name":"pair","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeTo"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeToSetter"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol":"IUniswapV2Factory"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol":{"keccak256":"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891","urls":["bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389","dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt"],"license":null}},"version":1},"id":6} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Migrator.sol/IUniswapV2Migrator.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Migrator.sol/IUniswapV2Migrator.json new file mode 100644 index 0000000000..2915828130 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Migrator.sol/IUniswapV2Migrator.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"migrate","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"migrate(address,uint256,uint256,address,uint256)":"b7df1d25"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Migrator.sol\":\"IUniswapV2Migrator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Migrator.sol\":{\"keccak256\":\"0xa83ac0f597c04134b3ea423fd55d3077e952197c1991e23c4e304bfb35a90124\",\"urls\":[\"bzz-raw://ec1a3358caaa80af192bf4a8913041b037736412d7d6d5e894d58dadfab3a1da\",\"dweb:/ipfs/QmbYVrgxQZVevcBgTcPUFutk5mpj61BAdmTPMXGiBt1vA8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"migrate"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Migrator.sol":"IUniswapV2Migrator"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Migrator.sol":{"keccak256":"0xa83ac0f597c04134b3ea423fd55d3077e952197c1991e23c4e304bfb35a90124","urls":["bzz-raw://ec1a3358caaa80af192bf4a8913041b037736412d7d6d5e894d58dadfab3a1da","dweb:/ipfs/QmbYVrgxQZVevcBgTcPUFutk5mpj61BAdmTPMXGiBt1vA8"],"license":null}},"version":1},"id":17} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Pair.sol/IUniswapV2Pair.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Pair.sol/IUniswapV2Pair.json new file mode 100644 index 0000000000..7f61d8cbf6 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Pair.sol/IUniswapV2Pair.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MINIMUM_LIQUIDITY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"PERMIT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"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":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getReserves","inputs":[],"outputs":[{"name":"reserve0","type":"uint112","internalType":"uint112"},{"name":"reserve1","type":"uint112","internalType":"uint112"},{"name":"blockTimestampLast","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"kLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"price0CumulativeLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"price1CumulativeLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"skim","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"amount0Out","type":"uint256","internalType":"uint256"},{"name":"amount1Out","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"sync","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"value","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":"value","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":"Burn","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0In","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1In","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount0Out","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1Out","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Sync","inputs":[{"name":"reserve0","type":"uint112","indexed":false,"internalType":"uint112"},{"name":"reserve1","type":"uint112","indexed":false,"internalType":"uint112"}],"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","MINIMUM_LIQUIDITY()":"ba9a7a56","PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address)":"89afcb44","decimals()":"313ce567","factory()":"c45a0155","getReserves()":"0902f1ac","initialize(address,address)":"485cc955","kLast()":"7464fc3d","mint(address)":"6a627842","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","price0CumulativeLast()":"5909c0d5","price1CumulativeLast()":"5a3d5493","skim(address)":"bc25cf77","swap(uint256,uint256,address,bytes)":"022c0d9f","symbol()":"95d89b41","sync()":"fff6cae9","token0()":"0dfe1681","token1()":"d21220a7","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"name\":\"Sync\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"skim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0In","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1In","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount0Out","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1Out","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"Swap","anonymous":false},{"inputs":[{"internalType":"uint112","name":"reserve0","type":"uint112","indexed":false},{"internalType":"uint112","name":"reserve1","type":"uint112","indexed":false}],"type":"event","name":"Sync","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getReserves","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"},{"internalType":"uint32","name":"blockTimestampLast","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"skim"},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap"},{"inputs":[],"stateMutability":"pure","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"sync"},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":"IUniswapV2Pair"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null}},"version":1},"id":7} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Router01.sol/IUniswapV2Router01.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Router01.sol/IUniswapV2Router01.json new file mode 100644 index 0000000000..6ca33698e7 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Router01.sol/IUniswapV2Router01.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"addLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"amountADesired","type":"uint256","internalType":"uint256"},{"name":"amountBDesired","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"addLiquidityETH","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amountTokenDesired","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getAmountIn","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"reserveIn","type":"uint256","internalType":"uint256"},{"name":"reserveOut","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getAmountOut","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"reserveIn","type":"uint256","internalType":"uint256"},{"name":"reserveOut","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getAmountsIn","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getAmountsOut","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"reserveA","type":"uint256","internalType":"uint256"},{"name":"reserveB","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"removeLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETH","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETHWithPermit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"approveMax","type":"bool","internalType":"bool"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityWithPermit","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"approveMax","type":"bool","internalType":"bool"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapETHForExactTokens","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"swapExactETHForTokens","inputs":[{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"swapExactTokensForETH","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactTokensForTokens","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactETH","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactTokens","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"WETH()":"ad5c4648","addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)":"e8e33700","addLiquidityETH(address,uint256,uint256,uint256,address,uint256)":"f305d719","factory()":"c45a0155","getAmountIn(uint256,uint256,uint256)":"85f8c259","getAmountOut(uint256,uint256,uint256)":"054d50d4","getAmountsIn(uint256,address[])":"1f00ca74","getAmountsOut(uint256,address[])":"d06ca61f","quote(uint256,uint256,uint256)":"ad615dec","removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)":"baa2abde","removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)":"02751cec","removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"ded9382a","removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"2195995c","swapETHForExactTokens(uint256,address[],address,uint256)":"fb3bdb41","swapExactETHForTokens(uint256,address[],address,uint256)":"7ff36ab5","swapExactTokensForETH(uint256,uint256,address[],address,uint256)":"18cbafe5","swapExactTokensForTokens(uint256,uint256,address[],address,uint256)":"38ed1739","swapTokensForExactETH(uint256,uint256,address[],address,uint256)":"4a25d94a","swapTokensForExactTokens(uint256,uint256,address[],address,uint256)":"8803dbee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityETHWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapETHForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactETHForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":\"IUniswapV2Router01\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":{\"keccak256\":\"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2\",\"urls\":[\"bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb\",\"dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"addLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"stateMutability":"view","type":"function","name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"stateMutability":"view","type":"function","name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"stateMutability":"pure","type":"function","name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETHWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapETHForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol":"IUniswapV2Router01"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol":{"keccak256":"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2","urls":["bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb","dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG"],"license":null}},"version":1},"id":18} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Router02.sol/IUniswapV2Router02.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Router02.sol/IUniswapV2Router02.json new file mode 100644 index 0000000000..7071c5e055 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IUniswapV2Router02.sol/IUniswapV2Router02.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"addLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"amountADesired","type":"uint256","internalType":"uint256"},{"name":"amountBDesired","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"addLiquidityETH","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amountTokenDesired","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getAmountIn","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"reserveIn","type":"uint256","internalType":"uint256"},{"name":"reserveOut","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getAmountOut","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"reserveIn","type":"uint256","internalType":"uint256"},{"name":"reserveOut","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getAmountsIn","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getAmountsOut","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"reserveA","type":"uint256","internalType":"uint256"},{"name":"reserveB","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"removeLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETH","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETHSupportingFeeOnTransferTokens","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETHWithPermit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"approveMax","type":"bool","internalType":"bool"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"approveMax","type":"bool","internalType":"bool"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityWithPermit","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"approveMax","type":"bool","internalType":"bool"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapETHForExactTokens","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"swapExactETHForTokens","inputs":[{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"swapExactETHForTokensSupportingFeeOnTransferTokens","inputs":[{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"swapExactTokensForETH","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactTokensForETHSupportingFeeOnTransferTokens","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactTokensForTokens","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactETH","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactTokens","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"WETH()":"ad5c4648","addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)":"e8e33700","addLiquidityETH(address,uint256,uint256,uint256,address,uint256)":"f305d719","factory()":"c45a0155","getAmountIn(uint256,uint256,uint256)":"85f8c259","getAmountOut(uint256,uint256,uint256)":"054d50d4","getAmountsIn(uint256,address[])":"1f00ca74","getAmountsOut(uint256,address[])":"d06ca61f","quote(uint256,uint256,uint256)":"ad615dec","removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)":"baa2abde","removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)":"02751cec","removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)":"af2979eb","removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"ded9382a","removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"5b0d5984","removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"2195995c","swapETHForExactTokens(uint256,address[],address,uint256)":"fb3bdb41","swapExactETHForTokens(uint256,address[],address,uint256)":"7ff36ab5","swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)":"b6f9de95","swapExactTokensForETH(uint256,uint256,address[],address,uint256)":"18cbafe5","swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)":"791ac947","swapExactTokensForTokens(uint256,uint256,address[],address,uint256)":"38ed1739","swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)":"5c11d795","swapTokensForExactETH(uint256,uint256,address[],address,uint256)":"4a25d94a","swapTokensForExactTokens(uint256,uint256,address[],address,uint256)":"8803dbee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityETHSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityETHWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapETHForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactETHForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactETHForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForETHSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol\":\"IUniswapV2Router02\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":{\"keccak256\":\"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2\",\"urls\":[\"bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb\",\"dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol\":{\"keccak256\":\"0x744e30c133bd0f7ca9e7163433cf6d72f45c6bb1508c2c9c02f1a6db796ae59d\",\"urls\":[\"bzz-raw://9bf2f4454ad63d4cff03a0630e787d9e8a9deed80aec89682cd8ad6379d9ef8c\",\"dweb:/ipfs/Qme51hQNR2wpax7ooUadhtqLtXm8ffeVVYyubLkTT4wMCG\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"addLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"stateMutability":"view","type":"function","name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"stateMutability":"view","type":"function","name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"stateMutability":"pure","type":"function","name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETHSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETHWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapETHForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapExactETHForTokensSupportingFeeOnTransferTokens"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForETHSupportingFeeOnTransferTokens"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForTokensSupportingFeeOnTransferTokens"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol":"IUniswapV2Router02"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol":{"keccak256":"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2","urls":["bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb","dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol":{"keccak256":"0x744e30c133bd0f7ca9e7163433cf6d72f45c6bb1508c2c9c02f1a6db796ae59d","urls":["bzz-raw://9bf2f4454ad63d4cff03a0630e787d9e8a9deed80aec89682cd8ad6379d9ef8c","dweb:/ipfs/Qme51hQNR2wpax7ooUadhtqLtXm8ffeVVYyubLkTT4wMCG"],"license":null}},"version":1},"id":19} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IWETH.sol/IWETH.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IWETH.sol/IWETH.json new file mode 100644 index 0000000000..e15b5b1dfc --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/IWETH.sol/IWETH.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"deposit()":"d0e30db0","transfer(address,uint256)":"a9059cbb","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/interfaces/IWETH.sol\":\"IWETH\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/interfaces/IWETH.sol\":{\"keccak256\":\"0xfc10758fd8dba790c39468dccd358cb7cef06ae7c4781832cc7aa76f91f167e6\",\"urls\":[\"bzz-raw://dc22493dea6c60d47835eeba53726f8a6f76f4fcd798d40e54608a1380515d49\",\"dweb:/ipfs/QmS1QVcBRH4TELYNE7XCfjSVQEWFupyaNLKmMkKH7iPjrm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/interfaces/IWETH.sol":"IWETH"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/interfaces/IWETH.sol":{"keccak256":"0xfc10758fd8dba790c39468dccd358cb7cef06ae7c4781832cc7aa76f91f167e6","urls":["bzz-raw://dc22493dea6c60d47835eeba53726f8a6f76f4fcd798d40e54608a1380515d49","dweb:/ipfs/QmS1QVcBRH4TELYNE7XCfjSVQEWFupyaNLKmMkKH7iPjrm"],"license":null}},"version":1},"id":20} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/RouterEventEmitter.sol/RouterEventEmitter.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/RouterEventEmitter.sol/RouterEventEmitter.json new file mode 100644 index 0000000000..fb86afe208 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/RouterEventEmitter.sol/RouterEventEmitter.json @@ -0,0 +1 @@ +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"swapETHForExactTokens","inputs":[{"name":"router","type":"address","internalType":"address"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"swapExactETHForTokens","inputs":[{"name":"router","type":"address","internalType":"address"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"swapExactTokensForETH","inputs":[{"name":"router","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactTokensForTokens","inputs":[{"name":"router","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactETH","inputs":[{"name":"router","type":"address","internalType":"address"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactTokens","inputs":[{"name":"router","type":"address","internalType":"address"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Amounts","inputs":[{"name":"amounts","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50611051806100206000396000f3fe6080604052600436106100695760003560e01c8063b05f579e11610043578063b05f579e146102bd578063fa3219d51461036b578063fde1adda1461042d57610070565b806322b5841014610075578063375734d9146101395780639c91fcb5146101fb57610070565b3661007057005b600080fd5b34801561008157600080fd5b50610137600480360360c081101561009857600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691602081013591604082013591908101906080810160608201356401000000008111156100dc57600080fd5b8201836020820111156100ee57600080fd5b8035906020019184602083028401116401000000008311171561011057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356104db565b005b34801561014557600080fd5b50610137600480360360c081101561015c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691602081013591604082013591908101906080810160608201356401000000008111156101a057600080fd5b8201836020820111156101b257600080fd5b803590602001918460208302840111640100000000831117156101d457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356107c5565b34801561020757600080fd5b50610137600480360360c081101561021e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561026257600080fd5b82018360208201111561027457600080fd5b8035906020019184602083028401116401000000008311171561029657600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561091d565b610137600480360360a08110156102d357600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561031057600080fd5b82018360208201111561032257600080fd5b8035906020019184602083028401116401000000008311171561034457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a75565b34801561037757600080fd5b50610137600480360360c081101561038e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691602081013591604082013591908101906080810160608201356401000000008111156103d257600080fd5b8201836020820111156103e457600080fd5b8035906020019184602083028401116401000000008311171561040657600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610d56565b610137600480360360a081101561044357600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561048057600080fd5b82018360208201111561049257600080fd5b803590602001918460208302840111640100000000831117156104b457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610eae565b600060608873ffffffffffffffffffffffffffffffffffffffff16638803dbee60e01b89898989898960405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b6020831061063457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016105f7565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610694576040519150601f19603f3d011682016040523d82523d6000602084013e610699565b606091505b5091509150816106a557fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156106db57600080fd5b81019080805160405193929190846401000000008211156106fb57600080fd5b90830190602082018581111561071057600080fd5b825186602082028301116401000000008211171561072d57600080fd5b82525081516020918201928201910280838360005b8381101561075a578181015183820152602001610742565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107a757818101518382015260200161078f565b505050509050019250505060405180910390a1505050505050505050565b600060608873ffffffffffffffffffffffffffffffffffffffff166338ed173960e01b89898989898960405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083836020831061063457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016105f7565b600060608873ffffffffffffffffffffffffffffffffffffffff166318cbafe560e01b89898989898960405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083836020831061063457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016105f7565b600060608773ffffffffffffffffffffffffffffffffffffffff1663fb3bdb4160e01b888888888860405160240180868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610bc657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b89565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610c26576040519150601f19603f3d011682016040523d82523d6000602084013e610c2b565b606091505b509150915081610c3757fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b3818060200190516020811015610c6d57600080fd5b8101908080516040519392919084640100000000821115610c8d57600080fd5b908301906020820185811115610ca257600080fd5b8251866020820283011164010000000082111715610cbf57600080fd5b82525081516020918201928201910280838360005b83811015610cec578181015183820152602001610cd4565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d39578181015183820152602001610d21565b505050509050019250505060405180910390a15050505050505050565b600060608873ffffffffffffffffffffffffffffffffffffffff16634a25d94a60e01b89898989898960405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083836020831061063457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016105f7565b600060608773ffffffffffffffffffffffffffffffffffffffff16637ff36ab560e01b888888888860405160240180868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09081169094018281039094018252928352602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909d169c909c178c5292518151919b909a508a995097509550859450879350869250508310610bc657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b8956fea264697066735822122058b08b5bdc06b0478e678c4ebdef5b93d63c9caaad3689620c1d4f7f870d31ed64736f6c63430006060033","sourceMap":"73:3117:29:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;73:3117:29;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c8063b05f579e11610043578063b05f579e146102bd578063fa3219d51461036b578063fde1adda1461042d57610070565b806322b5841014610075578063375734d9146101395780639c91fcb5146101fb57610070565b3661007057005b600080fd5b34801561008157600080fd5b50610137600480360360c081101561009857600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691602081013591604082013591908101906080810160608201356401000000008111156100dc57600080fd5b8201836020820111156100ee57600080fd5b8035906020019184602083028401116401000000008311171561011057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356104db565b005b34801561014557600080fd5b50610137600480360360c081101561015c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691602081013591604082013591908101906080810160608201356401000000008111156101a057600080fd5b8201836020820111156101b257600080fd5b803590602001918460208302840111640100000000831117156101d457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356107c5565b34801561020757600080fd5b50610137600480360360c081101561021e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561026257600080fd5b82018360208201111561027457600080fd5b8035906020019184602083028401116401000000008311171561029657600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561091d565b610137600480360360a08110156102d357600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561031057600080fd5b82018360208201111561032257600080fd5b8035906020019184602083028401116401000000008311171561034457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a75565b34801561037757600080fd5b50610137600480360360c081101561038e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691602081013591604082013591908101906080810160608201356401000000008111156103d257600080fd5b8201836020820111156103e457600080fd5b8035906020019184602083028401116401000000008311171561040657600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610d56565b610137600480360360a081101561044357600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561048057600080fd5b82018360208201111561049257600080fd5b803590602001918460208302840111640100000000831117156104b457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610eae565b600060608873ffffffffffffffffffffffffffffffffffffffff16638803dbee60e01b89898989898960405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b6020831061063457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016105f7565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610694576040519150601f19603f3d011682016040523d82523d6000602084013e610699565b606091505b5091509150816106a557fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b38180602001905160208110156106db57600080fd5b81019080805160405193929190846401000000008211156106fb57600080fd5b90830190602082018581111561071057600080fd5b825186602082028301116401000000008211171561072d57600080fd5b82525081516020918201928201910280838360005b8381101561075a578181015183820152602001610742565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107a757818101518382015260200161078f565b505050509050019250505060405180910390a1505050505050505050565b600060608873ffffffffffffffffffffffffffffffffffffffff166338ed173960e01b89898989898960405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083836020831061063457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016105f7565b600060608873ffffffffffffffffffffffffffffffffffffffff166318cbafe560e01b89898989898960405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083836020831061063457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016105f7565b600060608773ffffffffffffffffffffffffffffffffffffffff1663fb3bdb4160e01b888888888860405160240180868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f8201169050808301925050509650505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610bc657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b89565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610c26576040519150601f19603f3d011682016040523d82523d6000602084013e610c2b565b606091505b509150915081610c3757fe5b7f4cc17991e3610e3400e74a8306aa421daaee1e3446fa22b490604610999e10b3818060200190516020811015610c6d57600080fd5b8101908080516040519392919084640100000000821115610c8d57600080fd5b908301906020820185811115610ca257600080fd5b8251866020820283011164010000000082111715610cbf57600080fd5b82525081516020918201928201910280838360005b83811015610cec578181015183820152602001610cd4565b505050509050016040525050506040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d39578181015183820152602001610d21565b505050509050019250505060405180910390a15050505050505050565b600060608873ffffffffffffffffffffffffffffffffffffffff16634a25d94a60e01b89898989898960405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083836020831061063457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016105f7565b600060608773ffffffffffffffffffffffffffffffffffffffff16637ff36ab560e01b888888888860405160240180868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825286868281815260200192506020028082843760008382015260408051601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09081169094018281039094018252928352602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909d169c909c178c5292518151919b909a508a995097509550859450879350869250508310610bc657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b8956fea264697066735822122058b08b5bdc06b0478e678c4ebdef5b93d63c9caaad3689620c1d4f7f870d31ed64736f6c63430006060033","sourceMap":"73:3117:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;694:510:29;;5:9:-1;2:2;;;27:1;24;17:12;2:2;694:510:29;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;694:510:29;;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;694:510:29;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;694:510:29;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;694:510:29;;-1:-1:-1;694:510:29;-1:-1:-1;694:510:29;;;;;;;;;:::i;:::-;;178;;5:9:-1;2:2;;;27:1;24;17:12;2:2;178:510:29;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;178:510:29;;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;178:510:29;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;178:510:29;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;178:510:29;;-1:-1:-1;178:510:29;-1:-1:-1;178:510:29;;;;;;;;;:::i;2205:504::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2205:504:29;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;2205:504:29;;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;2205:504:29;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2205:504:29;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2205:504:29;;-1:-1:-1;2205:504:29;-1:-1:-1;2205:504:29;;;;;;;;;:::i;2715:473::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;2715:473:29;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;2715:473:29;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2715:473:29;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2715:473:29;;-1:-1:-1;2715:473:29;-1:-1:-1;2715:473:29;;;;;;;;;:::i;1695:504::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1695:504:29;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;1695:504:29;;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;1695:504:29;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1695:504:29;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1695:504:29;;-1:-1:-1;1695:504:29;-1:-1:-1;1695:504:29;;;;;;;;;:::i;1210:479::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;1210:479:29;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;1210:479:29;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1210:479:29;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1210:479:29;;-1:-1:-1;1210:479:29;-1:-1:-1;1210:479:29;;;;;;;;;:::i;694:510::-;904:12;918:23;945:6;:19;;1001:60;;;1063:9;1074:11;1087:4;;1093:2;1097:8;965:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;965:150:29;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;965:150:29;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;965:150:29;945:171;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;945:171:29;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;903:213:29;;;;1133:7;1126:15;;;;1156:41;1175:10;1164:32;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1164:32:29;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;1164:32:29;;421:4:-1;412:14;;;;1164:32:29;;;;;412:14:-1;1164:32:29;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1164:32:29;;;;;;;;;;;1156:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1156:41:29;;;;;;;;;;;;;;;;;694:510;;;;;;;;;:::o;178:::-;388:12;402:23;429:6;:19;;485:60;;;547:8;557:12;571:4;;577:2;581:8;449:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;449:150:29;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;449:150:29;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;449:150:29;429:171;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;2205:504:29;2412:12;2426:23;2453:6;:19;;2509:57;;;2568:8;2578:12;2592:4;;2598:2;2602:8;2473:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2473:147:29;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2473:147:29;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2473:147:29;2453:168;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;2715:473:29;2904:12;2918:23;2945:6;:19;;3001:57;;;3060:9;3071:4;;3077:2;3081:8;2965:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2965:134:29;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2965:134:29;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2965:134:29;2945:155;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2945:155:29;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;2903:197:29;;;;3117:7;3110:15;;;;3140:41;3159:10;3148:32;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3148:32:29;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;3148:32:29;;421:4:-1;412:14;;;;3148:32:29;;;;;412:14:-1;3148:32:29;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3148:32:29;;;;;;;;;;;3140:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3140:41:29;;;;;;;;;;;;;;;;;2715:473;;;;;;;;:::o;1695:504::-;1902:12;1916:23;1943:6;:19;;1999:57;;;2058:9;2069:11;2082:4;;2088:2;2092:8;1963:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1963:147:29;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1963:147:29;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;1963:147:29;1943:168;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;1210:479:29;1402:12;1416:23;1443:6;:19;;1499:57;;;1558:12;1572:4;;1578:2;1582:8;1463:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;1463:137:29;;;137:4:-1;117:14;;;133:9;113:30;;;157:16;;;26:21;;;22:32;;;6:49;;1463:137:29;;;49:4:-1;25:18;;;61:17;;1463:137:29;182:15:-1;1463:137:29;;;;179:29:-1;;;;160:49;;1443:158:29;;;;1463:137;;1443:158;;-1:-1:-1;1443:158:29;;-1:-1:-1;25:18;-1:-1;1443:158:29;-1:-1:-1;1443:158:29;;-1:-1:-1;1443:158:29;;-1:-1:-1;25:18;;-1:-1;;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;","linkReferences":{}},"methodIdentifiers":{"swapETHForExactTokens(address,uint256,address[],address,uint256)":"b05f579e","swapExactETHForTokens(address,uint256,address[],address,uint256)":"fde1adda","swapExactTokensForETH(address,uint256,uint256,address[],address,uint256)":"9c91fcb5","swapExactTokensForTokens(address,uint256,uint256,address[],address,uint256)":"375734d9","swapTokensForExactETH(address,uint256,uint256,address[],address,uint256)":"fa3219d5","swapTokensForExactTokens(address,uint256,uint256,address[],address,uint256)":"22b58410"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"Amounts\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapETHForExactTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactETHForTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/test/RouterEventEmitter.sol\":\"RouterEventEmitter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":{\"keccak256\":\"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2\",\"urls\":[\"bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb\",\"dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG\"]},\"contracts/lib/v2-periphery/contracts/test/RouterEventEmitter.sol\":{\"keccak256\":\"0x5731d801346700084090cbaf214e947228e3e72c66bae99fbab8869c18c90423\",\"urls\":[\"bzz-raw://186f7065b15ed74835ce489cc5b43b135980225783fcbeeb74e5a1cfe98c866e\",\"dweb:/ipfs/Qma9F5yf371G1F5Zme6pd4MuvtKXbhAbNYUdbin1p7XYcV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]","indexed":false}],"type":"event","name":"Amounts","anonymous":false},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapETHForExactTokens"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapExactETHForTokens"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForETH"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForTokens"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactETH"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactTokens"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/test/RouterEventEmitter.sol":"RouterEventEmitter"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol":{"keccak256":"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2","urls":["bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb","dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG"],"license":null},"contracts/lib/v2-periphery/contracts/test/RouterEventEmitter.sol":{"keccak256":"0x5731d801346700084090cbaf214e947228e3e72c66bae99fbab8869c18c90423","urls":["bzz-raw://186f7065b15ed74835ce489cc5b43b135980225783fcbeeb74e5a1cfe98c866e","dweb:/ipfs/Qma9F5yf371G1F5Zme6pd4MuvtKXbhAbNYUdbin1p7XYcV"],"license":null}},"version":1},"id":29} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/SafeMath.sol/SafeMath.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/SafeMath.sol/SafeMath.json new file mode 100644 index 0000000000..a6f9c74669 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/SafeMath.sol/SafeMath.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e637e3ebf3a4fe4a9c060c171764aae1457dd718c948dd00d6c649dbe09139a664736f6c63430006060033","sourceMap":"131:430:23:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e637e3ebf3a4fe4a9c060c171764aae1457dd718c948dd00d6c649dbe09139a664736f6c63430006060033","sourceMap":"131:430:23:-:0;;;;;;12:1:-1;9;2:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":"SafeMath"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null}},"version":1},"id":23} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/TransferHelper.sol/TransferHelper.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/TransferHelper.sol/TransferHelper.json new file mode 100644 index 0000000000..9da12bf32e --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/TransferHelper.sol/TransferHelper.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d3de79d17b75c78dee28f3ae20e1a99363526e241c73e680745b5568a748057f64736f6c63430006060033","sourceMap":"183:1621:4:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d3de79d17b75c78dee28f3ae20e1a99363526e241c73e680745b5568a748057f64736f6c63430006060033","sourceMap":"183:1621:4:-:0;;;;;;12:1:-1;9;2:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol\":\"TransferHelper\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd\",\"urls\":[\"bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595\",\"dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol":"TransferHelper"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol":{"keccak256":"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd","urls":["bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595","dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j"],"license":null}},"version":1},"id":4} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Library.sol/UniswapV2Library.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Library.sol/UniswapV2Library.json new file mode 100644 index 0000000000..c52c96516c --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Library.sol/UniswapV2Library.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204063f8338d17402bbc20fd4ae3ebf6cd2dc81a9440794ad868a03e3fd6bb928d64736f6c63430006060033","sourceMap":"120:4334:24:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204063f8338d17402bbc20fd4ae3ebf6cd2dc81a9440794ad868a03e3fd6bb928d64736f6c63430006060033","sourceMap":"120:4334:24:-:0;;;;;;12:1:-1;9;2:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol\":\"UniswapV2Library\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol\":{\"keccak256\":\"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9\",\"urls\":[\"bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c\",\"dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol":"UniswapV2Library"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol":{"keccak256":"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9","urls":["bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c","dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR"],"license":null}},"version":1},"id":24} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2LiquidityMathLibrary.sol/UniswapV2LiquidityMathLibrary.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2LiquidityMathLibrary.sol/UniswapV2LiquidityMathLibrary.json new file mode 100644 index 0000000000..9741678550 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2LiquidityMathLibrary.sol/UniswapV2LiquidityMathLibrary.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c83e1fd00609ab531dbebd56a316d7c34e789f563f385a85017d67a24652584764736f6c63430006060033","sourceMap":"488:5495:25:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c83e1fd00609ab531dbebd56a316d7c34e789f563f385a85017d67a24652584764736f6c63430006060033","sourceMap":"488:5495:25:-:0;;;;;;12:1:-1;9;2:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2LiquidityMathLibrary.sol\":\"UniswapV2LiquidityMathLibrary\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]},\"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9\",\"urls\":[\"bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407\",\"dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891\",\"urls\":[\"bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389\",\"dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol\":{\"keccak256\":\"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9\",\"urls\":[\"bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c\",\"dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2LiquidityMathLibrary.sol\":{\"keccak256\":\"0x61664f03d4f36cfd99bd4b3b874c7a090937a8921ec21c883b155cf22624cc1b\",\"urls\":[\"bzz-raw://571d4797fc11b11288de656361b2a5c01c7df3fba4be2309de83e23a8374b221\",\"dweb:/ipfs/QmPCSC2eX6URTMQ4zoFJPL4uj1d2tKhNMYQWrTVBcqm1UL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/libraries/UniswapV2LiquidityMathLibrary.sol":"UniswapV2LiquidityMathLibrary"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol":{"keccak256":"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177","urls":["bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069","dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol":{"keccak256":"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9","urls":["bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407","dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol":{"keccak256":"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891","urls":["bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389","dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol":{"keccak256":"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9","urls":["bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c","dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2LiquidityMathLibrary.sol":{"keccak256":"0x61664f03d4f36cfd99bd4b3b874c7a090937a8921ec21c883b155cf22624cc1b","urls":["bzz-raw://571d4797fc11b11288de656361b2a5c01c7df3fba4be2309de83e23a8374b221","dweb:/ipfs/QmPCSC2eX6URTMQ4zoFJPL4uj1d2tKhNMYQWrTVBcqm1UL"],"license":null}},"version":1},"id":25} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Migrator.sol/UniswapV2Migrator.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Migrator.sol/UniswapV2Migrator.json new file mode 100644 index 0000000000..4b0cce36e2 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Migrator.sol/UniswapV2Migrator.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_factoryV1","type":"address","internalType":"address"},{"name":"_router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"migrate","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60c060405234801561001057600080fd5b50604051610b7c380380610b7c8339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c610af5610087600039806103ee5280610484528061051652508060905250610af56000f3fe6080604052600436106100225760003560e01c8063b7df1d251461002e57610029565b3661002957005b600080fd5b34801561003a57600080fd5b5061008a600480360360a081101561005157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135909116906080013561008c565b005b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166306f2bf62876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561012b57600080fd5b505afa15801561013f573d6000803e3d6000fd5b505050506040513d602081101561015557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b1580156101c957600080fd5b505afa1580156101dd573d6000803e3d6000fd5b505050506040513d60208110156101f357600080fd5b5051604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052905191925073ffffffffffffffffffffffffffffffffffffffff8416916323b872dd916064808201926020929091908290030181600087803b15801561027457600080fd5b505af1158015610288573d6000803e3d6000fd5b505050506040513d602081101561029e57600080fd5b505161030b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c4544000000000000000000000000604482015290519081900360640190fd5b604080517ff88bf15a0000000000000000000000000000000000000000000000000000000081526004810183905260016024820181905260448201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60648201528151600092839273ffffffffffffffffffffffffffffffffffffffff87169263f88bf15a9260848084019391929182900301818787803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b505050506040513d60408110156103da57600080fd5b5080516020909101519092509050610413897f00000000000000000000000000000000000000000000000000000000000000008361056f565b604080517ff305d71900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b8116600483015260248201849052604482018b9052606482018a9052888116608483015260a48201889052915160009283927f00000000000000000000000000000000000000000000000000000000000000009091169163f305d71991879160c480830192606092919082900301818588803b1580156104cf57600080fd5b505af11580156104e3573d6000803e3d6000fd5b50505050506040513d60608110156104fa57600080fd5b50805160209091015190925090508183111561054e5761053c8b7f0000000000000000000000000000000000000000000000000000000000000000600061056f565b6105498b33848603610736565b610562565b8084111561056257610562338286036108f6565b5050505050505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b6020831061064557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610608565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146106a7576040519150601f19603f3d011682016040523d82523d6000602084013e6106ac565b606091505b50915091508180156106da5750805115806106da57508080602001905160208110156106d757600080fd5b50515b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610a68602b913960400191505060405180910390fd5b5050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b6020831061080c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107cf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461086e576040519150601f19603f3d011682016040523d82523d6000602084013e610873565b606091505b50915091508180156108a15750805115806108a1575080806020019051602081101561089e57600080fd5b50515b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610a93602d913960400191505060405180910390fd5b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b6020831061096d57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610930565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146109cf576040519150601f19603f3d011682016040523d82523d6000602084013e6109d4565b606091505b5050905080610a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180610a346034913960400191505060405180910390fd5b50505056fe5472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c65645472616e7366657248656c7065723a3a73616665417070726f76653a20617070726f7665206661696c65645472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564a2646970667358221220cb0b9060cd58a69776f067f1737fce2eb07e05ecaf203b5e886077ce459e8a9f64736f6c63430006060033","sourceMap":"312:1900:8:-:0;;;452:160;5:9:-1;2:2;;;27:1;24;17:12;2:2;452:160:8;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;452:160:8;;;;;;;-1:-1:-1;;;;;;518:41:8;;;;;;;;569:36;;;;;312:1900;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100225760003560e01c8063b7df1d251461002e57610029565b3661002957005b600080fd5b34801561003a57600080fd5b5061008a600480360360a081101561005157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135909116906080013561008c565b005b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166306f2bf62876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561012b57600080fd5b505afa15801561013f573d6000803e3d6000fd5b505050506040513d602081101561015557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b1580156101c957600080fd5b505afa1580156101dd573d6000803e3d6000fd5b505050506040513d60208110156101f357600080fd5b5051604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052905191925073ffffffffffffffffffffffffffffffffffffffff8416916323b872dd916064808201926020929091908290030181600087803b15801561027457600080fd5b505af1158015610288573d6000803e3d6000fd5b505050506040513d602081101561029e57600080fd5b505161030b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c4544000000000000000000000000604482015290519081900360640190fd5b604080517ff88bf15a0000000000000000000000000000000000000000000000000000000081526004810183905260016024820181905260448201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60648201528151600092839273ffffffffffffffffffffffffffffffffffffffff87169263f88bf15a9260848084019391929182900301818787803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b505050506040513d60408110156103da57600080fd5b5080516020909101519092509050610413897f00000000000000000000000000000000000000000000000000000000000000008361056f565b604080517ff305d71900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b8116600483015260248201849052604482018b9052606482018a9052888116608483015260a48201889052915160009283927f00000000000000000000000000000000000000000000000000000000000000009091169163f305d71991879160c480830192606092919082900301818588803b1580156104cf57600080fd5b505af11580156104e3573d6000803e3d6000fd5b50505050506040513d60608110156104fa57600080fd5b50805160209091015190925090508183111561054e5761053c8b7f0000000000000000000000000000000000000000000000000000000000000000600061056f565b6105498b33848603610736565b610562565b8084111561056257610562338286036108f6565b5050505050505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b6020831061064557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610608565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146106a7576040519150601f19603f3d011682016040523d82523d6000602084013e6106ac565b606091505b50915091508180156106da5750805115806106da57508080602001905160208110156106d757600080fd5b50515b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610a68602b913960400191505060405180910390fd5b5050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b6020831061080c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107cf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461086e576040519150601f19603f3d011682016040523d82523d6000602084013e610873565b606091505b50915091508180156108a15750805115806108a1575080806020019051602081101561089e57600080fd5b50515b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610a93602d913960400191505060405180910390fd5b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b6020831061096d57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610930565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146109cf576040519150601f19603f3d011682016040523d82523d6000602084013e6109d4565b606091505b5050905080610a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180610a346034913960400191505060405180910390fd5b50505056fe5472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c65645472616e7366657248656c7065723a3a73616665417070726f76653a20617070726f7665206661696c65645472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564a2646970667358221220cb0b9060cd58a69776f067f1737fce2eb07e05ecaf203b5e886077ce459e8a9f64736f6c63430006060033","sourceMap":"312:1900:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;867:1343:8;;5:9:-1;2:2;;;27:1;24;17:12;2:2;867:1343:8;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;867:1343:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1014:29;1065:9;:21;;;1087:5;1065:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1065:28:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1065:28:8;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1065:28:8;1123:32;;;;;;1144:10;1123:32;;;;;;1065:28;;-1:-1:-1;1104:16:8;;1123:20;;;;;;:32;;;;;1065:28;;1123:32;;;;;;;:20;:32;;;2:2:-1;;;;27:1;24;17:12;2:2;1123:32:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1123:32:8;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1123:32:8;1173:63;;;;;;1197:10;1173:63;;;;1217:4;1173:63;;;;;;;;;;;;1123:32;;-1:-1:-1;1173:23:8;;;;;;:63;;;;;1123:32;;1173:63;;;;;;;;-1:-1:-1;1173:23:8;:63;;;2:2:-1;;;;27:1;24;17:12;2:2;1173:63:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1173:63:8;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1173:63:8;1165:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:55;;;;;;;;;;;;1352:1;1312:55;;;;;;;;;;1363:2;1312:55;;;;;;1272:16;;;;1312:26;;;;;;:55;;;;;;;;;;;;;1272:16;1312:26;:55;;;2:2:-1;;;;27:1;24;17:12;2:2;1312:55:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1312:55:8;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1312:55:8;;;;;;;;;-1:-1:-1;1312:55:8;-1:-1:-1;1377:65:8;1404:5;1419:6;1312:55;1377:26;:65::i;:::-;1494:190;;;;;;:22;:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1494:6:8;:22;;;;;;1524:11;;1494:190;;;;;;;;;;;;;;1524:11;1494:22;:190;;;2:2:-1;;;;27:1;24;17:12;2:2;1494:190:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1494:190:8;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1494:190:8;;;;;;;;;-1:-1:-1;1494:190:8;-1:-1:-1;1698:29:8;;;1694:510;;;1743:53;1770:5;1785:6;1794:1;1743:26;:53::i;:::-;1864:77;1892:5;1899:10;1927:13;1911;:29;1864:27;:77::i;:::-;1694:510;;;1976:11;1962;:25;1958:246;;;2124:69;2155:10;2181:11;2167;:25;2124:30;:69::i;:::-;867:1343;;;;;;;;;;;:::o;212:434:4:-;436:45;;;425:10;436:45;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;436:45:4;;;;;;;25:18:-1;;61:17;;96:58;182:15;436:45:4;179:29:-1;160:49;;425:57:4;;;;390:12;;404:17;;425:10;;;;436:45;425:57;;;25:18:-1;425:57:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;425:57:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;389:93:4;;;;513:7;:57;;;;-1:-1:-1;525:11:4;;:16;;:44;;;556:4;545:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;545:24:4;525:44;492:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;212:434;;;;;:::o;652:438::-;878:45;;;867:10;878:45;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;878:45:4;;;;;;;25:18:-1;;61:17;;96:58;182:15;878:45:4;179:29:-1;160:49;;867:57:4;;;;832:12;;846:17;;867:10;;;;878:45;867:57;;;25:18:-1;867:57:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;867:57:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;831:93:4;;;;955:7;:57;;;;-1:-1:-1;967:11:4;;:16;;:44;;;998:4;987:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;987:24:4;967:44;934:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1588:214;1700:12;;;1660;1700;;;;;;;;;1678:7;;;;1693:5;;1678:35;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1678:35:4;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1659:54:4;;;1731:7;1723:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1588:214;;;:::o","linkReferences":{},"immutableReferences":{"1821":[{"start":144,"length":32}],"1823":[{"start":1006,"length":32},{"start":1156,"length":32},{"start":1302,"length":32}]}},"methodIdentifiers":{"migrate(address,uint256,uint256,address,uint256)":"b7df1d25"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factoryV1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/UniswapV2Migrator.sol\":\"UniswapV2Migrator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd\",\"urls\":[\"bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595\",\"dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j\"]},\"contracts/lib/v2-periphery/contracts/UniswapV2Migrator.sol\":{\"keccak256\":\"0xcc36bed47c1c2112429ff7100ae43670a1f875863b1651712c6725335b2390c8\",\"urls\":[\"bzz-raw://993145fe62243105b3fcd5d0161763c9f8f920595c1bbad2b7747dcd67c18fb7\",\"dweb:/ipfs/QmQreDbNmtnh2wtmmva6PqGPgUg8tnzzmNE4qfmT7YnEmC\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3\",\"urls\":[\"bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66\",\"dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Migrator.sol\":{\"keccak256\":\"0xa83ac0f597c04134b3ea423fd55d3077e952197c1991e23c4e304bfb35a90124\",\"urls\":[\"bzz-raw://ec1a3358caaa80af192bf4a8913041b037736412d7d6d5e894d58dadfab3a1da\",\"dweb:/ipfs/QmbYVrgxQZVevcBgTcPUFutk5mpj61BAdmTPMXGiBt1vA8\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":{\"keccak256\":\"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2\",\"urls\":[\"bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb\",\"dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG\"]},\"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Exchange.sol\":{\"keccak256\":\"0xcec8976f205e71a3a5ebdd7130d321484df4e4b6b1091d21d435173acfb6e14b\",\"urls\":[\"bzz-raw://681de3c6ee08cccee6839b3a65f8d80c2c6e55ba5a3aba51f83578a5fef52a65\",\"dweb:/ipfs/QmcJMhgj7CgchN4sxR8MbzJt8DrbJuB6PCdD2fdQ9Ct1qi\"]},\"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Factory.sol\":{\"keccak256\":\"0x2a554e26d874fa4b10736f2e2ac1ba6253cd1ad08a97bd941cb0a41015565589\",\"urls\":[\"bzz-raw://bbe29db0ebf08621cb4211219c02262be9c7510fe03bab94f849a38993f957d6\",\"dweb:/ipfs/QmTutAVpjg925m4JLqHTvukdTyoTr77FotAUAA2AzGug1f\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_factoryV1","type":"address"},{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/UniswapV2Migrator.sol":"UniswapV2Migrator"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol":{"keccak256":"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd","urls":["bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595","dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j"],"license":null},"contracts/lib/v2-periphery/contracts/UniswapV2Migrator.sol":{"keccak256":"0xcc36bed47c1c2112429ff7100ae43670a1f875863b1651712c6725335b2390c8","urls":["bzz-raw://993145fe62243105b3fcd5d0161763c9f8f920595c1bbad2b7747dcd67c18fb7","dweb:/ipfs/QmQreDbNmtnh2wtmmva6PqGPgUg8tnzzmNE4qfmT7YnEmC"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol":{"keccak256":"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3","urls":["bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66","dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Migrator.sol":{"keccak256":"0xa83ac0f597c04134b3ea423fd55d3077e952197c1991e23c4e304bfb35a90124","urls":["bzz-raw://ec1a3358caaa80af192bf4a8913041b037736412d7d6d5e894d58dadfab3a1da","dweb:/ipfs/QmbYVrgxQZVevcBgTcPUFutk5mpj61BAdmTPMXGiBt1vA8"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol":{"keccak256":"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2","urls":["bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb","dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Exchange.sol":{"keccak256":"0xcec8976f205e71a3a5ebdd7130d321484df4e4b6b1091d21d435173acfb6e14b","urls":["bzz-raw://681de3c6ee08cccee6839b3a65f8d80c2c6e55ba5a3aba51f83578a5fef52a65","dweb:/ipfs/QmcJMhgj7CgchN4sxR8MbzJt8DrbJuB6PCdD2fdQ9Ct1qi"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Factory.sol":{"keccak256":"0x2a554e26d874fa4b10736f2e2ac1ba6253cd1ad08a97bd941cb0a41015565589","urls":["bzz-raw://bbe29db0ebf08621cb4211219c02262be9c7510fe03bab94f849a38993f957d6","dweb:/ipfs/QmTutAVpjg925m4JLqHTvukdTyoTr77FotAUAA2AzGug1f"],"license":null}},"version":1},"id":8} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2OracleLibrary.sol/UniswapV2OracleLibrary.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2OracleLibrary.sol/UniswapV2OracleLibrary.json new file mode 100644 index 0000000000..5c5b2199a3 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2OracleLibrary.sol/UniswapV2OracleLibrary.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220441871618b3a085c86920c2bb19065b78c42c64dd042cd1690064c44fa27f20f64736f6c63430006060033","sourceMap":"244:1444:26:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220441871618b3a085c86920c2bb19065b78c42c64dd042cd1690064c44fa27f20f64736f6c63430006060033","sourceMap":"244:1444:26:-:0;;;;;;12:1:-1;9;2:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2OracleLibrary.sol\":\"UniswapV2OracleLibrary\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]},\"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7\",\"urls\":[\"bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727\",\"dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH\"]},\"contracts/lib/solidity-lib/contracts/libraries/FixedPoint.sol\":{\"keccak256\":\"0xc3a39b8a11715cea45ad9f67f50e4e4c33778c1124acd59e90daf064c9a93974\",\"urls\":[\"bzz-raw://2c6c3cdcdb30caa5d15477550003b5dbb174cb2c0be3c012af030fce3d043f28\",\"dweb:/ipfs/QmWh3n5g6zq3umJcURnKCFhhif2c8yb6mKczFjfoCNLC3g\"]},\"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9\",\"urls\":[\"bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407\",\"dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2OracleLibrary.sol\":{\"keccak256\":\"0x993538630a9568290c39140d54c034a66cf1b95cdeef4ba804a948c4ee2fc311\",\"urls\":[\"bzz-raw://adff017b539750d5ac84403360967c4d6b02a1ee9b8f2487f0bcddd7fa7c523e\",\"dweb:/ipfs/QmQqUiUvoezf33f2SZa64M8KgksHSXFPrGuwDvxijtXYMo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/libraries/UniswapV2OracleLibrary.sol":"UniswapV2OracleLibrary"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol":{"keccak256":"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177","urls":["bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069","dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol":{"keccak256":"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7","urls":["bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727","dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/FixedPoint.sol":{"keccak256":"0xc3a39b8a11715cea45ad9f67f50e4e4c33778c1124acd59e90daf064c9a93974","urls":["bzz-raw://2c6c3cdcdb30caa5d15477550003b5dbb174cb2c0be3c012af030fce3d043f28","dweb:/ipfs/QmWh3n5g6zq3umJcURnKCFhhif2c8yb6mKczFjfoCNLC3g"],"license":null},"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol":{"keccak256":"0xc4ffcf28169f73fc9fdd1f82345d6d4fcccf3fd5aea83c133437c25e4e0950a9","urls":["bzz-raw://c9257a47501005f0a648bc4801ef4abc33843681aaf03a6d0c43d46b69e37407","dweb:/ipfs/QmciHvDrqhxs5fjsrm9aNq29FZXpunMn17n2wWj83Zsh3B"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2OracleLibrary.sol":{"keccak256":"0x993538630a9568290c39140d54c034a66cf1b95cdeef4ba804a948c4ee2fc311","urls":["bzz-raw://adff017b539750d5ac84403360967c4d6b02a1ee9b8f2487f0bcddd7fa7c523e","dweb:/ipfs/QmQqUiUvoezf33f2SZa64M8KgksHSXFPrGuwDvxijtXYMo"],"license":null}},"version":1},"id":26} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Router01.sol/UniswapV2Router01.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Router01.sol/UniswapV2Router01.json new file mode 100644 index 0000000000..df3c2196ac --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Router01.sol/UniswapV2Router01.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_factory","type":"address","internalType":"address"},{"name":"_WETH","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"addLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"amountADesired","type":"uint256","internalType":"uint256"},{"name":"amountBDesired","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"addLiquidityETH","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amountTokenDesired","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAmountIn","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"reserveIn","type":"uint256","internalType":"uint256"},{"name":"reserveOut","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getAmountOut","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"reserveIn","type":"uint256","internalType":"uint256"},{"name":"reserveOut","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getAmountsIn","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getAmountsOut","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"reserveA","type":"uint256","internalType":"uint256"},{"name":"reserveB","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"removeLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETH","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETHWithPermit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"approveMax","type":"bool","internalType":"bool"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityWithPermit","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"approveMax","type":"bool","internalType":"bool"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapETHForExactTokens","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"swapExactETHForTokens","inputs":[{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"swapExactTokensForETH","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactTokensForTokens","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactETH","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactTokens","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60c060405234801561001057600080fd5b5060405161415c38038061415c8339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c61402061013c600039806101655280610b235280610b5e5280610c9b5280610f5e52806113b852806115e65280611799528061182e5280611afd5280611eb352806121e9528061223f528061227352806122f4528061250e52806126be5280612753525080610d8d5280610e8b5280611031528061106a528061121552806114aa52806116cc528061186d5280611a335280611ba65280611e385280611e615280611e91528061206e528061221d52806125f4528061279252806131fb528061323e52806137d152806138b2528061393252506140206000f3fe6080604052600436106101485760003560e01c80638803dbee116100c0578063d06ca61f11610074578063e8e3370011610059578063e8e3370014610937578063f305d719146109c4578063fb3bdb4114610a175761018e565b8063d06ca61f14610800578063ded9382a146108b75761018e565b8063ad615dec116100a5578063ad615dec1461074b578063baa2abde14610781578063c45a0155146107eb5761018e565b80638803dbee14610668578063ad5c46481461070d5761018e565b80632195995c116101175780634a25d94a116100fc5780634a25d94a146105305780637ff36ab5146105d557806385f8c2591461020c5761018e565b80632195995c1461040057806338ed17391461048b5761018e565b806302751cec14610193578063054d50d41461020c57806318cbafe5146102545780631f00ca74146103495761018e565b3661018e573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461018c57fe5b005b600080fd5b34801561019f57600080fd5b506101f3600480360360c08110156101b657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610aaa565b6040805192835260208301919091528051918290030190f35b34801561021857600080fd5b506102426004803603606081101561022f57600080fd5b5080359060208101359060400135610bfd565b60408051918252519081900360200190f35b34801561026057600080fd5b506102f9600480360360a081101561027757600080fd5b81359160208101359181019060608101604082013564010000000081111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460208302840111640100000000831117156102d257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c12565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561033557818101518382015260200161031d565b505050509050019250505060405180910390f35b34801561035557600080fd5b506102f96004803603604081101561036c57600080fd5b8135919081019060408101602082013564010000000081111561038e57600080fd5b8201836020820111156103a057600080fd5b803590602001918460208302840111640100000000831117156103c257600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061102a945050505050565b34801561040c57600080fd5b506101f3600480360361016081101561042457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611060565b34801561049757600080fd5b506102f9600480360360a08110156104ae57600080fd5b8135916020810135918101906060810160408201356401000000008111156104d557600080fd5b8201836020820111156104e757600080fd5b8035906020019184602083028401116401000000008311171561050957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561119e565b34801561053c57600080fd5b506102f9600480360360a081101561055357600080fd5b81359160208101359181019060608101604082013564010000000081111561057a57600080fd5b82018360208201111561058c57600080fd5b803590602001918460208302840111640100000000831117156105ae57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561132f565b6102f9600480360360808110156105eb57600080fd5b8135919081019060408101602082013564010000000081111561060d57600080fd5b82018360208201111561061f57600080fd5b8035906020019184602083028401116401000000008311171561064157600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611572565b34801561067457600080fd5b506102f9600480360360a081101561068b57600080fd5b8135916020810135918101906060810160408201356401000000008111156106b257600080fd5b8201836020820111156106c457600080fd5b803590602001918460208302840111640100000000831117156106e657600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119bc565b34801561071957600080fd5b50610722611afb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561075757600080fd5b506102426004803603606081101561076e57600080fd5b5080359060208101359060400135611b1f565b34801561078d57600080fd5b506101f3600480360360e08110156107a457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135611b2c565b3480156107f757600080fd5b50610722611e36565b34801561080c57600080fd5b506102f96004803603604081101561082357600080fd5b8135919081019060408101602082013564010000000081111561084557600080fd5b82018360208201111561085757600080fd5b8035906020019184602083028401116401000000008311171561087957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611e5a945050505050565b3480156108c357600080fd5b506101f360048036036101408110156108db57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611e87565b34801561094357600080fd5b506109a6600480360361010081101561095b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135611fdf565b60408051938452602084019290925282820152519081900360600190f35b6109a6600480360360c08110156109da57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a0013561216e565b6102f960048036036080811015610a2d57600080fd5b81359190810190604081016020820135640100000000811115610a4f57600080fd5b820183602082011115610a6157600080fd5b80359060200191846020830284011164010000000083111715610a8357600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561249a565b6000808242811015610b1d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610b4c897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a611b2c565b9093509150610b5c8986856128e9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bcf57600080fd5b505af1158015610be3573d6000803e3d6000fd5b50505050610bf18583612ab0565b50965096945050505050565b6000610c0a848484612bed565b949350505050565b60608142811015610c8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110610ce957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b610de67f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d1192505050565b91508682600184510381518110610df957fe5b60200260200101511015610e58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f68602b913960400191505060405180910390fd5b610f1d86866000818110610e6857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633610f037f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610eb757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b6001818110610ee157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16612e77565b85600081518110610f1057fe5b6020026020010151612f62565b610f5c82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613132915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d83600185510381518110610fa857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610fe657600080fd5b505af1158015610ffa573d6000803e3d6000fd5b5050505061101f848360018551038151811061101257fe5b6020026020010151612ab0565b509695505050505050565b60606110577f000000000000000000000000000000000000000000000000000000000000000084846133b9565b90505b92915050565b60008060006110907f00000000000000000000000000000000000000000000000000000000000000008f8f612e77565b905060008761109f578c6110c1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506111848f8f8f8f8f8f8f611b2c565b809450819550505050509b509b9950505050505050505050565b6060814281101561121057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61126e7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d1192505050565b9150868260018451038151811061128157fe5b602002602001015110156112e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f68602b913960400191505060405180910390fd5b6112f086866000818110610e6857fe5b61101f82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613132915050565b606081428110156113a157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061140657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6115037f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133b992505050565b9150868260008151811061151357fe5b60200260200101511115610e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180613f1b6027913960400191505060405180910390fd5b606081428110156115e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061162857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6117257f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d1192505050565b9150868260018451038151811061173857fe5b60200260200101511015611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f68602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836000815181106117e057fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561181357600080fd5b505af1158015611827573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6118c37f00000000000000000000000000000000000000000000000000000000000000008989600081811061189957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a6001818110610ee157fe5b846000815181106118d057fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561194157600080fd5b505af1158015611955573d6000803e3d6000fd5b505050506040513d602081101561196b57600080fd5b505161197357fe5b6119b282878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613132915050565b5095945050505050565b60608142811015611a2e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611a8c7f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133b992505050565b91508682600081518110611a9c57fe5b602002602001015111156112e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180613f1b6027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610c0a848484613547565b6000808242811015611b9f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000611bcc7f00000000000000000000000000000000000000000000000000000000000000008c8c612e77565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015611c4d57600080fd5b505af1158015611c61573d6000803e3d6000fd5b505050506040513d6020811015611c7757600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015611cea57600080fd5b505af1158015611cfe573d6000803e3d6000fd5b505050506040513d6040811015611d1457600080fd5b50805160209091015190925090506000611d2e8e8e613627565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614611d6b578183611d6e565b82825b90975095508a871015611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613f426026913960400191505060405180910390fd5b89861015611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613ea86026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606110577f00000000000000000000000000000000000000000000000000000000000000008484612d11565b6000806000611ed77f00000000000000000000000000000000000000000000000000000000000000008e7f0000000000000000000000000000000000000000000000000000000000000000612e77565b9050600087611ee6578c611f08565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b158015611fa457600080fd5b505af1158015611fb8573d6000803e3d6000fd5b50505050611fca8e8e8e8e8e8e610aaa565b909f909e509c50505050505050505050505050565b6000806000834281101561205457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6120628c8c8c8c8c8c61377a565b909450925060006120947f00000000000000000000000000000000000000000000000000000000000000008e8e612e77565b90506120a28d338388612f62565b6120ae8c338387612f62565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561212d57600080fd5b505af1158015612141573d6000803e3d6000fd5b505050506040513d602081101561215757600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156121e357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6122118a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c61377a565b909450925060006122637f00000000000000000000000000000000000000000000000000000000000000008c7f0000000000000000000000000000000000000000000000000000000000000000612e77565b90506122718b338388612f62565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b1580156122d957600080fd5b505af11580156122ed573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561239957600080fd5b505af11580156123ad573d6000803e3d6000fd5b505050506040513d60208110156123c357600080fd5b50516123cb57fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561244a57600080fd5b505af115801561245e573d6000803e3d6000fd5b505050506040513d602081101561247457600080fd5b505192503484101561248c5761248c33853403612ab0565b505096509650969350505050565b6060814281101561250c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061255057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125ef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61264d7f0000000000000000000000000000000000000000000000000000000000000000888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133b992505050565b9150348260008151811061265d57fe5b602002602001015111156126bc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180613f1b6027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061270557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561273857600080fd5b505af115801561274c573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6127be7f00000000000000000000000000000000000000000000000000000000000000008989600081811061189957fe5b846000815181106127cb57fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561283c57600080fd5b505af1158015612850573d6000803e3d6000fd5b505050506040513d602081101561286657600080fd5b505161286e57fe5b6128ad82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613132915050565b816000815181106128ba57fe5b60200260200101513411156119b2576119b233836000815181106128da57fe5b60200260200101513403612ab0565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b602083106129bf57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612982565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612a21576040519150601f19603f3d011682016040523d82523d6000602084013e612a26565b606091505b5091509150818015612a54575080511580612a545750808060200190516020811015612a5157600080fd5b50515b612aa9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180613f93602d913960400191505060405180910390fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310612b2757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612aea565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612b89576040519150601f19603f3d011682016040523d82523d6000602084013e612b8e565b606091505b5050905080612be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180613e4f6034913960400191505060405180910390fd5b505050565b6000808411612c47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613fc0602b913960400191505060405180910390fd5b600083118015612c575750600082115b612cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613ece6028913960400191505060405180910390fd5b6000612cc0856103e563ffffffff613a7b16565b90506000612cd4828563ffffffff613a7b16565b90506000612cfa83612cee886103e863ffffffff613a7b16565b9063ffffffff613b0116565b9050808281612d0557fe5b04979650505050505050565b6060600282511015612d8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015612d9c57600080fd5b50604051908082528060200260200182016040528015612dc6578160200160208202803683370190505b5090508281600081518110612dd757fe5b60200260200101818152505060005b6001835103811015612e6f57600080612e2987868581518110612e0557fe5b6020026020010151878660010181518110612e1c57fe5b6020026020010151613b73565b91509150612e4b848481518110612e3c57fe5b60200260200101518383612bed565b848460010181518110612e5a57fe5b60209081029190910101525050600101612de6565b509392505050565b6000806000612e868585613627565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061304057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613003565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130a2576040519150601f19603f3d011682016040523d82523d6000602084013e6130a7565b606091505b50915091508180156130d55750805115806130d557508080602001905160208110156130d257600080fd5b50515b61312a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180613e1e6031913960400191505060405180910390fd5b505050505050565b60005b60018351038110156133b35760008084838151811061315057fe5b602002602001015185846001018151811061316757fe5b602002602001015191509150600061317f8383613627565b509050600087856001018151811061319357fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146131db578260006131df565b6000835b91509150600060028a510388106131f65788613237565b6132377f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061322a57fe5b6020026020010151612e77565b90506132647f00000000000000000000000000000000000000000000000000000000000000008888612e77565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156132ae576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613339578181015183820152602001613321565b50505050905090810190601f1680156133665780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561338857600080fd5b505af115801561339c573d6000803e3d6000fd5b505060019099019850613135975050505050505050565b50505050565b606060028251101561342c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561344457600080fd5b5060405190808252806020026020018201604052801561346e578160200160208202803683370190505b509050828160018351038151811061348257fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b8015612e6f576000806134e2878660018603815181106134ce57fe5b6020026020010151878681518110612e1c57fe5b915091506135048484815181106134f557fe5b60200260200101518383613c5b565b84600185038151811061351357fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016134b2565b60008084116135a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613ef66025913960400191505060405180910390fd5b6000831180156135b15750600082115b613606576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613ece6028913960400191505060405180910390fd5b82613617858463ffffffff613a7b16565b8161361e57fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156136af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613e836025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16106136e95782846136ec565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff821661377357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561381a57600080fd5b505afa15801561382e573d6000803e3d6000fd5b505050506040513d602081101561384457600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561392a57604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156138fd57600080fd5b505af1158015613911573d6000803e3d6000fd5b505050506040513d602081101561392757600080fd5b50505b6000806139587f00000000000000000000000000000000000000000000000000000000000000008b8b613b73565b9150915081600014801561396a575080155b1561397a57879350869250613a6e565b6000613987898484613547565b90508781116139f457858110156139e9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613ea86026913960400191505060405180910390fd5b889450925082613a6c565b6000613a01898486613547565b905089811115613a0d57fe5b87811015613a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613f426026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b6000811580613a9657505080820282828281613a9357fe5b04145b61105a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561105a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b6000806000613b828585613627565b509050600080613b93888888612e77565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613bd857600080fd5b505afa158015613bec573d6000803e3d6000fd5b505050506040513d6060811015613c0257600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff87811690841614613c49578082613c4c565b81815b90999098509650505050505050565b6000808411613cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613df2602c913960400191505060405180910390fd5b600083118015613cc55750600082115b613d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613ece6028913960400191505060405180910390fd5b6000613d3e6103e8613d32868863ffffffff613a7b16565b9063ffffffff613a7b16565b90506000613d586103e5613d32868963ffffffff613d7f16565b9050613d756001828481613d6857fe5b049063ffffffff613b0116565b9695505050505050565b8082038281111561105a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fdfe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a2646970667358221220ccf419fcf834426bdff199795cfee3c82e276ae6ca3e301bb78701a1ea51147d64736f6c63430006060033","sourceMap":"315:12388:9:-:0;;;591:109;5:9:-1;2:2;;;27:1;24;17:12;2:2;591:109:9;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;591:109:9;;;;;;;-1:-1:-1;;;;;;653:18:9;;;;;;;;681:12;;;;;315:12388;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101485760003560e01c80638803dbee116100c0578063d06ca61f11610074578063e8e3370011610059578063e8e3370014610937578063f305d719146109c4578063fb3bdb4114610a175761018e565b8063d06ca61f14610800578063ded9382a146108b75761018e565b8063ad615dec116100a5578063ad615dec1461074b578063baa2abde14610781578063c45a0155146107eb5761018e565b80638803dbee14610668578063ad5c46481461070d5761018e565b80632195995c116101175780634a25d94a116100fc5780634a25d94a146105305780637ff36ab5146105d557806385f8c2591461020c5761018e565b80632195995c1461040057806338ed17391461048b5761018e565b806302751cec14610193578063054d50d41461020c57806318cbafe5146102545780631f00ca74146103495761018e565b3661018e573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461018c57fe5b005b600080fd5b34801561019f57600080fd5b506101f3600480360360c08110156101b657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610aaa565b6040805192835260208301919091528051918290030190f35b34801561021857600080fd5b506102426004803603606081101561022f57600080fd5b5080359060208101359060400135610bfd565b60408051918252519081900360200190f35b34801561026057600080fd5b506102f9600480360360a081101561027757600080fd5b81359160208101359181019060608101604082013564010000000081111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460208302840111640100000000831117156102d257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c12565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561033557818101518382015260200161031d565b505050509050019250505060405180910390f35b34801561035557600080fd5b506102f96004803603604081101561036c57600080fd5b8135919081019060408101602082013564010000000081111561038e57600080fd5b8201836020820111156103a057600080fd5b803590602001918460208302840111640100000000831117156103c257600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061102a945050505050565b34801561040c57600080fd5b506101f3600480360361016081101561042457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611060565b34801561049757600080fd5b506102f9600480360360a08110156104ae57600080fd5b8135916020810135918101906060810160408201356401000000008111156104d557600080fd5b8201836020820111156104e757600080fd5b8035906020019184602083028401116401000000008311171561050957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561119e565b34801561053c57600080fd5b506102f9600480360360a081101561055357600080fd5b81359160208101359181019060608101604082013564010000000081111561057a57600080fd5b82018360208201111561058c57600080fd5b803590602001918460208302840111640100000000831117156105ae57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561132f565b6102f9600480360360808110156105eb57600080fd5b8135919081019060408101602082013564010000000081111561060d57600080fd5b82018360208201111561061f57600080fd5b8035906020019184602083028401116401000000008311171561064157600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611572565b34801561067457600080fd5b506102f9600480360360a081101561068b57600080fd5b8135916020810135918101906060810160408201356401000000008111156106b257600080fd5b8201836020820111156106c457600080fd5b803590602001918460208302840111640100000000831117156106e657600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119bc565b34801561071957600080fd5b50610722611afb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561075757600080fd5b506102426004803603606081101561076e57600080fd5b5080359060208101359060400135611b1f565b34801561078d57600080fd5b506101f3600480360360e08110156107a457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135611b2c565b3480156107f757600080fd5b50610722611e36565b34801561080c57600080fd5b506102f96004803603604081101561082357600080fd5b8135919081019060408101602082013564010000000081111561084557600080fd5b82018360208201111561085757600080fd5b8035906020019184602083028401116401000000008311171561087957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611e5a945050505050565b3480156108c357600080fd5b506101f360048036036101408110156108db57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611e87565b34801561094357600080fd5b506109a6600480360361010081101561095b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135611fdf565b60408051938452602084019290925282820152519081900360600190f35b6109a6600480360360c08110156109da57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a0013561216e565b6102f960048036036080811015610a2d57600080fd5b81359190810190604081016020820135640100000000811115610a4f57600080fd5b820183602082011115610a6157600080fd5b80359060200191846020830284011164010000000083111715610a8357600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561249a565b6000808242811015610b1d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610b4c897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a611b2c565b9093509150610b5c8986856128e9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bcf57600080fd5b505af1158015610be3573d6000803e3d6000fd5b50505050610bf18583612ab0565b50965096945050505050565b6000610c0a848484612bed565b949350505050565b60608142811015610c8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110610ce957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b610de67f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d1192505050565b91508682600184510381518110610df957fe5b60200260200101511015610e58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f68602b913960400191505060405180910390fd5b610f1d86866000818110610e6857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633610f037f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610eb757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b6001818110610ee157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16612e77565b85600081518110610f1057fe5b6020026020010151612f62565b610f5c82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613132915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d83600185510381518110610fa857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610fe657600080fd5b505af1158015610ffa573d6000803e3d6000fd5b5050505061101f848360018551038151811061101257fe5b6020026020010151612ab0565b509695505050505050565b60606110577f000000000000000000000000000000000000000000000000000000000000000084846133b9565b90505b92915050565b60008060006110907f00000000000000000000000000000000000000000000000000000000000000008f8f612e77565b905060008761109f578c6110c1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506111848f8f8f8f8f8f8f611b2c565b809450819550505050509b509b9950505050505050505050565b6060814281101561121057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61126e7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d1192505050565b9150868260018451038151811061128157fe5b602002602001015110156112e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f68602b913960400191505060405180910390fd5b6112f086866000818110610e6857fe5b61101f82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613132915050565b606081428110156113a157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061140657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6115037f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133b992505050565b9150868260008151811061151357fe5b60200260200101511115610e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180613f1b6027913960400191505060405180910390fd5b606081428110156115e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061162857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6117257f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d1192505050565b9150868260018451038151811061173857fe5b60200260200101511015611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f68602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836000815181106117e057fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561181357600080fd5b505af1158015611827573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6118c37f00000000000000000000000000000000000000000000000000000000000000008989600081811061189957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a6001818110610ee157fe5b846000815181106118d057fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561194157600080fd5b505af1158015611955573d6000803e3d6000fd5b505050506040513d602081101561196b57600080fd5b505161197357fe5b6119b282878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613132915050565b5095945050505050565b60608142811015611a2e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611a8c7f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133b992505050565b91508682600081518110611a9c57fe5b602002602001015111156112e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180613f1b6027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610c0a848484613547565b6000808242811015611b9f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000611bcc7f00000000000000000000000000000000000000000000000000000000000000008c8c612e77565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015611c4d57600080fd5b505af1158015611c61573d6000803e3d6000fd5b505050506040513d6020811015611c7757600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015611cea57600080fd5b505af1158015611cfe573d6000803e3d6000fd5b505050506040513d6040811015611d1457600080fd5b50805160209091015190925090506000611d2e8e8e613627565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614611d6b578183611d6e565b82825b90975095508a871015611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613f426026913960400191505060405180910390fd5b89861015611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613ea86026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606110577f00000000000000000000000000000000000000000000000000000000000000008484612d11565b6000806000611ed77f00000000000000000000000000000000000000000000000000000000000000008e7f0000000000000000000000000000000000000000000000000000000000000000612e77565b9050600087611ee6578c611f08565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b158015611fa457600080fd5b505af1158015611fb8573d6000803e3d6000fd5b50505050611fca8e8e8e8e8e8e610aaa565b909f909e509c50505050505050505050505050565b6000806000834281101561205457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6120628c8c8c8c8c8c61377a565b909450925060006120947f00000000000000000000000000000000000000000000000000000000000000008e8e612e77565b90506120a28d338388612f62565b6120ae8c338387612f62565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561212d57600080fd5b505af1158015612141573d6000803e3d6000fd5b505050506040513d602081101561215757600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156121e357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6122118a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c61377a565b909450925060006122637f00000000000000000000000000000000000000000000000000000000000000008c7f0000000000000000000000000000000000000000000000000000000000000000612e77565b90506122718b338388612f62565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b1580156122d957600080fd5b505af11580156122ed573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561239957600080fd5b505af11580156123ad573d6000803e3d6000fd5b505050506040513d60208110156123c357600080fd5b50516123cb57fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561244a57600080fd5b505af115801561245e573d6000803e3d6000fd5b505050506040513d602081101561247457600080fd5b505192503484101561248c5761248c33853403612ab0565b505096509650969350505050565b6060814281101561250c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061255057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125ef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61264d7f0000000000000000000000000000000000000000000000000000000000000000888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133b992505050565b9150348260008151811061265d57fe5b602002602001015111156126bc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180613f1b6027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061270557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561273857600080fd5b505af115801561274c573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6127be7f00000000000000000000000000000000000000000000000000000000000000008989600081811061189957fe5b846000815181106127cb57fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561283c57600080fd5b505af1158015612850573d6000803e3d6000fd5b505050506040513d602081101561286657600080fd5b505161286e57fe5b6128ad82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613132915050565b816000815181106128ba57fe5b60200260200101513411156119b2576119b233836000815181106128da57fe5b60200260200101513403612ab0565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b602083106129bf57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612982565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612a21576040519150601f19603f3d011682016040523d82523d6000602084013e612a26565b606091505b5091509150818015612a54575080511580612a545750808060200190516020811015612a5157600080fd5b50515b612aa9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180613f93602d913960400191505060405180910390fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310612b2757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612aea565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612b89576040519150601f19603f3d011682016040523d82523d6000602084013e612b8e565b606091505b5050905080612be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180613e4f6034913960400191505060405180910390fd5b505050565b6000808411612c47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613fc0602b913960400191505060405180910390fd5b600083118015612c575750600082115b612cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613ece6028913960400191505060405180910390fd5b6000612cc0856103e563ffffffff613a7b16565b90506000612cd4828563ffffffff613a7b16565b90506000612cfa83612cee886103e863ffffffff613a7b16565b9063ffffffff613b0116565b9050808281612d0557fe5b04979650505050505050565b6060600282511015612d8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015612d9c57600080fd5b50604051908082528060200260200182016040528015612dc6578160200160208202803683370190505b5090508281600081518110612dd757fe5b60200260200101818152505060005b6001835103811015612e6f57600080612e2987868581518110612e0557fe5b6020026020010151878660010181518110612e1c57fe5b6020026020010151613b73565b91509150612e4b848481518110612e3c57fe5b60200260200101518383612bed565b848460010181518110612e5a57fe5b60209081029190910101525050600101612de6565b509392505050565b6000806000612e868585613627565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061304057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613003565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130a2576040519150601f19603f3d011682016040523d82523d6000602084013e6130a7565b606091505b50915091508180156130d55750805115806130d557508080602001905160208110156130d257600080fd5b50515b61312a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180613e1e6031913960400191505060405180910390fd5b505050505050565b60005b60018351038110156133b35760008084838151811061315057fe5b602002602001015185846001018151811061316757fe5b602002602001015191509150600061317f8383613627565b509050600087856001018151811061319357fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146131db578260006131df565b6000835b91509150600060028a510388106131f65788613237565b6132377f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061322a57fe5b6020026020010151612e77565b90506132647f00000000000000000000000000000000000000000000000000000000000000008888612e77565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156132ae576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613339578181015183820152602001613321565b50505050905090810190601f1680156133665780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561338857600080fd5b505af115801561339c573d6000803e3d6000fd5b505060019099019850613135975050505050505050565b50505050565b606060028251101561342c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561344457600080fd5b5060405190808252806020026020018201604052801561346e578160200160208202803683370190505b509050828160018351038151811061348257fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b8015612e6f576000806134e2878660018603815181106134ce57fe5b6020026020010151878681518110612e1c57fe5b915091506135048484815181106134f557fe5b60200260200101518383613c5b565b84600185038151811061351357fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016134b2565b60008084116135a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613ef66025913960400191505060405180910390fd5b6000831180156135b15750600082115b613606576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613ece6028913960400191505060405180910390fd5b82613617858463ffffffff613a7b16565b8161361e57fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156136af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613e836025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16106136e95782846136ec565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff821661377357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561381a57600080fd5b505afa15801561382e573d6000803e3d6000fd5b505050506040513d602081101561384457600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561392a57604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b1580156138fd57600080fd5b505af1158015613911573d6000803e3d6000fd5b505050506040513d602081101561392757600080fd5b50505b6000806139587f00000000000000000000000000000000000000000000000000000000000000008b8b613b73565b9150915081600014801561396a575080155b1561397a57879350869250613a6e565b6000613987898484613547565b90508781116139f457858110156139e9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613ea86026913960400191505060405180910390fd5b889450925082613a6c565b6000613a01898486613547565b905089811115613a0d57fe5b87811015613a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613f426026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b6000811580613a9657505080820282828281613a9357fe5b04145b61105a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561105a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b6000806000613b828585613627565b509050600080613b93888888612e77565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613bd857600080fd5b505afa158015613bec573d6000803e3d6000fd5b505050506040513d6060811015613c0257600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff87811690841614613c49578082613c4c565b81815b90999098509650505050505050565b6000808411613cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613df2602c913960400191505060405180910390fd5b600083118015613cc55750600082115b613d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613ece6028913960400191505060405180910390fd5b6000613d3e6103e8613d32868863ffffffff613a7b16565b9063ffffffff613a7b16565b90506000613d586103e5613d32868963ffffffff613d7f16565b9050613d756001828481613d6857fe5b049063ffffffff613b0116565b9695505050505050565b8082038281111561105a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fdfe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a2646970667358221220ccf419fcf834426bdff199795cfee3c82e276ae6ca3e301bb78701a1ea51147d64736f6c63430006060033","sourceMap":"315:12388:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;750:10;:18;764:4;750:18;;743:26;;;;315:12388;;12:1:-1;9;2:12;4768:645:9;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4768:645:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;4768:645:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11893:202;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11893:202:9;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11893:202:9;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10132:796;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10132:796:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10132:796:9;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;10132:796:9;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10132:796:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10132:796:9;;-1:-1:-1;10132:796:9;-1:-1:-1;10132:796:9;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10132:796:9;;;;;;;;;;;;;;;;;12508:193;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12508:193:9;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12508:193:9;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;12508:193:9;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;12508:193:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;12508:193:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;12508:193:9;;-1:-1:-1;12508:193:9;;-1:-1:-1;;;;;12508:193:9:i;5418:655::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5418:655:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;5418:655:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7523:585::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7523:585:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;7523:585:9;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;7523:585:9;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;7523:585:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7523:585:9;;-1:-1:-1;7523:585:9;-1:-1:-1;7523:585:9;;;;;;;;;:::i;9353:774::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9353:774:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9353:774:9;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;9353:774:9;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9353:774:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9353:774:9;;-1:-1:-1;9353:774:9;-1:-1:-1;9353:774:9;;;;;;;;;:::i;8681:667::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;8681:667:9;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;8681:667:9;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;8681:667:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8681:667:9;;-1:-1:-1;8681:667:9;-1:-1:-1;8681:667:9;;;;;;;;;:::i;8113:563::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8113:563:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;8113:563:9;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;8113:563:9;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;8113:563:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8113:563:9;;-1:-1:-1;8113:563:9;-1:-1:-1;8113:563:9;;;;;;;;;:::i;417:38::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;417:38:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11709:178;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11709:178:9;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11709:178:9;;;;;;;;;;;;:::i;3922:841::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3922:841:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;3922:841:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;370:41::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;370:41:9;;;:::i;12309:193::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12309:193:9;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12309:193:9;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;12309:193:9;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;12309:193:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;12309:193:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;12309:193:9;;-1:-1:-1;12309:193:9;;-1:-1:-1;;;;;12309:193:9:i;6078:648::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6078:648:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;6078:648:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2227:715::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2227:715:9;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;2227:715:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2947:935;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;2947:935:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10933:770::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10933:770:9;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;10933:770:9;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10933:770:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10933:770:9;;-1:-1:-1;10933:770:9;-1:-1:-1;10933:770:9;;;;;;;;;:::i;4768:645::-;4990:16;5008:14;4971:8;523:15;511:8;:27;;503:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5061:188:::1;5090:5;5109:4;5127:9;5150:14;5178:12;5212:4;5231:8;5061:15;:188::i;:::-;5034:215:::0;;-1:-1:-1;5034:215:9;-1:-1:-1;5259:51:9::1;5287:5:::0;5294:2;5034:215;5259:27:::1;:51::i;:::-;5326:4;5320:20;;;5341:9;5320:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;5320:31:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;5320:31:9;;;;5361:45;5392:2;5396:9;5361:30;:45::i;:::-;4768:645:::0;;;;;;;;;;:::o;11893:202::-;11993:14;12026:62;12056:8;12066:9;12077:10;12026:29;:62::i;:::-;12019:69;11893:202;-1:-1:-1;;;;11893:202:9:o;10132:796::-;10325:21;10298:8;523:15;511:8;:27;;503:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10370:29:::1;10395:4;10370:29;:4:::0;;10375:15;;;10370:21;;::::1;;;;;;;;;;;;;:29;;;10362:71;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;10453:55;10484:7;10493:8;10503:4;;10453:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10453:30:9::1;::::0;-1:-1:-1;;;10453:55:9:i:1;:::-;10443:65;;10557:12;10526:7;10551:1;10534:7;:14;:18;10526:27;;;;;;;;;;;;;;:43;;10518:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10627:117;10659:4;;10664:1;10659:7;;;;;;;;;;;;;;;10668:10;10680:51;10705:7;10714:4;;10719:1;10714:7;;;;;;;;;;;;;;;10723:4;;10728:1;10723:7;;;;;;;;;;;;;;;10680:24;:51::i;:::-;10733:7;10741:1;10733:10;;;;;;;;;;;;;;10627:31;:117::i;:::-;10754:35;10760:7;10769:4;;10754:35;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10783:4:9::1;::::0;-1:-1:-1;10754:5:9::1;::::0;-1:-1:-1;;10754:35:9:i:1;:::-;10805:4;10799:20;;;10820:7;10845:1;10828:7;:14;:18;10820:27;;;;;;;;;;;;;;10799:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;10799:49:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10799:49:9;;;;10858:63;10889:2;10893:7;10918:1;10901:7;:14;:18;10893:27;;;;;;;;;;;;;;10858:30;:63::i;:::-;10132:796:::0;;;;;;;;;:::o;12508:193::-;12599:21;12639:55;12669:7;12678:9;12689:4;12639:29;:55::i;:::-;12632:62;;12508:193;;;;;:::o;5418:655::-;5707:12;5721;5745;5760:49;5785:7;5794:6;5802;5760:24;:49::i;:::-;5745:64;;5819:10;5832;:33;;5856:9;5832:33;;;5850:2;5832:33;5875:80;;;;;;5903:10;5875:80;;;;5923:4;5875:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5819:46;;-1:-1:-1;5875:27:9;;;;;;:80;;;;;-1:-1:-1;;5875:80:9;;;;;;;;-1:-1:-1;5875:27:9;:80;;;2:2:-1;;;;27:1;24;17:12;2:2;5875:80:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5875:80:9;;;;5986;6002:6;6010;6018:9;6029:10;6041;6053:2;6057:8;5986:15;:80::i;:::-;5965:101;;;;;;;;5418:655;;;;;;;;;;;;;;;;:::o;7523:585::-;7733:21;7714:8;523:15;511:8;:27;;503:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7776:55:::1;7807:7;7816:8;7826:4;;7776:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;7776:30:9::1;::::0;-1:-1:-1;;;7776:55:9:i:1;:::-;7766:65;;7880:12;7849:7;7874:1;7857:7;:14;:18;7849:27;;;;;;;;;;;;;;:43;;7841:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7950:117;7982:4;;7987:1;7982:7;;;;;;7950:117;8077:24;8083:7;8092:4;;8077:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;8098:2:9;;-1:-1:-1;8077:5:9::1;::::0;-1:-1:-1;;8077:24:9:i:1;9353:774::-:0;9546:21;9519:8;523:15;511:8;:27;;503:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9591:29:::1;9616:4;9591:29;:4:::0;;9596:15;;;9591:21;;::::1;;;;;;;;;;;;;:29;;;9583:71;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;9674:55;9704:7;9713:9;9724:4;;9674:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9674:29:9::1;::::0;-1:-1:-1;;;9674:55:9:i:1;:::-;9664:65;;9761:11;9747:7;9755:1;9747:10;;;;;;;;;;;;;;:25;;9739:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8681:667:::0;8875:21;8848:8;523:15;511:8;:27;;503:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8931:4:::1;8920:15;;:4;;8925:1;8920:7;;;;;;;;;;;;;;;:15;;;8912:57;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;8989:56;9020:7;9029:9;9040:4;;8989:56;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;8989:30:9::1;::::0;-1:-1:-1;;;8989:56:9:i:1;:::-;8979:66;;9094:12;9063:7;9088:1;9071:7;:14;:18;9063:27;;;;;;;;;;;;;;:43;;9055:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9170:4;9164:19;;;9191:7;9199:1;9191:10;;;;;;;;;;;;;;9164:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;9164:40:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;9164:40:9;;;;;9227:4;9221:20;;;9242:51;9267:7;9276:4;;9281:1;9276:7;;;;;;;;;;;;;;;9285:4;;9290:1;9285:7;;;;;;9242:51;9295:7;9303:1;9295:10;;;;;;;;;;;;;;9221:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;9221:85:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;9221:85:9;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;9221:85:9;9214:93:::1;;;;9317:24;9323:7;9332:4;;9317:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9338:2:9;;-1:-1:-1;9317:5:9::1;::::0;-1:-1:-1;;9317:24:9:i:1;:::-;8681:667:::0;;;;;;;;:::o;8113:563::-;8323:21;8304:8;523:15;511:8;:27;;503:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8366:55:::1;8396:7;8405:9;8416:4;;8366:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;8366:29:9::1;::::0;-1:-1:-1;;;8366:55:9:i:1;:::-;8356:65;;8453:11;8439:7;8447:1;8439:10;;;;;;;;;;;;;;:25;;8431:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;417:38:::0;;;:::o;11709:178::-;11798:12;11829:51;11852:7;11861:8;11871;11829:22;:51::i;3922:841::-;4160:12;4174;4141:8;523:15;511:8;:27;;503:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4198:12:::1;4213:49;4238:7;4247:6;4255;4213:24;:49::i;:::-;4272:62;::::0;;;;;4306:10:::1;4272:62;::::0;::::1;::::0;:33:::1;::::0;::::1;:62:::0;;;;;;;;;;;;;;4198:64;;-1:-1:-1;4272:33:9;;::::1;::::0;:62;;;;;::::1;::::0;;;;;;;;;-1:-1:-1;4272:33:9;:62;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4272:62:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4272:62:9;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;4401:29:9::1;::::0;;;;;:25:::1;:29:::0;;::::1;;::::0;::::1;::::0;;;4371:12:::1;::::0;;;4401:25;;::::1;::::0;::::1;::::0;:29;;;;;;;;;;;4371:12;4401:25;:29;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4401:29:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4401:29:9;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;4401:29:9;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;4401:29:9;-1:-1:-1;4441:14:9::1;4460:43;4488:6:::0;4496;4460:27:::1;:43::i;:::-;4440:63;;;4544:6;4534:16;;:6;:16;;;:58;;4575:7;4584;4534:58;;;4554:7;4563;4534:58;4513:79:::0;;-1:-1:-1;4513:79:9;-1:-1:-1;4610:21:9;;::::1;;4602:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4703:10;4692:7;:21;;4684:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;577:1;;;;3922:841:::0;;;;;;;;;;;:::o;370:41::-;;;:::o;12309:193::-;12400:21;12440:55;12471:7;12480:8;12490:4;12440:30;:55::i;6078:648::-;6351:16;6369:14;6395:12;6410:46;6435:7;6444:5;6451:4;6410:24;:46::i;:::-;6395:61;;6466:10;6479;:33;;6503:9;6479:33;;;6497:2;6479:33;6522:80;;;;;;6550:10;6522:80;;;;6570:4;6522:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6466:46;;-1:-1:-1;6522:27:9;;;;;;:80;;;;;-1:-1:-1;;6522:80:9;;;;;;;;-1:-1:-1;6522:27:9;:80;;;2:2:-1;;;;27:1;24;17:12;2:2;6522:80:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6522:80:9;;;;6639;6658:5;6665:9;6676:14;6692:12;6706:2;6710:8;6639:18;:80::i;:::-;6612:107;;;;-1:-1:-1;6078:648:9;-1:-1:-1;;;;;;;;;;;;;6078:648:9:o;2227:715::-;2498:12;2512;2526:14;2479:8;523:15;511:8;:27;;503:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2573:85:::1;2587:6;2595;2603:14;2619;2635:10;2647;2573:13;:85::i;:::-;2552:106:::0;;-1:-1:-1;2552:106:9;-1:-1:-1;2668:12:9::1;2683:49;2708:7;2717:6:::0;2725;2683:24:::1;:49::i;:::-;2668:64;;2742:66;2774:6;2782:10;2794:4;2800:7;2742:31;:66::i;:::-;2818;2850:6;2858:10;2870:4;2876:7;2818:31;:66::i;:::-;2921:4;2906:25;;;2932:2;2906:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;2906:29:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2906:29:9;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;2906:29:9;2227:715;;;;-1:-1:-1;2906:29:9;;-1:-1:-1;2227:715:9;;-1:-1:-1;;;;;;;;;2227:715:9:o;2947:935::-;3185:16;3203:14;3219;3166:8;523:15;511:8;:27;;503:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3272:169:::1;3299:5;3318:4;3336:18;3368:9;3391:14;3419:12;3272:13;:169::i;:::-;3245:196:::0;;-1:-1:-1;3245:196:9;-1:-1:-1;3451:12:9::1;3466:46;3491:7;3500:5:::0;3507:4:::1;3466:24;:46::i;:::-;3451:61;;3522:69;3554:5;3561:10;3573:4;3579:11;3522:31;:69::i;:::-;3607:4;3601:19;;;3628:9;3601:39;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3601:39:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3601:39:9;;;;;3663:4;3657:20;;;3678:4;3684:9;3657:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3657:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3657:37:9;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3657:37:9;3650:45:::1;;;;3732:4;3717:25;;;3743:2;3717:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3717:29:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3717:29:9;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3717:29:9;;-1:-1:-1;3760:9:9::1;:21:::0;-1:-1:-1;3756:92:9::1;;;3783:65;3814:10;3838:9;3826;:21;3783:30;:65::i;:::-;577:1;2947:935:::0;;;;;;;;;;;:::o;10933:770::-;11124:21;11097:8;523:15;511:8;:27;;503:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11180:4:::1;11169:15;;:4;;11174:1;11169:7;;;;;;;;;;;;;;;:15;;;11161:57;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;11238:55;11268:7;11277:9;11288:4;;11238:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;11238:29:9::1;::::0;-1:-1:-1;;;11238:55:9:i:1;:::-;11228:65;;11325:9;11311:7;11319:1;11311:10;;;;;;;;;;;;;;:23;;11303:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11394:4;11388:19;;;11415:7;11423:1;11415:10;;;;;;;;;;;;;;11388:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;11388:40:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;11388:40:9;;;;;11451:4;11445:20;;;11466:51;11491:7;11500:4;;11505:1;11500:7;;;;;;11466:51;11519:7;11527:1;11519:10;;;;;;;;;;;;;;11445:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;11445:85:9;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;11445:85:9;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;11445:85:9;11438:93:::1;;;;11541:24;11547:7;11556:4;;11541:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;11562:2:9;;-1:-1:-1;11541:5:9::1;::::0;-1:-1:-1;;11541:24:9:i:1;:::-;11591:7;11599:1;11591:10;;;;;;;;;;;;;;11579:9;:22;11575:94;;;11603:66;11634:10;11658:7;11666:1;11658:10;;;;;;;;;;;;;;11646:9;:22;11603:30;:66::i;652:438:4:-:0;878:45;;;867:10;878:45;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;878:45:4;;;;;;;25:18:-1;;61:17;;96:58;182:15;878:45:4;179:29:-1;160:49;;867:57:4;;;;832:12;;846:17;;867:10;;;;878:45;867:57;;;25:18:-1;867:57:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;867:57:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;831:93:4;;;;955:7;:57;;;;-1:-1:-1;967:11:4;;:16;;:44;;;998:4;987:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;987:24:4;967:44;934:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;652:438;;;;;:::o;1588:214::-;1700:12;;;1660;1700;;;;;;;;;1678:7;;;;1693:5;;1678:35;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1678:35:4;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1659:54:4;;;1731:7;1723:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1588:214;;;:::o;2174:510:24:-;2267:14;2312:1;2301:8;:12;2293:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2391:1;2379:9;:13;:31;;;;;2409:1;2396:10;:14;2379:31;2371:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2465:20;2488:17;:8;2501:3;2488:17;:12;:17;:::i;:::-;2465:40;-1:-1:-1;2515:14:24;2532:31;2465:40;2552:10;2532:31;:19;:31;:::i;:::-;2515:48;-1:-1:-1;2573:16:24;2592:40;2616:15;2592:19;:9;2606:4;2592:19;:13;:19;:::i;:::-;:23;:40;:23;:40;:::i;:::-;2573:59;;2666:11;2654:9;:23;;;;;;;2174:510;-1:-1:-1;;;;;;;2174:510:24:o;3347:503::-;3448:21;3504:1;3489:4;:11;:16;;3481:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3571:4;:11;3560:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3560:23:24;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;3560:23:24;;3550:33;;3606:8;3593:7;3601:1;3593:10;;;;;;;;;;;;;:21;;;;;3629:6;3624:220;3655:1;3641:4;:11;:15;3637:1;:19;3624:220;;;3678:14;3694:15;3713:42;3725:7;3734:4;3739:1;3734:7;;;;;;;;;;;;;;3743:4;3748:1;3752;3748:5;3743:11;;;;;;;;;;;;;;3713;:42::i;:::-;3677:78;;;;3786:47;3799:7;3807:1;3799:10;;;;;;;;;;;;;;3811:9;3822:10;3786:12;:47::i;:::-;3769:7;3777:1;3781;3777:5;3769:14;;;;;;;;;;;;;;;;;:64;-1:-1:-1;;3658:3:24;;3624:220;;;;3347:503;;;;;:::o;715:470::-;804:12;829:14;845;863:26;874:6;882;863:10;:26::i;:::-;1023:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;1023:32:24;;;;;1013:43;;;;;;929:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;929:246:24;;;;;;;919:257;;;;;;;;;715:470;-1:-1:-1;;;;;715:470:24:o;1096:486:4:-;1360:51;;;1349:10;1360:51;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1360:51:4;;;;;;;25:18:-1;;61:17;;96:58;182:15;1360:51:4;179:29:-1;160:49;;1349:63:4;;;;1314:12;;1328:17;;1349:10;;;;1360:51;1349:63;;;25:18:-1;1349:63:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1349:63:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1313:99:4;;;;1443:7;:57;;;;-1:-1:-1;1455:11:4;;:16;;:44;;;1486:4;1475:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1475:24:4;1455:44;1422:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1096:486;;;;;;:::o;6833:685:9:-;6930:6;6925:587;6956:1;6942:4;:11;:15;6938:1;:19;6925:587;;;6979:13;6994:14;7013:4;7018:1;7013:7;;;;;;;;;;;;;;7022:4;7027:1;7031;7027:5;7022:11;;;;;;;;;;;;;;6978:56;;;;7049:14;7068:42;7096:5;7103:6;7068:27;:42::i;:::-;7048:62;;;7124:14;7141:7;7149:1;7153;7149:5;7141:14;;;;;;;;;;;;;;7124:31;;7170:15;7187;7215:6;7206:15;;:5;:15;;;:61;;7248:9;7264:1;7206:61;;;7230:1;7234:9;7206:61;7169:98;;;;7281:10;7312:1;7298:4;:11;:15;7294:1;:19;:82;;7373:3;7294:82;;;7316:54;7341:7;7350:6;7358:4;7363:1;7367;7363:5;7358:11;;;;;;;;;;;;;;7316:24;:54::i;:::-;7281:95;;7405:48;7430:7;7439:5;7446:6;7405:24;:48::i;:::-;7390:69;;;7460:10;7472;7484:2;7498:1;7488:12;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;108:14;7488:12:9;87:42:-1;143:17;;-1:-1;7488:12:9;;7390:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7390:111:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7390:111:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6959:3:9;;;;;-1:-1:-1;6925:587:9;;-1:-1:-1;;;;;;;;6925:587:9;;;6833:685;;;:::o;3928:524:24:-;4029:21;4085:1;4070:4;:11;:16;;4062:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4152:4;:11;4141:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4141:23:24;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;4141:23:24;;4131:33;;4204:9;4174:7;4199:1;4182:7;:14;:18;4174:27;;;;;;;;;;;;;;;;;:39;4237:11;;:15;;4223:223;4254:5;;4223:223;;4281:14;4297:15;4316:42;4328:7;4337:4;4346:1;4342;:5;4337:11;;;;;;;;;;;;;;4350:4;4355:1;4350:7;;;;;;;4316:42;4280:78;;;;4389:46;4401:7;4409:1;4401:10;;;;;;;;;;;;;;4413:9;4424:10;4389:11;:46::i;:::-;4372:7;4384:1;4380;:5;4372:14;;;;;;;;;;;;;;;;;:63;-1:-1:-1;;4261:3:24;;4223:223;;1738:317;1820:12;1862:1;1852:7;:11;1844:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1934:1;1923:8;:12;:28;;;;;1950:1;1939:8;:12;1923:28;1915:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2040:8;2016:21;:7;2028:8;2016:21;:11;:21;:::i;:::-;:32;;;;;;;1738:317;-1:-1:-1;;;;1738:317:24:o;281:345::-;356:14;372;416:6;406:16;;:6;:16;;;;398:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;502:6;493:15;;:6;:15;;;:53;;531:6;539;493:53;;;512:6;520;493:53;474:72;;-1:-1:-1;474:72:24;-1:-1:-1;564:20:24;;;556:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;281:345;;;;;:::o;868:1354:9:-;1163:50;;;;;;:64;:50;;;;;;;;;;;;;;;;1070:12;;;;;;1181:7;1163:34;;;;;;:50;;;;;;;;;;;;;;;:34;:50;;;2:2:-1;;;;27:1;24;17:12;2:2;1163:50:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1163:50:9;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1163:50:9;:64;;;1159:148;;;1243:53;;;;;;:37;:53;;;;;;;;;;;;;;;;1261:7;1243:37;;;;;;:53;;;;;;;;;;;;;;;-1:-1:-1;1243:37:9;:53;;;2:2:-1;;;;27:1;24;17:12;2:2;1243:53:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1243:53:9;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;1159:148:9;1317:13;1332;1349:53;1378:7;1387:6;1395;1349:28;:53::i;:::-;1316:86;;;;1416:8;1428:1;1416:13;:30;;;;-1:-1:-1;1433:13:9;;1416:30;1412:804;;;1484:14;;-1:-1:-1;1500:14:9;;-1:-1:-1;1412:804:9;;;1546:19;1568:58;1591:14;1607:8;1617;1568:22;:58::i;:::-;1546:80;;1662:14;1644;:32;1640:566;;1722:10;1704:14;:28;;1696:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1815:14;;-1:-1:-1;1831:14:9;-1:-1:-1;1831:14:9;1640:566;;;1885:19;1907:58;1930:14;1946:8;1956;1907:22;:58::i;:::-;1885:80;;2008:14;1990;:32;;1983:40;;;;2067:10;2049:14;:28;;2041:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2160:14;-1:-1:-1;2176:14:9;;-1:-1:-1;1640:566:9;1412:804;;868:1354;;;;;;;;;;;:::o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;237:5;;;232:16;;;;224:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1241:387:24;1334:13;1349;1375:14;1394:26;1405:6;1413;1394:10;:26::i;:::-;1374:46;;;1431:13;1446;1479:32;1487:7;1496:6;1504;1479:7;:32::i;:::-;1464:60;;;:62;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1464:62:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1464:62:24;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1464:62:24;;;;;;;1430:96;;;;;-1:-1:-1;1430:96:24;;-1:-1:-1;1559:16:24;;;;;;;;:62;;1602:8;1612;1559:62;;;1579:8;1589;1559:62;1536:85;;;;-1:-1:-1;1241:387:24;-1:-1:-1;;;;;;;1241:387:24:o;2802:466::-;2895:13;2940:1;2928:9;:13;2920:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:1;3008:9;:13;:31;;;;;3038:1;3025:10;:14;3008:31;3000:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3094:14;3111:34;3140:4;3111:24;:9;3125;3111:24;:13;:24;:::i;:::-;:28;:34;:28;:34;:::i;:::-;3094:51;-1:-1:-1;3155:16:24;3174:34;3204:3;3174:25;:10;3189:9;3174:25;:14;:25;:::i;:34::-;3155:53;;3229:32;3259:1;3242:11;3230:9;:23;;;;;;;3229:32;:29;:32;:::i;:::-;3218:43;2802:466;-1:-1:-1;;;;;;2802:466:24:o;286:127:23:-;369:5;;;364:16;;;;356:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"1992":[{"start":3469,"length":32},{"start":3723,"length":32},{"start":4145,"length":32},{"start":4202,"length":32},{"start":4629,"length":32},{"start":5290,"length":32},{"start":5836,"length":32},{"start":6253,"length":32},{"start":6707,"length":32},{"start":7078,"length":32},{"start":7736,"length":32},{"start":7777,"length":32},{"start":7825,"length":32},{"start":8302,"length":32},{"start":8733,"length":32},{"start":9716,"length":32},{"start":10130,"length":32},{"start":12795,"length":32},{"start":12862,"length":32},{"start":14289,"length":32},{"start":14514,"length":32},{"start":14642,"length":32}],"1995":[{"start":357,"length":32},{"start":2851,"length":32},{"start":2910,"length":32},{"start":3227,"length":32},{"start":3934,"length":32},{"start":5048,"length":32},{"start":5606,"length":32},{"start":6041,"length":32},{"start":6190,"length":32},{"start":6909,"length":32},{"start":7859,"length":32},{"start":8681,"length":32},{"start":8767,"length":32},{"start":8819,"length":32},{"start":8948,"length":32},{"start":9486,"length":32},{"start":9918,"length":32},{"start":10067,"length":32}]}},"methodIdentifiers":{"WETH()":"ad5c4648","addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)":"e8e33700","addLiquidityETH(address,uint256,uint256,uint256,address,uint256)":"f305d719","factory()":"c45a0155","getAmountIn(uint256,uint256,uint256)":"85f8c259","getAmountOut(uint256,uint256,uint256)":"054d50d4","getAmountsIn(uint256,address[])":"1f00ca74","getAmountsOut(uint256,address[])":"d06ca61f","quote(uint256,uint256,uint256)":"ad615dec","removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)":"baa2abde","removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)":"02751cec","removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"ded9382a","removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"2195995c","swapETHForExactTokens(uint256,address[],address,uint256)":"fb3bdb41","swapExactETHForTokens(uint256,address[],address,uint256)":"7ff36ab5","swapExactTokensForETH(uint256,uint256,address[],address,uint256)":"18cbafe5","swapExactTokensForTokens(uint256,uint256,address[],address,uint256)":"38ed1739","swapTokensForExactETH(uint256,uint256,address[],address,uint256)":"4a25d94a","swapTokensForExactTokens(uint256,uint256,address[],address,uint256)":"8803dbee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WETH\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityETHWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapETHForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactETHForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/UniswapV2Router01.sol\":\"UniswapV2Router01\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd\",\"urls\":[\"bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595\",\"dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891\",\"urls\":[\"bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389\",\"dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"contracts/lib/v2-periphery/contracts/UniswapV2Router01.sol\":{\"keccak256\":\"0x85443da066b7de923d9c63105df6acd02ab9f51d8d2bdaadd7d2fc0341e12a0f\",\"urls\":[\"bzz-raw://72634c59f3f77da2e7ce24c9d175396805a163fa4012e37d519f6da6f4a6cd33\",\"dweb:/ipfs/QmaKFJmQPoZHoNcNLWzz99Pr77b9RFmq7nnRALqC51zom6\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3\",\"urls\":[\"bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66\",\"dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":{\"keccak256\":\"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2\",\"urls\":[\"bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb\",\"dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IWETH.sol\":{\"keccak256\":\"0xfc10758fd8dba790c39468dccd358cb7cef06ae7c4781832cc7aa76f91f167e6\",\"urls\":[\"bzz-raw://dc22493dea6c60d47835eeba53726f8a6f76f4fcd798d40e54608a1380515d49\",\"dweb:/ipfs/QmS1QVcBRH4TELYNE7XCfjSVQEWFupyaNLKmMkKH7iPjrm\"]},\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol\":{\"keccak256\":\"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9\",\"urls\":[\"bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c\",\"dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"addLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"stateMutability":"view","type":"function","name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"stateMutability":"view","type":"function","name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"stateMutability":"pure","type":"function","name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETHWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapETHForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/UniswapV2Router01.sol":"UniswapV2Router01"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol":{"keccak256":"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd","urls":["bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595","dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol":{"keccak256":"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891","urls":["bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389","dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"contracts/lib/v2-periphery/contracts/UniswapV2Router01.sol":{"keccak256":"0x85443da066b7de923d9c63105df6acd02ab9f51d8d2bdaadd7d2fc0341e12a0f","urls":["bzz-raw://72634c59f3f77da2e7ce24c9d175396805a163fa4012e37d519f6da6f4a6cd33","dweb:/ipfs/QmaKFJmQPoZHoNcNLWzz99Pr77b9RFmq7nnRALqC51zom6"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol":{"keccak256":"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3","urls":["bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66","dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol":{"keccak256":"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2","urls":["bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb","dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IWETH.sol":{"keccak256":"0xfc10758fd8dba790c39468dccd358cb7cef06ae7c4781832cc7aa76f91f167e6","urls":["bzz-raw://dc22493dea6c60d47835eeba53726f8a6f76f4fcd798d40e54608a1380515d49","dweb:/ipfs/QmS1QVcBRH4TELYNE7XCfjSVQEWFupyaNLKmMkKH7iPjrm"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol":{"keccak256":"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9","urls":["bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c","dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR"],"license":null}},"version":1},"id":9} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Router02.sol/UniswapV2Router02.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Router02.sol/UniswapV2Router02.json new file mode 100644 index 0000000000..448d77a1b9 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/UniswapV2Router02.sol/UniswapV2Router02.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_factory","type":"address","internalType":"address"},{"name":"_WETH","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"addLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"amountADesired","type":"uint256","internalType":"uint256"},{"name":"amountBDesired","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"addLiquidityETH","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amountTokenDesired","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAmountIn","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"reserveIn","type":"uint256","internalType":"uint256"},{"name":"reserveOut","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getAmountOut","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"reserveIn","type":"uint256","internalType":"uint256"},{"name":"reserveOut","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getAmountsIn","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getAmountsOut","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"reserveA","type":"uint256","internalType":"uint256"},{"name":"reserveB","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"removeLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETH","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETHSupportingFeeOnTransferTokens","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETHWithPermit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"approveMax","type":"bool","internalType":"bool"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amountToken","type":"uint256","internalType":"uint256"},{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountTokenMin","type":"uint256","internalType":"uint256"},{"name":"amountETHMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"approveMax","type":"bool","internalType":"bool"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amountETH","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeLiquidityWithPermit","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"approveMax","type":"bool","internalType":"bool"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapETHForExactTokens","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"swapExactETHForTokens","inputs":[{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"swapExactETHForTokensSupportingFeeOnTransferTokens","inputs":[{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"swapExactTokensForETH","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactTokensForETHSupportingFeeOnTransferTokens","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactTokensForTokens","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactETH","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactTokens","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60c06040523480156200001157600080fd5b506040516200577338038062005773833981810160405260408110156200003757600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c6155ec62000187600039806101ac5280610e5d5280610e985280610fd5528061129852806116f252806118d65280611e1e5280611fa252806120725280612179528061232c52806123c15280612673528061271a52806127ef52806128f452806129dc5280612a5d52806130ec5280613422528061347852806134ac528061352d528061374752806138f7528061398c5250806110c752806111c5528061136b52806113a4528061154f52806117e452806118b45280611aa1528061225f528061240052806125a95280612a9c5280612ddf5280613071528061309a52806130ca52806132a75280613456528061382d52806139cb5280614434528061447752806147d752806149b85280614f335280615014528061509452506155ec6000f3fe60806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a612d65565b9093509150610e96898685613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613ce9565b50965096945050505050565b6000610f44848484613e26565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f00000000000000000000000000000000000000000000000000000000000000008a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140b0565b8560008151811061124a57fe5b602002602001015161419b565b6112968287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525030925061436b915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613ce9565b509695505050505050565b60606113917f000000000000000000000000000000000000000000000000000000000000000084846145f2565b90505b92915050565b60008060006113ca7f00000000000000000000000000000000000000000000000000000000000000008f8f6140b0565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b6113598287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b6000806118fa7f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006140b0565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a61419b565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614780915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b1316565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614780915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613ce9565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b5095945050505050565b6000610f44848484614b85565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610f44848484614ca9565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f00000000000000000000000000000000000000000000000000000000000000008989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613ce9565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614780915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f00000000000000000000000000000000000000000000000000000000000000008c8c6140b0565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d89565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606113917f00000000000000000000000000000000000000000000000000000000000000008484613f4a565b60008060006131107f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006140b0565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614edc565b909450925060006132cd7f00000000000000000000000000000000000000000000000000000000000000008e8e6140b0565b90506132db8d33838861419b565b6132e78c33838761419b565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c614edc565b9094509250600061349c7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006140b0565b90506134aa8b33838861419b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613ce9565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f0000000000000000000000000000000000000000000000000000000000000000888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae68287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613ce9565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613ce2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061555f602d913960400191505060405180910390fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d6057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d23565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dc2576040519150601f19603f3d011682016040523d82523d6000602084013e613dc7565b606091505b5050905080613e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603481526020018061541b6034913960400191505060405180910390fd5b505050565b6000808411613e80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061558c602b913960400191505060405180910390fd5b600083118015613e905750600082115b613ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000613ef9856103e563ffffffff6151dd16565b90506000613f0d828563ffffffff6151dd16565b90506000613f3383613f27886103e863ffffffff6151dd16565b9063ffffffff61526316565b9050808281613f3e57fe5b04979650505050505050565b6060600282511015613fbd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613fd557600080fd5b50604051908082528060200260200182016040528015613fff578160200160208202803683370190505b509050828160008151811061401057fe5b60200260200101818152505060005b60018351038110156140a8576000806140628786858151811061403e57fe5b602002602001015187866001018151811061405557fe5b60200260200101516152d5565b9150915061408484848151811061407557fe5b60200260200101518383613e26565b84846001018151811061409357fe5b6020908102919091010152505060010161401f565b509392505050565b60008060006140bf8585614d89565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061427957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161423c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142db576040519150601f19603f3d011682016040523d82523d6000602084013e6142e0565b606091505b509150915081801561430e57508051158061430e575080806020019051602081101561430b57600080fd5b50515b614363576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806153ea6031913960400191505060405180910390fd5b505050505050565b60005b60018351038110156145ec5760008084838151811061438957fe5b60200260200101518584600101815181106143a057fe5b60200260200101519150915060006143b88383614d89565b50905060008785600101815181106143cc57fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461441457826000614418565b6000835b91509150600060028a5103881061442f5788614470565b6144707f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061446357fe5b60200260200101516140b0565b905061449d7f000000000000000000000000000000000000000000000000000000000000000088886140b0565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144e7576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561457257818101518382015260200161455a565b50505050905090810190601f16801561459f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145c157600080fd5b505af11580156145d5573d6000803e3d6000fd5b50506001909901985061436e975050505050505050565b50505050565b606060028251101561466557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561467d57600080fd5b506040519080825280602002602001820160405280156146a7578160200160208202803683370190505b50905082816001835103815181106146bb57fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140a85760008061471b8786600186038151811061470757fe5b602002602001015187868151811061405557fe5b9150915061473d84848151811061472e57fe5b60200260200101518383614b85565b84600185038151811061474c57fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016146eb565b60005b6001835103811015613e215760008084838151811061479e57fe5b60200260200101518584600101815181106147b557fe5b60200260200101519150915060006147cd8383614d89565b50905060006147fd7f000000000000000000000000000000000000000000000000000000000000000085856140b0565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561484b57600080fd5b505afa15801561485f573d6000803e3d6000fd5b505050506040513d606081101561487557600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148bf5782846148c2565b83835b91509150614947828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b9550614954868383613e26565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149985782600061499c565b6000835b91509150600060028c51038a106149b3578a6149e7565b6149e77f0000000000000000000000000000000000000000000000000000000000000000898e8d6002018151811061446357fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614a97578181015183820152602001614a7f565b50505050905090810190601f168015614ac45780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614ae657600080fd5b505af1158015614afa573d6000803e3d6000fd5b50506001909b019a506147839950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153be602c913960400191505060405180910390fd5b600083118015614bef5750600082115b614c44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000614c686103e8614c5c868863ffffffff6151dd16565b9063ffffffff6151dd16565b90506000614c826103e5614c5c868963ffffffff614b1316565b9050614c9f6001828481614c9257fe5b049063ffffffff61526316565b9695505050505050565b6000808411614d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154c26025913960400191505060405180910390fd5b600083118015614d135750600082115b614d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b82614d79858463ffffffff6151dd16565b81614d8057fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061544f6025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e4b578284614e4e565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b158015614f7c57600080fd5b505afa158015614f90573d6000803e3d6000fd5b505050506040513d6020811015614fa657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561508c57604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b15801561505f57600080fd5b505af1158015615073573d6000803e3d6000fd5b505050506040513d602081101561508957600080fd5b50505b6000806150ba7f00000000000000000000000000000000000000000000000000000000000000008b8b6152d5565b915091508160001480156150cc575080155b156150dc578793508692506151d0565b60006150e9898484614ca9565b9050878111615156578581101561514b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b8894509250826151ce565b6000615163898486614ca9565b90508981111561516f57fe5b878110156151c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008115806151f8575050808202828282816151f557fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152e48585614d89565b5090506000806152f58888886140b0565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561533a57600080fd5b505afa15801561534e573d6000803e3d6000fd5b505050506040513d606081101561536457600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153ab5780826153ae565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a264697066735822122058679bc9474b9bf23de79679b7f67187bb1fb84a5701294ce32c84e6b840987e64736f6c63430006060033","sourceMap":"350:18115:10:-:0;;;656:109;5:9:-1;2:2;;;27:1;24;17:12;2:2;656:109:10;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;656:109:10;;;;;;;-1:-1:-1;;;;;;718:18:10;;;;;;;;746:12;;;;;350:18115;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a612d65565b9093509150610e96898685613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613ce9565b50965096945050505050565b6000610f44848484613e26565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f00000000000000000000000000000000000000000000000000000000000000008a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140b0565b8560008151811061124a57fe5b602002602001015161419b565b6112968287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525030925061436b915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613ce9565b509695505050505050565b60606113917f000000000000000000000000000000000000000000000000000000000000000084846145f2565b90505b92915050565b60008060006113ca7f00000000000000000000000000000000000000000000000000000000000000008f8f6140b0565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b6113598287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b6000806118fa7f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006140b0565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a61419b565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614780915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b1316565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614780915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613ce9565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b5095945050505050565b6000610f44848484614b85565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610f44848484614ca9565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f00000000000000000000000000000000000000000000000000000000000000008989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613ce9565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614780915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f00000000000000000000000000000000000000000000000000000000000000008c8c6140b0565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d89565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606113917f00000000000000000000000000000000000000000000000000000000000000008484613f4a565b60008060006131107f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006140b0565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614edc565b909450925060006132cd7f00000000000000000000000000000000000000000000000000000000000000008e8e6140b0565b90506132db8d33838861419b565b6132e78c33838761419b565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c614edc565b9094509250600061349c7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006140b0565b90506134aa8b33838861419b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613ce9565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f0000000000000000000000000000000000000000000000000000000000000000888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae68287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613ce9565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613ce2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061555f602d913960400191505060405180910390fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d6057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d23565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dc2576040519150601f19603f3d011682016040523d82523d6000602084013e613dc7565b606091505b5050905080613e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603481526020018061541b6034913960400191505060405180910390fd5b505050565b6000808411613e80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061558c602b913960400191505060405180910390fd5b600083118015613e905750600082115b613ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000613ef9856103e563ffffffff6151dd16565b90506000613f0d828563ffffffff6151dd16565b90506000613f3383613f27886103e863ffffffff6151dd16565b9063ffffffff61526316565b9050808281613f3e57fe5b04979650505050505050565b6060600282511015613fbd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613fd557600080fd5b50604051908082528060200260200182016040528015613fff578160200160208202803683370190505b509050828160008151811061401057fe5b60200260200101818152505060005b60018351038110156140a8576000806140628786858151811061403e57fe5b602002602001015187866001018151811061405557fe5b60200260200101516152d5565b9150915061408484848151811061407557fe5b60200260200101518383613e26565b84846001018151811061409357fe5b6020908102919091010152505060010161401f565b509392505050565b60008060006140bf8585614d89565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061427957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161423c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142db576040519150601f19603f3d011682016040523d82523d6000602084013e6142e0565b606091505b509150915081801561430e57508051158061430e575080806020019051602081101561430b57600080fd5b50515b614363576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806153ea6031913960400191505060405180910390fd5b505050505050565b60005b60018351038110156145ec5760008084838151811061438957fe5b60200260200101518584600101815181106143a057fe5b60200260200101519150915060006143b88383614d89565b50905060008785600101815181106143cc57fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461441457826000614418565b6000835b91509150600060028a5103881061442f5788614470565b6144707f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061446357fe5b60200260200101516140b0565b905061449d7f000000000000000000000000000000000000000000000000000000000000000088886140b0565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144e7576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561457257818101518382015260200161455a565b50505050905090810190601f16801561459f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145c157600080fd5b505af11580156145d5573d6000803e3d6000fd5b50506001909901985061436e975050505050505050565b50505050565b606060028251101561466557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561467d57600080fd5b506040519080825280602002602001820160405280156146a7578160200160208202803683370190505b50905082816001835103815181106146bb57fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140a85760008061471b8786600186038151811061470757fe5b602002602001015187868151811061405557fe5b9150915061473d84848151811061472e57fe5b60200260200101518383614b85565b84600185038151811061474c57fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016146eb565b60005b6001835103811015613e215760008084838151811061479e57fe5b60200260200101518584600101815181106147b557fe5b60200260200101519150915060006147cd8383614d89565b50905060006147fd7f000000000000000000000000000000000000000000000000000000000000000085856140b0565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561484b57600080fd5b505afa15801561485f573d6000803e3d6000fd5b505050506040513d606081101561487557600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148bf5782846148c2565b83835b91509150614947828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b9550614954868383613e26565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149985782600061499c565b6000835b91509150600060028c51038a106149b3578a6149e7565b6149e77f0000000000000000000000000000000000000000000000000000000000000000898e8d6002018151811061446357fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614a97578181015183820152602001614a7f565b50505050905090810190601f168015614ac45780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614ae657600080fd5b505af1158015614afa573d6000803e3d6000fd5b50506001909b019a506147839950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153be602c913960400191505060405180910390fd5b600083118015614bef5750600082115b614c44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000614c686103e8614c5c868863ffffffff6151dd16565b9063ffffffff6151dd16565b90506000614c826103e5614c5c868963ffffffff614b1316565b9050614c9f6001828481614c9257fe5b049063ffffffff61526316565b9695505050505050565b6000808411614d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154c26025913960400191505060405180910390fd5b600083118015614d135750600082115b614d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b82614d79858463ffffffff6151dd16565b81614d8057fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061544f6025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e4b578284614e4e565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b158015614f7c57600080fd5b505afa158015614f90573d6000803e3d6000fd5b505050506040513d6020811015614fa657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561508c57604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b15801561505f57600080fd5b505af1158015615073573d6000803e3d6000fd5b505050506040513d602081101561508957600080fd5b50505b6000806150ba7f00000000000000000000000000000000000000000000000000000000000000008b8b6152d5565b915091508160001480156150cc575080155b156150dc578793508692506151d0565b60006150e9898484614ca9565b9050878111615156578581101561514b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b8894509250826151ce565b6000615163898486614ca9565b90508981111561516f57fe5b878110156151c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008115806151f8575050808202828282816151f557fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152e48585614d89565b5090506000806152f58888886140b0565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561533a57600080fd5b505afa15801561534e573d6000803e3d6000fd5b505050506040513d606081101561536457600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153ab5780826153ae565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a264697066735822122058679bc9474b9bf23de79679b7f67187bb1fb84a5701294ce32c84e6b840987e64736f6c63430006060033","sourceMap":"350:18115:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;815:10;:18;829:4;815:18;;808:26;;;;350:18115;;12:1:-1;9;2:12;4874:653:10;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4874:653:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;4874:653:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17448:254;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17448:254:10;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17448:254:10;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11879:834;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11879:834:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;11879:834:10;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;11879:834:10;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;11879:834:10;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11879:834:10;;-1:-1:-1;11879:834:10;-1:-1:-1;11879:834:10;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11879:834:10;;;;;;;;;;;;;;;;;18218:245;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18218:245:10;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18218:245:10;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;18218:245:10;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;18218:245:10;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18218:245:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18218:245:10;;-1:-1:-1;18218:245:10;;-1:-1:-1;;;;;18218:245:10:i;5532:663::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5532:663:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;5532:663:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9156:615::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9156:615:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9156:615:10;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;9156:615:10;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9156:615:10;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9156:615:10;;-1:-1:-1;9156:615:10;-1:-1:-1;9156:615:10;;;;;;;;;:::i;11062:812::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11062:812:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;11062:812:10;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;11062:812:10;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;11062:812:10;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11062:812:10;;-1:-1:-1;11062:812:10;-1:-1:-1;11062:812:10;;;;;;;;;:::i;7617:703::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7617:703:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;7617:703:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14857:698::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14857:698:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;14857:698:10;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;14857:698:10;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;14857:698:10;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14857:698:10;;-1:-1:-1;14857:698:10;-1:-1:-1;14857:698:10;;;;;;;;;:::i;16393:822::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16393:822:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;16393:822:10;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;16393:822:10;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;16393:822:10;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;16393:822:10;;-1:-1:-1;16393:822:10;-1:-1:-1;16393:822:10;;;;;;;;;:::i;10374:683::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10374:683:10;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;10374:683:10;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10374:683:10;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10374:683:10;;-1:-1:-1;10374:683:10;-1:-1:-1;10374:683:10;;;;;;;;;:::i;17708:253::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17708:253:10;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17708:253:10;;;;;;;;;;;;:::i;9776:593::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9776:593:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9776:593:10;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;9776:593:10;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9776:593:10;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9776:593:10;;-1:-1:-1;9776:593:10;-1:-1:-1;9776:593:10;;;;;;;;;:::i;482:38::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;482:38:10;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17256:186;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17256:186:10;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17256:186:10;;;;;;;;;;;;:::i;6932:680::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6932:680:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;6932:680:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15560:828::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;15560:828:10;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;15560:828:10;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;15560:828:10;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;15560:828:10;;-1:-1:-1;15560:828:10;-1:-1:-1;15560:828:10;;;;;;;;;:::i;4020:849::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4020:849:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;4020:849:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;435:41::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;435:41:10;;;:::i;17967:245::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17967:245:10;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17967:245:10;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;17967:245:10;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;17967:245:10;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17967:245:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;17967:245:10;;-1:-1:-1;17967:245:10;;-1:-1:-1;;;;;17967:245:10:i;6200:656::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6200:656:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;6200:656:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2301:723::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2301:723:10;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;2301:723:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;3029:951;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;3029:951:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12718:794::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;12718:794:10;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;12718:794:10;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;12718:794:10;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;12718:794:10;;-1:-1:-1;12718:794:10;-1:-1:-1;12718:794:10;;;;;;;;;:::i;4874:653::-;5104:16;5122:14;5085:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5175:188:::1;5204:5;5223:4;5241:9;5264:14;5292:12;5326:4;5345:8;5175:15;:188::i;:::-;5148:215:::0;;-1:-1:-1;5148:215:10;-1:-1:-1;5373:51:10::1;5401:5:::0;5408:2;5148:215;5373:27:::1;:51::i;:::-;5440:4;5434:20;;;5455:9;5434:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;5434:31:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;5434:31:10;;;;5475:45;5506:2;5510:9;5475:30;:45::i;:::-;4874:653:::0;;;;;;;;;;:::o;17448:254::-;17596:14;17633:62;17663:8;17673:9;17684:10;17633:29;:62::i;:::-;17626:69;17448:254;-1:-1:-1;;;;17448:254:10:o;11879:834::-;12088:21;12061:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12133:29:::1;12158:4;12133:29;:4:::0;;12138:15;;;12133:21;;::::1;;;;;;;;;;;;;:29;;;12125:71;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;12216:55;12247:7;12256:8;12266:4;;12216:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12216:30:10::1;::::0;-1:-1:-1;;;12216:55:10:i:1;:::-;12206:65;;12320:12;12289:7;12314:1;12297:7;:14;:18;12289:27;;;;;;;;;;;;;;:43;;12281:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12390:139;12435:4;;12440:1;12435:7;;;;;;;;;;;;;;;12444:10;12456:51;12481:7;12490:4;;12495:1;12490:7;;;;;;;;;;;;;;;12499:4;;12504:1;12499:7;;;;;;;;;;;;;;;12456:24;:51::i;:::-;12509:7;12517:1;12509:10;;;;;;;;;;;;;;12390:31;:139::i;:::-;12539:35;12545:7;12554:4;;12539:35;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;12568:4:10::1;::::0;-1:-1:-1;12539:5:10::1;::::0;-1:-1:-1;;12539:35:10:i:1;:::-;12590:4;12584:20;;;12605:7;12630:1;12613:7;:14;:18;12605:27;;;;;;;;;;;;;;12584:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;12584:49:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12584:49:10;;;;12643:63;12674:2;12678:7;12703:1;12686:7;:14;:18;12678:27;;;;;;;;;;;;;;12643:30;:63::i;:::-;11879:834:::0;;;;;;;;;:::o;18218:245::-;18357:21;18401:55;18431:7;18440:9;18451:4;18401:29;:55::i;:::-;18394:62;;18218:245;;;;;:::o;5532:663::-;5829:12;5843;5867;5882:49;5907:7;5916:6;5924;5882:24;:49::i;:::-;5867:64;;5941:10;5954;:33;;5978:9;5954:33;;;5972:2;5954:33;5997:80;;;;;;6025:10;5997:80;;;;6045:4;5997:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5941:46;;-1:-1:-1;5997:27:10;;;;;;:80;;;;;-1:-1:-1;;5997:80:10;;;;;;;;-1:-1:-1;5997:27:10;:80;;;2:2:-1;;;;27:1;24;17:12;2:2;5997:80:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5997:80:10;;;;6108;6124:6;6132;6140:9;6151:10;6163;6175:2;6179:8;6108:15;:80::i;:::-;6087:101;;;;;;;;5532:663;;;;;;;;;;;;;;;;:::o;9156:615::-;9374:21;9355:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9417:55:::1;9448:7;9457:8;9467:4;;9417:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9417:30:10::1;::::0;-1:-1:-1;;;9417:55:10:i:1;:::-;9407:65;;9521:12;9490:7;9515:1;9498:7;:14;:18;9490:27;;;;;;;;;;;;;;:43;;9482:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9591:139;9636:4;;9641:1;9636:7;;;;;;9591:139;9740:24;9746:7;9755:4;;9740:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;9761:2:10;;-1:-1:-1;9740:5:10::1;::::0;-1:-1:-1;;9740:24:10:i:1;11062:812::-:0;11271:21;11244:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11316:29:::1;11341:4;11316:29;:4:::0;;11321:15;;;11316:21;;::::1;;;;;;;;;;;;;:29;;;11308:71;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;11399:55;11429:7;11438:9;11449:4;;11399:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;11399:29:10::1;::::0;-1:-1:-1;;;11399:55:10:i:1;:::-;11389:65;;11486:11;11472:7;11480:1;11472:10;;;;;;;;;;;;;;:25;;11464:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7617:703:::0;7927:14;7953:12;7968:46;7993:7;8002:5;8009:4;7968:24;:46::i;:::-;7953:61;;8024:10;8037;:33;;8061:9;8037:33;;;8055:2;8037:33;8080:80;;;;;;8108:10;8080:80;;;;8128:4;8080:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8024:46;;-1:-1:-1;8080:27:10;;;;;;:80;;;;;-1:-1:-1;;8080:80:10;;;;;;;;-1:-1:-1;8080:27:10;:80;;;2:2:-1;;;;27:1;24;17:12;2:2;8080:80:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8080:80:10;;;;8182:131;8243:5;8250:9;8261:14;8277:12;8291:2;8295:8;8182:47;:131::i;:::-;8170:143;7617:703;-1:-1:-1;;;;;;;;;;;;;7617:703:10:o;14857:698::-;15085:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15105:137:::1;15150:4;;15155:1;15150:7;;;;;;;;;;;;;;;15159:10;15171:51;15196:7;15205:4;;15210:1;15205:7;;;;;;;;;;;;;;;15214:4;;15219:1;15214:7;;;;;;15171:51;15224:8;15105:31;:137::i;:::-;15252:18;15280:4:::0;;15285:15;;;15280:21;;::::1;;;;;;;;;;;;;15273:39;;;15313:2;15273:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15273:43:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15273:43:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15273:43:10;15326:44:::1;::::0;;15273:43:::1;15326:44:::0;;::::1;::::0;;;;;;;;;;;15273:43;;-1:-1:-1;15326:44:10::1;::::0;;;15361:4;;;;;;15326:44;::::1;::::0;15361:4;;15326:44;15361:4;15326:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;15367:2:10;;-1:-1:-1;15326:34:10::1;::::0;-1:-1:-1;;15326:44:10:i:1;:::-;15467:12:::0;15401:62:::1;15449:13:::0;15408:4;;15413:15;;;15408:21;;::::1;;;;;;;;;;;;;15401:39;;;15441:2;15401:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15401:43:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15401:43:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15401:43:10;;:62:::1;:47;:62;:::i;:::-;:78;;15380:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:1;14857:698:::0;;;;;;;:::o;16393:822::-;16650:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16682:29:::1;16707:4;16682:29;:4:::0;;16687:15;;;16682:21;;::::1;;;;;;;;;;;;;:29;;;16674:71;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;16755:137;16800:4;;16805:1;16800:7;;;;;;16755:137;16902:55;16937:4;;16902:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;16951:4:10::1;::::0;-1:-1:-1;16902:34:10::1;::::0;-1:-1:-1;;16902:55:10:i:1;:::-;16984:37;::::0;;;;;17015:4:::1;16984:37;::::0;::::1;::::0;;;16967:14:::1;::::0;16984:22:::1;16991:4;16984:22;::::0;::::1;::::0;:37;;;;;::::1;::::0;;;;;;;;;:22;:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;16984:37:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16984:37:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;16984:37:10;;-1:-1:-1;17039:25:10;;::::1;;17031:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17128:4;17122:20;;;17143:9;17122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;17122:31:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17122:31:10;;;;17163:45;17194:2;17198:9;17163:30;:45::i;10374:683::-:0;10584:21;10557:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10640:4:::1;10629:15;;:4;;10634:1;10629:7;;;;;;;;;;;;;;;:15;;;10621:57;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;10698:56;10729:7;10738:9;10749:4;;10698:56;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10698:30:10::1;::::0;-1:-1:-1;;;10698:56:10:i:1;:::-;10688:66;;10803:12;10772:7;10797:1;10780:7;:14;:18;10772:27;;;;;;;;;;;;;;:43;;10764:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10879:4;10873:19;;;10900:7;10908:1;10900:10;;;;;;;;;;;;;;10873:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;10873:40:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10873:40:10;;;;;10936:4;10930:20;;;10951:51;10976:7;10985:4;;10990:1;10985:7;;;;;;10951:51;11004:7;11012:1;11004:10;;;;;;;;;;;;;;10930:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;10930:85:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10930:85:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;10930:85:10;10923:93:::1;;;;11026:24;11032:7;11041:4;;11026:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;11047:2:10;;-1:-1:-1;11026:5:10::1;::::0;-1:-1:-1;;11026:24:10:i:1;:::-;10374:683:::0;;;;;;;;:::o;17708:253::-;17856:13;17892:62;17921:9;17932;17943:10;17892:28;:62::i;9776:593::-;9994:21;9975:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10037:55:::1;10067:7;10076:9;10087:4;;10037:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;10037:29:10::1;::::0;-1:-1:-1;;;10037:55:10:i:1;:::-;10027:65;;10124:11;10110:7;10118:1;10110:10;;;;;;;;;;;;;;:25;;10102:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;482:38:::0;;;:::o;17256:186::-;17353:12;17384:51;17407:7;17416:8;17426;17384:22;:51::i;6932:680::-;7191:14;7172:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7233:188:::1;7262:5;7281:4;7299:9;7322:14;7350:12;7384:4;7403:8;7233:15;:188::i;:::-;7470:38;::::0;;;;;7502:4:::1;7470:38;::::0;::::1;::::0;;;7217:204;;-1:-1:-1;7431:78:10::1;::::0;-1:-1:-1;7459:5:10;;7466:2;;7470:23:::1;::::0;::::1;::::0;::::1;::::0;:38;;;;;::::1;::::0;;;;;;;;;:23;:38;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;7470:38:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7470:38:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;7470:38:10;7431:27:::1;:78::i;:::-;7525:4;7519:20;;;7540:9;7519:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;7519:31:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7519:31:10;;;;7560:45;7591:2;7595:9;7560:30;:45::i;15560:828::-:0;15810:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15853:4:::1;15842:15;;:4;;15847:1;15842:7;;;;;;;;;;;;;;;:15;;;15834:57;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;15901:13;15917:9;15901:25;;15942:4;15936:19;;;15963:8;15936:38;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15936:38:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15936:38:10;;;;;15997:4;15991:20;;;16012:51;16037:7;16046:4;;16051:1;16046:7;;;;;;16012:51;16065:8;15991:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;15991:83:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15991:83:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;15991:83:10;15984:91:::1;;;;16085:18;16113:4:::0;;16118:15;;;16113:21;;::::1;;;;;;;;;;;;;16106:39;;;16146:2;16106:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16106:43:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16106:43:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;16106:43:10;16159:44:::1;::::0;;16106:43:::1;16159:44:::0;;::::1;::::0;;;;;;;;;;;16106:43;;-1:-1:-1;16159:44:10::1;::::0;;;16194:4;;;;;;16159:44;::::1;::::0;16194:4;;16159:44;16194:4;16159:44;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;16200:2:10;;-1:-1:-1;16159:34:10::1;::::0;-1:-1:-1;;16159:44:10:i:1;:::-;16300:12:::0;16234:62:::1;16282:13:::0;16241:4;;16246:15;;;16241:21;;::::1;;;;;;;;;;;;;16234:39;;;16274:2;16234:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;4020:849:10::0;4266:12;4280;4247:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4304:12:::1;4319:49;4344:7;4353:6;4361;4319:24;:49::i;:::-;4378:62;::::0;;;;;4412:10:::1;4378:62;::::0;::::1;::::0;:33:::1;::::0;::::1;:62:::0;;;;;;;;;;;;;;4304:64;;-1:-1:-1;4378:33:10;;::::1;::::0;:62;;;;;::::1;::::0;;;;;;;;;-1:-1:-1;4378:33:10;:62;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4378:62:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4378:62:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;4507:29:10::1;::::0;;;;;:25:::1;:29:::0;;::::1;;::::0;::::1;::::0;;;4477:12:::1;::::0;;;4507:25;;::::1;::::0;::::1;::::0;:29;;;;;;;;;;;4477:12;4507:25;:29;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4507:29:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4507:29:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;4507:29:10;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;4507:29:10;-1:-1:-1;4547:14:10::1;4566:43;4594:6:::0;4602;4566:27:::1;:43::i;:::-;4546:63;;;4650:6;4640:16;;:6;:16;;;:58;;4681:7;4690;4640:58;;;4660:7;4669;4640:58;4619:79:::0;;-1:-1:-1;4619:79:10;-1:-1:-1;4716:21:10;;::::1;;4708:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4809:10;4798:7;:21;;4790:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:1;;;;4020:849:::0;;;;;;;;;;;:::o;435:41::-;;;:::o;17967:245::-;18106:21;18150:55;18181:7;18190:8;18200:4;18150:30;:55::i;6200:656::-;6481:16;6499:14;6525:12;6540:46;6565:7;6574:5;6581:4;6540:24;:46::i;:::-;6525:61;;6596:10;6609;:33;;6633:9;6609:33;;;6627:2;6609:33;6652:80;;;;;;6680:10;6652:80;;;;6700:4;6652:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6596:46;;-1:-1:-1;6652:27:10;;;;;;:80;;;;;-1:-1:-1;;6652:80:10;;;;;;;;-1:-1:-1;6652:27:10;:80;;;2:2:-1;;;;27:1;24;17:12;2:2;6652:80:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6652:80:10;;;;6769;6788:5;6795:9;6806:14;6822:12;6836:2;6840:8;6769:18;:80::i;:::-;6742:107;;;;-1:-1:-1;6200:656:10;-1:-1:-1;;;;;;;;;;;;;6200:656:10:o;2301:723::-;2580:12;2594;2608:14;2561:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2655:85:::1;2669:6;2677;2685:14;2701;2717:10;2729;2655:13;:85::i;:::-;2634:106:::0;;-1:-1:-1;2634:106:10;-1:-1:-1;2750:12:10::1;2765:49;2790:7;2799:6:::0;2807;2765:24:::1;:49::i;:::-;2750:64;;2824:66;2856:6;2864:10;2876:4;2882:7;2824:31;:66::i;:::-;2900;2932:6;2940:10;2952:4;2958:7;2900:31;:66::i;:::-;3003:4;2988:25;;;3014:2;2988:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;2988:29:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2988:29:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;2988:29:10;2301:723;;;;-1:-1:-1;2988:29:10;;-1:-1:-1;2301:723:10;;-1:-1:-1;;;;;;;;;2301:723:10:o;3029:951::-;3275:16;3293:14;3309;3256:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3362:169:::1;3389:5;3408:4;3426:18;3458:9;3481:14;3509:12;3362:13;:169::i;:::-;3335:196:::0;;-1:-1:-1;3335:196:10;-1:-1:-1;3541:12:10::1;3556:46;3581:7;3590:5:::0;3597:4:::1;3556:24;:46::i;:::-;3541:61;;3612:69;3644:5;3651:10;3663:4;3669:11;3612:31;:69::i;:::-;3697:4;3691:19;;;3718:9;3691:39;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3691:39:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3691:39:10;;;;;3753:4;3747:20;;;3768:4;3774:9;3747:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3747:37:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3747:37:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3747:37:10;3740:45:::1;;;;3822:4;3807:25;;;3833:2;3807:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;3807:29:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3807:29:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3807:29:10;;-1:-1:-1;3885:9:10::1;:21:::0;-1:-1:-1;3881:92:10::1;;;3908:65;3939:10;3963:9;3951;:21;3908:30;:65::i;:::-;642:1;3029:951:::0;;;;;;;;;;;:::o;12718:794::-;12925:21;12898:8;588:15;576:8;:27;;568:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12981:4:::1;12970:15;;:4;;12975:1;12970:7;;;;;;;;;;;;;;;:15;;;12962:57;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;13039:55;13069:7;13078:9;13089:4;;13039:55;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;13039:29:10::1;::::0;-1:-1:-1;;;13039:55:10:i:1;:::-;13029:65;;13126:9;13112:7;13120:1;13112:10;;;;;;;;;;;;;;:23;;13104:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13195:4;13189:19;;;13216:7;13224:1;13216:10;;;;;;;;;;;;;;13189:40;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;13189:40:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;13189:40:10;;;;;13252:4;13246:20;;;13267:51;13292:7;13301:4;;13306:1;13301:7;;;;;;13267:51;13320:7;13328:1;13320:10;;;;;;;;;;;;;;13246:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;13246:85:10;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;13246:85:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;13246:85:10;13239:93:::1;;;;13342:24;13348:7;13357:4;;13342:24;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;13363:2:10;;-1:-1:-1;13342:5:10::1;::::0;-1:-1:-1;;13342:24:10:i:1;:::-;13427:7;13435:1;13427:10;;;;;;;;;;;;;;13415:9;:22;13411:94;;;13439:66;13470:10;13494:7;13502:1;13494:10;;;;;;;;;;;;;;13482:9;:22;13439:30;:66::i;652:438:4:-:0;878:45;;;867:10;878:45;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;878:45:4;;;;;;;25:18:-1;;61:17;;96:58;182:15;878:45:4;179:29:-1;160:49;;867:57:4;;;;832:12;;846:17;;867:10;;;;878:45;867:57;;;25:18:-1;867:57:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;867:57:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;831:93:4;;;;955:7;:57;;;;-1:-1:-1;967:11:4;;:16;;:44;;;998:4;987:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;987:24:4;967:44;934:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;652:438;;;;;:::o;1588:214::-;1700:12;;;1660;1700;;;;;;;;;1678:7;;;;1693:5;;1678:35;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1678:35:4;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1659:54:4;;;1731:7;1723:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1588:214;;;:::o;2174:510:24:-;2267:14;2312:1;2301:8;:12;2293:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2391:1;2379:9;:13;:31;;;;;2409:1;2396:10;:14;2379:31;2371:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2465:20;2488:17;:8;2501:3;2488:17;:12;:17;:::i;:::-;2465:40;-1:-1:-1;2515:14:24;2532:31;2465:40;2552:10;2532:31;:19;:31;:::i;:::-;2515:48;-1:-1:-1;2573:16:24;2592:40;2616:15;2592:19;:9;2606:4;2592:19;:13;:19;:::i;:::-;:23;:40;:23;:40;:::i;:::-;2573:59;;2666:11;2654:9;:23;;;;;;;2174:510;-1:-1:-1;;;;;;;2174:510:24:o;3347:503::-;3448:21;3504:1;3489:4;:11;:16;;3481:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3571:4;:11;3560:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3560:23:24;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;3560:23:24;;3550:33;;3606:8;3593:7;3601:1;3593:10;;;;;;;;;;;;;:21;;;;;3629:6;3624:220;3655:1;3641:4;:11;:15;3637:1;:19;3624:220;;;3678:14;3694:15;3713:42;3725:7;3734:4;3739:1;3734:7;;;;;;;;;;;;;;3743:4;3748:1;3752;3748:5;3743:11;;;;;;;;;;;;;;3713;:42::i;:::-;3677:78;;;;3786:47;3799:7;3807:1;3799:10;;;;;;;;;;;;;;3811:9;3822:10;3786:12;:47::i;:::-;3769:7;3777:1;3781;3777:5;3769:14;;;;;;;;;;;;;;;;;:64;-1:-1:-1;;3658:3:24;;3624:220;;;;3347:503;;;;;:::o;715:470::-;804:12;829:14;845;863:26;874:6;882;863:10;:26::i;:::-;1023:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;1023:32:24;;;;;1013:43;;;;;;929:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;929:246:24;;;;;;;919:257;;;;;;;;;715:470;-1:-1:-1;;;;;715:470:24:o;1096:486:4:-;1360:51;;;1349:10;1360:51;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1360:51:4;;;;;;;25:18:-1;;61:17;;96:58;182:15;1360:51:4;179:29:-1;160:49;;1349:63:4;;;;1314:12;;1328:17;;1349:10;;;;1360:51;1349:63;;;25:18:-1;1349:63:4;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1349:63:4;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;1313:99:4;;;;1443:7;:57;;;;-1:-1:-1;1455:11:4;;:16;;:44;;;1486:4;1475:24;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1475:24:4;1455:44;1422:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1096:486;;;;;;:::o;8427:724:10:-;8533:6;8528:617;8559:1;8545:4;:11;:15;8541:1;:19;8528:617;;;8582:13;8597:14;8616:4;8621:1;8616:7;;;;;;;;;;;;;;8625:4;8630:1;8634;8630:5;8625:11;;;;;;;;;;;;;;8581:56;;;;8652:14;8671:42;8699:5;8706:6;8671:27;:42::i;:::-;8651:62;;;8727:14;8744:7;8752:1;8756;8752:5;8744:14;;;;;;;;;;;;;;8727:31;;8773:15;8790;8818:6;8809:15;;:5;:15;;;:61;;8851:9;8867:1;8809:61;;;8833:1;8837:9;8809:61;8772:98;;;;8884:10;8915:1;8901:4;:11;:15;8897:1;:19;:82;;8976:3;8897:82;;;8919:54;8944:7;8953:6;8961:4;8966:1;8970;8966:5;8961:11;;;;;;;;;;;;;;8919:24;:54::i;:::-;8884:95;;9008:48;9033:7;9042:5;9049:6;9008:24;:48::i;:::-;8993:69;;;9080:10;9092;9104:2;9118:1;9108:12;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;108:14;9108:12:10;87:42:-1;143:17;;-1:-1;9108:12:10;;8993:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8993:141:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8993:141:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8562:3:10;;;;;-1:-1:-1;8528:617:10;;-1:-1:-1;;;;;;;;8528:617:10;;;8427:724;;;:::o;3928:524:24:-;4029:21;4085:1;4070:4;:11;:16;;4062:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4152:4;:11;4141:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4141:23:24;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;4141:23:24;;4131:33;;4204:9;4174:7;4199:1;4182:7;:14;:18;4174:27;;;;;;;;;;;;;;;;;:39;4237:11;;:15;;4223:223;4254:5;;4223:223;;4281:14;4297:15;4316:42;4328:7;4337:4;4346:1;4342;:5;4337:11;;;;;;;;;;;;;;4350:4;4355:1;4350:7;;;;;;;4316:42;4280:78;;;;4389:46;4401:7;4409:1;4401:10;;;;;;;;;;;;;;4413:9;4424:10;4389:11;:46::i;:::-;4372:7;4384:1;4380;:5;4372:14;;;;;;;;;;;;;;;;;:63;-1:-1:-1;;4261:3:24;;4223:223;;13655:1197:10;13767:6;13762:1084;13793:1;13779:4;:11;:15;13775:1;:19;13762:1084;;;13816:13;13831:14;13850:4;13855:1;13850:7;;;;;;;;;;;;;;13859:4;13864:1;13868;13864:5;13859:11;;;;;;;;;;;;;;13815:56;;;;13886:14;13905:42;13933:5;13940:6;13905:27;:42::i;:::-;13885:62;;;13961:19;13998:48;14023:7;14032:5;14039:6;13998:24;:48::i;:::-;13961:86;;14061:16;14091:17;14177:13;14192;14210:4;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14210:18:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14210:18:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14210:18:10;;;;;;;14176:52;;;;;-1:-1:-1;14176:52:10;;-1:-1:-1;14243:17:10;;14284:15;;;;;;;;:61;;14326:8;14336;14284:61;;;14303:8;14313;14284:61;14242:103;;;;14373:56;14416:12;14380:5;14373:23;;;14405:4;14373:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;14373:56:10;14359:70;;14458:71;14488:11;14501:12;14515:13;14458:29;:71::i;:::-;14443:86;;13762:1084;;;;14558:15;14575;14603:6;14594:15;;:5;:15;;;:67;;14639:12;14658:1;14594:67;;;14618:1;14622:12;14594:67;14557:104;;;;14675:10;14706:1;14692:4;:11;:15;14688:1;:19;:82;;14767:3;14688:82;;;14710:54;14735:7;14744:6;14752:4;14757:1;14761;14757:5;14752:11;;;;;;;14710:54;14822:12;;;14832:1;14822:12;;;;;;;;;;14784:51;;;;;;;;;;;;;;;:9;:51;;;;;;;;;;;;;;;;;;;;;;14675:95;;-1:-1:-1;14784:9:10;;;;;;14794:10;;14806;;14675:95;;14822:12;;14784:51;;;;;;;;14822:12;;14784:51;;;;14822:12;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14784:51:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14784:51:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13796:3:10;;;;;-1:-1:-1;13762:1084:10;;-1:-1:-1;;;;;;;;;;13762:1084:10;286:127:23;369:5;;;364:16;;;;356:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2802:466:24;2895:13;2940:1;2928:9;:13;2920:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:1;3008:9;:13;:31;;;;;3038:1;3025:10;:14;3008:31;3000:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3094:14;3111:34;3140:4;3111:24;:9;3125;3111:24;:13;:24;:::i;:::-;:28;:34;:28;:34;:::i;:::-;3094:51;-1:-1:-1;3155:16:24;3174:34;3204:3;3174:25;:10;3189:9;3174:25;:14;:25;:::i;:34::-;3155:53;;3229:32;3259:1;3242:11;3230:9;:23;;;;;;;3229:32;:29;:32;:::i;:::-;3218:43;2802:466;-1:-1:-1;;;;;;2802:466:24:o;1738:317::-;1820:12;1862:1;1852:7;:11;1844:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1934:1;1923:8;:12;:28;;;;;1950:1;1939:8;:12;1923:28;1915:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2040:8;2016:21;:7;2028:8;2016:21;:11;:21;:::i;:::-;:32;;;;;;;1738:317;-1:-1:-1;;;;1738:317:24:o;281:345::-;356:14;372;416:6;406:16;;:6;:16;;;;398:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;502:6;493:15;;:6;:15;;;:53;;531:6;539;493:53;;;512:6;520;493:53;474:72;;-1:-1:-1;474:72:24;-1:-1:-1;564:20:24;;;556:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;281:345;;;;;:::o;933:1363:10:-;1237:50;;;;;;:64;:50;;;;;;;;;;;;;;;;1144:12;;;;;;1255:7;1237:34;;;;;;:50;;;;;;;;;;;;;;;:34;:50;;;2:2:-1;;;;27:1;24;17:12;2:2;1237:50:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1237:50:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1237:50:10;:64;;;1233:148;;;1317:53;;;;;;:37;:53;;;;;;;;;;;;;;;;1335:7;1317:37;;;;;;:53;;;;;;;;;;;;;;;-1:-1:-1;1317:37:10;:53;;;2:2:-1;;;;27:1;24;17:12;2:2;1317:53:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1317:53:10;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;1233:148:10;1391:13;1406;1423:53;1452:7;1461:6;1469;1423:28;:53::i;:::-;1390:86;;;;1490:8;1502:1;1490:13;:30;;;;-1:-1:-1;1507:13:10;;1490:30;1486:804;;;1558:14;;-1:-1:-1;1574:14:10;;-1:-1:-1;1486:804:10;;;1620:19;1642:58;1665:14;1681:8;1691;1642:22;:58::i;:::-;1620:80;;1736:14;1718;:32;1714:566;;1796:10;1778:14;:28;;1770:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1889:14;;-1:-1:-1;1905:14:10;-1:-1:-1;1905:14:10;1714:566;;;1959:19;1981:58;2004:14;2020:8;2030;1981:22;:58::i;:::-;1959:80;;2082:14;2064;:32;;2057:40;;;;2141:10;2123:14;:28;;2115:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2234:14;-1:-1:-1;2250:14:10;;-1:-1:-1;1714:566:10;1486:804;;933:1363;;;;;;;;;;;:::o;419:140:23:-;471:6;497;;;:30;;-1:-1:-1;;512:5:23;;;526:1;521;512:5;521:1;507:15;;;;;:20;497:30;489:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:126;237:5;;;232:16;;;;224:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1241:387:24;1334:13;1349;1375:14;1394:26;1405:6;1413;1394:10;:26::i;:::-;1374:46;;;1431:13;1446;1479:32;1487:7;1496:6;1504;1479:7;:32::i;:::-;1464:60;;;:62;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1464:62:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1464:62:24;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1464:62:24;;;;;;;1430:96;;;;;-1:-1:-1;1430:96:24;;-1:-1:-1;1559:16:24;;;;;;;;:62;;1602:8;1612;1559:62;;;1579:8;1589;1559:62;1536:85;;;;-1:-1:-1;1241:387:24;-1:-1:-1;;;;;;;1241:387:24:o","linkReferences":{},"immutableReferences":{"3454":[{"start":4295,"length":32},{"start":4549,"length":32},{"start":4971,"length":32},{"start":5028,"length":32},{"start":5455,"length":32},{"start":6116,"length":32},{"start":6324,"length":32},{"start":6817,"length":32},{"start":8799,"length":32},{"start":9216,"length":32},{"start":9641,"length":32},{"start":10908,"length":32},{"start":11743,"length":32},{"start":12401,"length":32},{"start":12442,"length":32},{"start":12490,"length":32},{"start":12967,"length":32},{"start":13398,"length":32},{"start":14381,"length":32},{"start":14795,"length":32},{"start":17460,"length":32},{"start":17527,"length":32},{"start":18391,"length":32},{"start":18872,"length":32},{"start":20275,"length":32},{"start":20500,"length":32},{"start":20628,"length":32}],"3457":[{"start":428,"length":32},{"start":3677,"length":32},{"start":3736,"length":32},{"start":4053,"length":32},{"start":4760,"length":32},{"start":5874,"length":32},{"start":6358,"length":32},{"start":7710,"length":32},{"start":8098,"length":32},{"start":8306,"length":32},{"start":8569,"length":32},{"start":9004,"length":32},{"start":9153,"length":32},{"start":9843,"length":32},{"start":10010,"length":32},{"start":10223,"length":32},{"start":10484,"length":32},{"start":10716,"length":32},{"start":10845,"length":32},{"start":12524,"length":32},{"start":13346,"length":32},{"start":13432,"length":32},{"start":13484,"length":32},{"start":13613,"length":32},{"start":14151,"length":32},{"start":14583,"length":32},{"start":14732,"length":32}]}},"methodIdentifiers":{"WETH()":"ad5c4648","addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)":"e8e33700","addLiquidityETH(address,uint256,uint256,uint256,address,uint256)":"f305d719","factory()":"c45a0155","getAmountIn(uint256,uint256,uint256)":"85f8c259","getAmountOut(uint256,uint256,uint256)":"054d50d4","getAmountsIn(uint256,address[])":"1f00ca74","getAmountsOut(uint256,address[])":"d06ca61f","quote(uint256,uint256,uint256)":"ad615dec","removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)":"baa2abde","removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)":"02751cec","removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)":"af2979eb","removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"ded9382a","removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"5b0d5984","removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)":"2195995c","swapETHForExactTokens(uint256,address[],address,uint256)":"fb3bdb41","swapExactETHForTokens(uint256,address[],address,uint256)":"7ff36ab5","swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)":"b6f9de95","swapExactTokensForETH(uint256,uint256,address[],address,uint256)":"18cbafe5","swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)":"791ac947","swapExactTokensForTokens(uint256,uint256,address[],address,uint256)":"38ed1739","swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)":"5c11d795","swapTokensForExactETH(uint256,uint256,address[],address,uint256)":"4a25d94a","swapTokensForExactTokens(uint256,uint256,address[],address,uint256)":"8803dbee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WETH\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidityETHSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityETHWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountTokenMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountETHMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountETH\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"approveMax\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"removeLiquidityWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapETHForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactETHForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactETHForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForETHSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactETH\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/UniswapV2Router02.sol\":\"UniswapV2Router02\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd\",\"urls\":[\"bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595\",\"dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891\",\"urls\":[\"bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389\",\"dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt\"]},\"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"contracts/lib/v2-periphery/contracts/UniswapV2Router02.sol\":{\"keccak256\":\"0xb954cedec2552e286cbdf61d72e91affec2447636007c3ebd7194741157f48c8\",\"urls\":[\"bzz-raw://b9d5ccc48737414de4a2298791b322f2b8be48ba4359ce0f594f35613c998979\",\"dweb:/ipfs/QmcdQjcuUZ5DsD8vagwSRKZYYUP9df1F9QoAnkENnpUJjc\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3\",\"urls\":[\"bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66\",\"dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol\":{\"keccak256\":\"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2\",\"urls\":[\"bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb\",\"dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol\":{\"keccak256\":\"0x744e30c133bd0f7ca9e7163433cf6d72f45c6bb1508c2c9c02f1a6db796ae59d\",\"urls\":[\"bzz-raw://9bf2f4454ad63d4cff03a0630e787d9e8a9deed80aec89682cd8ad6379d9ef8c\",\"dweb:/ipfs/Qme51hQNR2wpax7ooUadhtqLtXm8ffeVVYyubLkTT4wMCG\"]},\"contracts/lib/v2-periphery/contracts/interfaces/IWETH.sol\":{\"keccak256\":\"0xfc10758fd8dba790c39468dccd358cb7cef06ae7c4781832cc7aa76f91f167e6\",\"urls\":[\"bzz-raw://dc22493dea6c60d47835eeba53726f8a6f76f4fcd798d40e54608a1380515d49\",\"dweb:/ipfs/QmS1QVcBRH4TELYNE7XCfjSVQEWFupyaNLKmMkKH7iPjrm\"]},\"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1\",\"urls\":[\"bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c\",\"dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg\"]},\"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol\":{\"keccak256\":\"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9\",\"urls\":[\"bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c\",\"dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"addLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"stateMutability":"view","type":"function","name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"stateMutability":"view","type":"function","name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"stateMutability":"pure","type":"function","name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETHSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETHWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapETHForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapExactETHForTokensSupportingFeeOnTransferTokens"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForETHSupportingFeeOnTransferTokens"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForTokensSupportingFeeOnTransferTokens"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/UniswapV2Router02.sol":"UniswapV2Router02"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol":{"keccak256":"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd","urls":["bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595","dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol":{"keccak256":"0xe5905c0989cf5a865ed9bb7b9252536ca011c5b744017a82a7d4443b9c00a891","urls":["bzz-raw://5d2a90a0a796491507462a3da18c3f8819721d571572d765a2207c35bf0a0389","dweb:/ipfs/Qmf9ACYiT3qzjgsYuhm866FBdiBpRMXAPpQhSFbgqcyhHt"],"license":null},"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"contracts/lib/v2-periphery/contracts/UniswapV2Router02.sol":{"keccak256":"0xb954cedec2552e286cbdf61d72e91affec2447636007c3ebd7194741157f48c8","urls":["bzz-raw://b9d5ccc48737414de4a2298791b322f2b8be48ba4359ce0f594f35613c998979","dweb:/ipfs/QmcdQjcuUZ5DsD8vagwSRKZYYUP9df1F9QoAnkENnpUJjc"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol":{"keccak256":"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3","urls":["bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66","dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol":{"keccak256":"0x8a3c5c449d4b7cd76513ed6995f4b86e4a86f222c770f8442f5fc128ce29b4d2","urls":["bzz-raw://1df63ca373dafae3bd0ee7fe70f890a1dc7c45ed869c01de68413e0e97ff9deb","dweb:/ipfs/QmefJgEYGUL8KX7kQKYTrDweF8GB7yjy3nw5Bmqzryg7PG"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol":{"keccak256":"0x744e30c133bd0f7ca9e7163433cf6d72f45c6bb1508c2c9c02f1a6db796ae59d","urls":["bzz-raw://9bf2f4454ad63d4cff03a0630e787d9e8a9deed80aec89682cd8ad6379d9ef8c","dweb:/ipfs/Qme51hQNR2wpax7ooUadhtqLtXm8ffeVVYyubLkTT4wMCG"],"license":null},"contracts/lib/v2-periphery/contracts/interfaces/IWETH.sol":{"keccak256":"0xfc10758fd8dba790c39468dccd358cb7cef06ae7c4781832cc7aa76f91f167e6","urls":["bzz-raw://dc22493dea6c60d47835eeba53726f8a6f76f4fcd798d40e54608a1380515d49","dweb:/ipfs/QmS1QVcBRH4TELYNE7XCfjSVQEWFupyaNLKmMkKH7iPjrm"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol":{"keccak256":"0x27f0ea82f879b3b01387b583e6d9d0ec858dca3b22b0aad173f8fbda06e761e1","urls":["bzz-raw://0db9cf37793eb7035f0bfced36323d240f0212150009c39a3a108701d9b50b6c","dweb:/ipfs/QmUAdiG9XNcieXkKfiMB49zQqD34FbXFE15csV2KQzwEqg"],"license":null},"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol":{"keccak256":"0x291a4008ee9cccd315585a8602685e8c181644f44cb9b6124b29c02eaf9679f9","urls":["bzz-raw://deb6ee0e3e2e8d1747953562ccdaf28ac687a4d8088fc4f5b8094ab0c755ce6c","dweb:/ipfs/QmZyeqnWMiva6rfVFQBzEL3NxCDD41xrt6RNqrCrHW6nVR"],"license":null}},"version":1},"id":10} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/WETH9.sol/WETH9.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/WETH9.sol/WETH9.json new file mode 100644 index 0000000000..63b38cfa5b --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/WETH9.sol/WETH9.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"guy","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"dst","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"src","type":"address","internalType":"address"},{"name":"dst","type":"address","internalType":"address"},{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"wad","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"guy","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"dst","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"dst","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b6108b3806101246000396000f3fe6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102c8578063d0e30db01461030e578063dd62ed3e14610316576100bc565b8063313ce5671461024857806370a082311461027357806395d89b41146102b3576100bc565b806318160ddd116100a557806318160ddd146101a557806323b872dd146101cc5780632e1a7d4d1461021c576100bc565b806306fdde03146100c1578063095ea7b31461014b575b600080fd5b3480156100cd57600080fd5b506100d661035e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101105781810151838201526020016100f8565b50505050905090810190601f16801561013d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015757600080fd5b506101916004803603604081101561016e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561040a565b604080519115158252519081900360200190f35b3480156101b157600080fd5b506101ba61047d565b60408051918252519081900360200190f35b3480156101d857600080fd5b50610191600480360360608110156101ef57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610481565b34801561022857600080fd5b506102466004803603602081101561023f57600080fd5b5035610699565b005b34801561025457600080fd5b5061025d61076a565b6040805160ff9092168252519081900360200190f35b34801561027f57600080fd5b506101ba6004803603602081101561029657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610773565b3480156102bf57600080fd5b506100d6610785565b3480156102d457600080fd5b50610191600480360360408110156102eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107fd565b610246610811565b34801561032257600080fd5b506101ba6004803603604081101561033957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610860565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104025780601f106103d757610100808354040283529160200191610402565b820191906000526020600020905b8154815290600101906020018083116103e557829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104ef57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526000602482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610565575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b1561061b5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105e357604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526000602482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156106f157604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526000602482015290519081900360640190fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f19350505050158015610730573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104025780601f106103d757610100808354040283529160200191610402565b600061080a338484610481565b9392505050565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b60046020908152600092835260408084209091529082529020548156fea26469706673582212209219fdb0e304a23c9a0caa35c1d5711d73f984d4d74aaf298f9553439a4d056564736f6c63430006060033","sourceMap":"732:40:30:-:0;711:1828;732:40;;711:1828;732:40;;;-1:-1:-1;;;732:40:30;;;;;;-1:-1:-1;;732:40:30;;:::i;:::-;-1:-1:-1;778:31:30;;;;;;;;;;;;;-1:-1:-1;;;778:31:30;;;;;;;;;;;;:::i;:::-;-1:-1:-1;815:27:30;;;-1:-1:-1;;815:27:30;840:2;815:27;;;711:1828;2:2:-1;;;;27:1;24;17:12;2:2;711:1828:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;711:1828:30;;;-1:-1:-1;711:1828:30;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102c8578063d0e30db01461030e578063dd62ed3e14610316576100bc565b8063313ce5671461024857806370a082311461027357806395d89b41146102b3576100bc565b806318160ddd116100a557806318160ddd146101a557806323b872dd146101cc5780632e1a7d4d1461021c576100bc565b806306fdde03146100c1578063095ea7b31461014b575b600080fd5b3480156100cd57600080fd5b506100d661035e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101105781810151838201526020016100f8565b50505050905090810190601f16801561013d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015757600080fd5b506101916004803603604081101561016e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561040a565b604080519115158252519081900360200190f35b3480156101b157600080fd5b506101ba61047d565b60408051918252519081900360200190f35b3480156101d857600080fd5b50610191600480360360608110156101ef57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610481565b34801561022857600080fd5b506102466004803603602081101561023f57600080fd5b5035610699565b005b34801561025457600080fd5b5061025d61076a565b6040805160ff9092168252519081900360200190f35b34801561027f57600080fd5b506101ba6004803603602081101561029657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610773565b3480156102bf57600080fd5b506100d6610785565b3480156102d457600080fd5b50610191600480360360408110156102eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107fd565b610246610811565b34801561032257600080fd5b506101ba6004803603604081101561033957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610860565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104025780601f106103d757610100808354040283529160200191610402565b820191906000526020600020905b8154815290600101906020018083116103e557829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104ef57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526000602482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610565575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b1561061b5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105e357604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526000602482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156106f157604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526000602482015290519081900360640190fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f19350505050158015610730573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104025780601f106103d757610100808354040283529160200191610402565b600061080a338484610481565b9392505050565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b60046020908152600092835260408084209091529082529020548156fea26469706673582212209219fdb0e304a23c9a0caa35c1d5711d73f984d4d74aaf298f9553439a4d056564736f6c63430006060033","sourceMap":"711:1828:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;732:40:30;;5:9:-1;2:2;;;27:1;24;17:12;2:2;732:40:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;732:40:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1759:177;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1759:177:30;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1759:177:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1658:95;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1658:95:30;;;:::i;:::-;;;;;;;;;;;;;;;;2069:468;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2069:468:30;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2069:468:30;;;;;;;;;;;;;;;;;;:::i;1445:207::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1445:207:30;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1445:207:30;;:::i;:::-;;815:27;;5:9:-1;2:2;;;27:1;24;17:12;2:2;815:27:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1101:65;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1101:65:30;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1101:65:30;;;;:::i;778:31::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;778:31:30;;;:::i;1942:121::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1942:121:30;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1942:121:30;;;;;;;;;:::i;1310:130::-;;;:::i;1172:65::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1172:65:30;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1172:65:30;;;;;;;;;;;:::i;732:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1759:177::-;1841:10;1815:4;1831:21;;;:9;:21;;;;;;;;;:26;;;;;;;;;;;:32;;;1878:30;;;;;;;1815:4;;1831:26;;1841:10;;1878:30;;;;;;;;-1:-1:-1;1925:4:30;1759:177;;;;:::o;1658:95::-;1725:21;1658:95;:::o;2069:468::-;2187:14;;;2159:4;2187:14;;;:9;:14;;;;;;:21;-1:-1:-1;2187:21:30;2179:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2228:17;;;2235:10;2228:17;;;;:59;;-1:-1:-1;2249:14:30;;;;;;;:9;:14;;;;;;;;2264:10;2249:26;;;;;;;;2284:2;2249:38;;2228:59;2224:183;;;2311:14;;;;;;;:9;:14;;;;;;;;2326:10;2311:26;;;;;;;;:33;-1:-1:-1;2311:33:30;2303:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2363:14;;;;;;;:9;:14;;;;;;;;2378:10;2363:26;;;;;;;:33;;;;;;;2224:183;2417:14;;;;;;;;:9;:14;;;;;;;;:21;;;;;;;2448:14;;;;;;;;;;:21;;;;;;2485:23;;;;;;;2448:14;;2485:23;;;;;;;;;;;-1:-1:-1;2526:4:30;2069:468;;;;;:::o;1445:207::-;1508:10;1498:21;;;;:9;:21;;;;;;:28;-1:-1:-1;1498:28:30;1490:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1551:10;1541:21;;;;:9;:21;;;;;;:28;;;;;;;1579:24;;;;;;1566:3;;1579:24;;1541:21;1579:24;1566:3;1551:10;1579:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1618:27:30;;;;;;;;1629:10;;1618:27;;;;;;;;;;1445:207;:::o;815:27::-;;;;;;:::o;1101:65::-;;;;;;;;;;;;;:::o;778:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1942:121;1999:4;2022:34;2035:10;2047:3;2052;2022:12;:34::i;:::-;2015:41;1942:121;-1:-1:-1;;;1942:121:30:o;1310:130::-;1364:10;1354:21;;;;:9;:21;;;;;;;;;:34;;1379:9;1354:34;;;;;;1403:30;;;;;;;;;;;;;;;;;1310:130::o;1172:65::-;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","deposit()":"d0e30db0","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/lib/v2-periphery/contracts/test/WETH9.sol\":\"WETH9\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@uniswap/lib/=contracts/lib/solidity-lib/\",\":@uniswap/v2-core/=contracts/lib/v2-core/\"]},\"sources\":{\"contracts/lib/v2-periphery/contracts/test/WETH9.sol\":{\"keccak256\":\"0x272b13c4d4213a7f0eb8ccb24e0a9c583f8111aa6a4d989d860ddd9c0b8ba3dd\",\"urls\":[\"bzz-raw://b85a061b05044c1e78cf08983e5666a0b93ec1973d0db79b12358c23a1087c58\",\"dweb:/ipfs/QmRNwpMRvHM1T6bhqnPYkVjvBdT5o7MABnXoHxu2ypmiSL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.6+commit.6c089d02"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"address","name":"guy","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"dst","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"address","name":"dst","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["@uniswap/lib/=contracts/lib/solidity-lib/","@uniswap/v2-core/=contracts/lib/v2-core/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/v2-periphery/contracts/test/WETH9.sol":"WETH9"},"evmVersion":"istanbul","libraries":{}},"sources":{"contracts/lib/v2-periphery/contracts/test/WETH9.sol":{"keccak256":"0x272b13c4d4213a7f0eb8ccb24e0a9c583f8111aa6a4d989d860ddd9c0b8ba3dd","urls":["bzz-raw://b85a061b05044c1e78cf08983e5666a0b93ec1973d0db79b12358c23a1087c58","dweb:/ipfs/QmRNwpMRvHM1T6bhqnPYkVjvBdT5o7MABnXoHxu2ypmiSL"],"license":null}},"version":1},"id":30} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/build-info/fbf0df69ddcfc8d5.json b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/build-info/fbf0df69ddcfc8d5.json new file mode 100644 index 0000000000..e2d07f5bd2 --- /dev/null +++ b/playground/poc-offline-mode/contracts/out-uniswap-v2-periphery/build-info/fbf0df69ddcfc8d5.json @@ -0,0 +1 @@ +{"id":"fbf0df69ddcfc8d5","source_id_to_path":{"0":"contracts/lib/solidity-lib/contracts/libraries/Babylonian.sol","1":"contracts/lib/solidity-lib/contracts/libraries/BitMath.sol","2":"contracts/lib/solidity-lib/contracts/libraries/FixedPoint.sol","3":"contracts/lib/solidity-lib/contracts/libraries/FullMath.sol","4":"contracts/lib/solidity-lib/contracts/libraries/TransferHelper.sol","5":"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Callee.sol","6":"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol","7":"contracts/lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","8":"contracts/lib/v2-periphery/contracts/UniswapV2Migrator.sol","9":"contracts/lib/v2-periphery/contracts/UniswapV2Router01.sol","10":"contracts/lib/v2-periphery/contracts/UniswapV2Router02.sol","11":"contracts/lib/v2-periphery/contracts/examples/ExampleComputeLiquidityValue.sol","12":"contracts/lib/v2-periphery/contracts/examples/ExampleFlashSwap.sol","13":"contracts/lib/v2-periphery/contracts/examples/ExampleOracleSimple.sol","14":"contracts/lib/v2-periphery/contracts/examples/ExampleSlidingWindowOracle.sol","15":"contracts/lib/v2-periphery/contracts/examples/ExampleSwapToPrice.sol","16":"contracts/lib/v2-periphery/contracts/interfaces/IERC20.sol","17":"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Migrator.sol","18":"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol","19":"contracts/lib/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol","20":"contracts/lib/v2-periphery/contracts/interfaces/IWETH.sol","21":"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Exchange.sol","22":"contracts/lib/v2-periphery/contracts/interfaces/V1/IUniswapV1Factory.sol","23":"contracts/lib/v2-periphery/contracts/libraries/SafeMath.sol","24":"contracts/lib/v2-periphery/contracts/libraries/UniswapV2Library.sol","25":"contracts/lib/v2-periphery/contracts/libraries/UniswapV2LiquidityMathLibrary.sol","26":"contracts/lib/v2-periphery/contracts/libraries/UniswapV2OracleLibrary.sol","27":"contracts/lib/v2-periphery/contracts/test/DeflatingERC20.sol","28":"contracts/lib/v2-periphery/contracts/test/ERC20.sol","29":"contracts/lib/v2-periphery/contracts/test/RouterEventEmitter.sol","30":"contracts/lib/v2-periphery/contracts/test/WETH9.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/playground/poc-offline-mode/contracts/script/AddLiquidityDirect.s.sol b/playground/poc-offline-mode/contracts/script/AddLiquidityDirect.s.sol new file mode 100644 index 0000000000..65724b44c5 --- /dev/null +++ b/playground/poc-offline-mode/contracts/script/AddLiquidityDirect.s.sol @@ -0,0 +1,129 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.26; + +import {Script} from "forge-std/Script.sol"; +import {console} from "forge-std/console.sol"; + +interface IERC20 { + function transfer(address to, uint256 amount) external returns (bool); + function balanceOf(address account) external view returns (uint256); +} + +interface IUniswapV2Pair { + function mint(address to) external returns (uint liquidity); + function token0() external view returns (address); + function token1() external view returns (address); + function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); +} + +interface IUniswapV2Factory { + function getPair(address tokenA, address tokenB) external view returns (address pair); +} + +interface IWETH { + function deposit() external payable; +} + +/// @title AddLiquidityDirect +/// @notice Add initial liquidity to Uniswap V2 pairs using direct transfer + mint +contract AddLiquidityDirect is Script { + function run() external { + // Load deployer private key + uint256 deployerPrivateKey = vm.envUint("DEPLOYER_PRIVATE_KEY"); + address deployer = vm.addr(deployerPrivateKey); + + // Load token addresses + address weth = vm.envAddress("WETH_ADDRESS"); + address usdc = vm.envAddress("USDC_ADDRESS"); + address dai = vm.envAddress("DAI_ADDRESS"); + + // Load Uniswap factory - REQUIRED for pair lookup + address factory = vm.envAddress("UNISWAP_FACTORY"); + + console.log("==========================================="); + console.log("ADDING LIQUIDITY TO UNISWAP V2 PAIRS"); + console.log("==========================================="); + console.log("Deployer:", deployer); + console.log("Factory:", factory); + console.log(""); + console.log("Tokens:"); + console.log(" WETH:", weth); + console.log(" USDC:", usdc); + console.log(" DAI:", dai); + console.log(""); + + vm.startBroadcast(deployerPrivateKey); + + // Liquidity amounts (using realistic ratios) + // WETH = $2000, USDC = $1, DAI = $1 + uint256 wethForUsdc = 10 ether; // 10 WETH + uint256 usdcAmount = 20_000 * 1e6; // 20,000 USDC (6 decimals) + + uint256 wethForDai = 10 ether; // 10 WETH + uint256 daiAmount = 20_000 * 1e18; // 20,000 DAI (18 decimals) + + uint256 usdcForDai = 10_000 * 1e6; // 10,000 USDC + uint256 daiForUsdc = 10_000 * 1e18; // 10,000 DAI + + // Get pair addresses from factory + address wethUsdcPair = IUniswapV2Factory(factory).getPair(weth, usdc); + require(wethUsdcPair != address(0), "WETH-USDC pair not found!"); + + address wethDaiPair = IUniswapV2Factory(factory).getPair(weth, dai); + require(wethDaiPair != address(0), "WETH-DAI pair not found!"); + + address usdcDaiPair = IUniswapV2Factory(factory).getPair(usdc, dai); + require(usdcDaiPair != address(0), "USDC-DAI pair not found!"); + + console.log(""); + console.log("Adding liquidity to WETH-USDC pair..."); + console.log(" Pair address:", wethUsdcPair); + console.log(" Adding WETH amount (wei):", wethForUsdc); + console.log(" Adding USDC amount (wei):", usdcAmount); + + IERC20(weth).transfer(wethUsdcPair, wethForUsdc); + IERC20(usdc).transfer(wethUsdcPair, usdcAmount); + uint liquidity1 = IUniswapV2Pair(wethUsdcPair).mint(deployer); + + (uint112 r0, uint112 r1,) = IUniswapV2Pair(wethUsdcPair).getReserves(); + console.log(" Liquidity minted:", liquidity1); + console.log(" Reserves after - r0:", r0); + console.log(" Reserves after - r1:", r1); + + console.log(""); + console.log("Adding liquidity to WETH-DAI pair..."); + console.log(" Pair address:", wethDaiPair); + console.log(" Adding WETH amount (wei):", wethForDai); + console.log(" Adding DAI amount (wei):", daiAmount); + + IERC20(weth).transfer(wethDaiPair, wethForDai); + IERC20(dai).transfer(wethDaiPair, daiAmount); + uint liquidity2 = IUniswapV2Pair(wethDaiPair).mint(deployer); + + (r0, r1,) = IUniswapV2Pair(wethDaiPair).getReserves(); + console.log(" Liquidity minted:", liquidity2); + console.log(" Reserves after - r0:", r0); + console.log(" Reserves after - r1:", r1); + + console.log(""); + console.log("Adding liquidity to USDC-DAI pair..."); + console.log(" Pair address:", usdcDaiPair); + console.log(" Adding USDC:", usdcForDai / 1e6); + console.log(" Adding DAI:", daiForUsdc / 1e18); + + IERC20(usdc).transfer(usdcDaiPair, usdcForDai); + IERC20(dai).transfer(usdcDaiPair, daiForUsdc); + uint liquidity3 = IUniswapV2Pair(usdcDaiPair).mint(deployer); + + (r0, r1,) = IUniswapV2Pair(usdcDaiPair).getReserves(); + console.log(" Liquidity minted:", liquidity3); + console.log(" Reserves after: r0 =", r0, "r1 =", r1); + + vm.stopBroadcast(); + + console.log(""); + console.log("==========================================="); + console.log("LIQUIDITY ADDED SUCCESSFULLY"); + console.log("==========================================="); + } +} diff --git a/playground/poc-offline-mode/contracts/script/DeployBalances.s.sol b/playground/poc-offline-mode/contracts/script/DeployBalances.s.sol new file mode 100644 index 0000000000..a277b0d6d4 --- /dev/null +++ b/playground/poc-offline-mode/contracts/script/DeployBalances.s.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +import "forge-std/Script.sol"; +import {Balances} from "../src/Balances.sol"; + +contract DeployBalances is Script { + function run() public { + vm.startBroadcast(); + + // Deploy Balances contract with CREATE2 for deterministic address + Balances balances = new Balances{salt: bytes32(0)}(); + + console.log("Balances deployed at:", address(balances)); + + vm.stopBroadcast(); + } +} diff --git a/playground/poc-offline-mode/contracts/script/DeployCowProtocol.s.sol b/playground/poc-offline-mode/contracts/script/DeployCowProtocol.s.sol new file mode 100644 index 0000000000..bd543d87d4 --- /dev/null +++ b/playground/poc-offline-mode/contracts/script/DeployCowProtocol.s.sol @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.26; + +import "forge-std/Script.sol"; + +contract DeployCowProtocol is Script { + function run() external { + uint256 deployerPrivateKey = vm.envUint("DEPLOYER_PRIVATE_KEY"); + address deployer = vm.addr(deployerPrivateKey); + address balancerVault = vm.envAddress("BALANCER_VAULT_ADDRESS"); + + console.log("Deploying CoW Protocol contracts..."); + console.log("Deployer:", deployer); + console.log("Balancer Vault:", balancerVault); + + vm.startBroadcast(deployerPrivateKey); + + // Deploy GPv2AllowListAuthentication + // Constructor: no parameters + address authenticator = deployCode( + "contracts/out-cow-protocol/GPv2AllowListAuthentication.sol/GPv2AllowListAuthentication.json", + "" + ); + console.log("GPv2AllowListAuthentication deployed at:", authenticator); + + // Deploy GPv2Settlement + // Constructor: GPv2Authentication _authenticator, IVault _vault + // NOTE: The Settlement contract creates its own VaultRelayer in the constructor + address settlement = deployCode( + "contracts/out-cow-protocol/GPv2Settlement.sol/GPv2Settlement.json", + abi.encode(authenticator, balancerVault) + ); + console.log("GPv2Settlement deployed at:", settlement); + + vm.stopBroadcast(); + + // Get the VaultRelayer address from Settlement + // The Settlement contract creates it automatically + bytes memory vaultRelayerCalldata = abi.encodeWithSignature("vaultRelayer()"); + (bool success, bytes memory vaultRelayerData) = settlement.staticcall(vaultRelayerCalldata); + require(success, "Failed to get vaultRelayer address"); + address vaultRelayer = abi.decode(vaultRelayerData, (address)); + console.log("GPv2VaultRelayer (created by Settlement):", vaultRelayer); + + console.log("\nCoW Protocol deployment complete!"); + } +} diff --git a/playground/poc-offline-mode/contracts/script/DeploySignatures.s.sol b/playground/poc-offline-mode/contracts/script/DeploySignatures.s.sol new file mode 100644 index 0000000000..5b26b38dca --- /dev/null +++ b/playground/poc-offline-mode/contracts/script/DeploySignatures.s.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +import "forge-std/Script.sol"; + +// Minimal Signatures interface for deployment +contract Signatures { + constructor() {} +} + +contract DeploySignatures is Script { + function run() public { + vm.startBroadcast(); + + // Deploy Signatures contract with CREATE2 for deterministic address + Signatures signatures = new Signatures{salt: bytes32(0)}(); + + console.log("Signatures deployed at:", address(signatures)); + + vm.stopBroadcast(); + } +} diff --git a/playground/poc-offline-mode/contracts/script/DeployTokens.s.sol b/playground/poc-offline-mode/contracts/script/DeployTokens.s.sol new file mode 100644 index 0000000000..dd6a0b5ed5 --- /dev/null +++ b/playground/poc-offline-mode/contracts/script/DeployTokens.s.sol @@ -0,0 +1,78 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.26; + +import {Script} from "forge-std/Script.sol"; +import {console} from "forge-std/console.sol"; +import {WETH} from "solmate/tokens/WETH.sol"; +import {TestERC20} from "../src/tokens/TestERC20.sol"; + +/// @title DeployTokens +/// @notice Deploy WETH, USDC, and DAI for PoC +contract DeployTokens is Script { + // Token supply constants + // Note: Anvil accounts start with 10,000 ETH, but some is spent on gas + uint256 constant WETH_SUPPLY = 1_000 ether; // 1,000 WETH + uint256 constant USDC_SUPPLY = 1_000_000 * 1e6; // 1 million USDC + uint256 constant DAI_SUPPLY = 1_000_000 ether; // 1 million DAI + + function run() external { + // Load deployer private key + uint256 deployerPrivateKey = vm.envUint("DEPLOYER_PRIVATE_KEY"); + address deployer = vm.addr(deployerPrivateKey); + + console.log("==========================================="); + console.log("DEPLOYING TOKENS"); + console.log("==========================================="); + console.log("Deployer:", deployer); + console.log("Chain ID:", block.chainid); + console.log(""); + + vm.startBroadcast(deployerPrivateKey); + + // Deploy WETH + console.log("Deploying WETH..."); + WETH weth = new WETH(); + console.log(" WETH deployed at:", address(weth)); + + // Wrap some ETH to WETH for deployer + weth.deposit{value: WETH_SUPPLY}(); + console.log(" Wrapped", WETH_SUPPLY / 1e18, "ETH to WETH"); + + // Deploy USDC (6 decimals) + console.log(""); + console.log("Deploying USDC..."); + TestERC20 usdc = new TestERC20( + "USD Coin", + "USDC", + 6, + USDC_SUPPLY + ); + console.log(" USDC deployed at:", address(usdc)); + console.log(" Initial supply:", USDC_SUPPLY / 1e6, "USDC"); + + // Deploy DAI (18 decimals) + console.log(""); + console.log("Deploying DAI..."); + TestERC20 dai = new TestERC20( + "Dai Stablecoin", + "DAI", + 18, + DAI_SUPPLY + ); + console.log(" DAI deployed at:", address(dai)); + console.log(" Initial supply:", DAI_SUPPLY / 1e18, "DAI"); + + vm.stopBroadcast(); + + console.log(""); + console.log("==========================================="); + console.log("DEPLOYMENT SUMMARY"); + console.log("==========================================="); + console.log("WETH:", address(weth)); + console.log("USDC:", address(usdc)); + console.log("DAI:", address(dai)); + console.log(""); + console.log("All tokens deployed to:", deployer); + console.log("==========================================="); + } +} diff --git a/playground/poc-offline-mode/contracts/script/DeployUniswapV2.s.sol b/playground/poc-offline-mode/contracts/script/DeployUniswapV2.s.sol new file mode 100644 index 0000000000..72f27b2a7c --- /dev/null +++ b/playground/poc-offline-mode/contracts/script/DeployUniswapV2.s.sol @@ -0,0 +1,110 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.26; + +import {Script} from "forge-std/Script.sol"; +import {console} from "forge-std/console.sol"; + +// We'll use interfaces since Uniswap V2 uses Solidity 0.5.16 +interface IUniswapV2Factory { + function createPair(address tokenA, address tokenB) external returns (address pair); + function getPair(address tokenA, address tokenB) external view returns (address pair); +} + +interface IUniswapV2Router02 { + function factory() external pure returns (address); + function WETH() external pure returns (address); + function addLiquidity( + address tokenA, + address tokenB, + uint amountADesired, + uint amountBDesired, + uint amountAMin, + uint amountBMin, + address to, + uint deadline + ) external returns (uint amountA, uint amountB, uint liquidity); +} + +/// @title DeployUniswapV2 +/// @notice Deploy Uniswap V2 Factory, Router, and create token pairs +contract DeployUniswapV2 is Script { + function run() external { + // Load deployer private key + uint256 deployerPrivateKey = vm.envUint("DEPLOYER_PRIVATE_KEY"); + address deployer = vm.addr(deployerPrivateKey); + + // Load token addresses + address weth = vm.envAddress("WETH_ADDRESS"); + address usdc = vm.envAddress("USDC_ADDRESS"); + address dai = vm.envAddress("DAI_ADDRESS"); + + console.log("==========================================="); + console.log("DEPLOYING UNISWAP V2"); + console.log("==========================================="); + console.log("Deployer:", deployer); + console.log("Chain ID:", block.chainid); + console.log(""); + console.log("Token addresses:"); + console.log(" WETH:", weth); + console.log(" USDC:", usdc); + console.log(" DAI:", dai); + console.log(""); + + vm.startBroadcast(deployerPrivateKey); + + // Deploy Factory using compiled bytecode from Solidity 0.5.16 + console.log("Deploying UniswapV2Factory..."); + address factory = deployCode( + "contracts/out-uniswap-v2/UniswapV2Factory.sol/UniswapV2Factory.json", + abi.encode(deployer) // feeToSetter parameter + ); + require(factory != address(0), "Factory deployment failed"); + console.log(" Factory deployed at:", factory); + + // Deploy Router using compiled bytecode from Solidity 0.6.6 + console.log(""); + console.log("Deploying UniswapV2Router02..."); + address router = deployCode( + "contracts/out-uniswap-v2-periphery/UniswapV2Router02.sol/UniswapV2Router02.json", + abi.encode(factory, weth) + ); + require(router != address(0), "Router deployment failed"); + console.log(" Router deployed at:", router); + + // Create pairs + console.log(""); + console.log("Creating trading pairs..."); + + IUniswapV2Factory factoryContract = IUniswapV2Factory(factory); + + // WETH-USDC pair + console.log(" Creating WETH-USDC pair..."); + address wethUsdcPair = factoryContract.createPair(weth, usdc); + console.log(" WETH-USDC pair:", wethUsdcPair); + + // WETH-DAI pair + console.log(" Creating WETH-DAI pair..."); + address wethDaiPair = factoryContract.createPair(weth, dai); + console.log(" WETH-DAI pair:", wethDaiPair); + + // USDC-DAI pair + console.log(" Creating USDC-DAI pair..."); + address usdcDaiPair = factoryContract.createPair(usdc, dai); + console.log(" USDC-DAI pair:", usdcDaiPair); + + vm.stopBroadcast(); + + console.log(""); + console.log("==========================================="); + console.log("DEPLOYMENT SUMMARY"); + console.log("==========================================="); + console.log("Factory:", factory); + console.log("Router:", router); + console.log(""); + console.log("Pairs:"); + console.log(" WETH-USDC:", wethUsdcPair); + console.log(" WETH-DAI:", wethDaiPair); + console.log(" USDC-DAI:", usdcDaiPair); + console.log("==========================================="); + } +} diff --git a/playground/poc-offline-mode/contracts/script/ExportAddresses.s.sol b/playground/poc-offline-mode/contracts/script/ExportAddresses.s.sol new file mode 100644 index 0000000000..77ac0ff3e5 --- /dev/null +++ b/playground/poc-offline-mode/contracts/script/ExportAddresses.s.sol @@ -0,0 +1,61 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.26; + +import "forge-std/Script.sol"; + +/// @title ExportAddresses +/// @notice Export all deployed contract addresses to JSON format +contract ExportAddresses is Script { + function run() external { + // Load addresses from environment (written by previous deployment scripts) + address weth = vm.envAddress("WETH_ADDRESS"); + address usdc = vm.envAddress("USDC_ADDRESS"); + address dai = vm.envAddress("DAI_ADDRESS"); + address uniswapFactory = vm.envAddress("UNISWAP_FACTORY"); + address uniswapRouter = vm.envAddress("UNISWAP_ROUTER"); + address pairWethUsdc = vm.envAddress("PAIR_WETH_USDC"); + address pairWethDai = vm.envAddress("PAIR_WETH_DAI"); + address pairUsdcDai = vm.envAddress("PAIR_USDC_DAI"); + address cowAuthenticator = vm.envAddress("COW_AUTHENTICATOR"); + address cowVaultRelayer = vm.envAddress("COW_VAULT_RELAYER"); + address cowSettlement = vm.envAddress("COW_SETTLEMENT"); + address balancerVault = vm.envAddress("BALANCER_VAULT"); + + console.log("Exporting addresses to JSON..."); + console.log(""); + + // Build JSON object + string memory json = string(abi.encodePacked( + '{\n', + ' "chainId": "31337",\n', + ' "tokens": {\n', + ' "WETH": "', vm.toString(weth), '",\n', + ' "USDC": "', vm.toString(usdc), '",\n', + ' "DAI": "', vm.toString(dai), '"\n', + ' },\n', + ' "uniswapV2": {\n', + ' "factory": "', vm.toString(uniswapFactory), '",\n', + ' "router": "', vm.toString(uniswapRouter), '",\n', + ' "pairs": {\n', + ' "WETH-USDC": "', vm.toString(pairWethUsdc), '",\n', + ' "WETH-DAI": "', vm.toString(pairWethDai), '",\n', + ' "USDC-DAI": "', vm.toString(pairUsdcDai), '"\n', + ' }\n', + ' },\n', + ' "cowProtocol": {\n', + ' "settlement": "', vm.toString(cowSettlement), '",\n', + ' "authenticator": "', vm.toString(cowAuthenticator), '",\n', + ' "vaultRelayer": "', vm.toString(cowVaultRelayer), '",\n', + ' "balancerVault": "', vm.toString(balancerVault), '"\n', + ' }\n', + '}\n' + )); + + // Write to file + vm.writeFile("./config/addresses.json", json); + + console.log("Addresses exported to ./config/addresses.json"); + console.log(""); + console.log(json); + } +} diff --git a/playground/poc-offline-mode/contracts/script/FundTestAccounts.s.sol b/playground/poc-offline-mode/contracts/script/FundTestAccounts.s.sol new file mode 100644 index 0000000000..fc8d0ec575 --- /dev/null +++ b/playground/poc-offline-mode/contracts/script/FundTestAccounts.s.sol @@ -0,0 +1,123 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.26; + +import {Script} from "forge-std/Script.sol"; +import {console} from "forge-std/console.sol"; + +interface IERC20 { + function balanceOf(address account) external view returns (uint256); + function approve(address spender, uint256 amount) external returns (bool); + function mint(address to, uint256 amount) external; + function transfer(address to, uint256 amount) external returns (bool); +} + +interface IWETH { + function deposit() external payable; + function transfer(address to, uint256 amount) external returns (bool); +} + +/// @title FundTestAccounts +/// @notice Fund and approve all 10 Anvil test accounts for load testing +/// @dev This script mints tokens and approves VaultRelayer for all test accounts +contract FundTestAccounts is Script { + // All 10 Anvil test accounts (from standard test mnemonic) with their private keys + address[10] private TEST_ACCOUNTS = [ + 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266, // Account 0 + 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, // Account 1 + 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC, // Account 2 + 0x90F79bf6EB2c4f870365E785982E1f101E93b906, // Account 3 + 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65, // Account 4 + 0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc, // Account 5 + 0x976EA74026E726554dB657fA54763abd0C3a0aa9, // Account 6 + 0x14dC79964da2C08b23698B3D3cc7Ca32193d9955, // Account 7 + 0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f, // Account 8 + 0xa0Ee7A142d267C1f36714E4a8F75612F20a79720 // Account 9 + ]; + + uint256[10] private PRIVATE_KEYS = [ + 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80, + 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d, + 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a, + 0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6, + 0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a, + 0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba, + 0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e, + 0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356, + 0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97, + 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6 + ]; + + function run() external { + // Load addresses from environment + address weth = vm.envAddress("WETH_ADDRESS"); + address usdc = vm.envAddress("USDC_ADDRESS"); + address dai = vm.envAddress("DAI_ADDRESS"); + address vaultRelayer = vm.envAddress("VAULT_RELAYER_ADDRESS"); + + console.log("==========================================="); + console.log("FUNDING TEST ACCOUNTS FOR LOAD TESTING"); + console.log("==========================================="); + console.log("Vault Relayer:", vaultRelayer); + console.log(""); + console.log("Tokens:"); + console.log(" WETH:", weth); + console.log(" USDC:", usdc); + console.log(" DAI:", dai); + console.log(""); + + // Amount to mint per account (100 tokens each) + uint256 mintAmount = 100 ether; + uint256 maxApproval = type(uint256).max; + + console.log("Processing 10 test accounts..."); + console.log(""); + + // Use Account 0 to mint/wrap tokens (it has ETH for gas and WETH wrapping) + uint256 minterKey = PRIVATE_KEYS[0]; + + for (uint256 i = 0; i < 10; i++) { + address account = TEST_ACCOUNTS[i]; + uint256 privateKey = PRIVATE_KEYS[i]; + + console.log("Account", i, ":", account); + + vm.startBroadcast(minterKey); + + // For WETH: deposit ETH and transfer + IWETH(weth).deposit{value: mintAmount}(); + IWETH(weth).transfer(account, mintAmount); + + // For USDC and DAI: mint directly + IERC20(usdc).mint(account, mintAmount); + IERC20(dai).mint(account, mintAmount); + + vm.stopBroadcast(); + + // Approve VaultRelayer using each account's private key + vm.startBroadcast(privateKey); + IERC20(weth).approve(vaultRelayer, maxApproval); + IERC20(usdc).approve(vaultRelayer, maxApproval); + IERC20(dai).approve(vaultRelayer, maxApproval); + vm.stopBroadcast(); + + console.log(" Minted/wrapped 100 WETH, USDC, DAI"); + console.log(" Approved VaultRelayer for all tokens"); + console.log(""); + } + + // Verify a few balances + console.log("Verification:"); + uint256 wethBalance = IERC20(weth).balanceOf(TEST_ACCOUNTS[0]); + uint256 usdcBalance = IERC20(usdc).balanceOf(TEST_ACCOUNTS[0]); + uint256 daiBalance = IERC20(dai).balanceOf(TEST_ACCOUNTS[0]); + + console.log(" Account 0 WETH balance:", wethBalance / 1e18, "tokens"); + console.log(" Account 0 USDC balance:", usdcBalance / 1e18, "tokens"); + console.log(" Account 0 DAI balance:", daiBalance / 1e18, "tokens"); + console.log(""); + + console.log("==========================================="); + console.log("ALL TEST ACCOUNTS FUNDED AND APPROVED"); + console.log("==========================================="); + } +} diff --git a/playground/poc-offline-mode/contracts/script/InitializeUniswapRouter.s.sol b/playground/poc-offline-mode/contracts/script/InitializeUniswapRouter.s.sol new file mode 100644 index 0000000000..2392dbf4d0 --- /dev/null +++ b/playground/poc-offline-mode/contracts/script/InitializeUniswapRouter.s.sol @@ -0,0 +1,92 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.26; + +import {Script} from "forge-std/Script.sol"; +import {console} from "forge-std/console.sol"; + +interface IERC20 { + function approve(address spender, uint256 amount) external returns (bool); + function balanceOf(address account) external view returns (uint256); +} + +interface IUniswapV2Router02 { + function WETH() external pure returns (address); + function factory() external pure returns (address); +} + +/// @title InitializeUniswapRouter +/// @notice Approve the router to spend tokens by directly setting ERC20 allowance storage +contract InitializeUniswapRouter is Script { + function run() external { + // Load deployer private key + uint256 deployerPrivateKey = vm.envUint("DEPLOYER_PRIVATE_KEY"); + address deployer = vm.addr(deployerPrivateKey); + + // Load addresses + address weth = vm.envAddress("WETH_ADDRESS"); + address usdc = vm.envAddress("USDC_ADDRESS"); + address dai = vm.envAddress("DAI_ADDRESS"); + address router = vm.envAddress("UNISWAP_ROUTER"); + address settlement = vm.envAddress("COW_SETTLEMENT"); + + console.log("==========================================="); + console.log("INITIALIZING UNISWAP ROUTER"); + console.log("==========================================="); + console.log("Deployer:", deployer); + console.log("Settlement:", settlement); + console.log("Router:", router); + console.log(""); + console.log("Tokens to approve:"); + console.log(" WETH:", weth); + console.log(" USDC:", usdc); + console.log(" DAI:", dai); + console.log(""); + + // Verify router can access WETH and factory + try IUniswapV2Router02(router).WETH() returns (address wethFromRouter) { + console.log("Router WETH check passed:", wethFromRouter); + require(wethFromRouter == weth, "Router WETH mismatch!"); + } catch { + console.log("ERROR: Router WETH() call failed!"); + revert("Router initialization failed"); + } + + try IUniswapV2Router02(router).factory() returns (address factoryFromRouter) { + console.log("Router factory check passed:", factoryFromRouter); + } catch { + console.log("ERROR: Router factory() call failed!"); + revert("Router factory check failed"); + } + + console.log(""); + console.log("Approving ROUTER to spend tokens from SETTLEMENT contract..."); + console.log("Router address:", router); + + uint256 maxAmount = type(uint256).max; + bytes32 maxAmountBytes = bytes32(maxAmount); + + // ERC20 storage layout: mapping(address => mapping(address => uint256)) public allowance + // Storage slot for allowance[settlement][router] = keccak256(abi.encode(router, keccak256(abi.encode(settlement, 0)))) + // Slot 0 = balanceOf mapping, Slot 1 = allowance mapping (for standard ERC20) + + // For WETH: allowance slot + bytes32 wethSlot = keccak256(abi.encode(router, keccak256(abi.encode(settlement, uint256(1))))); + vm.store(weth, wethSlot, maxAmountBytes); + console.log(" WETH approved to router from settlement"); + + // For USDC: allowance slot + bytes32 usdcSlot = keccak256(abi.encode(router, keccak256(abi.encode(settlement, uint256(1))))); + vm.store(usdc, usdcSlot, maxAmountBytes); + console.log(" USDC approved to router from settlement"); + + // For DAI: allowance slot + bytes32 daiSlot = keccak256(abi.encode(router, keccak256(abi.encode(settlement, uint256(1))))); + vm.store(dai, daiSlot, maxAmountBytes); + console.log(" DAI approved to router from settlement"); + + console.log(""); + console.log("==========================================="); + console.log("UNISWAP ROUTER INITIALIZED"); + console.log("==========================================="); + } +} diff --git a/playground/poc-offline-mode/contracts/src/Balances.sol b/playground/poc-offline-mode/contracts/src/Balances.sol new file mode 100644 index 0000000000..884357ad5f --- /dev/null +++ b/playground/poc-offline-mode/contracts/src/Balances.sol @@ -0,0 +1,147 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import { ISettlement, Interaction } from "./interfaces/ISettlement.sol"; +import { IVault } from "./interfaces/IVault.sol"; +import { Transfer, IVaultRelayer } from "./interfaces/IVaultRelayer.sol"; + +/// @title A contract for simulating available balances for settlements. +contract Balances { + /// @dev The on-chain contracts required for the simulation. + struct Contracts { + ISettlement settlement; + IVaultRelayer vaultRelayer; + IVault vault; + } + + /// @dev Retrieves the current effective balance for use with CoW Protocol. + /// + /// @param contracts - On-chain contract addresses required for the + /// simulation. + /// @param trader - The address of the account intending to trade on CoW + /// Protocol. + /// @param token - The address of the sell token of the trader. + /// @param amount - The amount of tokens to attempt to transfer. If this + /// value is specfied as 0, then the entire effective balance will be + /// transferred. + /// @param source - The balance source, this can either be the Keccak-256 + /// digest of "erc20", "external", or "internal". This corresponds to the + /// `sellTokenBalance` field of the CoW Protocol order. + /// @param interactions - A list of pre-interactions required for setting + /// up balances and/or allowances. + /// + /// @return tokenBalance - The token balance of the user. + /// @return allowance - The allowance set by the user to the Protocol. + /// @return effectiveBalance - The effective balance of the user. This + /// represents a balance that can be transferred into the settlement + /// contract when executing a trade. + /// @return canTransfer - Returns whether or not the transfer into the + /// settlement contract for the specified amount would succeed. + function balance( + Contracts memory contracts, + address trader, + IERC20 token, + uint256 amount, + bytes32 source, + Interaction[] calldata interactions + ) external returns ( + uint256 tokenBalance, + uint256 allowance, + uint256 effectiveBalance, + bool canTransfer + ) { + // Execute the interactions within the current context. This ensures + // that any pre-interactions that setup balances and/or allowances + // are executed before reading them. + executeInteractions(contracts, interactions); + + // Read the traders token balance and allowance. + if (source == keccak256("erc20")) { + tokenBalance = token.balanceOf(trader); + allowance = token.allowance(trader, address(contracts.vaultRelayer)); + } else if (source == keccak256("external")) { + tokenBalance = token.balanceOf(trader); + allowance = contracts.vault + .hasApprovedRelayer(trader, address(contracts.vaultRelayer)) + ? token.allowance(trader, address(contracts.vault)) + : 0; + } else if (source == keccak256("internal")) { + address[] memory tokens = new address[](1); + tokens[0] = address(token); + tokenBalance = contracts.vault.getInternalBalance(trader, tokens)[0]; + allowance = contracts.vault + .hasApprovedRelayer(trader, address(contracts.vaultRelayer)) + ? type(uint256).max + : 0; + } else { + revert("invalid token source"); + } + + effectiveBalance = tokenBalance <= allowance + ? tokenBalance + : allowance; + + // Verify that the transfer for the complete effective balance actually + // works. + Transfer[] memory transfers = new Transfer[](1); + transfers[0] = Transfer({ + account: trader, + token: address(token), + amount: amount != 0 + ? amount + : effectiveBalance, + balance: source + }); + try contracts.vaultRelayer.transferFromAccounts(transfers) { + canTransfer = true; + } + catch { + canTransfer = false; + } + } + + /// @dev Execute a set of interactions. This code is ported from the CoW + /// Protocol settlement contract with minor modifications: + /// + /// + function executeInteractions( + Contracts memory contracts, + Interaction[] calldata interactions + ) private { + require( + address(this) == address(contracts.settlement), + "incorrect calling context" + ); + + for (uint256 i; i < interactions.length; i++) { + address target = interactions[i].target; + uint256 value = interactions[i].value; + bytes calldata callData = interactions[i].callData; + + require( + target != address(contracts.vaultRelayer), + "GPv2: forbidden interaction" + ); + + assembly { + let freeMemoryPointer := mload(0x40) + calldatacopy(freeMemoryPointer, callData.offset, callData.length) + if iszero( + call( + gas(), + target, + value, + freeMemoryPointer, + callData.length, + 0, + 0 + ) + ) { + returndatacopy(0, 0, returndatasize()) + revert(0, returndatasize()) + } + } + } + } +} diff --git a/playground/poc-offline-mode/contracts/src/ERC20Mintable.sol b/playground/poc-offline-mode/contracts/src/ERC20Mintable.sol new file mode 100644 index 0000000000..fb62c5a2b4 --- /dev/null +++ b/playground/poc-offline-mode/contracts/src/ERC20Mintable.sol @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0 <0.9.0; + +contract ERC20Mintable { + string public name; + string public symbol; + uint8 public decimals; + uint256 public totalSupply; + + mapping(address => uint256) public balanceOf; + mapping(address => mapping(address => uint256)) public allowance; + + event Transfer(address indexed from, address indexed to, uint256 value); + event Approval(address indexed owner, address indexed spender, uint256 value); + + constructor(string memory _name, string memory _symbol, uint8 _decimals) { + name = _name; + symbol = _symbol; + decimals = _decimals; + } + + function mint(address to, uint256 amount) external { + balanceOf[to] += amount; + totalSupply += amount; + emit Transfer(address(0), to, amount); + } + + function approve(address spender, uint256 amount) external returns (bool) { + allowance[msg.sender][spender] = amount; + emit Approval(msg.sender, spender, amount); + return true; + } + + function transfer(address to, uint256 amount) external returns (bool) { + balanceOf[msg.sender] -= amount; + balanceOf[to] += amount; + emit Transfer(msg.sender, to, amount); + return true; + } + + function transferFrom(address from, address to, uint256 amount) external returns (bool) { + if (allowance[from][msg.sender] != type(uint256).max) { + allowance[from][msg.sender] -= amount; + } + balanceOf[from] -= amount; + balanceOf[to] += amount; + emit Transfer(from, to, amount); + return true; + } +} diff --git a/playground/poc-offline-mode/contracts/src/MockBalancerVault.sol b/playground/poc-offline-mode/contracts/src/MockBalancerVault.sol new file mode 100644 index 0000000000..781f5449a8 --- /dev/null +++ b/playground/poc-offline-mode/contracts/src/MockBalancerVault.sol @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.26; + +/// @notice Minimal mock of Balancer Vault for offline CoW Protocol testing +contract MockBalancerVault { + function hasApprovedRelayer(address, address) external pure returns (bool) { + return false; + } + + function getInternalBalance(address, address[] calldata) + external + pure + returns (uint256[] memory) + { + return new uint256[](0); + } +} diff --git a/playground/poc-offline-mode/contracts/src/interfaces/ISettlement.sol b/playground/poc-offline-mode/contracts/src/interfaces/ISettlement.sol new file mode 100644 index 0000000000..cf68e47c3b --- /dev/null +++ b/playground/poc-offline-mode/contracts/src/interfaces/ISettlement.sol @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +ISettlement constant SETTLEMENT = ISettlement(0x9008D19f58AAbD9eD0D60971565AA8510560ab41); + +struct Interaction { + address target; + uint256 value; + bytes callData; +} + +struct Trade { + uint256 sellTokenIndex; + uint256 buyTokenIndex; + address receiver; + uint256 sellAmount; + uint256 buyAmount; + uint32 validTo; + bytes32 appData; + uint256 feeAmount; + uint256 flags; + uint256 executedAmount; + bytes signature; +} + +/// @title CoW protocol settlement contract interface +interface ISettlement { + function domainSeparator() external view returns (bytes32); + function authenticator() external view returns (address); + function vaultRelayer() external view returns (address); + function setPreSignature(bytes calldata orderUid, bool signed) external; + function settle( + address[] calldata tokens, + uint256[] calldata clearingPrices, + Trade[] calldata trades, + Interaction[][3] calldata interactions + ) external; +} diff --git a/playground/poc-offline-mode/contracts/src/interfaces/IVault.sol b/playground/poc-offline-mode/contracts/src/interfaces/IVault.sol new file mode 100644 index 0000000000..11d390ff43 --- /dev/null +++ b/playground/poc-offline-mode/contracts/src/interfaces/IVault.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +IVault constant VAULT = IVault(0xBA12222222228d8Ba445958a75a0704d566BF2C8); + +/// @title CoW protocol settlement contract interface +interface IVault { + function hasApprovedRelayer(address user, address relayer) external view returns (bool); + function getInternalBalance(address user, address[] calldata tokens) external view returns (uint256[] memory); +} diff --git a/playground/poc-offline-mode/contracts/src/interfaces/IVaultRelayer.sol b/playground/poc-offline-mode/contracts/src/interfaces/IVaultRelayer.sol new file mode 100644 index 0000000000..249a722647 --- /dev/null +++ b/playground/poc-offline-mode/contracts/src/interfaces/IVaultRelayer.sol @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +IVaultRelayer constant VAULT_RELAYER = IVaultRelayer(0xC92E8bdf79f0507f65a392b0ab4667716BFE0110); + +struct Transfer { + address account; + address token; + uint256 amount; + bytes32 balance; +} + +/// @title CoW protocol settlement contract interface +interface IVaultRelayer { + function transferFromAccounts(Transfer[] calldata transfers) external; +} diff --git a/playground/poc-offline-mode/contracts/src/mocks/MockBalancerVault.sol b/playground/poc-offline-mode/contracts/src/mocks/MockBalancerVault.sol new file mode 100644 index 0000000000..6d260b46b8 --- /dev/null +++ b/playground/poc-offline-mode/contracts/src/mocks/MockBalancerVault.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.26; + +/// @title MockBalancerVault +/// @notice Minimal mock of Balancer V2 Vault for CoW Protocol compatibility +/// @dev Only implements methods required for GPv2Settlement to work +contract MockBalancerVault { + // Pool registry: poolId => pool address + mapping(bytes32 => address) public pools; + + // Token registry: poolId => token addresses + mapping(bytes32 => address[]) public poolTokens; + + event PoolRegistered(bytes32 indexed poolId, address indexed pool, address[] tokens); + + /// @notice Register a pool (for testing) + function registerPool( + bytes32 poolId, + address pool, + address[] calldata tokens + ) external { + pools[poolId] = pool; + poolTokens[poolId] = tokens; + emit PoolRegistered(poolId, pool, tokens); + } + + /// @notice Get pool address by ID + function getPool(bytes32 poolId) external view returns (address) { + return pools[poolId]; + } + + /// @notice Get pool tokens + function getPoolTokens(bytes32 poolId) + external + view + returns ( + address[] memory tokens, + uint256[] memory balances, + uint256 lastChangeBlock + ) + { + tokens = poolTokens[poolId]; + balances = new uint256[](tokens.length); + lastChangeBlock = block.number; + } + + /// @notice Mock batch swap (not implemented - CoW uses BALANCE_ERC20 mode) + function batchSwap( + uint8, // kind + bytes32[] calldata, // swaps + address[] calldata, // assets + bytes calldata, // funds + int256[] calldata, // limits + uint256 // deadline + ) external pure returns (int256[] memory) { + revert("MockBalancerVault: batchSwap not implemented - use BALANCE_ERC20"); + } + + /// @notice Mock manageUserBalance (not implemented) + function manageUserBalance(bytes32[] calldata) external pure { + revert("MockBalancerVault: manageUserBalance not implemented"); + } +} diff --git a/playground/poc-offline-mode/contracts/src/tokens/TestERC20.sol b/playground/poc-offline-mode/contracts/src/tokens/TestERC20.sol new file mode 100644 index 0000000000..64622fc223 --- /dev/null +++ b/playground/poc-offline-mode/contracts/src/tokens/TestERC20.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.26; + +import {ERC20} from "solmate/tokens/ERC20.sol"; + +/// @title TestERC20 +/// @notice Simple ERC20 token for testing (USDC, DAI, etc.) +contract TestERC20 is ERC20 { + constructor( + string memory name, + string memory symbol, + uint8 decimals, + uint256 initialSupply + ) ERC20(name, symbol, decimals) { + _mint(msg.sender, initialSupply); + } + + /// @notice Mint tokens to an address (for testing) + function mint(address to, uint256 amount) external { + _mint(to, amount); + } + + /// @notice Burn tokens from an address (for testing) + function burn(address from, uint256 amount) external { + _burn(from, amount); + } +} diff --git a/playground/poc-offline-mode/foundry.toml b/playground/poc-offline-mode/foundry.toml new file mode 100644 index 0000000000..cdbd1b9ee6 --- /dev/null +++ b/playground/poc-offline-mode/foundry.toml @@ -0,0 +1,98 @@ +[profile.default] +src = "contracts/src" +out = "contracts/out" +libs = ["contracts/lib"] +test = "contracts/test" +script = "contracts/script" + +# Optimizer settings +solc_version = "0.8.26" +optimizer = true +optimizer_runs = 200 +via_ir = true + +# Allow multiple Solidity versions +auto_detect_solc = true +solc = "0.8.26" + +# EVM version +evm_version = "cancun" + +# Remappings +remappings = [ + "@openzeppelin/=contracts/lib/openzeppelin-contracts/", + "@cowprotocol/=contracts/lib/cow-protocol/src/contracts/", + "@uniswap/v2-core/=contracts/lib/v2-core/", + "@uniswap/v2-periphery/=contracts/lib/v2-periphery/", + "solmate/=contracts/lib/solmate/src/", + "forge-std/=contracts/lib/forge-std/src/" +] + +# Test settings +verbosity = 3 +fuzz_runs = 256 + +# Filesystem permissions +fs_permissions = [ + { access = "read-write", path = "./config" }, + { access = "read-write", path = "../../configs" }, + { access = "read-write", path = "../" }, + { access = "read", path = "./contracts/out-uniswap-v2" }, + { access = "read", path = "./contracts/out-uniswap-v2-periphery" }, + { access = "read", path = "./contracts/out-cow-protocol" }, + { access = "read", path = "./out-uniswap-v2" }, + { access = "read", path = "./out-uniswap-v2-periphery" }, + { access = "read", path = "./out-cow-protocol" } +] + +# RPC +[rpc_endpoints] +localhost = "http://localhost:8545" + +# Etherscan is disabled for offline/local development +# Verification is not needed for local Anvil deployments + +# Profile for Uniswap V2 contracts (Solidity 0.5.16) +[profile.uniswap-v2] +src = "contracts/lib/v2-core/contracts" +out = "contracts/out-uniswap-v2" +libs = ["contracts/lib/v2-core", "contracts/lib/v2-periphery"] +script = "contracts/lib/v2-core/contracts" +test = "contracts/lib/v2-core/test" +solc_version = "0.5.16" +optimizer = true +optimizer_runs = 999999 +evm_version = "istanbul" +ignored_error_codes = [5159] + +# Profile for Uniswap V2 Periphery (Solidity 0.6.6) +[profile.uniswap-v2-periphery] +src = "contracts/lib/v2-periphery/contracts" +out = "contracts/out-uniswap-v2-periphery" +libs = ["contracts/lib/v2-core", "contracts/lib/v2-periphery", "contracts/lib/solidity-lib"] +script = "contracts/lib/v2-periphery/contracts" +test = "contracts/lib/v2-periphery/test" +solc_version = "0.6.6" +optimizer = true +optimizer_runs = 999999 +evm_version = "istanbul" +ignored_error_codes = [5159] +remappings = [ + "@uniswap/lib/=contracts/lib/solidity-lib/", + "@uniswap/v2-core/=contracts/lib/v2-core/" +] + +# Profile for CoW Protocol (Solidity 0.7.6) +[profile.cow-protocol] +src = "contracts/lib/cow-protocol/src/contracts" +out = "contracts/out-cow-protocol" +libs = [] +script = "contracts/lib/cow-protocol/src/contracts" +# Don't compile tests, only production contracts +test = "contracts/test" +solc_version = "0.7.6" +optimizer = true +optimizer_runs = 1000000 +via_ir = false +evm_version = "istanbul" +ignored_error_codes = [5159] diff --git a/playground/poc-offline-mode/scripts/deploy-all.sh b/playground/poc-offline-mode/scripts/deploy-all.sh new file mode 100755 index 0000000000..52f34b8505 --- /dev/null +++ b/playground/poc-offline-mode/scripts/deploy-all.sh @@ -0,0 +1,445 @@ +#!/bin/bash +set -e + +echo "๐Ÿš€ Deploying all contracts to local Anvil..." +echo "" + +# Set defaults if not provided (don't source .env in Docker - it overrides env vars) +: ${RPC_URL:=http://localhost:8545} +: ${DEPLOYER_PRIVATE_KEY:=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80} + +echo "Using RPC URL: $RPC_URL" +echo "" + +# Create directories +mkdir -p config +mkdir -p state + +# Step 1: Deploy Tokens +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "STEP 1: Deploying Tokens (WETH, USDC, DAI)" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +forge script contracts/script/DeployTokens.s.sol:DeployTokens \ + --rpc-url $RPC_URL \ + --broadcast \ + --private-key $DEPLOYER_PRIVATE_KEY \ + --skip-simulation \ + -vvv + +echo "" +echo "โœ… Tokens deployed!" +echo "" + +# Extract token addresses from broadcast - using array indexing for TestERC20 +WETH_ADDRESS=$(jq -r '.transactions[] | select(.contractName == "WETH" and .transactionType == "CREATE") | .contractAddress' broadcast/DeployTokens.s.sol/31337/run-latest.json) +USDC_ADDRESS=$(jq -r '[.transactions[] | select(.contractName == "TestERC20" and .transactionType == "CREATE")] | .[0].contractAddress' broadcast/DeployTokens.s.sol/31337/run-latest.json) +DAI_ADDRESS=$(jq -r '[.transactions[] | select(.contractName == "TestERC20" and .transactionType == "CREATE")] | .[1].contractAddress' broadcast/DeployTokens.s.sol/31337/run-latest.json) + +# Export for next scripts +export WETH_ADDRESS +export USDC_ADDRESS +export DAI_ADDRESS + +echo "๐Ÿ“ Deployed token addresses:" +echo " WETH: $WETH_ADDRESS" +echo " USDC: $USDC_ADDRESS" +echo " DAI: $DAI_ADDRESS" +echo "" + +# Step 2: Deploy Uniswap V2 +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "STEP 2: Deploying Uniswap V2 (Factory + Router + Pools)" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +forge script contracts/script/DeployUniswapV2.s.sol:DeployUniswapV2 \ + --rpc-url $RPC_URL \ + --broadcast \ + --private-key $DEPLOYER_PRIVATE_KEY \ + --skip-simulation \ + -vvv + +echo "" +echo "โœ… Uniswap V2 deployed!" +echo "" + +# Extract Uniswap addresses from broadcast +# Factory and Router are deployed via deployCode (transactionType CREATE) +UNISWAP_FACTORY=$(jq -r '[.transactions[] | select(.transactionType == "CREATE" and .contractName == null)] | .[0].contractAddress' broadcast/DeployUniswapV2.s.sol/31337/run-latest.json) +UNISWAP_ROUTER=$(jq -r '[.transactions[] | select(.transactionType == "CREATE" and .contractName == null)] | .[1].contractAddress' broadcast/DeployUniswapV2.s.sol/31337/run-latest.json) + +# Get pair addresses from PairCreated event logs +# The pair address is in the data field (first 32 bytes, prefixed with 0x followed by 24 zeros) +PAIR_WETH_USDC=$(jq -r '[.receipts[].logs[] | select(.topics[0] == "0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9")] | .[0].data' broadcast/DeployUniswapV2.s.sol/31337/run-latest.json | cut -c 1-66 | sed 's/^0x000000000000000000000000/0x/') +PAIR_WETH_DAI=$(jq -r '[.receipts[].logs[] | select(.topics[0] == "0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9")] | .[1].data' broadcast/DeployUniswapV2.s.sol/31337/run-latest.json | cut -c 1-66 | sed 's/^0x000000000000000000000000/0x/') +PAIR_USDC_DAI=$(jq -r '[.receipts[].logs[] | select(.topics[0] == "0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9")] | .[2].data' broadcast/DeployUniswapV2.s.sol/31337/run-latest.json | cut -c 1-66 | sed 's/^0x000000000000000000000000/0x/') + +# Export for next scripts - CRITICAL: Must export these for AddLiquidityDirect and InitializeUniswapRouter +export UNISWAP_FACTORY +export UNISWAP_ROUTER +export PAIR_WETH_USDC +export PAIR_WETH_DAI +export PAIR_USDC_DAI + +echo "๐Ÿ“ Deployed Uniswap addresses:" +echo " Factory: $UNISWAP_FACTORY" +echo " Router: $UNISWAP_ROUTER" +echo " WETH-USDC Pair: $PAIR_WETH_USDC" +echo " WETH-DAI Pair: $PAIR_WETH_DAI" +echo " USDC-DAI Pair: $PAIR_USDC_DAI" +echo "" + +# Step 3: Deploy CoW Protocol +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "STEP 3: Deploying CoW Protocol (Settlement + Auth)" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" + +# Deploy MockBalancerVault first +echo "Deploying MockBalancerVault..." +BALANCER_VAULT=$(forge create contracts/src/MockBalancerVault.sol:MockBalancerVault \ + --private-key $DEPLOYER_PRIVATE_KEY \ + --rpc-url $RPC_URL \ + --legacy \ + --broadcast \ + -vvv 2>&1 | grep "Deployed to:" | awk '{print $NF}') + +echo "MockBalancerVault deployed at: $BALANCER_VAULT" + +# Export for DeployCowProtocol script +export BALANCER_VAULT_ADDRESS=$BALANCER_VAULT + +forge script contracts/script/DeployCowProtocol.s.sol:DeployCowProtocol \ + --rpc-url $RPC_URL \ + --broadcast \ + --private-key $DEPLOYER_PRIVATE_KEY \ + --skip-simulation \ + -vvv + +echo "" +echo "โœ… CoW Protocol deployed!" +echo "" + +# Extract CoW Protocol addresses from broadcast +# Now that MockBalancerVault is deployed separately, DeployCowProtocol only has 2 contracts: +# Authenticator is first (index 0) +COW_AUTHENTICATOR=$(jq -r '[.transactions[] | select(.transactionType == "CREATE")] | .[0].contractAddress' broadcast/DeployCowProtocol.s.sol/31337/run-latest.json) +# Settlement is second (index 1) +COW_SETTLEMENT=$(jq -r '[.transactions[] | select(.transactionType == "CREATE")] | .[1].contractAddress' broadcast/DeployCowProtocol.s.sol/31337/run-latest.json) +# VaultRelayer is created by Settlement contract, need to read it from chain +# cast call returns bytes32, we need to extract the address (last 20 bytes = 40 hex chars, keeping 0x prefix) +COW_VAULT_RELAYER=0x$(cast call $COW_SETTLEMENT "vaultRelayer()" --rpc-url $RPC_URL | xargs | cut -c 27-66) + +# Export for next scripts +export COW_AUTHENTICATOR +export COW_SETTLEMENT +export COW_VAULT_RELAYER +export BALANCER_VAULT + +echo "๐Ÿ“ Deployed CoW Protocol addresses:" +echo " Authenticator: $COW_AUTHENTICATOR" +echo " Settlement: $COW_SETTLEMENT" +echo " Vault Relayer: $COW_VAULT_RELAYER" +echo " Balancer Vault: $BALANCER_VAULT" +echo "" + +# Step 3.4: Initialize Solver Authentication +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "STEP 3.4: Initializing Solver Authentication" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" + +# Alice's address (Anvil account #0) will be the solver +ALICE_ADDRESS="0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + +echo "Setting up solver authentication..." +echo " Solver address (Alice): $ALICE_ADDRESS" +echo "" + +# Initialize Alice as the manager of the authenticator +echo "Initializing manager..." +cast send $COW_AUTHENTICATOR \ + "initializeManager(address)" \ + $ALICE_ADDRESS \ + --private-key $DEPLOYER_PRIVATE_KEY \ + --rpc-url $RPC_URL \ + --chain 31337 + +echo "" +echo "Adding Alice as a solver..." +cast send $COW_AUTHENTICATOR \ + "addSolver(address)" \ + $ALICE_ADDRESS \ + --private-key $DEPLOYER_PRIVATE_KEY \ + --rpc-url $RPC_URL \ + --chain 31337 + +echo "" +echo "โœ… Solver authentication configured!" +echo "" + +# Step 3.5: Deploy Balances Contract +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "STEP 3.5: Deploying Balances Contract" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +forge script contracts/script/DeployBalances.s.sol:DeployBalances \ + --rpc-url $RPC_URL \ + --broadcast \ + --private-key $DEPLOYER_PRIVATE_KEY \ + --skip-simulation \ + -vvv + +echo "" +echo "โœ… Balances contract deployed!" +echo "" + +# Extract Balances address from broadcast (CREATE2 transaction) +BALANCES_CONTRACT=$(jq -r '.transactions[] | select(.contractName == "Balances") | .contractAddress' broadcast/DeployBalances.s.sol/31337/run-latest.json) + +# Export for next scripts +export BALANCES_CONTRACT + +echo "๐Ÿ“ Deployed Balances address:" +echo " Balances: $BALANCES_CONTRACT" +echo "" + +# Step 3.6: Deploy Signatures Contract +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "STEP 3.6: Deploying Signatures Contract" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +forge script contracts/script/DeploySignatures.s.sol:DeploySignatures \ + --rpc-url $RPC_URL \ + --broadcast \ + --private-key $DEPLOYER_PRIVATE_KEY \ + --skip-simulation \ + -vvv + +echo "" +echo "โœ… Signatures contract deployed!" +echo "" + +# Extract Signatures address from broadcast (CREATE2 transaction) +SIGNATURES_CONTRACT=$(jq -r '.transactions[] | select(.contractName == "Signatures") | .contractAddress' broadcast/DeploySignatures.s.sol/31337/run-latest.json) + +# Export for next scripts +export SIGNATURES_CONTRACT + +echo "๐Ÿ“ Deployed Signatures address:" +echo " Signatures: $SIGNATURES_CONTRACT" +echo "" + +# Step 4: Add Liquidity (using direct method to bypass router) +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "STEP 4: Adding Initial Liquidity" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +forge script contracts/script/AddLiquidityDirect.s.sol:AddLiquidityDirect \ + --rpc-url $RPC_URL \ + --broadcast + +echo "" +echo "โœ… Liquidity added to all pairs!" +echo "" + +# Step 4.5: Fund Test Accounts +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "STEP 4.5: Funding Test Accounts for Load Testing" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" + +# Pass addresses directly to forge using environment variables +export VAULT_RELAYER_ADDRESS=$COW_VAULT_RELAYER +echo "Using Vault Relayer Address: $VAULT_RELAYER_ADDRESS" +forge script contracts/script/FundTestAccounts.s.sol:FundTestAccounts \ + --rpc-url $RPC_URL \ + --broadcast \ + -vv + +echo "" +echo "โœ… Test accounts funded and approved!" +echo "" + +# Step 4.6: Initialize Router (approve tokens for settlement to use) +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "STEP 4.6: Initializing Uniswap Router (Token Approvals)" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" + +# Alice's address (Anvil account #0) will be the solver +ALICE_ADDRESS="0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" +export SOLVER_ADDRESS=$ALICE_ADDRESS + +# Note: We don't use --broadcast here because pranks don't work with broadcasting. +# On local Anvil, the prank state changes persist to the RPC directly. +forge script contracts/script/InitializeUniswapRouter.s.sol:InitializeUniswapRouter \ + --rpc-url $RPC_URL \ + --private-key $DEPLOYER_PRIVATE_KEY \ + -vvv + +echo "" +echo "โœ… Router initialized!" +echo "" + +# Step 5: Export Addresses to JSON +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "STEP 5: Exporting Deployed Addresses to JSON" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" + +# Source the addresses to make them available as environment variables +if [ -f config/addresses.txt ]; then + source config/addresses.txt +fi + +forge script contracts/script/ExportAddresses.s.sol:ExportAddresses \ + --rpc-url $RPC_URL \ + -vv + +echo "" +echo "โœ… Addresses exported to config/addresses.json" +echo "" + +# Step 6: Generate Configuration Files +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "STEP 6: Generating Configuration Files" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" + +# Normalize address variable names for the config generator +export UNISWAP_V2_FACTORY_ADDRESS=${UNISWAP_FACTORY} +export UNISWAP_V2_ROUTER_ADDRESS=${UNISWAP_ROUTER} +export SETTLEMENT_CONTRACT_ADDRESS=${COW_SETTLEMENT} +export AUTHENTICATOR_ADDRESS=${COW_AUTHENTICATOR} +export VAULT_RELAYER_ADDRESS=${COW_VAULT_RELAYER} +export BALANCER_VAULT_ADDRESS=${BALANCER_VAULT} +export BALANCES_CONTRACT_ADDRESS=${BALANCES_CONTRACT} +export SIGNATURES_CONTRACT_ADDRESS=${SIGNATURES_CONTRACT} + +# Generate configuration files using bash (avoid running solidity script which causes "stack too deep" errors) +generate_configs() { + echo "Generating configs via bash..." + mkdir -p ./configs + + # Required addresses (exported above) + WETH_ADDRESS=${WETH_ADDRESS} + DAI_ADDRESS=${DAI_ADDRESS} + USDC_ADDRESS=${USDC_ADDRESS} + UNISWAP_V2_ROUTER_ADDRESS=${UNISWAP_V2_ROUTER_ADDRESS} + UNISWAP_V2_FACTORY_ADDRESS=${UNISWAP_V2_FACTORY_ADDRESS} + SETTLEMENT_CONTRACT_ADDRESS=${SETTLEMENT_CONTRACT_ADDRESS} + AUTHENTICATOR_ADDRESS=${AUTHENTICATOR_ADDRESS} + VAULT_RELAYER_ADDRESS=${VAULT_RELAYER_ADDRESS} + BALANCER_VAULT_ADDRESS=${BALANCER_VAULT_ADDRESS} + BALANCES_CONTRACT_ADDRESS=${BALANCES_CONTRACT_ADDRESS} + SIGNATURES_CONTRACT_ADDRESS=${SIGNATURES_CONTRACT_ADDRESS} + + # driver.toml + cat > ../../configs/offline/driver.toml < ../../configs/offline/baseline.toml < ../.env.offline < ''") + sys.exit(1) + + private_key = sys.argv[1] + order_params = json.loads(sys.argv[2]) + + # Default values + chain_id = order_params.get("chainId", 31337) + settlement = order_params.get("settlement", "0x610178dA211FEF7D417bC0e6FeD39F05609AD788") + + # Remove metadata fields + order_params.pop("chainId", None) + order_params.pop("settlement", None) + + # Normalize parameters (handle "null" strings from bash) + order_params = normalize_order_params(order_params) + + # Sign the order + signed_order = sign_order(private_key, chain_id, settlement, order_params) + + # Output JSON + print(json.dumps(signed_order, indent=2)) diff --git a/playground/poc-offline-mode/scripts/start-anvil.sh b/playground/poc-offline-mode/scripts/start-anvil.sh new file mode 100755 index 0000000000..a0fff6a4b1 --- /dev/null +++ b/playground/poc-offline-mode/scripts/start-anvil.sh @@ -0,0 +1,65 @@ +#!/bin/bash +set -e + +# Get the directory where this script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +# Get the project root (parent of scripts directory) +PROJECT_ROOT="$( cd "$SCRIPT_DIR/.." && pwd )" + +echo "๐Ÿš€ Starting Anvil with state management..." + +# Load environment variables from project root +if [ -f "$PROJECT_ROOT/.env" ]; then + source "$PROJECT_ROOT/.env" +else + echo "โš ๏ธ Warning: .env file not found, using defaults" + RPC_URL="http://localhost:8545" +fi + +# Use absolute path for state file +STATE_FILE="$PROJECT_ROOT/state/poc-state.json" + +# Create state directory if it doesn't exist +mkdir -p "$PROJECT_ROOT/state" + +# Check if state file exists +if [ -f "$STATE_FILE" ]; then + echo "๐Ÿ“‚ Loading existing state from $STATE_FILE" + LOAD_STATE_FLAG="--load-state $STATE_FILE" +else + echo "๐Ÿ†• Starting fresh - no state file found" + LOAD_STATE_FLAG="" +fi + +# Start Anvil with state dumping +echo "โšก Starting Anvil on http://localhost:8545..." +echo "" +echo "Network Configuration:" +echo " Chain ID: 31337" +echo " Block Time: 1 second" +echo " Gas Limit: 30,000,000" +echo " State File: $STATE_FILE" +echo "" +echo "Test Accounts:" +echo " Alice: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" +echo " Bob: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8" +echo " Carol: 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC" +echo "" +echo "Press CTRL+C to stop (state will be saved automatically)" +echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" +echo "" + +anvil \ + $LOAD_STATE_FLAG \ + --dump-state "$STATE_FILE" \ + --host 0.0.0.0 \ + --port 8545 \ + --chain-id 31337 \ + --block-time 1 \ + --gas-limit 30000000 \ + --code-size-limit 50000 \ + --accounts 10 \ + --balance 10000 \ + --mnemonic "test test test test test test test test test test test junk" + +# State is automatically saved when Anvil is stopped (CTRL+C) diff --git a/playground/poc-offline-mode/state/poc-state.json b/playground/poc-offline-mode/state/poc-state.json new file mode 100644 index 0000000000..a620d8379a --- /dev/null +++ b/playground/poc-offline-mode/state/poc-state.json @@ -0,0 +1 @@ +{"block":{"number":"0x62","beneficiary":"0x0000000000000000000000000000000000000000","timestamp":"0x691f20d4","gas_limit":30000000,"basefee":3097,"difficulty":"0x0","prevrandao":"0x4e4040b98d102ae3097486d50b2f0b7e1f7371677972fe684660dfe5cc818149","blob_excess_gas_and_price":{"excess_blob_gas":0,"blob_gasprice":1}},"accounts":{"0x0000000000000000000000000000000000000000":{"nonce":0,"balance":"0x80a9dbf651c5","code":"0x","storage":{}},"0x14dc79964da2c08b23698b3d3cc7ca32193d9955":{"nonce":3,"balance":"0x21e19e0c9b88b1bf24d","code":"0x","storage":{}},"0x15d34aaf54267db7d7c367839aaf71a00a2c6a65":{"nonce":3,"balance":"0x21e19e0c9977a746a04","code":"0x","storage":{}},"0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f":{"nonce":3,"balance":"0x21e19e0c9b9d91e8a22","code":"0x","storage":{}},"0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc":{"nonce":3,"balance":"0x21e19e0c8d7bcdecc89","code":"0x","storage":{}},"0x4e59b44847b379578588920ca78fbf26c0b4956c":{"nonce":2,"balance":"0x0","code":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3","storage":{}},"0x5a270e627326bf3d504d7e41ccff73ca6af16227":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000000000000000000000000000000196bd077f9db5","0x0000000000000000000000000000000000000000000000000000000000000003":"0x0a4bf55ee23db29a6e0c625249a51c0b67f5801d12bebac7b8ba218ce92ea068","0x0000000000000000000000000000000000000000000000000000000000000005":"0x000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9","0x0000000000000000000000000000000000000000000000000000000000000006":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3","0x0000000000000000000000000000000000000000000000000000000000000007":"0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0","0x0000000000000000000000000000000000000000000000000000000000000008":"0x691f208600000000000000000004a817c8000000000000008ac7230489e80000","0x000000000000000000000000000000000000000000000000000000000000000b":"0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000000000000000000000000000000000000000000c":"0x0000000000000000000000000000000000000000000000000000000000000001","0xa3c1274aadd82e4d12c8004c33fb244ca686dad4fcc8957fc5668588c11d9502":"0x000000000000000000000000000000000000000000000000000196bd077f99cd","0xa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49":"0x00000000000000000000000000000000000000000000000000000000000003e8"}},"0x5fbdb2315678afecb367f032d93f642f64180aa3":{"nonce":1,"balance":"0x6c6b935b8bbd400000","code":"0x60806040526004361015610022575b3615610018575f80fd5b610020610a7a565b005b5f3560e01c806306fdde0314610779578063095ea7b31461070057806318160ddd146106e357806323b872dd146106135780632e1a7d4d1461054f578063313ce567146105125780633644e515146104f057806370a08231146104b85780637ecebe001461048057806395d89b41146103a6578063a9059cbb14610331578063d0e30db01461031e578063d505accf146101145763dd62ed3e0361000e5734610110576040366003190112610110576100d96108b3565b6100e16108c9565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101105760e03660031901126101105761012d6108b3565b6101356108c9565b6044356064359260843560ff8116809103610110574285106102d95760805f91602093610160610900565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101dd60e082610853565b519020604051908682019261190160f01b84526022830152604282015260428152610209606282610853565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102ce575f516001600160a01b0316801515806102c5575b1561028f577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b50828114610247565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b5f36600319011261011057610020610a7a565b346101105760403660031901126101105761034a6108b3565b60243590335f52600360205260405f206103658382546108df565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610ae583398151915260203392a3602060405160018152f35b34610110575f366003190112610110576040515f6001546103c68161081b565b808452906001811690811561045c57506001146103fe575b6103fa836103ee81850382610853565b60405191829182610889565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b808210610442575090915081016020016103ee6103de565b91926001816020925483858801015201910190929161042a565b60ff191660208086019190915291151560051b840190910191506103ee90506103de565b34610110576020366003190112610110576001600160a01b036104a16108b3565b165f526005602052602060405f2054604051908152f35b34610110576020366003190112610110576001600160a01b036104d96108b3565b165f526003602052602060405f2054604051908152f35b34610110575f36600319011261011057602061050a610900565b604051908152f35b34610110575f36600319011261011057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000012168152f35b34610110576020366003190112610110575f80808060043533825260036020526040822061057e8282546108df565b90558060025403600255816040518281525f80516020610ae583398151915260203392a36040518181527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2335af1156105d857005b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b346101105760603660031901126101105761062c6108b3565b6106346108c9565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610ae5833981519152929185600182016106be575b5050835f526003825260405f2061068e8682546108df565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106c7916108df565b5f85815260048452604080822033835285529020558585610676565b34610110575f366003190112610110576020600254604051908152f35b34610110576040366003190112610110576107196108b3565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610110575f366003190112610110576040515f80546107988161081b565b808452906001811690811561045c57506001146107bf576103fa836103ee81850382610853565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210610801575090915081016020016103ee6103de565b9192600181602092548385880101520191019092916107e9565b90600182811c92168015610849575b602083101461083557565b634e487b7160e01b5f52602260045260245ffd5b91607f169161082a565b90601f8019910116810190811067ffffffffffffffff82111761087557604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361011057565b602435906001600160a01b038216820361011057565b919082039182116108ec57565b634e487b7160e01b5f52601160045260245ffd5b467f0000000000000000000000000000000000000000000000000000000000007a690361094b577ffdc402efeac514c5b64538326215e4ce385c49a106c95b87e9b53dcd30d93edd90565b6040515f905f54918161095d8461081b565b9182825260208201946001811690815f14610a5e5750600114610a01575b61098792500382610853565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109fb60c082610853565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a425750509060206109879282010161097b565b6020919350806001915483858801015201910190918392610a2a565b60ff191686525061098792151560051b8201602001905061097b565b6002543481018091116108ec57600255335f52600360205260405f203481540190556040513481525f5f80516020610ae583398151915260203393a36040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122024ac75ee9edc4ac63c67f4de95b97766973b0fda8bfb850f9561a95f37fe1b1c64736f6c634300081a0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x577261707065642045746865720000000000000000000000000000000000001a","0x0000000000000000000000000000000000000000000000000000000000000001":"0x5745544800000000000000000000000000000000000000000000000000000008","0x0000000000000000000000000000000000000000000000000000000000000002":"0x00000000000000000000000000000000000000000000006c6b935b8bbd400000","0x09c9f1f772cc7cdfdea1312d18e43df0fc201c7648448a9011fd8181f577802d":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x0b684ba07b77e0ae8621ce6c03cfce9bd59a4f44976ccbe5d95bb50cad0be5c2":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x20999abef70ca73650c6528451b6afcdaa7677806749a87307fbbe4f1ec2c1df":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x4816d8913e79510f8dd14cc5ef23a5559aca2723f9b16fb6bd81b177bba2fdae":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x53c8a5ff8e9eee17be03169c30dedc5882673fcdd4fbdb8a32244385ed269978":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x60dfe37633c44044266a08a2b6a41309e6e4148a80b8ce1e84c4c423ca8ab0f2":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x6a706e96617ceafd46f24757f71aad32b88c8bf0b8ae22ec3de611582d2d4a6c":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x75aff4397bd23075589294e0b8b0f8648cf7c5304a40414f211ad7ccc7e3a7fd":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x7b39b83efd2e26f146fc52f47a1112ec24fe8e930d1c79ca1903303359cf275f":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x961ec03a078fec1e350bb1ca3bff1afa4bae5fb83d9d8382550c2fd26a7d7527":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x9c35da83f88043b3115f30d93beacec49ca14b6238430bdff196a249c29baa80":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0xaabfe7e64a3b76cdc6124680e4f21e488068343c61581abafbc7f30561cef2bb":"0x0000000000000000000000000000000000000000000000008ac7230489e80000","0xacd8d0614af6e74f74bf3d06d01de8648511768c0eee931deae87bc4c0bae380":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xc038a4c0dae1a80a0f345e65b2c64588a88378a64c44fc77d2a8fec6772f6708":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xc651ee22c6951bb8b5bd29e8210fb394645a94315fe10eff2cc73de1aa75c137":"0x00000000000000000000000000000000000000000000003a8c02c5ea2de00000","0xc7c2559c7a18beabdfaa992d94ae2dbcd8629c25d63ef0cfae27fee07586a339":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xc9f51ff2393193a07f116cb1ed67be0783387c719e9662a8d0ec4684dcfc0fa0":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0xd70e37874cf4989d0dc0b20b584507542c9387ca0d78d26547cdfe0ee5f89ebb":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xddfe746303372e8d2ea45aa78e3e91478f7307894b155f7ff4ebb7ddaa345272":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0xf4101d4f3556064791764cb858c5b5eccc92d63c3bbcb142c5d125936ee3f62d":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xf907546d35bf80c8b303b0db78f438dfd60def69a9f1cec82c65c56c3f09ddc9":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xfb3ff3d2a6a95c1b93e0297159451887e041c86848ca1ea33e51cfc8cb303074":"0x0000000000000000000000000000000000000000000000008ac7230489e80000"}},"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa316146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa38a8a8a308a612d65565b9093509150610e96898685613b22565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613ce9565b50965096945050505050565b6000610f44848484613e26565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa31686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140b0565b8560008151811061124a57fe5b602002602001015161419b565b6112968287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525030925061436b915050565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613ce9565b509695505050505050565b60606113917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c984846145f2565b90505b92915050565b60008060006113ca7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98f8f6140b0565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b6113598287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa31686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b6000806118fa7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98d7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa36140b0565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a61419b565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614780915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b1316565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa31685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614780915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa316916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613ce9565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c934888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b5095945050505050565b6000610f44848484614b85565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa381565b6000610f44848484614ca9565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa38989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613ce9565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614780915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98c8c6140b0565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d89565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60606113917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98484613f4a565b60008060006131107f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98e7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa36140b0565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614edc565b909450925060006132cd7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98e8e6140b0565b90506132db8d33838861419b565b6132e78c33838761419b565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa38b348c8c614edc565b9094509250600061349c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98c7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa36140b0565b90506134aa8b33838861419b565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613ce9565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae68287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613ce9565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613ce2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061555f602d913960400191505060405180910390fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d6057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d23565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dc2576040519150601f19603f3d011682016040523d82523d6000602084013e613dc7565b606091505b5050905080613e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603481526020018061541b6034913960400191505060405180910390fd5b505050565b6000808411613e80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061558c602b913960400191505060405180910390fd5b600083118015613e905750600082115b613ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000613ef9856103e563ffffffff6151dd16565b90506000613f0d828563ffffffff6151dd16565b90506000613f3383613f27886103e863ffffffff6151dd16565b9063ffffffff61526316565b9050808281613f3e57fe5b04979650505050505050565b6060600282511015613fbd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613fd557600080fd5b50604051908082528060200260200182016040528015613fff578160200160208202803683370190505b509050828160008151811061401057fe5b60200260200101818152505060005b60018351038110156140a8576000806140628786858151811061403e57fe5b602002602001015187866001018151811061405557fe5b60200260200101516152d5565b9150915061408484848151811061407557fe5b60200260200101518383613e26565b84846001018151811061409357fe5b6020908102919091010152505060010161401f565b509392505050565b60008060006140bf8585614d89565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061427957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161423c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142db576040519150601f19603f3d011682016040523d82523d6000602084013e6142e0565b606091505b509150915081801561430e57508051158061430e575080806020019051602081101561430b57600080fd5b50515b614363576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806153ea6031913960400191505060405180910390fd5b505050505050565b60005b60018351038110156145ec5760008084838151811061438957fe5b60200260200101518584600101815181106143a057fe5b60200260200101519150915060006143b88383614d89565b50905060008785600101815181106143cc57fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461441457826000614418565b6000835b91509150600060028a5103881061442f5788614470565b6144707f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9878c8b6002018151811061446357fe5b60200260200101516140b0565b905061449d7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c988886140b0565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144e7576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561457257818101518382015260200161455a565b50505050905090810190601f16801561459f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145c157600080fd5b505af11580156145d5573d6000803e3d6000fd5b50506001909901985061436e975050505050505050565b50505050565b606060028251101561466557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561467d57600080fd5b506040519080825280602002602001820160405280156146a7578160200160208202803683370190505b50905082816001835103815181106146bb57fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140a85760008061471b8786600186038151811061470757fe5b602002602001015187868151811061405557fe5b9150915061473d84848151811061472e57fe5b60200260200101518383614b85565b84600185038151811061474c57fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016146eb565b60005b6001835103811015613e215760008084838151811061479e57fe5b60200260200101518584600101815181106147b557fe5b60200260200101519150915060006147cd8383614d89565b50905060006147fd7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c985856140b0565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561484b57600080fd5b505afa15801561485f573d6000803e3d6000fd5b505050506040513d606081101561487557600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148bf5782846148c2565b83835b91509150614947828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b9550614954868383613e26565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149985782600061499c565b6000835b91509150600060028c51038a106149b3578a6149e7565b6149e77f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9898e8d6002018151811061446357fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614a97578181015183820152602001614a7f565b50505050905090810190601f168015614ac45780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614ae657600080fd5b505af1158015614afa573d6000803e3d6000fd5b50506001909b019a506147839950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153be602c913960400191505060405180910390fd5b600083118015614bef5750600082115b614c44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000614c686103e8614c5c868863ffffffff6151dd16565b9063ffffffff6151dd16565b90506000614c826103e5614c5c868963ffffffff614b1316565b9050614c9f6001828481614c9257fe5b049063ffffffff61526316565b9695505050505050565b6000808411614d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154c26025913960400191505060405180910390fd5b600083118015614d135750600082115b614d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b82614d79858463ffffffff6151dd16565b81614d8057fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061544f6025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e4b578284614e4e565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99092169163e6a4390591604480820192602092909190829003018186803b158015614f7c57600080fd5b505afa158015614f90573d6000803e3d6000fd5b505050506040513d6020811015614fa657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561508c57604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99092169163c9c65396916044808201926020929091908290030181600087803b15801561505f57600080fd5b505af1158015615073573d6000803e3d6000fd5b505050506040513d602081101561508957600080fd5b50505b6000806150ba7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98b8b6152d5565b915091508160001480156150cc575080155b156150dc578793508692506151d0565b60006150e9898484614ca9565b9050878111615156578581101561514b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b8894509250826151ce565b6000615163898486614ca9565b90508981111561516f57fe5b878110156151c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008115806151f8575050808202828282816151f557fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152e48585614d89565b5090506000806152f58888886140b0565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561533a57600080fd5b505afa15801561534e573d6000803e3d6000fd5b505050506040513d606081101561536457600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153ab5780826153ae565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a264697066735822122058679bc9474b9bf23de79679b7f67187bb1fb84a5701294ce32c84e6b840987e64736f6c63430006060033","storage":{}},"0x610178da211fef7d417bc0e6fed39f05609ad788":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80637f7120fe11610076578063d0ebdbe71161005b578063d0ebdbe7146102e3578063ec58f4b814610316578063f84436bd14610349576100a3565b80637f7120fe1461027b5780638fd57b92146102b0576100a3565b806302cc250d146100a857806343218e19146100ef578063481c6a75146102275780635624b25b14610258575b600080fd5b6100db600480360360208110156100be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661040c565b604080519115158252519081900360200190f35b6101b26004803603604081101561010557600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561013d57600080fd5b82018360208201111561014f57600080fd5b8035906020019184600183028401116401000000008311171561017157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610437945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ec5781810151838201526020016101d4565b50505050905090810190601f1680156102195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022f6105af565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101b26004803603604081101561026e57600080fd5b50803590602001356105d1565b6102ae6004803603602081101561029157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610647565b005b6102ae600480360360208110156102c657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107f8565b6102ae600480360360208110156102f957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610907565b6102ae6004803603602081101561032c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a47565b6101b26004803603604081101561035f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111640100000000831117156103cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b5a945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083106104a057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610463565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610500576040519150601f19603f3d011682016040523d82523d6000602084013e610505565b606091505b5080935081925050506105a882826040516020018083805190602001908083835b6020831061056357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610526565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b815260010192505050604051602081830303815290604052610da3565b5092915050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008260200267ffffffffffffffff811180156105ef57600080fd5b506040519080825280601f01601f19166020018201604052801561061a576020820181803683370190505b50905060005b8381101561063d5784810154602080830284010152600101610620565b5090505b92915050565b600054610100900460ff16806106605750610660610dab565b8061066e575060005460ff16155b6106d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e697469616c697a61626c653a20696e697469616c697a6564000000000000604482015290519081900360640190fd5b600054610100900460ff1615801561073f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851690810291909117825560408051918252602082019290925281517f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350929181900390910190a180156107f457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461088457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f475076323a2063616c6c6572206e6f74206d616e616765720000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055815192835290517f640e18a2587e1d83e4fdabf70257d0a800ca4b2c1aaad1dfc485a4ad8bbbd6c69281900390910190a150565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1633148061094f575033610937610db1565b73ffffffffffffffffffffffffffffffffffffffff16145b6109ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f475076323a206e6f7420617574686f72697a6564000000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff85161790945560408051918252939092041660208201819052825190927f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350928290030190a15050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314610ad357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f475076323a2063616c6c6572206e6f74206d616e616765720000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602081815260409283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155815192835290517f41f9d09dd5159251f8a8e482bbe097b7c01a5e6f70c5a0ddb494906464fc9dd79281900390910190a150565b606060006343218e1960e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610bc4578181015183820152602001610bac565b50505050905090810190601f168015610bf15780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909816979097178752518151919750309688965090945084935091508083835b60208310610cc257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c85565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d24576040519150601f19603f3d011682016040523d82523d6000602084013e610d29565b606091505b50905080925050600082600184510381518110610d4257fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b149050610d85836001855103610dd6565b8015610d92575050610641565b610d9b83610da3565b505092915050565b805160208201fd5b303b1590565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905256fea264697066735822122061c922ff3c8fd77b82a4bacb85f667123c27bea6c7c2450802edca5880c39c6364736f6c63430007060033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660001","0xa3c1274aadd82e4d12c8004c33fb244ca686dad4fcc8957fc5668588c11d9502":"0x0000000000000000000000000000000000000000000000000000000000000001"}},"0x70997970c51812dc3a010c7d01b50e0d17dc79c8":{"nonce":3,"balance":"0x21e19e0c77a8ad8f883","code":"0x","storage":{}},"0x7377795aa7b4a8fca5e4e194f54eaff667db45f0":{"nonce":1,"balance":"0x0","code":"0x5f80fdfea264697066735822122036ba1d0a51c38b9bf24b928ea7995bf7af4740f798592246106454ff3db66a2964736f6c634300081a0033","storage":{}},"0x8a791620dd6260079bf849dc5567adc3f2fdc318":{"nonce":1,"balance":"0x0","code":"0x60806040526004361015610011575f80fd5b5f3560e01c80630f5a6efa146100605763fec90d721461002f575f80fd5b3461005c57604036600319011261005c57610048610136565b5061005161014c565b5060206040515f8152f35b5f80fd5b3461005c57604036600319011261005c57610079610136565b5060243567ffffffffffffffff811161005c573660238201121561005c5780600401359067ffffffffffffffff821161005c57602490369260051b01011161005c5760206040518181019080821067ffffffffffffffff8311176101225790806040525f82525f36813760405192839281840190828552518091526040840192915f5b82811061010b57505050500390f35b8351855286955093810193928101926001016100fc565b634e487b7160e01b5f52604160045260245ffd5b600435906001600160a01b038216820361005c57565b602435906001600160a01b038216820361005c5756fea26469706673582212206040a99238ce213f103492965ed74ea57d744e3f796abd195fd5b28637d8f66164736f6c634300081a0033","storage":{}},"0x8daf17a20c9dba35f005b6324f493785d239719d":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80634817a2861461003b5780637d10d11f14610064575b600080fd5b61004e610049366004610cd9565b610079565b60405161005b9190610eb3565b60405180910390f35b610077610072366004610c69565b610234565b005b60603373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e16146100f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea906110e5565b60405180910390fd5b6040517f945bcec900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc318169063945bcec990610171908c908c908c908c908c908c908c90600401610f59565b600060405180830381600087803b15801561018b57600080fd5b505af115801561019f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526101e59190810190610bd9565b905061022873ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3181683336102e9565b98975050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e16146102a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea906110e5565b6102e573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31816838333610551565b5050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61030e6040840160208501610bb6565b73ffffffffffffffffffffffffffffffffffffffff16141561035c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea9061111c565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9826060013514156103d0576103cb6103986020840184610bb6565b82604085018035906103ad9060208801610bb6565b73ffffffffffffffffffffffffffffffffffffffff16929190610816565b61054c565b604080516001808252818301909252600091816020015b6103ef6109cb565b8152602001906001900390816103e757905050905060008160008151811061041357fe5b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea063284606001351461044f576002610452565b60035b8190600381111561045f57fe5b9081600381111561046c57fe5b90525061047f6040850160208601610bb6565b73ffffffffffffffffffffffffffffffffffffffff16602080830191909152604080860135908301526104b490850185610bb6565b73ffffffffffffffffffffffffffffffffffffffff908116606083015283811660808301526040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815290861690630e8e3e8490610517908590600401610ec6565b600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505050505b505050565b60008267ffffffffffffffff8111801561056a57600080fd5b506040519080825280602002602001820160405280156105a457816020015b6105916109cb565b8152602001906001900390816105895790505b5090506000805b8481101561077857368686838181106105c057fe5b60800291909101915073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90506105f06040830160208401610bb6565b73ffffffffffffffffffffffffffffffffffffffff16141561063e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea9061111c565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9816060013514156106945761068f61067a6020830183610bb6565b86604084018035906103ad9060208701610bb6565b61076f565b60008484806001019550815181106106a857fe5b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea06328260600135146106e45760016106e7565b60035b819060038111156106f457fe5b9081600381111561070157fe5b9052506107146040830160208401610bb6565b73ffffffffffffffffffffffffffffffffffffffff166020808301919091526040808401359083015261074990830183610bb6565b73ffffffffffffffffffffffffffffffffffffffff908116606083015286166080909101525b506001016105ab565b50801561080e5761078982826108fd565b6040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690630e8e3e84906107db908590600401610ec6565b600060405180830381600087803b1580156107f557600080fd5b505af1158015610809573d6000803e3d6000fd5b505050505b505050505050565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff8581166004840152841660248301526044820183905290600080606483828a5af1610881573d6000803e3d6000fd5b5061088b85610901565b6108f657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a206661696c6564207472616e7366657246726f6d00000000000000604482015290519081900360640190fd5b5050505050565b9052565b600061093f565b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452806024528160445260646000fd5b3d801561097e57602081146109b8576109797f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f610908565b6109c5565b823b6109af576109af7f475076323a206e6f74206120636f6e74726163740000000000000000000000006014610908565b600191506109c5565b3d6000803e600051151591505b50919050565b6040805160a081019091528060008152600060208201819052604082018190526060820181905260809091015290565b600082601f830112610a0b578081fd5b81356020610a20610a1b83611175565b611151565b8281528181019085830183850287018401881015610a3c578586fd5b855b85811015610a63578135610a5181611193565b84529284019290840190600101610a3e565b5090979650505050505050565b600082601f830112610a80578081fd5b81356020610a90610a1b83611175565b8281528181019085830183850287018401881015610aac578586fd5b855b85811015610a6357813584529284019290840190600101610aae565b60008083601f840112610adb578182fd5b50813567ffffffffffffffff811115610af2578182fd5b6020830191508360208083028501011115610b0c57600080fd5b9250929050565b80358015158114610b2357600080fd5b919050565b6000608082840312156109c5578081fd5b600060808284031215610b4a578081fd5b6040516080810181811067ffffffffffffffff82111715610b6757fe5b6040529050808235610b7881611193565b8152610b8660208401610b13565b60208201526040830135610b9981611193565b6040820152610baa60608401610b13565b60608201525092915050565b600060208284031215610bc7578081fd5b8135610bd281611193565b9392505050565b60006020808385031215610beb578182fd5b825167ffffffffffffffff811115610c01578283fd5b8301601f81018513610c11578283fd5b8051610c1f610a1b82611175565b8181528381019083850185840285018601891015610c3b578687fd5b8694505b83851015610c5d578051835260019490940193918501918501610c3f565b50979650505050505050565b60008060208385031215610c7b578081fd5b823567ffffffffffffffff80821115610c92578283fd5b818501915085601f830112610ca5578283fd5b813581811115610cb3578384fd5b866020608083028501011115610cc7578384fd5b60209290920196919550909350505050565b6000806000806000806000806101a0898b031215610cf5578384fd5b883560028110610d03578485fd5b9750602089013567ffffffffffffffff80821115610d1f578586fd5b610d2b8c838d01610aca565b909950975060408b0135915080821115610d43578586fd5b610d4f8c838d016109fb565b9650610d5e8c60608d01610b39565b955060e08b0135915080821115610d73578485fd5b50610d808b828c01610a70565b9350506101008901359150610d998a6101208b01610b28565b90509295985092959890939650565b6000815180845260208085019450808401835b83811015610ded57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101610dbb565b509495945050505050565b6000815180845260208085019450808401835b83811015610ded57815187529582019590820190600101610e0b565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b600060208252610bd26020830184610df8565b602080825282518282018190526000919060409081850190868401855b82811015610f4c578151805160048110610ef957fe5b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a09093019290850190600101610ee3565b5091979650505050505050565b600061012080830160028b10610f6b57fe5b8a8452602080850192909252889052610140808401918981028501909101908a845b8b811015611098577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec087850301855281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618e3603018112610fed578687fd5b8d01803585528381013584860152604080820135908601526060808201359086015260a0608080830135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe101811261104757898afd5b8301803567ffffffffffffffff81111561105f578a8bfd5b80360385131561106d578a8bfd5b83838a0152611081848a01828a8501610e27565b998801999850505093850193505050600101610f8d565b50505083810360408501526110ad8189610da8565b9150506110bd6060840187610e6f565b82810360e08401526110cf8186610df8565b9150508261010083015298975050505050505050565b60208082526011908201527f475076323a206e6f742063726561746f72000000000000000000000000000000604082015260600190565b6020808252818101527f475076323a2063616e6e6f74207472616e73666572206e617469766520455448604082015260600190565b60405181810167ffffffffffffffff8111828210171561116d57fe5b604052919050565b600067ffffffffffffffff82111561118957fe5b5060209081020190565b73ffffffffffffffffffffffffffffffffffffffff811681146111b557600080fd5b5056fea2646970667358221220addf78f9933867b13bfb595f92d06bf1ca903f014437092b1df8accfeef30b2d64736f6c63430007060033","storage":{}},"0x90f79bf6eb2c4f870365e785982e1f101e93b906":{"nonce":3,"balance":"0x21e19e0c9614aef7481","code":"0x","storage":{}},"0x94eccb8e4635821e636c6651d2a5964562d31c5d":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000000000000000000000000000002386f26fc10000","0x0000000000000000000000000000000000000000000000000000000000000003":"0x0fe1c9665f9020dfc472ae70c4e96d819271fd4fd43e153859a1ac19e4ebb522","0x0000000000000000000000000000000000000000000000000000000000000005":"0x000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9","0x0000000000000000000000000000000000000000000000000000000000000006":"0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0","0x0000000000000000000000000000000000000000000000000000000000000007":"0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","0x0000000000000000000000000000000000000000000000000000000000000008":"0x691f208600000000021e19e0c9bab240000000000000000000000002540be400","0x000000000000000000000000000000000000000000000000000000000000000b":"0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000000000000000000000000000000000000000000c":"0x0000000000000000000000000000000000000000000000000000000000000001","0xa3c1274aadd82e4d12c8004c33fb244ca686dad4fcc8957fc5668588c11d9502":"0x000000000000000000000000000000000000000000000000002386f26fc0fc18","0xa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49":"0x00000000000000000000000000000000000000000000000000000000000003e8"}},"0x976ea74026e726554db657fa54763abd0c3a0aa9":{"nonce":3,"balance":"0x21e19e0c9b53b357976","code":"0x","storage":{}},"0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc":{"nonce":3,"balance":"0x21e19e0c9acd2b96a56","code":"0x","storage":{}},"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0":{"nonce":1,"balance":"0x0","code":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461076d578063095ea7b3146106f457806318160ddd146106d757806323b872dd14610607578063313ce567146105ca5780633644e515146105a857806340c10f191461053057806370a08231146104f85780637ecebe00146104c057806395d89b41146103e65780639dc29fac14610386578063a9059cbb14610311578063d505accf146101075763dd62ed3e146100b3575f80fd5b34610103576040366003190112610103576100cc6108a7565b6100d46108bd565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101035760e0366003190112610103576101206108a7565b6101286108bd565b6044356064359260843560ff8116809103610103574285106102cc5760805f916020936101536108e0565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d060e082610847565b519020604051908682019261190160f01b845260228301526042820152604281526101fc606282610847565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c1575f516001600160a01b0316801515806102b8575b15610282577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461023a565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346101035760403660031901126101035761032a6108a7565b60243590335f52600360205260405f206103458382546108d3565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610a5b83398151915260203392a3602060405160018152f35b34610103576040366003190112610103575f6103a06108a7565b5f80516020610a5b83398151915260206024359260018060a01b03169283855260038252604085206103d38282546108d3565b90558060025403600255604051908152a3005b34610103575f366003190112610103576040515f6001546104068161080f565b808452906001811690811561049c575060011461043e575b61043a8361042e81850382610847565b6040519182918261087d565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106104825750909150810160200161042e61041e565b91926001816020925483858801015201910190929161046a565b60ff191660208086019190915291151560051b8401909101915061042e905061041e565b34610103576020366003190112610103576001600160a01b036104e16108a7565b165f526005602052602060405f2054604051908152f35b34610103576020366003190112610103576001600160a01b036105196108a7565b165f526003602052602060405f2054604051908152f35b34610103576040366003190112610103576105496108a7565b60243590600254908282018092116105945760205f80516020610a5b833981519152915f9360025560018060a01b0316938484526003825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b34610103575f3660031901126101035760206105c26108e0565b604051908152f35b34610103575f36600319011261010357602060405160ff7f0000000000000000000000000000000000000000000000000000000000000006168152f35b34610103576060366003190112610103576106206108a7565b6106286108bd565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610a5b833981519152929185600182016106b2575b5050835f526003825260405f206106828682546108d3565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106bb916108d3565b5f8581526004845260408082203383528552902055858561066a565b34610103575f366003190112610103576020600254604051908152f35b346101035760403660031901126101035761070d6108a7565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610103575f366003190112610103576040515f805461078c8161080f565b808452906001811690811561049c57506001146107b35761043a8361042e81850382610847565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106107f55750909150810160200161042e61041e565b9192600181602092548385880101520191019092916107dd565b90600182811c9216801561083d575b602083101461082957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161081e565b90601f8019910116810190811067ffffffffffffffff82111761086957604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010357565b602435906001600160a01b038216820361010357565b9190820391821161059457565b467f0000000000000000000000000000000000000000000000000000000000007a690361092b577f3b90aeef9a2f7a490b3ae05b3e096bd4b716c7eb9725b4723ffd8b849b8fcfd690565b6040515f905f54918161093d8461080f565b9182825260208201946001811690815f14610a3e57506001146109e1575b61096792500382610847565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109db60c082610847565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a225750509060206109679282010161095b565b6020919350806001915483858801015201910190918392610a0a565b60ff191686525061096792151560051b8201602001905061095b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207de4439c7c575beac552a99bd7a80a56f5f69465e073bcea91ee0ad18ec4067f64736f6c634300081a0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x55534420436f696e000000000000000000000000000000000000000000000010","0x0000000000000000000000000000000000000000000000000000000000000001":"0x5553444300000000000000000000000000000000000000000000000000000008","0x0000000000000000000000000000000000000000000000000000000000000002":"0x00000000000000000000000000000000000000000000003635c9aeaeb3451000","0x09c9f1f772cc7cdfdea1312d18e43df0fc201c7648448a9011fd8181f577802d":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x0b684ba07b77e0ae8621ce6c03cfce9bd59a4f44976ccbe5d95bb50cad0be5c2":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x20999abef70ca73650c6528451b6afcdaa7677806749a87307fbbe4f1ec2c1df":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x4816d8913e79510f8dd14cc5ef23a5559aca2723f9b16fb6bd81b177bba2fdae":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x53c8a5ff8e9eee17be03169c30dedc5882673fcdd4fbdb8a32244385ed269978":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x60dfe37633c44044266a08a2b6a41309e6e4148a80b8ce1e84c4c423ca8ab0f2":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x6a706e96617ceafd46f24757f71aad32b88c8bf0b8ae22ec3de611582d2d4a6c":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x75aff4397bd23075589294e0b8b0f8648cf7c5304a40414f211ad7ccc7e3a7fd":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x7b39b83efd2e26f146fc52f47a1112ec24fe8e930d1c79ca1903303359cf275f":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x961ec03a078fec1e350bb1ca3bff1afa4bae5fb83d9d8382550c2fd26a7d7527":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x9c35da83f88043b3115f30d93beacec49ca14b6238430bdff196a249c29baa80":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0xacd8d0614af6e74f74bf3d06d01de8648511768c0eee931deae87bc4c0bae380":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xc038a4c0dae1a80a0f345e65b2c64588a88378a64c44fc77d2a8fec6772f6708":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xc651ee22c6951bb8b5bd29e8210fb394645a94315fe10eff2cc73de1aa75c137":"0x0000000000000000000000000000000000000000000000056bc75f0f3b916400","0xc7c2559c7a18beabdfaa992d94ae2dbcd8629c25d63ef0cfae27fee07586a339":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xc9f51ff2393193a07f116cb1ed67be0783387c719e9662a8d0ec4684dcfc0fa0":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0xd70e37874cf4989d0dc0b20b584507542c9387ca0d78d26547cdfe0ee5f89ebb":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xddfe746303372e8d2ea45aa78e3e91478f7307894b155f7ff4ebb7ddaa345272":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0xe45486f08d33fa882adccd0b079cbf7ea1c17a9e28f618600cdce4aaaf14c04e":"0x00000000000000000000000000000000000000000000000000000002540be400","0xf4101d4f3556064791764cb858c5b5eccc92d63c3bbcb142c5d125936ee3f62d":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xf907546d35bf80c8b303b0db78f438dfd60def69a9f1cec82c65c56c3f09ddc9":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xfb3ff3d2a6a95c1b93e0297159451887e041c86848ca1ea33e51cfc8cb303074":"0x00000000000000000000000000000000000000000000000000000004a817c800"}},"0xa0ee7a142d267c1f36714e4a8f75612f20a79720":{"nonce":3,"balance":"0x21e19e0c9ba5cb112bb","code":"0x","storage":{}},"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e":{"nonce":2,"balance":"0x0","code":"0x6080604052600436106100ec5760003560e01c80639b552cc21161008a578063ed9f35ce11610059578063ed9f35ce14610274578063f698da2514610294578063f84436bd146102a9578063fbfa77cf146102c9576100f3565b80639b552cc2146101ff578063a2a7d51b14610214578063d08d33d114610234578063ec6cb13f14610254576100f3565b80632479fb6e116100c65780632479fb6e1461016557806343218e19146101925780635624b25b146101bf578063845a101f146101df576100f3565b806313d79a0b146100f857806315337bc01461011a5780632335c76b1461013a576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061011861011336600461347e565b6102de565b005b34801561012657600080fd5b50610118610135366004613691565b6107a5565b34801561014657600080fd5b5061014f61089e565b60405161015c919061393e565b60405180910390f35b34801561017157600080fd5b5061018561018036600461371a565b6108c2565b60405161015c9190613a40565b34801561019e57600080fd5b506101b26101ad3660046133f0565b6108df565b60405161015c9190613a5d565b3480156101cb57600080fd5b506101b26101da36600461374d565b610a57565b3480156101eb57600080fd5b506101186101fa3660046135de565b610acd565b34801561020b57600080fd5b5061014f611272565b34801561022057600080fd5b5061011861022f36600461343e565b611296565b34801561024057600080fd5b5061018561024f36600461371a565b6112df565b34801561026057600080fd5b5061011861026f3660046136c5565b6112fc565b34801561028057600080fd5b5061011861028f36600461343e565b6114bb565b3480156102a057600080fd5b50610185611500565b3480156102b557600080fd5b506101b26102c43660046133f0565b611524565b3480156102d557600080fd5b5061014f61176d565b6002600154141561035057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001556040517f02cc250d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad78816906302cc250d906103c790339060040161393e565b60206040518083038186803b1580156103df57600080fd5b505afa1580156103f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104179190613675565b610456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f1c565b60405180910390fd5b60405133907f7c3354d25cde0396b97e394765fc57e6725a2af3bd430f2fa5fb18c1275b767390610488908590613a40565b60405180910390a26104ac8160005b6020028101906104a79190613fc8565b611791565b6040517fb30270a37e2e4cc4e92f89e7e547d3071f3df248b1d38087d25e1b3428b66cc390600090a16040517f37c8fc3ebb5e40b9957fb555efaa44a206d443b7ac930fb87ca80bd4aa86a5c290610505908490613a40565b60405180910390a160008061051e8989898989896118ce565b915091507f6e54a7dbb4b29f8784749754dededb16b110602787effe25acd400ba0139da4782518251604051610555929190613fba565b60405180910390a17f3800ddfb7721134ba29414e8edf556e71bbc37c70fc77f684cfbea4cdd1deb3e825160405161058d9190613a40565b60405180910390a16040517f7d10d11f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d1690637d10d11f9061060790859060040161395f565b600060405180830381600087803b15801561062157600080fd5b505af1158015610635573d6000803e3d6000fd5b50506040517f307733f9f689d0bf848ca325cddded11e589c82ea2e55dbb22f929d9a7fe3bac925060009150a161066d836001610497565b6040517fa04bed3ab5f235073cbe25d194bb3d5c636f079ec1baa00d440bd241e18ce96590600090a17f1f51c6f18a8d6b960829349f9d73b906fe712f3a831efd9a60b255e4c7f1174f81516040516106c69190613a40565b60405180910390a161070e73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3181682611a35565b6040517fba2eda774c2667685901b47fd7e31a3eb285c4abda72da45c11ab9d78636fc1190600090a1610742836002610497565b6040517f0d82c2d8bda7f712283f61fcc6206fdc702fdba0d2febffc66566be95eb8fbbd90600090a160405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a250506001805550505050505050565b60006107b18383611d13565b5091505073ffffffffffffffffffffffffffffffffffffffff81163314610804576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613cbf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60028484604051610837929190613912565b9081526020016040518091039020819055508073ffffffffffffffffffffffffffffffffffffffff167f875b6cb035bbd4ac6500fabc6d1e4ca5bdc58a3e2b424ccb5c24cdbebeb009a98484604051610891929190613a49565b60405180910390a2505050565b7f000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad78881565b805160208183018101805160028252928201919093012091525481565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831061094857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161090b565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109a8576040519150601f19603f3d011682016040523d82523d6000602084013e6109ad565b606091505b508093508192505050610a5082826040516020018083805190602001908083835b60208310610a0b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109ce565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b815260010192505050604051602081830303815290604052611da1565b5092915050565b606060008260200267ffffffffffffffff81118015610a7557600080fd5b506040519080825280601f01601f191660200182016040528015610aa0576020820181803683370190505b50905060005b83811015610ac35784810154602080830284010152600101610aa6565b5090505b92915050565b60026001541415610b3f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001556040517f02cc250d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad78816906302cc250d90610bb690339060040161393e565b60206040518083038186803b158015610bce57600080fd5b505afa158015610be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c069190613675565b610c3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f1c565b6000610c46611da9565b8051909150610c5782868686611dd6565b60007ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677582610100015114610c8c576001610c8f565b60005b9050610c996131e0565b60408085015173ffffffffffffffffffffffffffffffffffffffff90811683526101408501517f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce9081146020850152606080880151909216928401929092526101608501519091149082015260008667ffffffffffffffff81118015610d1e57600080fd5b50604051908082528060200260200182016040528015610d48578160200160208202803683370190505b50610100850151909150610120870135907ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467751415610e14578460800151811015610dbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613ee5565b610dcb8560600151611e74565b82886000013581518110610ddb57fe5b602002602001018181525050610df081611e74565b60000382886020013581518110610e0357fe5b602002602001018181525050610ea4565b8460600151811115610e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e40565b610e5b81611e74565b82886000013581518110610e6b57fe5b602002602001018181525050610e848560800151611e74565b60000382886020013581518110610e9757fe5b6020026020010181815250505b610eac6131e0565b8660400151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560000151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560e0015181604001818152505085610140015181606001818152505060007f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d73ffffffffffffffffffffffffffffffffffffffff16634817a286878f8f8f8f8b8b8f60a001518b6040518a63ffffffff1660e01b8152600401610fb099989796959493929190613b1b565b600060405180830381600087803b158015610fca57600080fd5b505af1158015610fde573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611024919081019061353d565b90506000886020015190506000611051838c600001358151811061104457fe5b6020026020010151611f09565b90506000611078848d602001358151811061106857fe5b6020026020010151600003611f09565b905060028360405161108a9190613922565b9081526020016040518091039020546000146110d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467758a61010001511415611166578960600151821461113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d64565b89606001516002846040516111519190613922565b908152604051908190036020019020556111c9565b896080015181146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d9b565b89608001516002846040516111b89190613922565b908152604051908190036020019020555b8a6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc178b600001518c6020015185858f60e001518960405161122996959493929190613ac4565b60405180910390a260405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a25050600180555050505050505050505050505050565b7f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d81565b3033146112cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e09565b6112db60008383611f7a565b5050565b805160208183018101805160008252928201919093012091525481565b60006113088484611d13565b5091505073ffffffffffffffffffffffffffffffffffffffff8116331461139057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f475076323a2063616e6e6f74207072657369676e206f72646572000000000000604482015290519081900360640190fd5b81156113ea577ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c60008585604051808383808284378083019250505092505050908152602001604051809103902081905550611416565b600080858560405180838380828437919091019485525050604051928390036020019092209290925550505b8073ffffffffffffffffffffffffffffffffffffffff167f01bf7c8b0ca55deecbea89d7e58295b7ffbf685fd0d96801034ba8c6ffe1c68d858585604051808060200183151581526020018281038252858582818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a250505050565b3033146114f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e09565b6112db60028383611f7a565b7f01775d1b0885613ec7338c7192b2e10f00c2331f27493e2a3d2247c244cd3fc281565b606060006343218e1960e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561158e578181015183820152602001611576565b50505050905090810190601f1680156115bb5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909816979097178752518151919750309688965090945084935091508083835b6020831061168c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161164f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146116ee576040519150601f19603f3d011682016040523d82523d6000602084013e6116f3565b606091505b5090508092505060008260018451038151811061170c57fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b14905061174f83600185510361202a565b801561175c575050610ac7565b61176583611da1565b505092915050565b7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b60005b818110156118c957368383838181106117a957fe5b90506020028101906117bb9190614090565b905073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d1661180160208301836133d4565b73ffffffffffffffffffffffffffffffffffffffff16141561184f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f53565b6118588161202e565b61186560208201826133d4565b73ffffffffffffffffffffffffffffffffffffffff167fed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c282602001356118aa84612085565b6040516118b8929190613f8a565b60405180910390a250600101611794565b505050565b60608060006118db611da9565b90508367ffffffffffffffff811180156118f457600080fd5b5060405190808252806020026020018201604052801561192e57816020015b61191b6131e0565b8152602001906001900390816119135790505b5092508367ffffffffffffffff8111801561194857600080fd5b5060405190808252806020026020018201604052801561198257816020015b61196f6131e0565b8152602001906001900390816119675790505b50915060005b84811015611a28573686868381811061199d57fe5b90506020028101906119af91906140c3565b90506119bd838c8c84611dd6565b611a1f838a8a84358181106119ce57fe5b905060200201358b8b85602001358181106119e557fe5b905060200201358461012001358987815181106119fe57fe5b6020026020010151898881518110611a1257fe5b60200260200101516120af565b50600101611988565b5050965096945050505050565b6000815167ffffffffffffffff81118015611a4f57600080fd5b50604051908082528060200260200182016040528015611a8957816020015b611a76613207565b815260200190600190039081611a6e5790505b5090506000805b8351811015611c77576000848281518110611aa757fe5b6020026020010151905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611bab577f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce81606001511415611b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613dd2565b8051604080830151905173ffffffffffffffffffffffffffffffffffffffff9092169181156108fc0291906000818181858888f19350505050158015611ba5573d6000803e3d6000fd5b50611c6e565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981606001511415611c0a57805160408201516020830151611c059273ffffffffffffffffffffffffffffffffffffffff90911691612466565b611c6e565b6000848480600101955081518110611c1e57fe5b602090810291909101810151600081528382015173ffffffffffffffffffffffffffffffffffffffff90811692820192909252604080850151908201523060608201528351909116608090910152505b50600101611a90565b508015611d0d57611c88828261202a565b6040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690630e8e3e8490611cda9085906004016139ad565b600060405180830381600087803b158015611cf457600080fd5b505af1158015611d08573d6000803e3d6000fd5b505050505b50505050565b6000808060388414611d8657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f475076323a20696e76616c696420756964000000000000000000000000000000604482015290519081900360640190fd5b5050823593602084013560601c936034013560e01c92509050565b805160208201fd5b611db1613237565b6040805160388082526060820190925290602082018180368337505050602082015290565b83516000611de68386868561253e565b9050600080611e038484611dfe61014089018961402d565b612626565b91509150611e2682828660a001518b602001516126d5909392919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff81166040890152611e4c8482612757565b73ffffffffffffffffffffffffffffffffffffffff1660609098019790975250505050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611f0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f53616665436173743a20696e74323536206f766572666c6f7700000000000000604482015290519081900360640190fd5b5090565b600080821215611f0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f53616665436173743a206e6f7420706f73697469766500000000000000000000604482015290519081900360640190fd5b60005b81811015611d0d57366000848484818110611f9457fe5b9050602002810190611fa6919061402d565b915091506000611fb68383611d13565b92505050428163ffffffff1610611ff9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613eae565b600087848460405161200c929190613912565b90815260405190819003602001902055505060019091019050611f7d565b9052565b73ffffffffffffffffffffffffffffffffffffffff813516602082013536600061205b604086018661402d565b9150915060405181838237600080838387895af161207d573d6000803e3d6000fd5b505050505050565b60003681612096604085018561402d565b9092509050600481106120a857813592505b5050919050565b6000866000015190506000876020015190506000428360a0015163ffffffff161090507f9b4eb7f4556a1352e4627acf6b73a4ddfc64291c08ae077411b2eafe1436c8eb828a60400151856060015186608001518760e001518660405161211b96959493929190613a70565b60405180910390a1428360a0015163ffffffff161015612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613cf6565b60808301516121769088612789565b6060840151612185908a612789565b10156121bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d2d565b6000806000807ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677587610100015114156122be578661012001511561222a57899350612223876060015161221d868a60e0015161278990919063ffffffff16565b90612819565b9150612239565b866060015193508660e0015191505b61224d8b612247868f612789565b9061289a565b9250612279846002886040516122639190613922565b9081526040519081900360200190205490612938565b905086606001518111156122b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b612365565b866101200151156122f2578992506122eb876080015161221d858a60e0015161278990919063ffffffff16565b9150612301565b866080015192508660e0015191505b61230f8c61221d858e612789565b9350612325836002886040516122639190613922565b90508660800151811115612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b61236f8483612938565b9350806002876040516123829190613922565b9081526020016040518091039020819055508c6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17886000015189602001518787878c6040516123f096959493929190613ac4565b60405180910390a250506040808c015173ffffffffffffffffffffffffffffffffffffffff9081168952865181166020808b0191909152898301949094526101408701516060998a01529b8801518c16875282860151909b16918601919091529884019890985250610160015191015250505050565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff84166004830152602482018390529060008060448382895af16124c9573d6000803e3d6000fd5b506124d3846129ac565b611d0d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f475076323a206661696c6564207472616e736665720000000000000000000000604482015290519081900360640190fd5b60008383863581811061254d57fe5b6020908102929092013573ffffffffffffffffffffffffffffffffffffffff168452508490849087013581811061258057fe5b73ffffffffffffffffffffffffffffffffffffffff602091820293909301358316908501525060408087013590911690830152606080860135908301526080808601359083015263ffffffff60a080870135919091169083015260c0808601359083015260e080860135908301526125fc610100860135612a76565b61016087019190915261014086019190915290151561012085015261010090930152509392505050565b600080612653867f01775d1b0885613ec7338c7192b2e10f00c2331f27493e2a3d2247c244cd3fc2612bcb565b9150600085600381111561266357fe5b141561267b57612674828585612c55565b90506126cc565b600185600381111561268957fe5b141561269a57612674828585612c6a565b60028560038111156126a857fe5b14156126b957612674828585612cd2565b6126c98285858960a00151612e70565b90505b94509492505050565b603884511461274557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a2075696420627566666572206f766572666c6f7700000000000000604482015290519081900360640190fd5b60388401526034830152602090910152565b604082015160009073ffffffffffffffffffffffffffffffffffffffff16612780575080610ac7565b50506040015190565b60008261279857506000610ac7565b828202828482816127a557fe5b041461281257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d6174683a206d756c206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b9392505050565b600080821161288957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d6174683a206469766973696f6e2062792030000000000000000000604482015290519081900360640190fd5b81838161289257fe5b049392505050565b600080821161290a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f536166654d6174683a206365696c696e67206469766973696f6e206279203000604482015290519081900360640190fd5b81838161291357fe5b0615612920576001612923565b60005b60ff1682848161292f57fe5b04019392505050565b60008282018381101561281257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006129ea565b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452806024528160445260646000fd5b3d8015612a295760208114612a6357612a247f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f6129b3565b612a70565b823b612a5a57612a5a7f475076323a206e6f74206120636f6e747261637400000000000000000000000060146129b3565b60019150612a70565b3d6000803e600051151591505b50919050565b60008080808060018616612aac577ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467759450612ad0565b7f6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc94505b600286161515935060088616612b08577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99250612b5c565b60048616612b38577fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea06329250612b5c565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce92505b60108616612b8c577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99150612bb0565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce91505b600586901c6003811115612bc057fe5b905091939590929450565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090910180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6000612c62848484613035565b949350505050565b6000808460405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050612cc9818585613035565b95945050505050565b813560601c366000612ce7846014818861411a565b604080517f1626ba7e00000000000000000000000000000000000000000000000000000000808252600482018b81526024830193845260448301859052949650929450919273ffffffffffffffffffffffffffffffffffffffff871692631626ba7e928b928892889290606401848480828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201965060209550909350505081840390508186803b158015612dad57600080fd5b505afa158015612dc1573d6000803e3d6000fd5b505050506040513d6020811015612dd757600080fd5b50517fffffffff000000000000000000000000000000000000000000000000000000001614612e6757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f475076323a20696e76616c69642065697031323731207369676e617475726500604482015290519081900360640190fd5b50509392505050565b600060148314612ee157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f475076323a206d616c666f726d6564207072657369676e617475726500000000604482015290519081900360640190fd5b506040805160388082526060828101909352853590921c9160009190602082018180368337019050509050612f18818784866126d5565b7ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c6000826040518082805190602001908083835b60208310612f8c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f4f565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020541461302c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a206f72646572206e6f74207072657369676e656400000000000000604482015290519081900360640190fd5b50949350505050565b6000604182146130a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f475076323a206d616c666f726d6564206563647361207369676e617475726500604482015290519081900360640190fd5b604080516000815260208181018084528790528286013560f81c82840181905286356060840181905282880135608085018190529451909493919260019260a0808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015613129573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015194505073ffffffffffffffffffffffffffffffffffffffff84166131d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f475076323a20696e76616c6964206563647361207369676e6174757265000000604482015290519081900360640190fd5b5050509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040805160a081019091528060008152600060208201819052604082018190526060820181905260809091015290565b604051806080016040528061324a613264565b815260606020820181905260006040830181905291015290565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915290565b60008083601f8401126132d9578182fd5b50813567ffffffffffffffff8111156132f0578182fd5b602083019150836020808302850101111561330a57600080fd5b9250929050565b60008083601f840112613322578182fd5b50813567ffffffffffffffff811115613339578182fd5b60208301915083602082850101111561330a57600080fd5b600082601f830112613361578081fd5b813567ffffffffffffffff81111561337557fe5b6133a660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016140f6565b8181528460208386010111156133ba578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156133e5578081fd5b81356128128161416e565b60008060408385031215613402578081fd5b823561340d8161416e565b9150602083013567ffffffffffffffff811115613428578182fd5b61343485828601613351565b9150509250929050565b60008060208385031215613450578182fd5b823567ffffffffffffffff811115613466578283fd5b613472858286016132c8565b90969095509350505050565b60008060008060008060006080888a031215613498578283fd5b873567ffffffffffffffff808211156134af578485fd5b6134bb8b838c016132c8565b909950975060208a01359150808211156134d3578485fd5b6134df8b838c016132c8565b909750955060408a01359150808211156134f7578485fd5b6135038b838c016132c8565b909550935060608a013591508082111561351b578283fd5b508801606081018a101561352d578182fd5b8091505092959891949750929550565b6000602080838503121561354f578182fd5b825167ffffffffffffffff80821115613566578384fd5b818501915085601f830112613579578384fd5b81518181111561358557fe5b83810291506135958483016140f6565b8181528481019084860184860187018a10156135af578788fd5b8795505b838610156135d15780518352600195909501949186019186016135b3565b5098975050505050505050565b6000806000806000606086880312156135f5578081fd5b853567ffffffffffffffff8082111561360c578283fd5b61361889838a016132c8565b90975095506020880135915080821115613630578283fd5b61363c89838a016132c8565b90955093506040880135915080821115613654578283fd5b5086016101608189031215613667578182fd5b809150509295509295909350565b600060208284031215613686578081fd5b815161281281614193565b600080602083850312156136a3578182fd5b823567ffffffffffffffff8111156136b9578283fd5b61347285828601613311565b6000806000604084860312156136d9578081fd5b833567ffffffffffffffff8111156136ef578182fd5b6136fb86828701613311565b909450925050602084013561370f81614193565b809150509250925092565b60006020828403121561372b578081fd5b813567ffffffffffffffff811115613741578182fd5b612c6284828501613351565b6000806040838503121561375f578182fd5b50508035926020909101359150565b60008284526020808501945082825b858110156137b85781356137908161416e565b73ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161377d565b509495945050505050565b6000815180845260208085019450808401835b838110156137b8578151875295820195908201906001016137d6565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b60008151808452613852816020860160208601614142565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8082511683528060208301511660208401525060408101516040830152606081015160608301525050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b63ffffffff169052565b6000828483379101908152919050565b60008251613934818460208701614142565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6020808252825182820181905260009190848201906040850190845b818110156139a15761398e838551613884565b928401926080929092019160010161397b565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b82811015613a335781518051600481106139e057fe5b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a090930192908501906001016139ca565b5091979650505050505050565b90815260200190565b600060208252612c626020830184866137f2565b600060208252612812602083018461383a565b600060c08252613a8360c083018961383a565b73ffffffffffffffffffffffffffffffffffffffff97909716602083015250604081019490945260608401929092526080830152151560a090910152919050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015283608083015260c060a0830152613b0f60c083018461383a565b98975050505050505050565b60006101a0820160028c10613b2c57fe5b8b835260206101a081850152818b83526101c0850190506101c0828d0286010192508c845b8d811015613c5a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe408786030183527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618f360301823512613bb0578586fd5b8e823501803586528481013585870152604081013560408701526060810135606087015260808101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112613c08578788fd5b8101803567ffffffffffffffff811115613c20578889fd5b803603831315613c2e578889fd5b60a06080890152613c4560a08901828985016137f2565b97505050928401925090830190600101613b51565b505050508281036040840152613c7181898b61376e565b9050613c8060608401886138c4565b82810360e0840152613c9281876137c3565b915050613ca3610100830185613908565b613cb1610120830184613884565b9a9950505050505050505050565b6020808252601f908201527f475076323a2063616c6c657220646f6573206e6f74206f776e206f7264657200604082015260600190565b60208082526013908201527f475076323a206f72646572206578706972656400000000000000000000000000604082015260600190565b6020808252601f908201527f475076323a206c696d6974207072696365206e6f742072657370656374656400604082015260600190565b6020808252601f908201527f475076323a2073656c6c20616d6f756e74206e6f742072657370656374656400604082015260600190565b6020808252601e908201527f475076323a2062757920616d6f756e74206e6f74207265737065637465640000604082015260600190565b6020808252601e908201527f475076323a20756e737570706f7274656420696e7465726e616c204554480000604082015260600190565b60208082526018908201527f475076323a206e6f7420616e20696e746572616374696f6e0000000000000000604082015260600190565b60208082526014908201527f475076323a206c696d697420746f6f2068696768000000000000000000000000604082015260600190565b60208082526012908201527f475076323a206f726465722066696c6c65640000000000000000000000000000604082015260600190565b60208082526017908201527f475076323a206f72646572207374696c6c2076616c6964000000000000000000604082015260600190565b60208082526013908201527f475076323a206c696d697420746f6f206c6f7700000000000000000000000000604082015260600190565b60208082526012908201527f475076323a206e6f74206120736f6c7665720000000000000000000000000000604082015260600190565b6020808252601b908201527f475076323a20666f7262696464656e20696e746572616374696f6e0000000000604082015260600190565b9182527fffffffff0000000000000000000000000000000000000000000000000000000016602082015260400190565b918252602082015260400190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613ffc578283fd5b83018035915067ffffffffffffffff821115614016578283fd5b602090810192508102360382131561330a57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614061578283fd5b83018035915067ffffffffffffffff82111561407b578283fd5b60200191503681900382131561330a57600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112613934578182fd5b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea1833603018112613934578182fd5b60405181810167ffffffffffffffff8111828210171561411257fe5b604052919050565b60008085851115614129578182fd5b83861115614135578182fd5b5050820193919092039150565b60005b8381101561415d578181015183820152602001614145565b83811115611d0d5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461419057600080fd5b50565b801515811461419057600080fdfea2646970667358221220e44c81ebee4bd12f2c28a8fff7d83554efc672515327da65767f1268b1aed5f164736f6c63430007060033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000001":"0x0000000000000000000000000000000000000000000000000000000000000001"}},"0xbd5a6618df333f8f66702daadc9a953e2b52a65d":{"nonce":1,"balance":"0x0","code":"0x60806040526004361015610011575f80fd5b5f3560e01c63f88cf6db14610024575f80fd5b346100e557366003190161010081126100e5576060136100e55761004860e0604052565b60043561005481610135565b60805260243561006381610135565b60a05260443561007281610135565b60c05261007d610146565b610085610153565b60a4359160e435919060c43567ffffffffffffffff84116100e5576100e1946100b56100bd953690600401610160565b9490936103dd565b60408051948552602085019390935291830152151560608201529081906080820190565b0390f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761011f57604052565b6100e9565b604051906101336080836100fd565b565b6001600160a01b038116036100e557565b6064359061013382610135565b6084359061013382610135565b9181601f840112156100e55782359167ffffffffffffffff83116100e5576020808501948460051b0101116100e557565b67ffffffffffffffff811161011f5760051b60200190565b604080519091906101ba83826100fd565b6001815291601f1901366020840137565b634e487b7160e01b5f52603260045260245ffd5b8051156101ec5760200190565b6101cb565b6020818303126100e55780519067ffffffffffffffff82116100e557019080601f830112156100e557815161022581610191565b9261023360405194856100fd565b81845260208085019260051b8201019283116100e557602001905b82821061025b5750505090565b815181526020918201910161024e565b6060602091604081019360018060a01b031681526040838201528451809452019201905f5b81811061029d5750505090565b82516001600160a01b0316845260209384019390920191600101610290565b6040513d5f823e3d90fd5b908160209103126100e5575180151581036100e55790565b908160209103126100e5575190565b6102f86001610191565b9061030660405192836100fd565b6001825281601f196103186001610191565b015f5b81811061032757505050565b60405190608082019180831067ffffffffffffffff84111761011f576020926040525f81525f838201525f60408201525f60608201528282860101520161031b565b5f9103126100e557565b60206040818301928281528451809452019201905f5b8181106103965750505090565b825180516001600160a01b03908116865260208281015190911681870152604080830151908701526060918201519186019190915260809094019390920191600101610389565b9592946103ed9192946080610a24565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc984036105fa576040516370a0823160e01b81526001600160a01b038681166004830152821695906020816024818a5afa9081156105d8576104a8916020915f916105dd575b5060a051909890610474906001600160a01b03165b6001600160a01b031690565b604051636eb1769f60e11b81526001600160a01b038087166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f916105a9575b50945b8587116105a25786925b61050884966104d46102ee565b95811561059a5750915b6104f86104e9610124565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6040830152606082015261051b826101df565b52610525816101df565b5060a05161053b906001600160a01b0316610468565b803b156100e557604051637d10d11f60e01b8152915f9183918290849082906105679060048301610373565b03925af19081610580575b5061057b575f90565b600190565b8061058e5f610594936100fd565b80610369565b5f610572565b9050916104de565b85926104c7565b6105cb915060203d6020116105d1575b6105c381836100fd565b8101906102df565b5f6104ba565b503d6105b9565b6102bc565b6105f49150823d84116105d1576105c381836100fd565b5f610453565b7fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632840361077f576040516370a0823160e01b81526001600160a01b038681166004830152821695906020816024818a5afa9081156105d8575f91610760575b50956106bd602061067461046860c05160018060a01b031690565b60a051610689906001600160a01b0316610468565b604051637f6486b960e11b81526001600160a01b038088166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f91610731575b501561072a5760c0516106f191602091610474906001600160a01b0316610468565b03915afa9081156105d8575f9161070b575b505b946104bd565b610724915060203d6020116105d1576105c381836100fd565b5f610703565b505f610705565b610753915060203d602011610759575b61074b81836100fd565b8101906102c7565b5f6106cf565b503d610741565b610779915060203d6020116105d1576105c381836100fd565b5f610659565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce84036108ee576108085f6107b26101a9565b6107d76001600160a01b0385166107c8836101df565b6001600160a01b039091169052565b60c0516107ec906001600160a01b0316610468565b60405180809581946307ad377d60e11b83528c6004840161026b565b03915afa80156105d857610823915f916108cc575b506101df565b5194610887602061083e61046860c05160018060a01b031690565b60a051610853906001600160a01b0316610468565b604051637f6486b960e11b81526001600160a01b038087166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f916108ad575b50156108a7575f19946104bd565b5f610705565b6108c6915060203d6020116107595761074b81836100fd565b5f610899565b6108e891503d805f833e6108e081836100fd565b8101906101f1565b5f61081d565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c696420746f6b656e20736f7572636560601b6044820152606490fd5b1561093157565b60405162461bcd60e51b815260206004820152601960248201527f696e636f72726563742063616c6c696e6720636f6e74657874000000000000006044820152606490fd5b91908110156101ec5760051b81013590605e19813603018212156100e5570190565b356109a281610135565b90565b903590601e19813603018212156100e5570180359067ffffffffffffffff82116100e5576020019181360383136100e557565b156109df57565b60405162461bcd60e51b815260206004820152601b60248201527f475076323a20666f7262696464656e20696e746572616374696f6e00000000006044820152606490fd5b90610a45610a3e610468610468855160018060a01b031690565b301461092a565b5f5b838110610a545750505050565b5f80610a69610a64848887610976565b610998565b6020610a76858988610976565b013590610a91610a87868a89610976565b60408101906109a5565b929091610ac1610ab061046861046860208d015160018060a01b031690565b6001600160a01b03831614156109d8565b836040519384375af115610ad757600101610a47565b3d5f803e3d5ffdfea2646970667358221220817f6f9e36588d53ed578c1391c22dae49a1f153afcbf598beefca254298a7c864736f6c634300081a0033","storage":{}},"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9":{"nonce":1,"balance":"0x0","code":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461076d578063095ea7b3146106f457806318160ddd146106d757806323b872dd14610607578063313ce567146105ca5780633644e515146105a857806340c10f191461053057806370a08231146104f85780637ecebe00146104c057806395d89b41146103e65780639dc29fac14610386578063a9059cbb14610311578063d505accf146101075763dd62ed3e146100b3575f80fd5b34610103576040366003190112610103576100cc6108a7565b6100d46108bd565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101035760e0366003190112610103576101206108a7565b6101286108bd565b6044356064359260843560ff8116809103610103574285106102cc5760805f916020936101536108e0565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d060e082610847565b519020604051908682019261190160f01b845260228301526042820152604281526101fc606282610847565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c1575f516001600160a01b0316801515806102b8575b15610282577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461023a565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346101035760403660031901126101035761032a6108a7565b60243590335f52600360205260405f206103458382546108d3565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610a5b83398151915260203392a3602060405160018152f35b34610103576040366003190112610103575f6103a06108a7565b5f80516020610a5b83398151915260206024359260018060a01b03169283855260038252604085206103d38282546108d3565b90558060025403600255604051908152a3005b34610103575f366003190112610103576040515f6001546104068161080f565b808452906001811690811561049c575060011461043e575b61043a8361042e81850382610847565b6040519182918261087d565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106104825750909150810160200161042e61041e565b91926001816020925483858801015201910190929161046a565b60ff191660208086019190915291151560051b8401909101915061042e905061041e565b34610103576020366003190112610103576001600160a01b036104e16108a7565b165f526005602052602060405f2054604051908152f35b34610103576020366003190112610103576001600160a01b036105196108a7565b165f526003602052602060405f2054604051908152f35b34610103576040366003190112610103576105496108a7565b60243590600254908282018092116105945760205f80516020610a5b833981519152915f9360025560018060a01b0316938484526003825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b34610103575f3660031901126101035760206105c26108e0565b604051908152f35b34610103575f36600319011261010357602060405160ff7f0000000000000000000000000000000000000000000000000000000000000012168152f35b34610103576060366003190112610103576106206108a7565b6106286108bd565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610a5b833981519152929185600182016106b2575b5050835f526003825260405f206106828682546108d3565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106bb916108d3565b5f8581526004845260408082203383528552902055858561066a565b34610103575f366003190112610103576020600254604051908152f35b346101035760403660031901126101035761070d6108a7565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610103575f366003190112610103576040515f805461078c8161080f565b808452906001811690811561049c57506001146107b35761043a8361042e81850382610847565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106107f55750909150810160200161042e61041e565b9192600181602092548385880101520191019092916107dd565b90600182811c9216801561083d575b602083101461082957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161081e565b90601f8019910116810190811067ffffffffffffffff82111761086957604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010357565b602435906001600160a01b038216820361010357565b9190820391821161059457565b467f0000000000000000000000000000000000000000000000000000000000007a690361092b577fbbc0a900de8284772ac03c8129074657946241fe61d4c7d06407c89645b00ab490565b6040515f905f54918161093d8461080f565b9182825260208201946001811690815f14610a3e57506001146109e1575b61096792500382610847565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109db60c082610847565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a225750509060206109679282010161095b565b6020919350806001915483858801015201910190918392610a0a565b60ff191686525061096792151560051b8201602001905061095b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207de4439c7c575beac552a99bd7a80a56f5f69465e073bcea91ee0ad18ec4067f64736f6c634300081a0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x44616920537461626c65636f696e00000000000000000000000000000000001c","0x0000000000000000000000000000000000000000000000000000000000000001":"0x4441490000000000000000000000000000000000000000000000000000000006","0x0000000000000000000000000000000000000000000000000000000000000002":"0x00000000000000000000000000000000000000000000d3f851987ab37fa00000","0x09c9f1f772cc7cdfdea1312d18e43df0fc201c7648448a9011fd8181f577802d":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x0b684ba07b77e0ae8621ce6c03cfce9bd59a4f44976ccbe5d95bb50cad0be5c2":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x20999abef70ca73650c6528451b6afcdaa7677806749a87307fbbe4f1ec2c1df":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x4816d8913e79510f8dd14cc5ef23a5559aca2723f9b16fb6bd81b177bba2fdae":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x53c8a5ff8e9eee17be03169c30dedc5882673fcdd4fbdb8a32244385ed269978":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x60dfe37633c44044266a08a2b6a41309e6e4148a80b8ce1e84c4c423ca8ab0f2":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0x6a706e96617ceafd46f24757f71aad32b88c8bf0b8ae22ec3de611582d2d4a6c":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x75aff4397bd23075589294e0b8b0f8648cf7c5304a40414f211ad7ccc7e3a7fd":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x7b39b83efd2e26f146fc52f47a1112ec24fe8e930d1c79ca1903303359cf275f":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x961ec03a078fec1e350bb1ca3bff1afa4bae5fb83d9d8382550c2fd26a7d7527":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0x9c35da83f88043b3115f30d93beacec49ca14b6238430bdff196a249c29baa80":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0xaabfe7e64a3b76cdc6124680e4f21e488068343c61581abafbc7f30561cef2bb":"0x00000000000000000000000000000000000000000000043c33c1937564800000","0xacd8d0614af6e74f74bf3d06d01de8648511768c0eee931deae87bc4c0bae380":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xc038a4c0dae1a80a0f345e65b2c64588a88378a64c44fc77d2a8fec6772f6708":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xc651ee22c6951bb8b5bd29e8210fb394645a94315fe10eff2cc73de1aa75c137":"0x00000000000000000000000000000000000000000000cd6d39f3cdeaed500000","0xc7c2559c7a18beabdfaa992d94ae2dbcd8629c25d63ef0cfae27fee07586a339":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xc9f51ff2393193a07f116cb1ed67be0783387c719e9662a8d0ec4684dcfc0fa0":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0xd70e37874cf4989d0dc0b20b584507542c9387ca0d78d26547cdfe0ee5f89ebb":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xddfe746303372e8d2ea45aa78e3e91478f7307894b155f7ff4ebb7ddaa345272":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000","0xe45486f08d33fa882adccd0b079cbf7ea1c17a9e28f618600cdce4aaaf14c04e":"0x00000000000000000000000000000000000000000000021e19e0c9bab2400000","0xf4101d4f3556064791764cb858c5b5eccc92d63c3bbcb142c5d125936ee3f62d":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","0xf907546d35bf80c8b303b0db78f438dfd60def69a9f1cec82c65c56c3f09ddc9":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}},"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9":{"nonce":4,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063a2e74af61161005b578063a2e74af6146100fd578063c9c6539614610132578063e6a439051461016d578063f46901ed146101a857610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063574f2ba3146100e3575b600080fd5b6100956101db565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100956101f7565b610095600480360360208110156100dc57600080fd5b5035610213565b6100eb610247565b60408051918252519081900360200190f35b6101306004803603602081101561011357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661024d565b005b6100956004803603604081101561014857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661031a565b6100956004803603604081101561018357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166109ad565b610130600480360360208110156101be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109e0565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061022057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103b757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106103f45783856103f7565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff821661047e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561051f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b60606040518060200161053190610aad565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660408181527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087811b821660208581019190915287821b9092166034850152825160288186030181526048850184528051908301208551868401207fff000000000000000000000000000000000000000000000000000000000000006068870152309283901b6069870152607d8601829052609d8087018290528551808803909101815260bd8701808752815191909501209290935273ffffffffffffffffffffffffffffffffffffffff808a1660dd87015280891660fd87015261011d860182905261013d8601849052821661015d8601529251949550919390927f2577a905931c419496123816308a518e438af606bb12c033630222f97ff3bb1e919081900361017d0190a1828451602086016000f5604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152888116602483015291519299509089169163485cc9559160448082019260009290919082900301818387803b15801561070f57600080fd5b505af1158015610723573d6000803e3d6000fd5b5050505086600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060038790806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e989600380549050604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a350505050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612d7480610abb8339019056fe60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820693694dcfc2b95bd815ab65fb808b255b96283011e586ba90a9d17f948e116f364736f6c63430005100032","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000001":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000003":"0x0000000000000000000000000000000000000000000000000000000000000003","0x03c571c261f3b4322df550791de706ff61495148aea89f8439aaa1ddcad59bb7":"0x000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60","0x37080244defcc57cd5d1aaa0bb6efa5052ddd4aad360dc6858372dc6e5bb0766":"0x0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227","0x93c10ebb7078e836000286bc31f477ad259d62e860960052a2064751f8b50ea6":"0x000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60","0x99285945a2ad27d0bf3c88c16434217986b7f2f246eaf5e4e76d1c1956570097":"0x0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227","0x9e25fecf96091c7d3f18cb864940c8c7c268dd20dcd0a80db64e8927e544ed5a":"0x00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d","0xa7a19926d75427841e72c9318721e8323cd11903aeade5760343fe7bd4f31ca9":"0x00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d","0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b":"0x0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227","0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c":"0x000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60","0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d":"0x00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d"}},"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266":{"nonce":68,"balance":"0x1b1ae312f699e480698","code":"0x","storage":{}},"0xff5c725f53c37fff771db3cda7a8b0178f622b60":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000183e55dbab04396c51","0x0000000000000000000000000000000000000000000000000000000000000003":"0xb769026623a0758bf585e2a35643107633358550efc55ea864d0054d51c80382","0x0000000000000000000000000000000000000000000000000000000000000005":"0x000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9","0x0000000000000000000000000000000000000000000000000000000000000006":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3","0x0000000000000000000000000000000000000000000000000000000000000007":"0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","0x0000000000000000000000000000000000000000000000000000000000000008":"0x691f208600000000043c33c19375648000000000000000008ac7230489e80000","0x000000000000000000000000000000000000000000000000000000000000000b":"0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000000000000000000000000000000000000000000c":"0x0000000000000000000000000000000000000000000000000000000000000001","0xa3c1274aadd82e4d12c8004c33fb244ca686dad4fcc8957fc5668588c11d9502":"0x0000000000000000000000000000000000000000000000183e55dbab04396869","0xa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49":"0x00000000000000000000000000000000000000000000000000000000000003e8"}}},"best_block_number":98,"blocks":[{"header":{"parentHash":"0xc407fc79fb15c54177ccb37118136e70ab7e5e9343c61c732b9c1a9af6428cd7","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xd757dfc8dc050058deeb345a6511727c93a3c36f3146e5eefce599cedbc7bea1","transactionsRoot":"0x8681e5030be6b7d1f3cc307d20d4e20073b43c4e84a42e106e9ef3a8a46e5105","receiptsRoot":"0x6176c70400ff796ea609b929ccda5a90c4e158c7558535e59a3441284abb11d7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000008000000000000000000000000000000000000000000000040000000000000000100000000000800000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000200000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x24","gasLimit":"0x1c9c380","gasUsed":"0xc815","timestamp":"0x691f2096","extraData":"0x","mixHash":"0x8f559295c7c8097cc1876a7836a3b624dca3f0f20edffcd0b1eb554bcf43e561","nonce":"0x0000000000000000","baseFeePerGas":"0xb5762f","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x25","gas":"0x1145c","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc0000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x65109e65f37cbb145723e2d9edd2bbf9fc6e7cfd8a795b76236b81535eaafd25","s":"0xd3ce1359dca8d03156a17ae68065b5d22313c4ce2594138454e48d945095afe","yParity":"0x0","v":"0x0","hash":"0x1786e85c0b029fb5da4940f415cc064e7615fff63b12a869a2d1969aef2bdd9e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xaa2337f13426c069ddef12073de59a27dce0d8141816b5564956ea495708bb65","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x6eabcbea61597b9e6d639360747c92dea48cfb384f27111001b5056005f774cd","transactionsRoot":"0x1886a5fbebab051302fd0eab6bba9a2a9aef878f4efe3d74a8c1c0b7e2100dbc","receiptsRoot":"0xec46a502feee4b90208d80398838000bd5d058e0f145c7081f81607982c1588d","logsBloom":"0x00000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000800020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000001000000000000000000000000000000","difficulty":"0x0","number":"0x1f","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f2091","extraData":"0x","mixHash":"0x36714ab3f5d19e524f87c945d9ef9bd59e6998c7d65f43d51bc78745a9312b52","nonce":"0x0000000000000000","baseFeePerGas":"0x1610893","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x23","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x40c10f1900000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x416f11bc09a9a6b2e2d047e3af0c5fddcca01f84c9e4204e0e40b1443a2d4e64","s":"0x22ccbaf9b93bd3a48a48bd32ae7b1b9adc1f7c640b8f7bbc7f13963eb8289bc0","yParity":"0x0","v":"0x0","hash":"0x09a2e4c48d02153d32bf9a4ac4daf0ffb26e7aa86dc4a4630997347a90c68a43"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x44d56f3268e71f08d69ab4f84ec866df540658fe179d7e0c688f70f2ab46d77c","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x8cd2f35f6587afc92540ae2eeae3fdfe1ac362b70f4441440bb84c9c55b16b09","transactionsRoot":"0xa6fe7147cc718a6d0ac3656c65b5ee9deaaad69ad66f57f3de95431031d2b193","receiptsRoot":"0xe5585ecd3d56d8761691280faa2d68e8b295ea5579f7686ce0b6f3223e7964be","logsBloom":"0x00000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000008000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000004000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x57","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20c9","extraData":"0x","mixHash":"0x43d30828b48d9c098d2d6507fe9100672e09dbd8d9ede0ff9eee97a3ae83540a","nonce":"0x0000000000000000","baseFeePerGas":"0x346a","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x43","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x40c10f19000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a797200000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x3cb2f390f32461eca04f00c9150e5dc08d2e3b2e06c609abbcbfb36009584bcc","s":"0x28bc48054300aaa4b28a717ad3943c076a03a50f7588be01a58d970c819c4e27","yParity":"0x0","v":"0x0","hash":"0x8935e7a24c3d4c47fc5902382b2dfd66ca326f214a56c8428a3e18547121b758"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xad02010a313fc28b0162149f342594e35bb989916137294e831f4f221ac9028e","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x0348cbb314a4df0d5b7d2cd38a4430fa526f0d55a0bfedb25b9d2672ce2c4fd5","transactionsRoot":"0x507cec0b22f3f0b1ff4fef97ee9ba3b95eaa910ef30e25dc7dead788fbff1a3c","receiptsRoot":"0xfff6f902a3b8ed58b1a25e78c09af28c8169113eb11533952fb70cf7640e0fb2","logsBloom":"0x00000000040020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100300000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000004000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x35","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20a7","extraData":"0x","mixHash":"0x1ac655abb958a85d0a48a3c63a4d433d630c5dbec7b949fafb34b642782f64b6","nonce":"0x0000000000000000","baseFeePerGas":"0x12e427","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x52e212979fe87b49c82257791524213648e513ecb84a3645ade4cee2d280e0d9","s":"0x458603515e0f60813a531b414a3823827bee69ec5a3b49a1378062c435d7866f","yParity":"0x1","v":"0x1","hash":"0x035dfade4eea851cd7d6d2a8103f9d138b4abc774d2d1defaa988f2df1d7a484"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xec5fe90f9dfcf2b63f6a665a72b9a1ecbf407feeddad1e4fd4e22ed99acebf59","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4c7b3f3eb83b9ec0368ad3303e32b1fbf496b262090dc83ff0037f5ca856bb92","transactionsRoot":"0x0d043606fd3efcdab81a1bb892d5977059e1948a8a3a06ad44cfcfbbe7e2dba1","receiptsRoot":"0x33e0845cebf73c05bec5ad094045c4ae550c368df5de6fe7e87a179b40ea3e10","logsBloom":"0x00000000000020000000000000000000000000040200000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x45","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20b7","extraData":"0x","mixHash":"0xf0d37fdfc45d07110140f256b011cc39a41bfcdb47cb6a67f0c63b9fb6140590","nonce":"0x0000000000000000","baseFeePerGas":"0x23f13","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x85bef64e0b38a2b86f311a5aca0947dbffbd49d26e81d2907f85666bd51073a8","s":"0x649636b0697aba44fa29968ebfc06d953ad25db24f7cd3b923498a86f9d3929a","yParity":"0x0","v":"0x0","hash":"0x5b4b9cb6078c4ff97e0fab350faaf891cf17c67abf6d6bb69dadcbacf4844710"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xcf6822092cf5c518fb3ac9312910371f3a8b85d0ad919c97a45c604d7d64c6d7","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x89142bd0595567283c00e5a47cd14c277d5a6482df6cb103dea3b5f7c2ccfec1","transactionsRoot":"0x9ab1c6aaf7ca6b394beeff93b2bcf916890b7c55d3fb359a7c3b9f88a67ee909","receiptsRoot":"0xe1365b2f678c44937ae2c22187daf1b2cbcb23fc26c49729b02c2e54cf5b8df9","logsBloom":"0x00000000000020000000000000000000000000040200000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000080000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x43","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20b5","extraData":"0x","mixHash":"0x8dd73a79db28af6cb87b8344b9ef606a96f3dec187f9b17132dc0dd9bf5ab683","nonce":"0x0000000000000000","baseFeePerGas":"0x2ee74","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xe8610bc0eb68ec37ef76e8693aa7e3b9aa766844df8d5bea85c2aa4dbbdf92bf","s":"0x2a6bc702f5c283047b2e674b54bd41f672e33511095c1888debd234ab0d5dedd","yParity":"0x0","v":"0x0","hash":"0xb302836899629ee12a26abeee78b6438d6c2b9efae947ef67578b619bbc05b7e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xff6da4ad91679a0d720c2a44e9a8397dfad020f6bbe47ef09550379aa8ba4687","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x24ac98832989c862c82175e40111f749881df0b4f4422669bd78b45b5bdedef6","transactionsRoot":"0x67c66ff3fd87cd16ed911677e42791140fd72ff2d9c43980841781e75b0173f3","receiptsRoot":"0x75e69a66c8ac46323f466ad0a709fa3fafc1b7b6cc9c37ab2ff559d6dba453c8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x4d","gasLimit":"0x1c9c380","gasUsed":"0x87d5","timestamp":"0x691f20bf","extraData":"0x","mixHash":"0x9c633f2080f0400faa889ea8cd489abe07d945957bb9ee9aa3dae157c409c0c6","nonce":"0x0000000000000000","baseFeePerGas":"0xc651","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3c","gas":"0xbb9d","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x56bc75e2d63100000","accessList":[],"input":"0xd0e30db0","r":"0x63efca23c13ddb9a5e2065dfff661f40fbdfa6a054af4318ae6ac6c02cc70ec2","s":"0x220e23403ed98bff1305036696a17383c7ea6427c8fef6efae7acc80d4edaaa6","yParity":"0x1","v":"0x1","hash":"0x342d4028e10971cd4ab6d101db641b2902140f47971f71ab3f9bb6cf1b398eb7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xf4f9f3796a4bd1a09fefa4ea35eca479906648c64cccf0f01c4a9901f79f7c0e","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x5b8c85c34dc79f50d1e2d0919b449fa427f83d3cc24e2a50a29196d2b8f6fd29","transactionsRoot":"0x138f50d29b78027ebece8e07c9e69b3b431034804895b0c9abb3cf42afe92308","receiptsRoot":"0x75e69a66c8ac46323f466ad0a709fa3fafc1b7b6cc9c37ab2ff559d6dba453c8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x46","gasLimit":"0x1c9c380","gasUsed":"0x87d5","timestamp":"0x691f20b8","extraData":"0x","mixHash":"0x26b4e8ee5bad2cbb3d48e3fd26049454f78952579d26427c61078736ad7adf7b","nonce":"0x0000000000000000","baseFeePerGas":"0x1f76a","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x38","gas":"0xbb9d","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x56bc75e2d63100000","accessList":[],"input":"0xd0e30db0","r":"0x5f70f1d1d054e3f7309bbbcc2ba4024a87845273190c630a1a8515baf1572564","s":"0x1bdaa58aba719fa376907620ccb57f144165475d37adf3d863ed8677e9ed411d","yParity":"0x1","v":"0x1","hash":"0x04788f0d64ca1fbb5cba7be020a7d48d69763a02d1af4b8d2fcb8757c06f9941"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xea413542df5959e286a82ad78a72886da071241895bdb6834e860535539eec55","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x1eec3f0b0a5c0d9ae1d637f4dd1e59b6b04980f5cc82e58e2e47359ca8f0493f","transactionsRoot":"0x0474be7d37bfe9cf8dc7a605b2e8e57cc2f29df1dcc713a6937ff6e733d04af6","receiptsRoot":"0x49e36a262f3043e1d290f2923efa7a3c57e7afca21e9d2366605468f73616c3f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000100000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x18","gasLimit":"0x1c9c380","gasUsed":"0x8496","timestamp":"0x691f208a","extraData":"0x","mixHash":"0x3eba625350882a700d2642bb233e4fc75278b6a69a9c66f45aa1eb5071b335b1","nonce":"0x0000000000000000","baseFeePerGas":"0x3805a27","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1c","gas":"0xb721","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x40c10f19000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x3e67375c713ec3787cffa71cfaa20e021e5658f3907a71f8028bd62302673a11","s":"0x789c3d6241cada298221d68650d7b04d9497d4233b3deb594922a5c2633f850a","yParity":"0x0","v":"0x0","hash":"0x2fc7bb0b95cf7e49f7766cabb9d5a6e142e4cdb5402c8518db305a2006e8c0c3"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xf795060f6e1d599a36ea309fa3859c3525eaa5f2aa98360d82b2f054cb925d80","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xc42f352ea1b517f354e7e11779d25cfd09d98fccedfd9d88c6733ddfc2a2c301","transactionsRoot":"0x3162d0394ca65c944d072f5de0e66cb57d181a13b9725228bdbffe84812fbb0e","receiptsRoot":"0x8abcb06ea7aa21021581c132d610f832bb6fe3d5ca1873247c613957b8065726","logsBloom":"0x00000004000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000800000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x3d","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20af","extraData":"0x","mixHash":"0x6580ec22fd8cdad8ba0f2543978e323aa59106f82bb0befe3fcaa04e903f8ce8","nonce":"0x0000000000000000","baseFeePerGas":"0x683ab","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x6c924f75de7d9f87581eeb8df05daff850bce77d5d07c9484a37d4e2b729b6ca","s":"0x4bb7b59b62e223ddb7b0ac0ba0d8d16ea1c08c841e4ea5654aff8a3a22852e34","yParity":"0x1","v":"0x1","hash":"0xff5dfca2ee83307e48aefa3b9ac525395d62fbf54373398d985484e6df87251f"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x304c9ebb599266598ec6ce9b50e59b93ac7805c474b036e5d0fbedfdcea9d2f1","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4377dc9fff422ab06c673fa462ed3241521dd7cb8ec438e8cc9860ca7af56e90","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5c","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f20ce","extraData":"0x","mixHash":"0x8db7a0eb0830119481f53b0137134a2563bfcfd617ad2b5c3b481f9a804c9ac0","nonce":"0x0000000000000000","baseFeePerGas":"0x1af1","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x0a8836b74a2bf41454a350180a0315ffb1ac28e7596ee6766850ce0f294e1e6f","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x9cac70f69f78ec72ae6bd4a8b9f100abac565732b3c7bb70c73da91dbb56815b","transactionsRoot":"0xfdd3dd7526b3c6670724d0361ea235cc105874fe9bdd3ce936a6b94c5ed760b7","receiptsRoot":"0x31a6efbe854f2abf055be77241305a31e063c24803f4d94253716329348458db","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000080000400000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000002000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000400000000000000000000000000000000000000000000000000000000000000000040000000000024000000000000000000000000000000000000088000000000000000000001000000000100000000000000","difficulty":"0x0","number":"0xc","gasLimit":"0x1c9c380","gasUsed":"0x265553","timestamp":"0x691f207e","extraData":"0x","mixHash":"0x494ec04a549526924236d0e61c39f905573a46d666ec6c8bc47c90bd79811bba","nonce":"0x0000000000000000","baseFeePerGas":"0xfd756b5","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x8","gas":"0x31d552","maxFeePerGas":"0x364d20e9","maxPriorityFeePerGas":"0x1","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","value":"0x0","accessList":[],"input":"0xc9c653960000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x1cc989cab51545d188b50b141c4fa1067762043bb53887bf3b98d1f81430db0b","s":"0x37b851ba0652b9e284f68312f38fc3da192a4cf674b3bea55dd7decc9a86b7c4","yParity":"0x1","v":"0x1","hash":"0x5f3e0b56a4158ee46013135a58318b3c7ae1b16e60a6dbc775b99aa9c25be98f"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa2ea670bdd837339558db7d506eac9544f000dc1f53379d24931ebf99455c178","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x6c9b48ba220313b4b6bf13de9cec8dafd0f1051d5aed7d1c6136e4d727f6762d","transactionsRoot":"0xaf8a513c6bac7f0ad955889590199c3d5b22f3a308092f35c530551ab74afbca","receiptsRoot":"0xf405b21e17e5fc50a93de624067e0eed9321e096afb9d98f3d5fb2490ec29833","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000200000000000000000000000002000000000000000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x1b","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f208d","extraData":"0x","mixHash":"0x3afaf075ba186fd3baadc2cace031099fc9aa9305071848b160fab5cfa5567c0","nonce":"0x0000000000000000","baseFeePerGas":"0x2593596","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1f","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x45f6982cf4b5c83f5d36d3fbf7d94ab345ed34296cddc94d53df3e0483fe939c","s":"0x37f09628243b36ba018d41a3130237cc47fa6b1e95ef31ec3db223f57dd29816","yParity":"0x0","v":"0x0","hash":"0xcdb4fd18d28b5f6fdcb6a2caf758b7ab21911a7b8ad85c395a5487fdbce0c91e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xc1e9e6a4076aa9ec4f645b4f537f1f280b9ecfe1fffb838b1260616d22da3371","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x2dab3ae0b6aa888160b0b6cf2f6202abc322156b478cc7b2d1e3496d742af7a3","transactionsRoot":"0x823f70dd525bc864d5b006270b6e7fa42356757c30f68c1f8f3aa37f0d8a033c","receiptsRoot":"0x3c8ba8f34ec0b44041a9928c54adfc443cdace3dfa14570f3144be044f140086","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x16","gasLimit":"0x1c9c380","gasUsed":"0x67a5","timestamp":"0x691f2088","extraData":"0x","mixHash":"0xe1ea4db55e8a0aade37a54a25ca716bdc3d9d7d76332f49a2d4e75057e1e370b","nonce":"0x0000000000000000","baseFeePerGas":"0x4921258","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1a","gas":"0x8f28","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x506906173e9f58626f2c49e4e3a69d9db3b843335349daf8f452097f5f62f448","s":"0x2683b6835fed4103ff92cf292855be8d0c6b9cc5f5faaef42a39abdca7c6f789","yParity":"0x0","v":"0x0","hash":"0x3915f3cb90720fad3186a18b7227b357c61ad14e86f23c2a0fec7e92a2169282"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xcb65e9eb5fbdaf90bb77c9f226530ef1a3762ac96883aee84fe83d49312f9326","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x6344ea4562f53470a2c3978aaedf99a2759ceb18533f09da4a9a778c4acc4917","transactionsRoot":"0x5ea72d6d0c21eb61b4ca73727e950c8fccfa6cdefea61aabfb7ec4b7ec1df071","receiptsRoot":"0x75e69a66c8ac46323f466ad0a709fa3fafc1b7b6cc9c37ab2ff559d6dba453c8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x23","gasLimit":"0x1c9c380","gasUsed":"0x87d5","timestamp":"0x691f2095","extraData":"0x","mixHash":"0x6e87213bbb568ef28b7af5a2ba0ed8fc9ae97b872435c490cbbea4be3dde2683","nonce":"0x0000000000000000","baseFeePerGas":"0xcf50eb","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x24","gas":"0xbb9d","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x56bc75e2d63100000","accessList":[],"input":"0xd0e30db0","r":"0xa3353a03321abf59706ad6d077111f79c6d762d0d07f1f22f6f4310840e12076","s":"0x25854c5052d520d6016ba6ddc8269ea15eaa8d5c309e7e764dcb6c800b80c2b1","yParity":"0x1","v":"0x1","hash":"0xb9a67cc56ef6d07a9ccc21f369129bd9ad3a659f1e8725ce131be897c467c23e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x7576e697df929f2a9338161ceb7f28b35ed43dff2e115fe7fa66d536651baedb","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xcd0173d26936506c6c111135b3d37e2310306f2a547e99160383d185f58d0beb","transactionsRoot":"0x6b994c31e4755e9e76b43fe33cc9656e6110c670cc4abdfa63db53d9d7473c10","receiptsRoot":"0x68637cc08c23e7c9b2383088e9cabf44c441b0e4d56a0a58dc33d4450467ecd6","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000200000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x27","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f2099","extraData":"0x","mixHash":"0xbd5d383d23a9b0543d3de102c1faea50577dcfc0b5fa9f17a59c0608558d81c9","nonce":"0x0000000000000000","baseFeePerGas":"0x79be22","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xb67f3ab85ae4c05bb647ac87c9cc912cbbe0a3bba36b8520e39fa0981f3256c0","s":"0x6709810832723198bddff03b53099de5754e1bad57e953c6784723212e34f91d","yParity":"0x1","v":"0x1","hash":"0xc6940d6837bbaf9ee0c12a15dd42ccdfe090cb96840a4e247575b5576acb7b6c"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x709e822586c318977682275282997e92b924b5ed4d71db2ae0b3769509e1e84d","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x06f900b0c1533856231d99cd046b53aa5ca877a5535e7b7ee0bf3cb6868091f6","transactionsRoot":"0x5a0d7bd6f05b60ea58854a0762d94ffbddab978629c72100f9cef7ce9d205430","receiptsRoot":"0x8f163154f6b59a72e7ebd0971437d9f361ae27d91d2db1b0e6427b111e08392f","logsBloom":"0x00000000000020000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000001000000000000400000000000000000","difficulty":"0x0","number":"0x21","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f2093","extraData":"0x","mixHash":"0x56b64b7922cf410c442f5d0a09ca4adc943562b9b6047a227cbfc810216cc676","nonce":"0x0000000000000000","baseFeePerGas":"0x10e8ab2","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xa22ddd102dcdfadf8efc40c42a417e7c174c5ee69f809a1c06da83238c4fbc99","s":"0x430eb55ef9850bac0f04ce16ebb9933840517b224dfef4f27cf2ac413eb2ae6b","yParity":"0x0","v":"0x0","hash":"0x0d76fbf5cc4f26c2bde86cbbe29dd29cd0425a31b83c21e401172aa8c6dcf008"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x992cde96c857f072e1c991d3db4c8d8be489586c4b84a0c2cfd24c7d7fef582c","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x69ca39a92113679933ed9ad9f35d78703181c30efa0af977a38cd69d3eb18b35","transactionsRoot":"0x66cd7b6466db801a2c5af6f372606ccf05370a52de5b439625ff3d04c076eba0","receiptsRoot":"0x470f4853c87e25c654de62be5d2c7893b6235835cdf9efefc7ef2187ac5f6bcd","logsBloom":"0x00000000000000000000000000000000000000040200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000080000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x40","gasLimit":"0x1c9c380","gasUsed":"0xc821","timestamp":"0x691f20b2","extraData":"0x","mixHash":"0x1c0b4dec0e8d2b7d3f1e083d950d8251de4cf98dbf54a4b79cdf3d2d0b663a81","nonce":"0x0000000000000000","baseFeePerGas":"0x45e91","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x35","gas":"0x124b0","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa90000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xf473c945df4e7197ecbe4f191b1325422e14e894b9bb8587e05ce9f913fc6163","s":"0x47ce543e2671ef42fa09aa538cf5473995315f14416ac06b17ed4df571e93438","yParity":"0x0","v":"0x0","hash":"0x3a41aa09cc808fee6628b7c31d79b9c1840c17c1b199da2f0cf8366a5b5571a9"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xacf9ab32c12228915aab4169128334d2d0d0e6c178fd7b1c3ee70dcb23ff43e4","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x5a407209dac2f5a7afd0d0fdc66e139de0fbc885711101913df2c4dd62564364","transactionsRoot":"0x045e3331f7cd7e28314674a5bbc435ffb85ccd39ecb8064814778860a26bd7cc","receiptsRoot":"0xd3b10c800f54fd783f6c17c456f28d7eb25b32350f953c375eccacbb80c5db0c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x6","gasLimit":"0x1c9c380","gasUsed":"0xb9594","timestamp":"0x691f2078","extraData":"0x","mixHash":"0x4159dbc2f5b4c3a11435e378decaf7ad1a6c92584b8adc481d03c7916571a9c5","nonce":"0x0000000000000000","baseFeePerGas":"0x1ece7adb","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0xf0f40","maxFeePerGas":"0x5b450551","maxPriorityFeePerGas":"0x1","to":null,"value":"0x0","accessList":[],"input":"0x60e0806040523461047457610ff9803803809161001c8285610478565b83398101906080818303126104745780516001600160401b038111610474578261004791830161049b565b602082015190926001600160401b0382116104745761006791830161049b565b9060408101519060ff82168203610474576060015183519091906001600160401b0381116103a5576100995f546104f0565b601f8111610425575b50602094601f82116001146103c4579481929394955f926103b9575b50508160011b915f199060031b1c1916175f555b82516001600160401b0381116103a5576100ed6001546104f0565b601f8111610342575b506020601f82116001146102df57819293945f926102d4575b50508160011b915f199060031b1c1916176001555b6080524660a0526040515f905f54918161013d846104f0565b9182825260208201946001811690815f146102b8575060011461026e575b61016792500382610478565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526101db60c082610478565b51902060c05260025481810180911161025a57600255335f52600360205260405f208181540190556040519081525f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3604051610ab090816105298239608051816105e3015260a051816108e3015260c051816109090152f35b634e487b7160e01b5f52601160045260245ffd5b505f80805290915f80516020610fd98339815191525b81831061029c5750509060206101679282010161015b565b6020919350806001915483858801015201910190918392610284565b60ff191686525061016792151560051b8201602001905061015b565b015190505f8061010f565b601f1982169060015f52805f20915f5b81811061032a57509583600195969710610312575b505050811b01600155610124565b01515f1960f88460031b161c191690555f8080610304565b9192602060018192868b0151815501940192016102ef565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c8101916020841061039b575b601f0160051c01905b81811061039057506100f6565b5f8155600101610383565b909150819061037a565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100be565b601f198216955f8052805f20915f5b88811061040d575083600195969798106103f5575b505050811b015f556100d2565b01515f1960f88460031b161c191690555f80806103e8565b919260206001819286850151815501940192016103d3565b5f80525f80516020610fd9833981519152601f830160051c8101916020841061046a575b601f0160051c01905b81811061045f57506100a2565b5f8155600101610452565b9091508190610449565b5f80fd5b601f909101601f19168101906001600160401b038211908210176103a557604052565b81601f82011215610474578051906001600160401b0382116103a557604051926104cf601f8401601f191660200185610478565b8284526020838301011161047457815f9260208093018386015e8301015290565b90600182811c9216801561051e575b602083101461050a57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916104ff56fe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461076d578063095ea7b3146106f457806318160ddd146106d757806323b872dd14610607578063313ce567146105ca5780633644e515146105a857806340c10f191461053057806370a08231146104f85780637ecebe00146104c057806395d89b41146103e65780639dc29fac14610386578063a9059cbb14610311578063d505accf146101075763dd62ed3e146100b3575f80fd5b34610103576040366003190112610103576100cc6108a7565b6100d46108bd565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101035760e0366003190112610103576101206108a7565b6101286108bd565b6044356064359260843560ff8116809103610103574285106102cc5760805f916020936101536108e0565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d060e082610847565b519020604051908682019261190160f01b845260228301526042820152604281526101fc606282610847565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c1575f516001600160a01b0316801515806102b8575b15610282577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461023a565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346101035760403660031901126101035761032a6108a7565b60243590335f52600360205260405f206103458382546108d3565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610a5b83398151915260203392a3602060405160018152f35b34610103576040366003190112610103575f6103a06108a7565b5f80516020610a5b83398151915260206024359260018060a01b03169283855260038252604085206103d38282546108d3565b90558060025403600255604051908152a3005b34610103575f366003190112610103576040515f6001546104068161080f565b808452906001811690811561049c575060011461043e575b61043a8361042e81850382610847565b6040519182918261087d565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106104825750909150810160200161042e61041e565b91926001816020925483858801015201910190929161046a565b60ff191660208086019190915291151560051b8401909101915061042e905061041e565b34610103576020366003190112610103576001600160a01b036104e16108a7565b165f526005602052602060405f2054604051908152f35b34610103576020366003190112610103576001600160a01b036105196108a7565b165f526003602052602060405f2054604051908152f35b34610103576040366003190112610103576105496108a7565b60243590600254908282018092116105945760205f80516020610a5b833981519152915f9360025560018060a01b0316938484526003825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b34610103575f3660031901126101035760206105c26108e0565b604051908152f35b34610103575f36600319011261010357602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610103576060366003190112610103576106206108a7565b6106286108bd565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610a5b833981519152929185600182016106b2575b5050835f526003825260405f206106828682546108d3565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106bb916108d3565b5f8581526004845260408082203383528552902055858561066a565b34610103575f366003190112610103576020600254604051908152f35b346101035760403660031901126101035761070d6108a7565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610103575f366003190112610103576040515f805461078c8161080f565b808452906001811690811561049c57506001146107b35761043a8361042e81850382610847565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106107f55750909150810160200161042e61041e565b9192600181602092548385880101520191019092916107dd565b90600182811c9216801561083d575b602083101461082957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161081e565b90601f8019910116810190811067ffffffffffffffff82111761086957604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010357565b602435906001600160a01b038216820361010357565b9190820391821161059457565b467f00000000000000000000000000000000000000000000000000000000000000000361092b577f000000000000000000000000000000000000000000000000000000000000000090565b6040515f905f54918161093d8461080f565b9182825260208201946001811690815f14610a3e57506001146109e1575b61096792500382610847565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109db60c082610847565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a225750509060206109679282010161095b565b6020919350806001915483858801015201910190918392610a0a565b60ff191686525061096792151560051b8201602001905061095b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207de4439c7c575beac552a99bd7a80a56f5f69465e073bcea91ee0ad18ec4067f64736f6c634300081a0033290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000e8d4a51000000000000000000000000000000000000000000000000000000000000000000855534420436f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000","r":"0x7ed58dfcceb49d237ee2748bfbbb095fe7fe3489fa2b1e3db383245e9a0af605","s":"0x384fa615e22d82eddcfc0ee5509a3277c262d0beb9ba8d78444fc0adb6a8f7fd","yParity":"0x1","v":"0x1","hash":"0x1543b5c6df461eefc14c6762c6dc4864694a64725019cb5328d9768ab8f82370"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x819e33c3812b6d74e291192ea55a578eb8b29cd4697159880fc993cca2a39317","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb8f124b1010e5896887090368f8277977dab2a22c984e42e2efd184d9f76a873","transactionsRoot":"0x8df5ac389384fb7ae9d9c2dabcec15573404832d7c7462a77fab9d86f4397bd1","receiptsRoot":"0x959bf852236738f8aac05f26c948981eb2b3b335bf2f0b0fb24a9d7c90073105","logsBloom":"0x00000000040020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100100000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x37","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20a9","extraData":"0x","mixHash":"0x3bd835875b9e3192d2f3f14729943f05a26ffd3c39abe966b894f2ab3e60a548","nonce":"0x0000000000000000","baseFeePerGas":"0xe79f2","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x79d1840b74448fa862e872ff1af1b92de544781156ef9c5f058768128c4fc692","s":"0x74d62232b18a9be91dd1b08e99146216ebaf12f9890c302d7f14a31fbc0ee856","yParity":"0x1","v":"0x1","hash":"0x8a375a4bf3f427a8ca694b1297ff1036a1e774d5b274fde484d8c08fa5bf701c"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x62b475a48a6c8fe7928392fea2e7909bbf9c02a93cde521326cca79ca5587cd2","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x7634022681e50d0759aaab81942e6375c4591d7d1f92ad24001e9808dbaa5762","transactionsRoot":"0xea0db9b3a14b7fb86487be1440901cc867b2ff88af15ab8527da939e504b7322","receiptsRoot":"0x0444bb29fc5cdbeabc037b2cf8a3a87450ccef2bf7593c2db0eba9273a5c8603","logsBloom":"0x00000000000000000000000000000000000000040200000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000080000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x42","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20b4","extraData":"0x","mixHash":"0x09c7ca8b2177e5618224af41345983c8921a8e2adeaba8df109557aea947cc94","nonce":"0x0000000000000000","baseFeePerGas":"0x3593e","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x37","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x40c10f19000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa90000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x8679d95a6506b2a56e9d7e3f01fdb813c184afeb4daae696f9beac66e8fcc736","s":"0x44357ae827a5befc9857c6a06101a5f1b34b552e7361d8e81f41c913a94fb706","yParity":"0x0","v":"0x0","hash":"0xff1efe51d71c7cdbe7ce175ee7db6fd0d1cb897599ba86e0378e50c786b2a069"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0c817235f74464384a67c88bf8a1ad7557818e58a520274ad96de117ee9b3bf1","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xbe1e572cb407b5effa0be02975e8f3852ee953145bc2aa73b9c8cf6a3faf4510","transactionsRoot":"0xcefbae56253e61c12cca15aa06b224b38c0afcc1dd333eafb74869e60bb9c340","receiptsRoot":"0x9b93a1a486e84ba7fdb97f59d3ccf5b44bcf5d3c5233fe9b7cd9ce866e1af4db","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000002000000000000000008000000000000000000000000000000000000000000000040000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x4c","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20be","extraData":"0x","mixHash":"0x3431c1c35ddab8eb5ed68f42164706b1deb8384406375831349b47dd69ab7047","nonce":"0x0000000000000000","baseFeePerGas":"0xe28c","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xf0eb8b5000de5c066c88859a1ac6e95266767f67f5f49b0f857cb2a164bd678f","s":"0x1a29d8ad108836d6672dd3dbbf03676c003abf221f8f2a6aa0109b180f84653","yParity":"0x0","v":"0x0","hash":"0xe7db78d40829d8ccb29ca6e9e539e6041180bd5566c5a334589ac6561c803ce7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x6e3720a3b4009452edb01f42e4903c73a06cec53335eea84dcb04826130a0c38","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xf3d5a10a464609a27da0db1861f3ccbb1904b4718a917e1ee7c09f5a819ed0f2","transactionsRoot":"0xbbc525096c50b7a3e839a99f6d5641d9b19e9ef70fc474b4128f5728fff38327","receiptsRoot":"0x379f4369ee1317656fba67729e747c577237ce6a293aeba1e09e17657aeb36d8","logsBloom":"0x00000000000020000002000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000001000000000000000000000000000000","difficulty":"0x0","number":"0x22","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f2094","extraData":"0x","mixHash":"0x015f750763a0967f5ee30557bb3d3bf59eb01d51debc55d2d27817b7a64bd3d5","nonce":"0x0000000000000000","baseFeePerGas":"0xecd40e","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x8c2fa56f0c3ef9f98e74eb8d99921b3ecfef71f600f4247523bdaf19063535fe","s":"0x3618e7f6f44c130a4a3b47bab147b63d32f42d4880366359b0401d11fac44bdf","yParity":"0x1","v":"0x1","hash":"0x2259700eb5af9039ade0a20b9935aba7e21a2b0f59e0d67f6961f73aca7e0c2a"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xf4ff6e1339bab0ca22679d17d690319176f66af84b2fbe7be13c76df521803da","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x0c975843995d556b5cbd030aba2a53b504503ed4a46360fa220865fd5074ea3f","transactionsRoot":"0xb13eaa1a0cd8daf91d71179f854f333b1927963c71b9e37c663111becec0b923","receiptsRoot":"0x5153840c1c335bca398f416f20019afe6d73fb845fca8e12e16f00e0a90e4db6","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xf","gasLimit":"0x1c9c380","gasUsed":"0x4823d4","timestamp":"0x691f2081","extraData":"0x","mixHash":"0xea042ffee3f85dfb97e68094079e88a82e74401125c92b676945546c7348a048","nonce":"0x0000000000000000","baseFeePerGas":"0xaf77aee","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xb","gas":"0x5dc82d","maxFeePerGas":"0x1c62a3f9","maxPriorityFeePerGas":"0x1","to":null,"value":"0x0","accessList":[],"input":"0x6101006040523480156200001257600080fd5b506040516200569d3803806200569d83398101604081905262000035916200015b565b604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6c85c0337eba1661327f94f3bf46c8a7f9311a563f4d5c948362567f5d8ed60c828401527ff9446b8e937d86f0bc87cac73923491692b123ca5f8761908494703758206adf606080840191909152466080808501919091523060a08086019190915285518086038201815260c09586019687905280519401939093209052600180556001600160601b031986821b811690925284901b16905281906200010a906200014d565b62000116919062000199565b604051809103906000f08015801562000133573d6000803e3d6000fd5b5060601b6001600160601b03191660e05250620001c69050565b61129e80620043ff83390190565b600080604083850312156200016e578182fd5b82516200017b81620001ad565b60208401519092506200018e81620001ad565b809150509250929050565b6001600160a01b0391909116815260200190565b6001600160a01b0381168114620001c357600080fd5b50565b60805160a05160601c60c05160601c60e05160601c6141d762000228600039806105d25280610f45528061127452806117d45250806106e8528061176f52508061039252806108a05280610b81525080611502528061262f52506141d76000f3fe6080604052600436106100ec5760003560e01c80639b552cc21161008a578063ed9f35ce11610059578063ed9f35ce14610274578063f698da2514610294578063f84436bd146102a9578063fbfa77cf146102c9576100f3565b80639b552cc2146101ff578063a2a7d51b14610214578063d08d33d114610234578063ec6cb13f14610254576100f3565b80632479fb6e116100c65780632479fb6e1461016557806343218e19146101925780635624b25b146101bf578063845a101f146101df576100f3565b806313d79a0b146100f857806315337bc01461011a5780632335c76b1461013a576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061011861011336600461347e565b6102de565b005b34801561012657600080fd5b50610118610135366004613691565b6107a5565b34801561014657600080fd5b5061014f61089e565b60405161015c919061393e565b60405180910390f35b34801561017157600080fd5b5061018561018036600461371a565b6108c2565b60405161015c9190613a40565b34801561019e57600080fd5b506101b26101ad3660046133f0565b6108df565b60405161015c9190613a5d565b3480156101cb57600080fd5b506101b26101da36600461374d565b610a57565b3480156101eb57600080fd5b506101186101fa3660046135de565b610acd565b34801561020b57600080fd5b5061014f611272565b34801561022057600080fd5b5061011861022f36600461343e565b611296565b34801561024057600080fd5b5061018561024f36600461371a565b6112df565b34801561026057600080fd5b5061011861026f3660046136c5565b6112fc565b34801561028057600080fd5b5061011861028f36600461343e565b6114bb565b3480156102a057600080fd5b50610185611500565b3480156102b557600080fd5b506101b26102c43660046133f0565b611524565b3480156102d557600080fd5b5061014f61176d565b6002600154141561035057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001556040517f02cc250d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906302cc250d906103c790339060040161393e565b60206040518083038186803b1580156103df57600080fd5b505afa1580156103f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104179190613675565b610456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f1c565b60405180910390fd5b60405133907f7c3354d25cde0396b97e394765fc57e6725a2af3bd430f2fa5fb18c1275b767390610488908590613a40565b60405180910390a26104ac8160005b6020028101906104a79190613fc8565b611791565b6040517fb30270a37e2e4cc4e92f89e7e547d3071f3df248b1d38087d25e1b3428b66cc390600090a16040517f37c8fc3ebb5e40b9957fb555efaa44a206d443b7ac930fb87ca80bd4aa86a5c290610505908490613a40565b60405180910390a160008061051e8989898989896118ce565b915091507f6e54a7dbb4b29f8784749754dededb16b110602787effe25acd400ba0139da4782518251604051610555929190613fba565b60405180910390a17f3800ddfb7721134ba29414e8edf556e71bbc37c70fc77f684cfbea4cdd1deb3e825160405161058d9190613a40565b60405180910390a16040517f7d10d11f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637d10d11f9061060790859060040161395f565b600060405180830381600087803b15801561062157600080fd5b505af1158015610635573d6000803e3d6000fd5b50506040517f307733f9f689d0bf848ca325cddded11e589c82ea2e55dbb22f929d9a7fe3bac925060009150a161066d836001610497565b6040517fa04bed3ab5f235073cbe25d194bb3d5c636f079ec1baa00d440bd241e18ce96590600090a17f1f51c6f18a8d6b960829349f9d73b906fe712f3a831efd9a60b255e4c7f1174f81516040516106c69190613a40565b60405180910390a161070e73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001682611a35565b6040517fba2eda774c2667685901b47fd7e31a3eb285c4abda72da45c11ab9d78636fc1190600090a1610742836002610497565b6040517f0d82c2d8bda7f712283f61fcc6206fdc702fdba0d2febffc66566be95eb8fbbd90600090a160405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a250506001805550505050505050565b60006107b18383611d13565b5091505073ffffffffffffffffffffffffffffffffffffffff81163314610804576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613cbf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60028484604051610837929190613912565b9081526020016040518091039020819055508073ffffffffffffffffffffffffffffffffffffffff167f875b6cb035bbd4ac6500fabc6d1e4ca5bdc58a3e2b424ccb5c24cdbebeb009a98484604051610891929190613a49565b60405180910390a2505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b805160208183018101805160028252928201919093012091525481565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831061094857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161090b565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109a8576040519150601f19603f3d011682016040523d82523d6000602084013e6109ad565b606091505b508093508192505050610a5082826040516020018083805190602001908083835b60208310610a0b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109ce565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b815260010192505050604051602081830303815290604052611da1565b5092915050565b606060008260200267ffffffffffffffff81118015610a7557600080fd5b506040519080825280601f01601f191660200182016040528015610aa0576020820181803683370190505b50905060005b83811015610ac35784810154602080830284010152600101610aa6565b5090505b92915050565b60026001541415610b3f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001556040517f02cc250d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906302cc250d90610bb690339060040161393e565b60206040518083038186803b158015610bce57600080fd5b505afa158015610be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c069190613675565b610c3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f1c565b6000610c46611da9565b8051909150610c5782868686611dd6565b60007ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677582610100015114610c8c576001610c8f565b60005b9050610c996131e0565b60408085015173ffffffffffffffffffffffffffffffffffffffff90811683526101408501517f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce9081146020850152606080880151909216928401929092526101608501519091149082015260008667ffffffffffffffff81118015610d1e57600080fd5b50604051908082528060200260200182016040528015610d48578160200160208202803683370190505b50610100850151909150610120870135907ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467751415610e14578460800151811015610dbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613ee5565b610dcb8560600151611e74565b82886000013581518110610ddb57fe5b602002602001018181525050610df081611e74565b60000382886020013581518110610e0357fe5b602002602001018181525050610ea4565b8460600151811115610e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e40565b610e5b81611e74565b82886000013581518110610e6b57fe5b602002602001018181525050610e848560800151611e74565b60000382886020013581518110610e9757fe5b6020026020010181815250505b610eac6131e0565b8660400151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560000151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560e0015181604001818152505085610140015181606001818152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634817a286878f8f8f8f8b8b8f60a001518b6040518a63ffffffff1660e01b8152600401610fb099989796959493929190613b1b565b600060405180830381600087803b158015610fca57600080fd5b505af1158015610fde573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611024919081019061353d565b90506000886020015190506000611051838c600001358151811061104457fe5b6020026020010151611f09565b90506000611078848d602001358151811061106857fe5b6020026020010151600003611f09565b905060028360405161108a9190613922565b9081526020016040518091039020546000146110d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467758a61010001511415611166578960600151821461113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d64565b89606001516002846040516111519190613922565b908152604051908190036020019020556111c9565b896080015181146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d9b565b89608001516002846040516111b89190613922565b908152604051908190036020019020555b8a6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc178b600001518c6020015185858f60e001518960405161122996959493929190613ac4565b60405180910390a260405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a25050600180555050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b3033146112cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e09565b6112db60008383611f7a565b5050565b805160208183018101805160008252928201919093012091525481565b60006113088484611d13565b5091505073ffffffffffffffffffffffffffffffffffffffff8116331461139057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f475076323a2063616e6e6f74207072657369676e206f72646572000000000000604482015290519081900360640190fd5b81156113ea577ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c60008585604051808383808284378083019250505092505050908152602001604051809103902081905550611416565b600080858560405180838380828437919091019485525050604051928390036020019092209290925550505b8073ffffffffffffffffffffffffffffffffffffffff167f01bf7c8b0ca55deecbea89d7e58295b7ffbf685fd0d96801034ba8c6ffe1c68d858585604051808060200183151581526020018281038252858582818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a250505050565b3033146114f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e09565b6112db60028383611f7a565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060006343218e1960e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561158e578181015183820152602001611576565b50505050905090810190601f1680156115bb5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909816979097178752518151919750309688965090945084935091508083835b6020831061168c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161164f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146116ee576040519150601f19603f3d011682016040523d82523d6000602084013e6116f3565b606091505b5090508092505060008260018451038151811061170c57fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b14905061174f83600185510361202a565b801561175c575050610ac7565b61176583611da1565b505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005b818110156118c957368383838181106117a957fe5b90506020028101906117bb9190614090565b905073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661180160208301836133d4565b73ffffffffffffffffffffffffffffffffffffffff16141561184f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f53565b6118588161202e565b61186560208201826133d4565b73ffffffffffffffffffffffffffffffffffffffff167fed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c282602001356118aa84612085565b6040516118b8929190613f8a565b60405180910390a250600101611794565b505050565b60608060006118db611da9565b90508367ffffffffffffffff811180156118f457600080fd5b5060405190808252806020026020018201604052801561192e57816020015b61191b6131e0565b8152602001906001900390816119135790505b5092508367ffffffffffffffff8111801561194857600080fd5b5060405190808252806020026020018201604052801561198257816020015b61196f6131e0565b8152602001906001900390816119675790505b50915060005b84811015611a28573686868381811061199d57fe5b90506020028101906119af91906140c3565b90506119bd838c8c84611dd6565b611a1f838a8a84358181106119ce57fe5b905060200201358b8b85602001358181106119e557fe5b905060200201358461012001358987815181106119fe57fe5b6020026020010151898881518110611a1257fe5b60200260200101516120af565b50600101611988565b5050965096945050505050565b6000815167ffffffffffffffff81118015611a4f57600080fd5b50604051908082528060200260200182016040528015611a8957816020015b611a76613207565b815260200190600190039081611a6e5790505b5090506000805b8351811015611c77576000848281518110611aa757fe5b6020026020010151905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611bab577f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce81606001511415611b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613dd2565b8051604080830151905173ffffffffffffffffffffffffffffffffffffffff9092169181156108fc0291906000818181858888f19350505050158015611ba5573d6000803e3d6000fd5b50611c6e565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981606001511415611c0a57805160408201516020830151611c059273ffffffffffffffffffffffffffffffffffffffff90911691612466565b611c6e565b6000848480600101955081518110611c1e57fe5b602090810291909101810151600081528382015173ffffffffffffffffffffffffffffffffffffffff90811692820192909252604080850151908201523060608201528351909116608090910152505b50600101611a90565b508015611d0d57611c88828261202a565b6040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690630e8e3e8490611cda9085906004016139ad565b600060405180830381600087803b158015611cf457600080fd5b505af1158015611d08573d6000803e3d6000fd5b505050505b50505050565b6000808060388414611d8657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f475076323a20696e76616c696420756964000000000000000000000000000000604482015290519081900360640190fd5b5050823593602084013560601c936034013560e01c92509050565b805160208201fd5b611db1613237565b6040805160388082526060820190925290602082018180368337505050602082015290565b83516000611de68386868561253e565b9050600080611e038484611dfe61014089018961402d565b612626565b91509150611e2682828660a001518b602001516126d5909392919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff81166040890152611e4c8482612757565b73ffffffffffffffffffffffffffffffffffffffff1660609098019790975250505050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611f0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f53616665436173743a20696e74323536206f766572666c6f7700000000000000604482015290519081900360640190fd5b5090565b600080821215611f0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f53616665436173743a206e6f7420706f73697469766500000000000000000000604482015290519081900360640190fd5b60005b81811015611d0d57366000848484818110611f9457fe5b9050602002810190611fa6919061402d565b915091506000611fb68383611d13565b92505050428163ffffffff1610611ff9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613eae565b600087848460405161200c929190613912565b90815260405190819003602001902055505060019091019050611f7d565b9052565b73ffffffffffffffffffffffffffffffffffffffff813516602082013536600061205b604086018661402d565b9150915060405181838237600080838387895af161207d573d6000803e3d6000fd5b505050505050565b60003681612096604085018561402d565b9092509050600481106120a857813592505b5050919050565b6000866000015190506000876020015190506000428360a0015163ffffffff161090507f9b4eb7f4556a1352e4627acf6b73a4ddfc64291c08ae077411b2eafe1436c8eb828a60400151856060015186608001518760e001518660405161211b96959493929190613a70565b60405180910390a1428360a0015163ffffffff161015612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613cf6565b60808301516121769088612789565b6060840151612185908a612789565b10156121bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d2d565b6000806000807ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677587610100015114156122be578661012001511561222a57899350612223876060015161221d868a60e0015161278990919063ffffffff16565b90612819565b9150612239565b866060015193508660e0015191505b61224d8b612247868f612789565b9061289a565b9250612279846002886040516122639190613922565b9081526040519081900360200190205490612938565b905086606001518111156122b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b612365565b866101200151156122f2578992506122eb876080015161221d858a60e0015161278990919063ffffffff16565b9150612301565b866080015192508660e0015191505b61230f8c61221d858e612789565b9350612325836002886040516122639190613922565b90508660800151811115612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b61236f8483612938565b9350806002876040516123829190613922565b9081526020016040518091039020819055508c6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17886000015189602001518787878c6040516123f096959493929190613ac4565b60405180910390a250506040808c015173ffffffffffffffffffffffffffffffffffffffff9081168952865181166020808b0191909152898301949094526101408701516060998a01529b8801518c16875282860151909b16918601919091529884019890985250610160015191015250505050565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff84166004830152602482018390529060008060448382895af16124c9573d6000803e3d6000fd5b506124d3846129ac565b611d0d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f475076323a206661696c6564207472616e736665720000000000000000000000604482015290519081900360640190fd5b60008383863581811061254d57fe5b6020908102929092013573ffffffffffffffffffffffffffffffffffffffff168452508490849087013581811061258057fe5b73ffffffffffffffffffffffffffffffffffffffff602091820293909301358316908501525060408087013590911690830152606080860135908301526080808601359083015263ffffffff60a080870135919091169083015260c0808601359083015260e080860135908301526125fc610100860135612a76565b61016087019190915261014086019190915290151561012085015261010090930152509392505050565b600080612653867f0000000000000000000000000000000000000000000000000000000000000000612bcb565b9150600085600381111561266357fe5b141561267b57612674828585612c55565b90506126cc565b600185600381111561268957fe5b141561269a57612674828585612c6a565b60028560038111156126a857fe5b14156126b957612674828585612cd2565b6126c98285858960a00151612e70565b90505b94509492505050565b603884511461274557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a2075696420627566666572206f766572666c6f7700000000000000604482015290519081900360640190fd5b60388401526034830152602090910152565b604082015160009073ffffffffffffffffffffffffffffffffffffffff16612780575080610ac7565b50506040015190565b60008261279857506000610ac7565b828202828482816127a557fe5b041461281257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d6174683a206d756c206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b9392505050565b600080821161288957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d6174683a206469766973696f6e2062792030000000000000000000604482015290519081900360640190fd5b81838161289257fe5b049392505050565b600080821161290a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f536166654d6174683a206365696c696e67206469766973696f6e206279203000604482015290519081900360640190fd5b81838161291357fe5b0615612920576001612923565b60005b60ff1682848161292f57fe5b04019392505050565b60008282018381101561281257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006129ea565b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452806024528160445260646000fd5b3d8015612a295760208114612a6357612a247f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f6129b3565b612a70565b823b612a5a57612a5a7f475076323a206e6f74206120636f6e747261637400000000000000000000000060146129b3565b60019150612a70565b3d6000803e600051151591505b50919050565b60008080808060018616612aac577ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467759450612ad0565b7f6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc94505b600286161515935060088616612b08577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99250612b5c565b60048616612b38577fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea06329250612b5c565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce92505b60108616612b8c577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99150612bb0565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce91505b600586901c6003811115612bc057fe5b905091939590929450565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090910180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6000612c62848484613035565b949350505050565b6000808460405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050612cc9818585613035565b95945050505050565b813560601c366000612ce7846014818861411a565b604080517f1626ba7e00000000000000000000000000000000000000000000000000000000808252600482018b81526024830193845260448301859052949650929450919273ffffffffffffffffffffffffffffffffffffffff871692631626ba7e928b928892889290606401848480828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201965060209550909350505081840390508186803b158015612dad57600080fd5b505afa158015612dc1573d6000803e3d6000fd5b505050506040513d6020811015612dd757600080fd5b50517fffffffff000000000000000000000000000000000000000000000000000000001614612e6757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f475076323a20696e76616c69642065697031323731207369676e617475726500604482015290519081900360640190fd5b50509392505050565b600060148314612ee157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f475076323a206d616c666f726d6564207072657369676e617475726500000000604482015290519081900360640190fd5b506040805160388082526060828101909352853590921c9160009190602082018180368337019050509050612f18818784866126d5565b7ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c6000826040518082805190602001908083835b60208310612f8c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f4f565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020541461302c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a206f72646572206e6f74207072657369676e656400000000000000604482015290519081900360640190fd5b50949350505050565b6000604182146130a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f475076323a206d616c666f726d6564206563647361207369676e617475726500604482015290519081900360640190fd5b604080516000815260208181018084528790528286013560f81c82840181905286356060840181905282880135608085018190529451909493919260019260a0808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015613129573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015194505073ffffffffffffffffffffffffffffffffffffffff84166131d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f475076323a20696e76616c6964206563647361207369676e6174757265000000604482015290519081900360640190fd5b5050509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040805160a081019091528060008152600060208201819052604082018190526060820181905260809091015290565b604051806080016040528061324a613264565b815260606020820181905260006040830181905291015290565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915290565b60008083601f8401126132d9578182fd5b50813567ffffffffffffffff8111156132f0578182fd5b602083019150836020808302850101111561330a57600080fd5b9250929050565b60008083601f840112613322578182fd5b50813567ffffffffffffffff811115613339578182fd5b60208301915083602082850101111561330a57600080fd5b600082601f830112613361578081fd5b813567ffffffffffffffff81111561337557fe5b6133a660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016140f6565b8181528460208386010111156133ba578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156133e5578081fd5b81356128128161416e565b60008060408385031215613402578081fd5b823561340d8161416e565b9150602083013567ffffffffffffffff811115613428578182fd5b61343485828601613351565b9150509250929050565b60008060208385031215613450578182fd5b823567ffffffffffffffff811115613466578283fd5b613472858286016132c8565b90969095509350505050565b60008060008060008060006080888a031215613498578283fd5b873567ffffffffffffffff808211156134af578485fd5b6134bb8b838c016132c8565b909950975060208a01359150808211156134d3578485fd5b6134df8b838c016132c8565b909750955060408a01359150808211156134f7578485fd5b6135038b838c016132c8565b909550935060608a013591508082111561351b578283fd5b508801606081018a101561352d578182fd5b8091505092959891949750929550565b6000602080838503121561354f578182fd5b825167ffffffffffffffff80821115613566578384fd5b818501915085601f830112613579578384fd5b81518181111561358557fe5b83810291506135958483016140f6565b8181528481019084860184860187018a10156135af578788fd5b8795505b838610156135d15780518352600195909501949186019186016135b3565b5098975050505050505050565b6000806000806000606086880312156135f5578081fd5b853567ffffffffffffffff8082111561360c578283fd5b61361889838a016132c8565b90975095506020880135915080821115613630578283fd5b61363c89838a016132c8565b90955093506040880135915080821115613654578283fd5b5086016101608189031215613667578182fd5b809150509295509295909350565b600060208284031215613686578081fd5b815161281281614193565b600080602083850312156136a3578182fd5b823567ffffffffffffffff8111156136b9578283fd5b61347285828601613311565b6000806000604084860312156136d9578081fd5b833567ffffffffffffffff8111156136ef578182fd5b6136fb86828701613311565b909450925050602084013561370f81614193565b809150509250925092565b60006020828403121561372b578081fd5b813567ffffffffffffffff811115613741578182fd5b612c6284828501613351565b6000806040838503121561375f578182fd5b50508035926020909101359150565b60008284526020808501945082825b858110156137b85781356137908161416e565b73ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161377d565b509495945050505050565b6000815180845260208085019450808401835b838110156137b8578151875295820195908201906001016137d6565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b60008151808452613852816020860160208601614142565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8082511683528060208301511660208401525060408101516040830152606081015160608301525050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b63ffffffff169052565b6000828483379101908152919050565b60008251613934818460208701614142565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6020808252825182820181905260009190848201906040850190845b818110156139a15761398e838551613884565b928401926080929092019160010161397b565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b82811015613a335781518051600481106139e057fe5b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a090930192908501906001016139ca565b5091979650505050505050565b90815260200190565b600060208252612c626020830184866137f2565b600060208252612812602083018461383a565b600060c08252613a8360c083018961383a565b73ffffffffffffffffffffffffffffffffffffffff97909716602083015250604081019490945260608401929092526080830152151560a090910152919050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015283608083015260c060a0830152613b0f60c083018461383a565b98975050505050505050565b60006101a0820160028c10613b2c57fe5b8b835260206101a081850152818b83526101c0850190506101c0828d0286010192508c845b8d811015613c5a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe408786030183527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618f360301823512613bb0578586fd5b8e823501803586528481013585870152604081013560408701526060810135606087015260808101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112613c08578788fd5b8101803567ffffffffffffffff811115613c20578889fd5b803603831315613c2e578889fd5b60a06080890152613c4560a08901828985016137f2565b97505050928401925090830190600101613b51565b505050508281036040840152613c7181898b61376e565b9050613c8060608401886138c4565b82810360e0840152613c9281876137c3565b915050613ca3610100830185613908565b613cb1610120830184613884565b9a9950505050505050505050565b6020808252601f908201527f475076323a2063616c6c657220646f6573206e6f74206f776e206f7264657200604082015260600190565b60208082526013908201527f475076323a206f72646572206578706972656400000000000000000000000000604082015260600190565b6020808252601f908201527f475076323a206c696d6974207072696365206e6f742072657370656374656400604082015260600190565b6020808252601f908201527f475076323a2073656c6c20616d6f756e74206e6f742072657370656374656400604082015260600190565b6020808252601e908201527f475076323a2062757920616d6f756e74206e6f74207265737065637465640000604082015260600190565b6020808252601e908201527f475076323a20756e737570706f7274656420696e7465726e616c204554480000604082015260600190565b60208082526018908201527f475076323a206e6f7420616e20696e746572616374696f6e0000000000000000604082015260600190565b60208082526014908201527f475076323a206c696d697420746f6f2068696768000000000000000000000000604082015260600190565b60208082526012908201527f475076323a206f726465722066696c6c65640000000000000000000000000000604082015260600190565b60208082526017908201527f475076323a206f72646572207374696c6c2076616c6964000000000000000000604082015260600190565b60208082526013908201527f475076323a206c696d697420746f6f206c6f7700000000000000000000000000604082015260600190565b60208082526012908201527f475076323a206e6f74206120736f6c7665720000000000000000000000000000604082015260600190565b6020808252601b908201527f475076323a20666f7262696464656e20696e746572616374696f6e0000000000604082015260600190565b9182527fffffffff0000000000000000000000000000000000000000000000000000000016602082015260400190565b918252602082015260400190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613ffc578283fd5b83018035915067ffffffffffffffff821115614016578283fd5b602090810192508102360382131561330a57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614061578283fd5b83018035915067ffffffffffffffff82111561407b578283fd5b60200191503681900382131561330a57600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112613934578182fd5b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea1833603018112613934578182fd5b60405181810167ffffffffffffffff8111828210171561411257fe5b604052919050565b60008085851115614129578182fd5b83861115614135578182fd5b5050820193919092039150565b60005b8381101561415d578181015183820152602001614145565b83811115611d0d5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461419057600080fd5b50565b801515811461419057600080fdfea2646970667358221220e44c81ebee4bd12f2c28a8fff7d83554efc672515327da65767f1268b1aed5f164736f6c6343000706003360c060405234801561001057600080fd5b5060405161129e38038061129e83398101604081905261002f9161004b565b33606090811b6080521b6001600160601b03191660a052610079565b60006020828403121561005c578081fd5b81516001600160a01b0381168114610072578182fd5b9392505050565b60805160601c60a05160601c6111ee6100b060003980610130528061020152806102bd5250806093528061024c52506111ee6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634817a2861461003b5780637d10d11f14610064575b600080fd5b61004e610049366004610cd9565b610079565b60405161005b9190610eb3565b60405180910390f35b610077610072366004610c69565b610234565b005b60603373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146100f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea906110e5565b60405180910390fd5b6040517f945bcec900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063945bcec990610171908c908c908c908c908c908c908c90600401610f59565b600060405180830381600087803b15801561018b57600080fd5b505af115801561019f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526101e59190810190610bd9565b905061022873ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001683336102e9565b98975050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea906110e5565b6102e573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016838333610551565b5050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61030e6040840160208501610bb6565b73ffffffffffffffffffffffffffffffffffffffff16141561035c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea9061111c565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9826060013514156103d0576103cb6103986020840184610bb6565b82604085018035906103ad9060208801610bb6565b73ffffffffffffffffffffffffffffffffffffffff16929190610816565b61054c565b604080516001808252818301909252600091816020015b6103ef6109cb565b8152602001906001900390816103e757905050905060008160008151811061041357fe5b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea063284606001351461044f576002610452565b60035b8190600381111561045f57fe5b9081600381111561046c57fe5b90525061047f6040850160208601610bb6565b73ffffffffffffffffffffffffffffffffffffffff16602080830191909152604080860135908301526104b490850185610bb6565b73ffffffffffffffffffffffffffffffffffffffff908116606083015283811660808301526040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815290861690630e8e3e8490610517908590600401610ec6565b600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505050505b505050565b60008267ffffffffffffffff8111801561056a57600080fd5b506040519080825280602002602001820160405280156105a457816020015b6105916109cb565b8152602001906001900390816105895790505b5090506000805b8481101561077857368686838181106105c057fe5b60800291909101915073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90506105f06040830160208401610bb6565b73ffffffffffffffffffffffffffffffffffffffff16141561063e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea9061111c565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9816060013514156106945761068f61067a6020830183610bb6565b86604084018035906103ad9060208701610bb6565b61076f565b60008484806001019550815181106106a857fe5b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea06328260600135146106e45760016106e7565b60035b819060038111156106f457fe5b9081600381111561070157fe5b9052506107146040830160208401610bb6565b73ffffffffffffffffffffffffffffffffffffffff166020808301919091526040808401359083015261074990830183610bb6565b73ffffffffffffffffffffffffffffffffffffffff908116606083015286166080909101525b506001016105ab565b50801561080e5761078982826108fd565b6040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690630e8e3e84906107db908590600401610ec6565b600060405180830381600087803b1580156107f557600080fd5b505af1158015610809573d6000803e3d6000fd5b505050505b505050505050565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff8581166004840152841660248301526044820183905290600080606483828a5af1610881573d6000803e3d6000fd5b5061088b85610901565b6108f657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a206661696c6564207472616e7366657246726f6d00000000000000604482015290519081900360640190fd5b5050505050565b9052565b600061093f565b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452806024528160445260646000fd5b3d801561097e57602081146109b8576109797f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f610908565b6109c5565b823b6109af576109af7f475076323a206e6f74206120636f6e74726163740000000000000000000000006014610908565b600191506109c5565b3d6000803e600051151591505b50919050565b6040805160a081019091528060008152600060208201819052604082018190526060820181905260809091015290565b600082601f830112610a0b578081fd5b81356020610a20610a1b83611175565b611151565b8281528181019085830183850287018401881015610a3c578586fd5b855b85811015610a63578135610a5181611193565b84529284019290840190600101610a3e565b5090979650505050505050565b600082601f830112610a80578081fd5b81356020610a90610a1b83611175565b8281528181019085830183850287018401881015610aac578586fd5b855b85811015610a6357813584529284019290840190600101610aae565b60008083601f840112610adb578182fd5b50813567ffffffffffffffff811115610af2578182fd5b6020830191508360208083028501011115610b0c57600080fd5b9250929050565b80358015158114610b2357600080fd5b919050565b6000608082840312156109c5578081fd5b600060808284031215610b4a578081fd5b6040516080810181811067ffffffffffffffff82111715610b6757fe5b6040529050808235610b7881611193565b8152610b8660208401610b13565b60208201526040830135610b9981611193565b6040820152610baa60608401610b13565b60608201525092915050565b600060208284031215610bc7578081fd5b8135610bd281611193565b9392505050565b60006020808385031215610beb578182fd5b825167ffffffffffffffff811115610c01578283fd5b8301601f81018513610c11578283fd5b8051610c1f610a1b82611175565b8181528381019083850185840285018601891015610c3b578687fd5b8694505b83851015610c5d578051835260019490940193918501918501610c3f565b50979650505050505050565b60008060208385031215610c7b578081fd5b823567ffffffffffffffff80821115610c92578283fd5b818501915085601f830112610ca5578283fd5b813581811115610cb3578384fd5b866020608083028501011115610cc7578384fd5b60209290920196919550909350505050565b6000806000806000806000806101a0898b031215610cf5578384fd5b883560028110610d03578485fd5b9750602089013567ffffffffffffffff80821115610d1f578586fd5b610d2b8c838d01610aca565b909950975060408b0135915080821115610d43578586fd5b610d4f8c838d016109fb565b9650610d5e8c60608d01610b39565b955060e08b0135915080821115610d73578485fd5b50610d808b828c01610a70565b9350506101008901359150610d998a6101208b01610b28565b90509295985092959890939650565b6000815180845260208085019450808401835b83811015610ded57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101610dbb565b509495945050505050565b6000815180845260208085019450808401835b83811015610ded57815187529582019590820190600101610e0b565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b600060208252610bd26020830184610df8565b602080825282518282018190526000919060409081850190868401855b82811015610f4c578151805160048110610ef957fe5b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a09093019290850190600101610ee3565b5091979650505050505050565b600061012080830160028b10610f6b57fe5b8a8452602080850192909252889052610140808401918981028501909101908a845b8b811015611098577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec087850301855281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618e3603018112610fed578687fd5b8d01803585528381013584860152604080820135908601526060808201359086015260a0608080830135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe101811261104757898afd5b8301803567ffffffffffffffff81111561105f578a8bfd5b80360385131561106d578a8bfd5b83838a0152611081848a01828a8501610e27565b998801999850505093850193505050600101610f8d565b50505083810360408501526110ad8189610da8565b9150506110bd6060840187610e6f565b82810360e08401526110cf8186610df8565b9150508261010083015298975050505050505050565b60208082526011908201527f475076323a206e6f742063726561746f72000000000000000000000000000000604082015260600190565b6020808252818101527f475076323a2063616e6e6f74207472616e73666572206e617469766520455448604082015260600190565b60405181810167ffffffffffffffff8111828210171561116d57fe5b604052919050565b600067ffffffffffffffff82111561118957fe5b5060209081020190565b73ffffffffffffffffffffffffffffffffffffffff811681146111b557600080fd5b5056fea2646970667358221220addf78f9933867b13bfb595f92d06bf1ca903f014437092b1df8accfeef30b2d64736f6c63430007060033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad7880000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc318","r":"0x925bcaf247cd69742f36682d9adbe830befbafd02297f8941835b7114469bf6f","s":"0x5213d59e7f500f5430ac7524c22d0b93ae85e80118e4394b6bf4ab4f09e51ab7","yParity":"0x1","v":"0x1","hash":"0x160f0fdd48f4b2843155cef3c6cd55e5cd77b6c69473b392cc234542ce9ebb29"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x1194aba7b06fd0a6a6c61e3fb8e316af6b414e3e5cce74904422658e9b52db8a","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xede9903bdce1e4414441a58c9d11d4565018c679ef402431f3185a68ebe9488a","transactionsRoot":"0xa15c9fb191e620aea4fb78a179270d1ecd3dbc8a67f81ccb0b37534fbe06d970","receiptsRoot":"0xd3d3ea5af8adb90cb51e61b5603b15505bc6bb33f8ec7fd39ec8149ba2a19521","logsBloom":"0x00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000008000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x3a","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20ac","extraData":"0x","mixHash":"0xbb16aac8bb46273904851e801cae9323a6561971bfa3f1ef46603d2c512a947b","nonce":"0x0000000000000000","baseFeePerGas":"0x9b5d4","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x32","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x40c10f190000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc0000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xa736ac7d0a9d23acc95a9f6928836da32f98709ef2adf79c88654157ff735406","s":"0x29f68ef1e7b32b2d9695825344cb680e13b22b6acff10433cf9998106072c7c7","yParity":"0x1","v":"0x1","hash":"0xe4aeaedc7593133db42c6eb956fe51685fb54366fba32ff7e814f8fe6353d729"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x8f8862cbe2ace13c51d2265d40b8e98d502cb74ffc77a074f113854a697c0b0d","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x9212cd5c8d70248ab0c7d17a04f6c78005da8b7cc0bd3481f560e485be0f0690","transactionsRoot":"0x86c0a9a17ff214d1a4b5eb557a8bfede1f44032963f632b3438466858b4bca42","receiptsRoot":"0xec7c2d3cfaf62d0de2c4b914475f19aedde8dd453edca70706e56fb3c6761b31","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x5","gasLimit":"0x1c9c380","gasUsed":"0x10d6d","timestamp":"0x691f2077","extraData":"0x","mixHash":"0x187c710e580734ff32b24be7b04ae9d9fe0f2ab12fb2da04a04513a9dc10089c","nonce":"0x0000000000000000","baseFeePerGas":"0x232f3403","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x15e40","maxFeePerGas":"0x5b450551","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x3635c9adc5dea00000","accessList":[],"input":"0xd0e30db0","r":"0xd96f747f3ed6e0475c84370d3815d15dc452e2ecc917e7f2bd8559a197bd77fd","s":"0x12e9d7c252d5f31bd3d992a0b41d94ac928b240f6eb15131c2ed6cbdfa74d492","yParity":"0x1","v":"0x1","hash":"0x0c7d2ea39da8ad62676a218f4c16a5472718be3f8ed744e8af87240112b41963"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x788b0e059eef5d1c979c0f8f70694f51ab6d29916819783d3825ac272f237ddd","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x6bba298698bedceac614dfa8fe7d4cef93f290aa380ec0d3ccb58a9e09700e56","transactionsRoot":"0xde7a2d1903748bdecfa44d4e1760f675174e25a7bc9f4d8a727b230e2a2c2693","receiptsRoot":"0x8f50ee9a99e8abb945049feafbfdf4ad226f518ad4db405634ceada95e859450","logsBloom":"0x00000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000800020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000001000000000000400000000000000000","difficulty":"0x0","number":"0x1e","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f2090","extraData":"0x","mixHash":"0xeba5b18aa3e4b44469649b5abe615a6613591d1fb752b51fef09b9ba6cb22c8a","nonce":"0x0000000000000000","baseFeePerGas":"0x1934554","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x22","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x40c10f1900000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xb125bbcb4267811d9e2a8f2063149cb7931c3f28b112f7b661b956a0feeb62ee","s":"0x1d217ab5b70be4770faa29954962d7ff8351dae9ba1501f2a51634cd4ab3ff0d","yParity":"0x0","v":"0x0","hash":"0xed3a9679fabb51178adca1dd6d63978ff85a59de31732341619bd379b7272617"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xf501b1fd88e89f72ef50678819cbbd9b93bad9b0fbd6ac0244bc78d9c9f96b92","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xfa9914f3e0a77f646b6c8076596f3b66698f653772c0e2e9d552234f51835762","transactionsRoot":"0x621ae51099666e6cd148f8759db18bbd0a2ebe3490638c0cc0a1b5054348b8be","receiptsRoot":"0xc85b5e0ed1f19885975b5cba9d366e87aaadbbc84d351ced6a7a0728f125ab0f","logsBloom":"0x00000004000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000008000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040800000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x3c","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20ae","extraData":"0x","mixHash":"0xb1b991277a9a9863c492b7c5b769059e6c86440f4b7cb8c9a53e546bb3b7c654","nonce":"0x0000000000000000","baseFeePerGas":"0x77111","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x94d22a085f184a3881b88e73d54ffd9cc5c6d7b9b6e75f97f4a21c1f80756d9d","s":"0x59a801f5022305e19b5a14827bc77a5d8b422a5356dfa9630a1f87e4d7f3a57","yParity":"0x1","v":"0x1","hash":"0xdc6f2036ff23a9e8469f9df11f0d99df91a2bdd352bba340f2c7a5b90ad1ddf6"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0545770d15764b8fc0de6d7b61fe4b4676421718494c13051d6a3ba565afb43a","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x76206e84d4d8c929bbc1d6e585abb73c661fc9eed2e7853b423ad0bc0d5fea38","transactionsRoot":"0x067516062c7de447b240e659a46d9f7836aeaa320a1834b064a04e8d863a6b27","receiptsRoot":"0xd0d04719fd45a397a9e3cec3410c34fd434e643eef3a6fc3bdea1879854a4ad3","logsBloom":"0x00000000000000000000000000000000000000040200000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000080000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x41","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20b3","extraData":"0x","mixHash":"0x6a142df814be1dd3014524576ea51bc943905c954de0148498a4768730767357","nonce":"0x0000000000000000","baseFeePerGas":"0x3d33a","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x36","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x40c10f19000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa90000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x7ee3560f2a30fe19242c981ea5f914b6cf0881394d461411329cc93bfd71a3a9","s":"0x1baa7dc94f6b66bfd7cf199e69696f1b804d7232f290b0627c1abe975b6b29a1","yParity":"0x0","v":"0x0","hash":"0x53ff517615cf875a2bb73dd30f61e7fa01d4a974d1bc3c5767dad2f1b40989e3"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xad3014edebe1530e2352f02b2f0dbab6301640046fbc4b63eb5b315f4f71c080","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x69c508c4abdd93487d5da07b37b9b39219de2453540646b948f2e37d96da60eb","transactionsRoot":"0xa1fec34081327c8de9eaf877c4adc2d2f2e518a32651945a108b52f0bf16b454","receiptsRoot":"0x52eaf2b7c8020fcc17c55843f2f64bc49a65d8e27266480d22e93c2334a34da5","logsBloom":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000040000000000000000000000000000080000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000040000000000000000000000000000000000000000000000000000000000000000004000000000002c000000000000000000000000000000000000080000000000000000000001000000000100000000000000","difficulty":"0x0","number":"0xa","gasLimit":"0x1c9c380","gasUsed":"0x26981f","timestamp":"0x691f207c","extraData":"0x","mixHash":"0xd641c54f76d30845ab9dc5a1e528d912a80a0823d0a69ca5cfced0447fe01e7a","nonce":"0x0000000000000000","baseFeePerGas":"0x13bb522c","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x6","gas":"0x322c28","maxFeePerGas":"0x364d20e9","maxPriorityFeePerGas":"0x1","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","value":"0x0","accessList":[],"input":"0xc9c653960000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa30000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0","r":"0xececa42d77a4d0c6877f6934326d184a9660e71ba5a5aad7572466c199352754","s":"0x30ecf1ddb77933be1a80fa74cc390cfca391adda3c8cec9f1c59368cb6bfc962","yParity":"0x1","v":"0x1","hash":"0x72d3eb482709b1530aa4d791340480f7b96d333143a49e2d59003534299f4eb9"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x143c0c70aef2e9cd1f337f325e368b67feded90090ed40af7b81173672998058","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb4f0a6a95d7db290c5992f45704e269010679eaa88295f5e4bafe7611681d1de","transactionsRoot":"0xbef757cac089756d455992cc30f0b0892337d1ca87bdf31b43aa61afa3e1d6ea","receiptsRoot":"0x6c750c6184f05453efdfc1290177f3cf5a8619c88697ea064bbf2de0c262cbd1","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000300001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000200000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x29","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f209b","extraData":"0x","mixHash":"0xa91a33a9e7b28a8430feb0d42a98dcc7d5a5e986bf581efcf36a1e7e73bfb924","nonce":"0x0000000000000000","baseFeePerGas":"0x5d4a99","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x3b691fc8dc21aed86727ff7e2645ca641882b679cf722433991f2d8d4880bc30","s":"0x727583bf382ac98c7154b5cbba7ea042c067a71b05f4ab6c979e01305814f8d7","yParity":"0x1","v":"0x1","hash":"0x0707c8c3e864767ba2c0722a72ef10321a5f92770527ada46a209edca6ad6e18"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe8cfe820627f063a981a4675161c70127f859d313ee2c6649063bcafa4a836f9","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x6c6fa9a684fb3dd03c7821112ba08dee3242fa42d36e9cc72799e445a574f3b3","transactionsRoot":"0x676898ae467b5e2d29e011674eac55c59b3c65efa6149762d6778ae9d4cfe6d0","receiptsRoot":"0x6182aaa9a93365dffd42a2e25089f9835aac9f8ea535ba20de0a38394de4aed3","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x9","gasLimit":"0x1c9c380","gasUsed":"0x48c5ba","timestamp":"0x691f207b","extraData":"0x","mixHash":"0x7d12b531ba9a7138ab4231532938430a7bde7932a9ed592c931586fb4d5bb966","nonce":"0x0000000000000000","baseFeePerGas":"0x15921e2d","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x5","gas":"0x5e9aa5","maxFeePerGas":"0x364d20e9","maxPriorityFeePerGas":"0x1","to":null,"value":"0x0","accessList":[],"input":"0x60c06040523480156200001157600080fd5b506040516200577338038062005773833981810160405260408110156200003757600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c6155ec62000187600039806101ac5280610e5d5280610e985280610fd5528061129852806116f252806118d65280611e1e5280611fa252806120725280612179528061232c52806123c15280612673528061271a52806127ef52806128f452806129dc5280612a5d52806130ec5280613422528061347852806134ac528061352d528061374752806138f7528061398c5250806110c752806111c5528061136b52806113a4528061154f52806117e452806118b45280611aa1528061225f528061240052806125a95280612a9c5280612ddf5280613071528061309a52806130ca52806132a75280613456528061382d52806139cb5280614434528061447752806147d752806149b85280614f335280615014528061509452506155ec6000f3fe60806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a612d65565b9093509150610e96898685613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613ce9565b50965096945050505050565b6000610f44848484613e26565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f00000000000000000000000000000000000000000000000000000000000000008a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140b0565b8560008151811061124a57fe5b602002602001015161419b565b6112968287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525030925061436b915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613ce9565b509695505050505050565b60606113917f000000000000000000000000000000000000000000000000000000000000000084846145f2565b90505b92915050565b60008060006113ca7f00000000000000000000000000000000000000000000000000000000000000008f8f6140b0565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b6113598287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b6000806118fa7f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006140b0565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a61419b565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614780915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b1316565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614780915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613ce9565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b5095945050505050565b6000610f44848484614b85565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610f44848484614ca9565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f00000000000000000000000000000000000000000000000000000000000000008989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613ce9565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614780915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f00000000000000000000000000000000000000000000000000000000000000008c8c6140b0565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d89565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606113917f00000000000000000000000000000000000000000000000000000000000000008484613f4a565b60008060006131107f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006140b0565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614edc565b909450925060006132cd7f00000000000000000000000000000000000000000000000000000000000000008e8e6140b0565b90506132db8d33838861419b565b6132e78c33838761419b565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c614edc565b9094509250600061349c7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006140b0565b90506134aa8b33838861419b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613ce9565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f0000000000000000000000000000000000000000000000000000000000000000888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae68287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613ce9565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613ce2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061555f602d913960400191505060405180910390fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d6057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d23565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dc2576040519150601f19603f3d011682016040523d82523d6000602084013e613dc7565b606091505b5050905080613e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603481526020018061541b6034913960400191505060405180910390fd5b505050565b6000808411613e80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061558c602b913960400191505060405180910390fd5b600083118015613e905750600082115b613ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000613ef9856103e563ffffffff6151dd16565b90506000613f0d828563ffffffff6151dd16565b90506000613f3383613f27886103e863ffffffff6151dd16565b9063ffffffff61526316565b9050808281613f3e57fe5b04979650505050505050565b6060600282511015613fbd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613fd557600080fd5b50604051908082528060200260200182016040528015613fff578160200160208202803683370190505b509050828160008151811061401057fe5b60200260200101818152505060005b60018351038110156140a8576000806140628786858151811061403e57fe5b602002602001015187866001018151811061405557fe5b60200260200101516152d5565b9150915061408484848151811061407557fe5b60200260200101518383613e26565b84846001018151811061409357fe5b6020908102919091010152505060010161401f565b509392505050565b60008060006140bf8585614d89565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061427957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161423c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142db576040519150601f19603f3d011682016040523d82523d6000602084013e6142e0565b606091505b509150915081801561430e57508051158061430e575080806020019051602081101561430b57600080fd5b50515b614363576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806153ea6031913960400191505060405180910390fd5b505050505050565b60005b60018351038110156145ec5760008084838151811061438957fe5b60200260200101518584600101815181106143a057fe5b60200260200101519150915060006143b88383614d89565b50905060008785600101815181106143cc57fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461441457826000614418565b6000835b91509150600060028a5103881061442f5788614470565b6144707f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061446357fe5b60200260200101516140b0565b905061449d7f000000000000000000000000000000000000000000000000000000000000000088886140b0565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144e7576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561457257818101518382015260200161455a565b50505050905090810190601f16801561459f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145c157600080fd5b505af11580156145d5573d6000803e3d6000fd5b50506001909901985061436e975050505050505050565b50505050565b606060028251101561466557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561467d57600080fd5b506040519080825280602002602001820160405280156146a7578160200160208202803683370190505b50905082816001835103815181106146bb57fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140a85760008061471b8786600186038151811061470757fe5b602002602001015187868151811061405557fe5b9150915061473d84848151811061472e57fe5b60200260200101518383614b85565b84600185038151811061474c57fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016146eb565b60005b6001835103811015613e215760008084838151811061479e57fe5b60200260200101518584600101815181106147b557fe5b60200260200101519150915060006147cd8383614d89565b50905060006147fd7f000000000000000000000000000000000000000000000000000000000000000085856140b0565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561484b57600080fd5b505afa15801561485f573d6000803e3d6000fd5b505050506040513d606081101561487557600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148bf5782846148c2565b83835b91509150614947828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b9550614954868383613e26565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149985782600061499c565b6000835b91509150600060028c51038a106149b3578a6149e7565b6149e77f0000000000000000000000000000000000000000000000000000000000000000898e8d6002018151811061446357fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614a97578181015183820152602001614a7f565b50505050905090810190601f168015614ac45780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614ae657600080fd5b505af1158015614afa573d6000803e3d6000fd5b50506001909b019a506147839950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153be602c913960400191505060405180910390fd5b600083118015614bef5750600082115b614c44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000614c686103e8614c5c868863ffffffff6151dd16565b9063ffffffff6151dd16565b90506000614c826103e5614c5c868963ffffffff614b1316565b9050614c9f6001828481614c9257fe5b049063ffffffff61526316565b9695505050505050565b6000808411614d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154c26025913960400191505060405180910390fd5b600083118015614d135750600082115b614d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b82614d79858463ffffffff6151dd16565b81614d8057fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061544f6025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e4b578284614e4e565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b158015614f7c57600080fd5b505afa158015614f90573d6000803e3d6000fd5b505050506040513d6020811015614fa657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561508c57604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b15801561505f57600080fd5b505af1158015615073573d6000803e3d6000fd5b505050506040513d602081101561508957600080fd5b50505b6000806150ba7f00000000000000000000000000000000000000000000000000000000000000008b8b6152d5565b915091508160001480156150cc575080155b156150dc578793508692506151d0565b60006150e9898484614ca9565b9050878111615156578581101561514b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b8894509250826151ce565b6000615163898486614ca9565b90508981111561516f57fe5b878110156151c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008115806151f8575050808202828282816151f557fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152e48585614d89565b5090506000806152f58888886140b0565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561533a57600080fd5b505afa15801561534e573d6000803e3d6000fd5b505050506040513d606081101561536457600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153ab5780826153ae565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a264697066735822122058679bc9474b9bf23de79679b7f67187bb1fb84a5701294ce32c84e6b840987e64736f6c63430006060033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3","r":"0x4b60390da30b74e695937d3506f4b41ef46c170e2fb8c73f0e84b4e56a483551","s":"0x311761dc1dcd9542de5678125f013aed04349dc64305495f49a7b44aefe36b4b","yParity":"0x1","v":"0x1","hash":"0x8dd2f3570167ac4a416ffd67d1f7dbae42498d1ca830bc358127abe8a5311533"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x3c5e16cc857fade2df24db9f589508259727b165c992a673ef9e3ebb52514d5c","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x35590a990852bbc01f0a96d5b69ed4978c2076137b88338e4c5b8d47f6599079","transactionsRoot":"0x366c8b3f54810ef9911d6ff0837d1b9a0ac85366a54667a3c794deb32cecd831","receiptsRoot":"0xd88ac646b0c157b520dfe357e962351454e98c30b6ff0645a2c61157507278b2","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000100000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000800000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x25","gasLimit":"0x1c9c380","gasUsed":"0xc756","timestamp":"0x691f2097","extraData":"0x","mixHash":"0x89964fd870c16f2d2204431e8f368a4d344a7c09fd096a7554a9fbe813476273","nonce":"0x0000000000000000","baseFeePerGas":"0x9edb3e","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x26","gas":"0x11354","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x40c10f190000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc0000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xda4d31d0f1f8f1c95acac28a944e19273f7ed2947f060fe22ffe230b21302822","s":"0x67109b45afe80c25d72336a6501a57a44c231dcd253a9fdf3067b46b2a29bdc9","yParity":"0x1","v":"0x1","hash":"0xce59ab76e1bd72a6d41a827661c96c69b18a4f7f9843ed1869f43e7849304acc"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x652509a9f45b9d034e624899a118ad13718d35c548db9919f0811d5d688fd429","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x1fa88bee358adda083b62db9985cf96b6a888715a1452d8e7a812647a9e2bb72","transactionsRoot":"0x09d0c1c07e15745e5c24608eba75485987de52cf1f76eb54c971a168dd63443a","receiptsRoot":"0x48a5ad4ba0e5119fe7410ba3dc9cc2c11bb870f349e97f7841a5b207405787dd","logsBloom":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000080000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180000000000000000040000000000000000000000000000000000000000000000000000000000000000004000000000002c000000000000000000000000000000000000088000000000000000000001000000000100000000000000","difficulty":"0x0","number":"0xb","gasLimit":"0x1c9c380","gasUsed":"0x265553","timestamp":"0x691f207d","extraData":"0x","mixHash":"0xd23ce86f8eb20bf11178d53e755c36623b4d4d9a15ae5181dbdcc484ed03452b","nonce":"0x0000000000000000","baseFeePerGas":"0x11ae6024","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x7","gas":"0x31d552","maxFeePerGas":"0x364d20e9","maxPriorityFeePerGas":"0x1","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","value":"0x0","accessList":[],"input":"0xc9c653960000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x78843747f1eb4393104e978e9b64c0d25302d6ff989936a854a42c586f7fc784","s":"0x313dcf74288509006fdcaf794e14bd796a5d843b67c34a4ee02b61801516c583","yParity":"0x1","v":"0x1","hash":"0xddcb6bd466c4e8c65c16407446a7f79b22abf36171b98f1bdf77eaa3c9ae2fe1"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xc892f62dd5cb28c73d6fe31e5dc3ff99d94a024f5f614ab589b42e26718e9315","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x190a1d74da68571adf20460036e28319eaa1af2a63667a1722cbe3aacef69355","transactionsRoot":"0xc631d541ec6cf313b10a97a0df3a50fc3415e9555194097986c56246b85e9c9d","receiptsRoot":"0xe1f335df43f28dd0214dd282944fba6050e4df0b879ce4e99fdf498f8c4dbb6d","logsBloom":"0x00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000008000000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042800000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x39","gasLimit":"0x1c9c380","gasUsed":"0xc821","timestamp":"0x691f20ab","extraData":"0x","mixHash":"0x636d647ed028d9069b59b1d7f3649fc9cd2e23aa6a253d9c46414fa00b985095","nonce":"0x0000000000000000","baseFeePerGas":"0xb178f","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x31","gas":"0x124b0","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc0000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x9e57dc5d39c926cbae5f9134b4f48e50012bd99cf6940f5d890391ecdeae240b","s":"0x338e775c03c34b41667107323fc4433fbd6989b08bf2818229c4fefda3938b81","yParity":"0x0","v":"0x0","hash":"0x76eac991af1ccd8e8327775221b7985c78e2c7c4b57da06dea246f8bf23d3d15"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x9f9d30f44dec9dbc845ea1174d8ffc543059a7d8b1e3677cf74ae86975adf983","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x9fc7d29fd86fe464104c67a4575b86fd3b72ff330a8359100560f2b3d176369f","transactionsRoot":"0x4a4f6919946b847098f6923a75e87aff5c4b1f50784159050158681620922bde","receiptsRoot":"0x850e9f2f6be37cbc134ed4ab59c891faa0180cd9b29c2290ba6e5b9ce26fb204","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x12","gasLimit":"0x1c9c380","gasUsed":"0xa2fa3","timestamp":"0x691f2084","extraData":"0x","mixHash":"0x3e94534f2b4c1dba5e7211d6efdde990b30e282141b4224d544ab373a99887a9","nonce":"0x0000000000000000","baseFeePerGas":"0x7af3946","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xe","gas":"0xd6b7b","maxFeePerGas":"0x118e7ef9","maxPriorityFeePerGas":"0x1","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","value":"0x0","accessList":[],"input":"0x000000000000000000000000000000000000000000000000000000000000000060808060405234601557610b15908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c63f88cf6db14610024575f80fd5b346100e557366003190161010081126100e5576060136100e55761004860e0604052565b60043561005481610135565b60805260243561006381610135565b60a05260443561007281610135565b60c05261007d610146565b610085610153565b60a4359160e435919060c43567ffffffffffffffff84116100e5576100e1946100b56100bd953690600401610160565b9490936103dd565b60408051948552602085019390935291830152151560608201529081906080820190565b0390f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761011f57604052565b6100e9565b604051906101336080836100fd565b565b6001600160a01b038116036100e557565b6064359061013382610135565b6084359061013382610135565b9181601f840112156100e55782359167ffffffffffffffff83116100e5576020808501948460051b0101116100e557565b67ffffffffffffffff811161011f5760051b60200190565b604080519091906101ba83826100fd565b6001815291601f1901366020840137565b634e487b7160e01b5f52603260045260245ffd5b8051156101ec5760200190565b6101cb565b6020818303126100e55780519067ffffffffffffffff82116100e557019080601f830112156100e557815161022581610191565b9261023360405194856100fd565b81845260208085019260051b8201019283116100e557602001905b82821061025b5750505090565b815181526020918201910161024e565b6060602091604081019360018060a01b031681526040838201528451809452019201905f5b81811061029d5750505090565b82516001600160a01b0316845260209384019390920191600101610290565b6040513d5f823e3d90fd5b908160209103126100e5575180151581036100e55790565b908160209103126100e5575190565b6102f86001610191565b9061030660405192836100fd565b6001825281601f196103186001610191565b015f5b81811061032757505050565b60405190608082019180831067ffffffffffffffff84111761011f576020926040525f81525f838201525f60408201525f60608201528282860101520161031b565b5f9103126100e557565b60206040818301928281528451809452019201905f5b8181106103965750505090565b825180516001600160a01b03908116865260208281015190911681870152604080830151908701526060918201519186019190915260809094019390920191600101610389565b9592946103ed9192946080610a24565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc984036105fa576040516370a0823160e01b81526001600160a01b038681166004830152821695906020816024818a5afa9081156105d8576104a8916020915f916105dd575b5060a051909890610474906001600160a01b03165b6001600160a01b031690565b604051636eb1769f60e11b81526001600160a01b038087166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f916105a9575b50945b8587116105a25786925b61050884966104d46102ee565b95811561059a5750915b6104f86104e9610124565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6040830152606082015261051b826101df565b52610525816101df565b5060a05161053b906001600160a01b0316610468565b803b156100e557604051637d10d11f60e01b8152915f9183918290849082906105679060048301610373565b03925af19081610580575b5061057b575f90565b600190565b8061058e5f610594936100fd565b80610369565b5f610572565b9050916104de565b85926104c7565b6105cb915060203d6020116105d1575b6105c381836100fd565b8101906102df565b5f6104ba565b503d6105b9565b6102bc565b6105f49150823d84116105d1576105c381836100fd565b5f610453565b7fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632840361077f576040516370a0823160e01b81526001600160a01b038681166004830152821695906020816024818a5afa9081156105d8575f91610760575b50956106bd602061067461046860c05160018060a01b031690565b60a051610689906001600160a01b0316610468565b604051637f6486b960e11b81526001600160a01b038088166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f91610731575b501561072a5760c0516106f191602091610474906001600160a01b0316610468565b03915afa9081156105d8575f9161070b575b505b946104bd565b610724915060203d6020116105d1576105c381836100fd565b5f610703565b505f610705565b610753915060203d602011610759575b61074b81836100fd565b8101906102c7565b5f6106cf565b503d610741565b610779915060203d6020116105d1576105c381836100fd565b5f610659565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce84036108ee576108085f6107b26101a9565b6107d76001600160a01b0385166107c8836101df565b6001600160a01b039091169052565b60c0516107ec906001600160a01b0316610468565b60405180809581946307ad377d60e11b83528c6004840161026b565b03915afa80156105d857610823915f916108cc575b506101df565b5194610887602061083e61046860c05160018060a01b031690565b60a051610853906001600160a01b0316610468565b604051637f6486b960e11b81526001600160a01b038087166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f916108ad575b50156108a7575f19946104bd565b5f610705565b6108c6915060203d6020116107595761074b81836100fd565b5f610899565b6108e891503d805f833e6108e081836100fd565b8101906101f1565b5f61081d565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c696420746f6b656e20736f7572636560601b6044820152606490fd5b1561093157565b60405162461bcd60e51b815260206004820152601960248201527f696e636f72726563742063616c6c696e6720636f6e74657874000000000000006044820152606490fd5b91908110156101ec5760051b81013590605e19813603018212156100e5570190565b356109a281610135565b90565b903590601e19813603018212156100e5570180359067ffffffffffffffff82116100e5576020019181360383136100e557565b156109df57565b60405162461bcd60e51b815260206004820152601b60248201527f475076323a20666f7262696464656e20696e746572616374696f6e00000000006044820152606490fd5b90610a45610a3e610468610468855160018060a01b031690565b301461092a565b5f5b838110610a545750505050565b5f80610a69610a64848887610976565b610998565b6020610a76858988610976565b013590610a91610a87868a89610976565b60408101906109a5565b929091610ac1610ab061046861046860208d015160018060a01b031690565b6001600160a01b03831614156109d8565b836040519384375af115610ad757600101610a47565b3d5f803e3d5ffdfea2646970667358221220817f6f9e36588d53ed578c1391c22dae49a1f153afcbf598beefca254298a7c864736f6c634300081a0033","r":"0x885288651fac45c7ee84561114e953bc8970bfead244c75b5da9033e60056699","s":"0x94f53c3b01861ef0578cf4ef4e8fc96670fb0b6710dff6e9497b2bc001ceb3c","yParity":"0x1","v":"0x1","hash":"0x394a4a45ca2967c534f2a80d87df9fadcd9c632e5ee01937f063f77802aa6dd2"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xfab0778ab305fb66e0e8aad973415257fcf066bdc03b871588c2ab20f0121cff","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xafac9479495d4da286388d301b79faa8345c5623c9ceda6d491c64b2b8a356cb","transactionsRoot":"0x410285882a505fbd2423dfb7b66a69db214526bd7389bab4c7b8940aea53b6ca","receiptsRoot":"0x75e69a66c8ac46323f466ad0a709fa3fafc1b7b6cc9c37ab2ff559d6dba453c8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x2a","gasLimit":"0x1c9c380","gasUsed":"0x87d5","timestamp":"0x691f209c","extraData":"0x","mixHash":"0x0e10f080355cff45a6303e2e905e3d920094eeadb10bf96ce14caf712371c88f","nonce":"0x0000000000000000","baseFeePerGas":"0x51aa7b","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x28","gas":"0xbb9d","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x56bc75e2d63100000","accessList":[],"input":"0xd0e30db0","r":"0xe0a3ec1ce720ffe1ced14f9c53d04ddcc5731012be673c2a24bc61b0ed6aaaf4","s":"0x8fab0b6a54f94bab94ac1a23545fea44ac2bc6814f3a3aaca4ee243ce607017","yParity":"0x1","v":"0x1","hash":"0xe6ca8ea29e65d367eefb4752b6197a533d663f57a1c52c32a5a5f5d5d3652255"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x858a043b6c8f6bceb4d4fff2388e0755ef42121f523bc574f6abc209144eb97d","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xcf2ceddace07703c6db91746f10c1c633a737795cf7aa95856d4396c40ad24a6","transactionsRoot":"0xc37b4d256088675c8fb3595fdb76af14ea6005c1c3a375eeefbe5e4250e06cc7","receiptsRoot":"0x1a067aa6fc1d5074f8d9750325dcc2d0a701979faf9c066561ad35e72c71cbe9","logsBloom":"0x00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000008000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x3b","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20ad","extraData":"0x","mixHash":"0xcd8ad788a92462b1a949fe034bb5e7a06e6d9a68d1904fa902ce1d7b2c73ad7f","nonce":"0x0000000000000000","baseFeePerGas":"0x88029","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x33","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x40c10f190000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc0000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xa503c2913560d0a17c9750e3540d31d42778ffc3d143657d5952c727b1b4e5c8","s":"0x2e724af29466b1ec63df38083ce1a26aa03a9f51650f993660839d2a219c6fa9","yParity":"0x1","v":"0x1","hash":"0x58862088592acb147160957c2b97a5fd105116e7870fb258d1ab85bf3a128830"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x24814b8d862cac39d484619c38ce26a5b64e771e8f137cfffd727d4612fdea68","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x6a568e50607eaec9e3fb7467648b72611dc6ad7bf7e8ea16ea7ae52f7ce345f1","transactionsRoot":"0x136949843a8dc875967554cc527c7560418d27a792b8bdfac2b9ebb42ed37a7c","receiptsRoot":"0x9f17f51ad8e7beed4dcaf5ae8dae5cfb22e4b3920bf622338857b51285f376c2","logsBloom":"0x00800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0x50","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20c2","extraData":"0x","mixHash":"0x475cc9e7afd2315505764dc80497ba47945769187bb8b2c6d589bcd34afd1451","nonce":"0x0000000000000000","baseFeePerGas":"0x8509","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3f","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x40c10f1900000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f0000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xb56a3c0221dd813d2c56d6ace737dde6e81cdd5265897bd937a589ab07145156","s":"0x7af8ed61309f71bfeeee9d16bbb5f6f26a083c43edaefcb4c0d208c2997105c7","yParity":"0x0","v":"0x0","hash":"0xa1428cd3185fa136a97ab999caa5009ae0f19b4ae4c85067bdff16e3ac7aea99"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x7cd3f1a549ada3ae687c6c422157b02bd932bc769ff3ded1157eefb1519a7fb4","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xfef317827bfbf35c5f5d8cd2ddf01bb505e9f498bb4252cc3a630b1eebab1519","transactionsRoot":"0x3887ee81dcae4f7ea0e21877933764fee48d691cd607dc844682b449922a352f","receiptsRoot":"0xc72da58546c54b579a2af25df17c324780d863d73e9ae7809e6694685b51cefb","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000400100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000400000000000000000000000000000000010000000000000000010000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x30","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20a2","extraData":"0x","mixHash":"0x262356b57468410578871ab6ded9c3168d3d553dac959baf5131acd038c7a94e","nonce":"0x0000000000000000","baseFeePerGas":"0x24bfd7","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x9dc667284b4a16506e872ef4a28b5b86f80d07c023afb69db3ec6441414933e4","s":"0x388391edea27f0ad1e6618098472e63442b2d79df24dfa8a76aef2d8317ae5f","yParity":"0x1","v":"0x1","hash":"0x7f40a96c52e6605e11a2a298f321a53e3da97b064c67fb8dfaee084e71e87449"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x05617381463cc277caee615ffb878a0bf85003e4b42bf37c6cf0c1cb3bd55d4f","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x96c5aea03f9d9fee3f5e065855aeb50aa6aeaae65fe5a3e4983c7f374c079c7e","transactionsRoot":"0x2192c660b5a48726de18dfc50f586aba68ff3c19464ee4f8914d85deeb8e11dd","receiptsRoot":"0x2219a44b3c555a626a70f2cb59521ccc482fc539e9d746d9dc92db2266dc3530","logsBloom":"0x00000000000020000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000004000000000000010000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x59","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20cb","extraData":"0x","mixHash":"0xf29d9ebc76b63c52ed31dad17c11ff239ef3566ef1fced7370ab36fa04b59290","nonce":"0x0000000000000000","baseFeePerGas":"0x282c","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x9aca17466896b54216d1a374dcd38aff6207e8e93213cc21c39fc99fcf5b8f86","s":"0x5356a5bc0beff9786bd40e3f8fd4fbcfb4881f94fdb04c0dff1ab83132e6379c","yParity":"0x0","v":"0x0","hash":"0x0279a86985d2ca8f01dcf18a2d7ecfc58f98f29308d943eec438a60a363ab04c"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x7a26bd9c9cd25dbde431758b61b6315b5b4c1a15c9c3a75074fb163a4182b88b","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x9c8eaf493f8b4edce2ba1647343eadcc0989cf461e712c0a6253ff2ca1842bb7","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x3","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f2075","extraData":"0x","mixHash":"0xff4f5ecda96a429a08ec2cee169757bea18935e72f4973bcb510d582206481bf","nonce":"0x0000000000000000","baseFeePerGas":"0x2da282a8","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x81a04ca6c617862b6154463eab64ffb846e683568601f66063c06b4581229435","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4377dc9fff422ab06c673fa462ed3241521dd7cb8ec438e8cc9860ca7af56e90","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5d","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f20cf","extraData":"0x","mixHash":"0xb5b924ff6fde2254276933e5741a83aa0c2b98235d426029d2495bf28fbcf14a","nonce":"0x0000000000000000","baseFeePerGas":"0x1793","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x36b7881a5b3b7d5a428ea29ddb743b3ffdee61f090ae11ebf8355cb48821a6fc","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb4b16430e4e38972f3a6e748b96fda5f91fd5c4771f157de48e2e2c91c7e6d7c","transactionsRoot":"0x62e2a5a8b2bf7296a2e090956023ec00a882f1df8bc69a58cf7c8497c4cbb3ab","receiptsRoot":"0x7f2109f80c5db08cc8eb2226931d057d23064a67ec8a61cfcead1d61cf128110","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000200000000000000000000000002000000000000000000000000010000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x1a","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f208c","extraData":"0x","mixHash":"0x9411bba597067afcbada4db3ae21554f2c75b531b697b93a338ebf25eead6430","nonce":"0x0000000000000000","baseFeePerGas":"0x2aecb3a","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1e","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x13a37be2d5ad399e9cf9627a4519c794d1e8f445635c26c08eb4ee42d3ada3c7","s":"0x799319792dbc6ac259859ceb091489f900e9b717096dbdf59801353b23b54371","yParity":"0x1","v":"0x1","hash":"0xd780e8b5352a6f18aa2a19ad5fe527d564fbd2b9d98d3a9ced9d17ff63de4021"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x429eded5a842cd910467a91428c9799b2250abea568ac2134c110269ca77ee01","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x9c8eaf493f8b4edce2ba1647343eadcc0989cf461e712c0a6253ff2ca1842bb7","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x2","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f2074","extraData":"0x","mixHash":"0x53f88b9c7a84bc5456274c16a423f60d511b2b264eeac2c11552125f5299f569","nonce":"0x0000000000000000","baseFeePerGas":"0x342770c0","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0xb79ce48589d16f9cfefa5b8a42e20ff95b28ac9216e19603fb0feed1f53d7447","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x7644179554b3c87778fd0648b583900574ed68526ca790b9b53b678038978cb5","transactionsRoot":"0x6316b09925bce92c85d5ab101868b1996cc6bd63f18a91da45830b2288f0480e","receiptsRoot":"0x596aa1f14894c76da7be06695947088d524963d5e1a02373a35430ce7532dcc6","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x4","gasLimit":"0x1c9c380","gasUsed":"0xb3ee6","timestamp":"0x691f2076","extraData":"0x","mixHash":"0xc643ad2cf5a9e6aff0332654be21d62eabfcc8fc9bccc542fb2f591280056ebe","nonce":"0x0000000000000000","baseFeePerGas":"0x27ee3253","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0xe9e91","maxFeePerGas":"0x5b450551","maxPriorityFeePerGas":"0x1","to":null,"value":"0x0","accessList":[],"input":"0x60e0604052346103dd576040516100176040826103e1565b600d81526c2bb930b83832b21022ba3432b960991b602082015260405161003f6040826103e1565b60048152630ae8aa8960e31b602082015281516001600160401b0381116103105761006a5f54610404565b601f811161038e575b50602092601f821160011461032f57928192935f92610324575b50508160011b915f199060031b1c1916175f555b80516001600160401b038111610310576100bc600154610404565b601f81116102ad575b50602091601f821160011461024d579181925f92610242575b50508160011b915f199060031b1c1916176001555b60126080524660a0526040515f905f54918161010e84610404565b9182825260208201946001811690815f1461022657506001146101dc575b610138925003826103e1565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526101ac60c0826103e1565b51902060c052604051610b3a908161043d82396080518161052b015260a05181610903015260c051816109290152f35b505f80805290915f80516020610f778339815191525b81831061020a5750509060206101389282010161012c565b60209193508060019154838588010152019101909183926101f2565b60ff191686525061013892151560051b8201602001905061012c565b015190505f806100de565b601f1982169260015f52805f20915f5b8581106102955750836001951061027d575b505050811b016001556100f3565b01515f1960f88460031b161c191690555f808061026f565b9192602060018192868501518155019401920161025d565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610306575b601f0160051c01905b8181106102fb57506100c5565b5f81556001016102ee565b90915081906102e5565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061008d565b601f198216935f8052805f20915f5b868110610376575083600195961061035e575b505050811b015f556100a1565b01515f1960f88460031b161c191690555f8080610351565b9192602060018192868501518155019401920161033e565b5f80525f80516020610f77833981519152601f830160051c810191602084106103d3575b601f0160051c01905b8181106103c85750610073565b5f81556001016103bb565b90915081906103b2565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761031057604052565b90600182811c92168015610432575b602083101461041e57565b634e487b7160e01b5f52602260045260245ffd5b91607f169161041356fe60806040526004361015610022575b3615610018575f80fd5b610020610a7a565b005b5f3560e01c806306fdde0314610779578063095ea7b31461070057806318160ddd146106e357806323b872dd146106135780632e1a7d4d1461054f578063313ce567146105125780633644e515146104f057806370a08231146104b85780637ecebe001461048057806395d89b41146103a6578063a9059cbb14610331578063d0e30db01461031e578063d505accf146101145763dd62ed3e0361000e5734610110576040366003190112610110576100d96108b3565b6100e16108c9565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101105760e03660031901126101105761012d6108b3565b6101356108c9565b6044356064359260843560ff8116809103610110574285106102d95760805f91602093610160610900565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101dd60e082610853565b519020604051908682019261190160f01b84526022830152604282015260428152610209606282610853565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102ce575f516001600160a01b0316801515806102c5575b1561028f577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b50828114610247565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b5f36600319011261011057610020610a7a565b346101105760403660031901126101105761034a6108b3565b60243590335f52600360205260405f206103658382546108df565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610ae583398151915260203392a3602060405160018152f35b34610110575f366003190112610110576040515f6001546103c68161081b565b808452906001811690811561045c57506001146103fe575b6103fa836103ee81850382610853565b60405191829182610889565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b808210610442575090915081016020016103ee6103de565b91926001816020925483858801015201910190929161042a565b60ff191660208086019190915291151560051b840190910191506103ee90506103de565b34610110576020366003190112610110576001600160a01b036104a16108b3565b165f526005602052602060405f2054604051908152f35b34610110576020366003190112610110576001600160a01b036104d96108b3565b165f526003602052602060405f2054604051908152f35b34610110575f36600319011261011057602061050a610900565b604051908152f35b34610110575f36600319011261011057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610110576020366003190112610110575f80808060043533825260036020526040822061057e8282546108df565b90558060025403600255816040518281525f80516020610ae583398151915260203392a36040518181527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2335af1156105d857005b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b346101105760603660031901126101105761062c6108b3565b6106346108c9565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610ae5833981519152929185600182016106be575b5050835f526003825260405f2061068e8682546108df565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106c7916108df565b5f85815260048452604080822033835285529020558585610676565b34610110575f366003190112610110576020600254604051908152f35b34610110576040366003190112610110576107196108b3565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610110575f366003190112610110576040515f80546107988161081b565b808452906001811690811561045c57506001146107bf576103fa836103ee81850382610853565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210610801575090915081016020016103ee6103de565b9192600181602092548385880101520191019092916107e9565b90600182811c92168015610849575b602083101461083557565b634e487b7160e01b5f52602260045260245ffd5b91607f169161082a565b90601f8019910116810190811067ffffffffffffffff82111761087557604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361011057565b602435906001600160a01b038216820361011057565b919082039182116108ec57565b634e487b7160e01b5f52601160045260245ffd5b467f00000000000000000000000000000000000000000000000000000000000000000361094b577f000000000000000000000000000000000000000000000000000000000000000090565b6040515f905f54918161095d8461081b565b9182825260208201946001811690815f14610a5e5750600114610a01575b61098792500382610853565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109fb60c082610853565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a425750509060206109879282010161097b565b6020919350806001915483858801015201910190918392610a2a565b60ff191686525061098792151560051b8201602001905061097b565b6002543481018091116108ec57600255335f52600360205260405f203481540190556040513481525f5f80516020610ae583398151915260203393a36040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122024ac75ee9edc4ac63c67f4de95b97766973b0fda8bfb850f9561a95f37fe1b1c64736f6c634300081a0033290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563","r":"0x38a9c8cf1bc5a0da2186fc8b2f64499cf39af9861c2cdb089140158b121865df","s":"0x2c4dfa61fb161c0ff0d8eb6adf6abe69fe2a267bde02caf273be2cd108f511cb","yParity":"0x0","v":"0x0","hash":"0xb09d315cde0ff3d1de59fbcadab9e8a08684bd62538ff85b9dbce0a7c50c9f21"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x6dce8799af2fbd91eddb8ab9a82d2ad89b1bfd11c9e6619f1cf67f98a3e6e0c9","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x079addb6e7b685b0e67c9a7ace03c205a8eca8234fa8c27377526465af8a28a7","transactionsRoot":"0x7b6f3fada6b8a52eec0c4f05e0a3905ab3852a8ea334aeceaf0ac892fff8daa1","receiptsRoot":"0xadf0be6ecbb91d4a20d91a17b5ddaca424747c003929aa6de5972ea1d5c5598b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000400000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000002000000000000000000000000000000000000042000000200000000000000000040000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x47","gasLimit":"0x1c9c380","gasUsed":"0xc821","timestamp":"0x691f20b9","extraData":"0x","mixHash":"0x29f7f28772bef44c8541db5dab6b121621f52ad95bf8cb5ca5a965cc2ea54d3e","nonce":"0x0000000000000000","baseFeePerGas":"0x1b8a3","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x39","gas":"0x124b0","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x522ccc2247eb480ad0ed6cbad19490ea3ce99c70417c01d88773fe7ea4392a39","s":"0x4f05f0d4359b254afc54fa187160c6d6d656cbeea599a0c755c00fa1e02ab725","yParity":"0x1","v":"0x1","hash":"0x1700804a59d396a58d1d86ab9515ccee3d95c27e2808cf72e573af096954dd2b"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x04b64147df7c76a7c2deac8641b29cfe99e6b5a40b78efa41db2b442e823d2b0","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x24aa8cc12b3f6f27fa045cf9068f1002661fc292ef9f3c9373596000edc09106","transactionsRoot":"0x080f58cba15ba98c471f403747e0d1f26f078cec0783281ff6ba166ec1c05c1b","receiptsRoot":"0xd1404a2c34ac9ae066bf0eaad209d2965518d00ae02fdb8a4820ab0c08de0614","logsBloom":"0x00000000000000001000004080000000000000000000000000000000000001000000000000000000000000000000080000000000000040200000800000000001000000000000000000000108000000000000000000000000000000000000080000000040020000000000000100000800000000000008000000000010000000001000000088000000000000104000000000000000000040080000000200000000000000000000200000000000000000000000000000000000000000000000000000000062005000300000000000020000000000002000001000000000000020000000000400000000000000000000000020000000000000400000000000000000","difficulty":"0x0","number":"0x14","gasLimit":"0x1c9c380","gasUsed":"0xbb0d4","timestamp":"0x691f2086","extraData":"0x","mixHash":"0x5cbab05111e2564f8451a0184c55f771b414763a1ed5ad244acced77af595d20","nonce":"0x0000000000000000","baseFeePerGas":"0x5ecaf17","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x10","gas":"0x1145c","maxFeePerGas":"0xd888759","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af162270000000000000000000000000000000000000000000000008ac7230489e80000","r":"0x36811f26d7375ba138a9e5e00796c154f06cf943671e6aa44ce2a9a95c607d4d","s":"0x904a0f29ae396dd9edfc7cfd10d5ac2e1091c439926fbbc3fdcfe00c80082d4","yParity":"0x1","v":"0x1","hash":"0x182e8902b88de991ec9845d1e85ed045659b38b3577fcb383f2b316f9729254b"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x11","gas":"0x1249b","maxFeePerGas":"0xd888759","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0xa9059cbb0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af1622700000000000000000000000000000000000000000000000000000004a817c800","r":"0x4ed930eb25b4a0514fac28cf7b185512c3f00506ea5e2c4c108ce9f182d49104","s":"0x53175c7bd7565d45fc2f4f6912412513a138149e61d5bfebf2e37fd16465f467","yParity":"0x0","v":"0x0","hash":"0xdfdf5413384c30392203647536f2cc001d6bc9b36833cc720a68ea388f710655"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x12","gas":"0x333f7","maxFeePerGas":"0xd888759","maxPriorityFeePerGas":"0x1","to":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","value":"0x0","accessList":[],"input":"0x6a627842000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x92d1dccd371ec2f4396e46ec51c32b266bf151ae553cf239c2cae05772b6ca91","s":"0x77d16383284b48473c5d486d81bd1ab661da308d5ccc5d207aef8da79e48f0da","yParity":"0x1","v":"0x1","hash":"0x2d1fa462ceb17257b0ae835dedfaa0b79ce2e5d5fdbd5723f4f3b26f3018b4c3"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x13","gas":"0x1145c","maxFeePerGas":"0xd888759","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b600000000000000000000000000000000000000000000000008ac7230489e80000","r":"0xcc534b0291f4f1e61b6149584f07c57eda73ccaf593226d60a9e39135d81021c","s":"0x41c51651280ceb30413dd9fa99c38918b5c21c2d05ec2d06b57612d4baec3470","yParity":"0x1","v":"0x1","hash":"0x93ea346814f820ae04bef4203efdee5094d437888beccab0d3c330e141467bbd"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x14","gas":"0x124e1","maxFeePerGas":"0xd888759","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0xa9059cbb000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b6000000000000000000000000000000000000000000000043c33c1937564800000","r":"0x9c27e6aee87e4dc0922048b7a3b867d5cc0b30031ebb29ca6ac26f08e3621cdd","s":"0x26aeb147da6d8461550c7e6613997f3958cee44f59d4e3a65a5fbe8cbc845cdd","yParity":"0x1","v":"0x1","hash":"0xe591ade6d5edfa58862be01f0e238d9477200791ba9bd1df59a562a9e1635050"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x15","gas":"0x34050","maxFeePerGas":"0xd888759","maxPriorityFeePerGas":"0x1","to":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","value":"0x0","accessList":[],"input":"0x6a627842000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x3f8dd1f37faa33fcf7f7b43764ae748b83bc95c046fa7eb8626c73a31f2ef50f","s":"0x62edb292de7a05edcc0b5e7e497d4c709796533aecd827a9bd1985bbc05c9c02","yParity":"0x1","v":"0x1","hash":"0xb6ddaf3ccd0bc15d081d0d7bdf8672752ec4e0fb078ce9938ed011301a0b94d2"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x16","gas":"0x1249b","maxFeePerGas":"0xd888759","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0xa9059cbb00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d00000000000000000000000000000000000000000000000000000002540be400","r":"0xcfb98109e63b51007d499d3f9a34325007bceb18119627f3ee62a4aa9eeff03f","s":"0x24cf9f50873c3c2d301ce8e5c2074f8c27942b66f42e5a81e33f51545b4c19c2","yParity":"0x0","v":"0x0","hash":"0x036f7b97bc38df001216f9d330adafbb75d510805b10d4605b3239d1e114b377"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x17","gas":"0x124e1","maxFeePerGas":"0xd888759","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0xa9059cbb00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d00000000000000000000000000000000000000000000021e19e0c9bab2400000","r":"0xdbfaf04e46f92ac392a09228520f4401e711629dcc106df36aab4de7a0f305d2","s":"0x24ed2c15694e1a3143db29e59375733750f7ea87037967f10fca336bf2539d77","yParity":"0x0","v":"0x0","hash":"0x7dc780834553766c60b0e9637071a198f11d5abdcc5df92cc208fca60d7d7097"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x18","gas":"0x336e7","maxFeePerGas":"0xd888759","maxPriorityFeePerGas":"0x1","to":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","value":"0x0","accessList":[],"input":"0x6a627842000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x3f56a33b092933dfb7476e57ef0d63db35f0b6a34c75f6d54c6b7c4c73521733","s":"0x3d61c86093eb52bf957abf916757598a181ca3928e27048b8d7d184c8ff4825f","yParity":"0x0","v":"0x0","hash":"0x36ba8284c9556f9534e1309c285c80d630b4c7458278f50ea20f1aa267dd48ee"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xd0b5d0b086a51ed3cafffbe7fb9d54a2b0a93eb63c6ab84ae38a5efd8411c13a","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb0f6eaedc0e76e2c05805f5f43a1ee945eae9f338657dd89ec812dc2fb063bc1","transactionsRoot":"0x5c951ede7a5f9fa63f894f8b33570e52c9240abe8cda7fca702db8ca2618c781","receiptsRoot":"0x5c70a9c3966a63177424e87800732ce1ea2222c2210ffd1eeddc0de56c0b4eac","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x8","gasLimit":"0x1c9c380","gasUsed":"0x3074f7","timestamp":"0x691f207a","extraData":"0x","mixHash":"0x4d85ae82d8a0d6a4e57acb800239787c3dfbec1dfdf0ad41a537b42f6e298264","nonce":"0x0000000000000000","baseFeePerGas":"0x17edb8f7","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x4","gas":"0x3efe74","maxFeePerGas":"0x364d20e9","maxPriorityFeePerGas":"0x1","to":null,"value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b506040516138c63803806138c68339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055613863806100636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a2e74af61161005b578063a2e74af6146100fd578063c9c6539614610132578063e6a439051461016d578063f46901ed146101a857610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063574f2ba3146100e3575b600080fd5b6100956101db565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100956101f7565b610095600480360360208110156100dc57600080fd5b5035610213565b6100eb610247565b60408051918252519081900360200190f35b6101306004803603602081101561011357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661024d565b005b6100956004803603604081101561014857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661031a565b6100956004803603604081101561018357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166109ad565b610130600480360360208110156101be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109e0565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061022057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103b757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106103f45783856103f7565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff821661047e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561051f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b60606040518060200161053190610aad565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660408181527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087811b821660208581019190915287821b9092166034850152825160288186030181526048850184528051908301208551868401207fff000000000000000000000000000000000000000000000000000000000000006068870152309283901b6069870152607d8601829052609d8087018290528551808803909101815260bd8701808752815191909501209290935273ffffffffffffffffffffffffffffffffffffffff808a1660dd87015280891660fd87015261011d860182905261013d8601849052821661015d8601529251949550919390927f2577a905931c419496123816308a518e438af606bb12c033630222f97ff3bb1e919081900361017d0190a1828451602086016000f5604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152888116602483015291519299509089169163485cc9559160448082019260009290919082900301818387803b15801561070f57600080fd5b505af1158015610723573d6000803e3d6000fd5b5050505086600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060038790806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e989600380549050604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a350505050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612d7480610abb8339019056fe60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820693694dcfc2b95bd815ab65fb808b255b96283011e586ba90a9d17f948e116f364736f6c63430005100032000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0xe01d86337a8f72f317e849b7e2581093e421e92279f0d99eacc0c0d13402a248","s":"0x5bf03bd8e9e5014d2f61f940444a69974b2763adb13a044dfad456fac8e17386","yParity":"0x1","v":"0x1","hash":"0xa797f54edeacb6679e753deeecf7c4266236e65cb906bb1ff5dac42c685def32"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xbc61f7d89270676e104b09eb6ba1c13290e10afdd2282a03f238c18031721934","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x050c47b75dc386d6df6a7e23ec5e93683c7486fa9746fcccfbc67039cdffead3","transactionsRoot":"0xad240b50c932d27c1482d2ce830a3a456915403decd2828ad6eb7eb32dae8232","receiptsRoot":"0xd1cb329276f60cb64501ebe7f9919c04c001f5ef5d056e5e633d3b6804f1e71f","logsBloom":"0x00000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x33","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20a5","extraData":"0x","mixHash":"0x8fb91289b50cbee717da8c6cbc26d6491d13e9dcc081221df22530093548da89","nonce":"0x0000000000000000","baseFeePerGas":"0x18a677","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2e","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x40c10f1900000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a650000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x4a4fb78c58438583de3f745d3e9bac5d4f316b45898f2d1eae877ccd16255c6e","s":"0x6b8d7eebc9498ef53e1119f7b626a3ea130dff4a6cdb45d3129770ccf4378432","yParity":"0x1","v":"0x1","hash":"0xb1e9e103f751f84f6a3b0baa858bf0e40c4369460efe79a85a3293d7fe0dba77"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x40e40d623352113abcd2c11db7102eca963a8ac4f9270d63bc0b54896b4ff260","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x389426cbc144930bd27680e32d57b33effd21826f462a5e5cc8b5612d3ad5430","transactionsRoot":"0x21157dabb543e95da2c4f952be558b4b28a3eebef10406a16e4d311aae9bb3ac","receiptsRoot":"0x4f16971873d628217658fb2a521dcd030c57a8eb54e2bded932a65fbfa68972f","logsBloom":"0x00800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000400000008000000000","difficulty":"0x0","number":"0x4f","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20c1","extraData":"0x","mixHash":"0x58a4fc56668798c97de4dbc7742e65486fff42ef5a723589190222938738c55e","nonce":"0x0000000000000000","baseFeePerGas":"0x97f7","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3e","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x40c10f1900000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f0000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x50a517a7ad5121347d13343e47e31db627dc9fa562a3d76576812ae15997d4cc","s":"0x5296632e983ec453488fcee5c38cf417f006ede168e9d21ce8f185ca28b7e3a","yParity":"0x0","v":"0x0","hash":"0x242601f1833a87a7a34812e01731754b328b475cfd28d1bbe127bb9922ae55fe"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe907c84e8881dea03a0cb85c039326d226c7a1101d66ad377d22555961cf4cd8","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xdd3aedde325f26cf4a0fdd3295e79e6baad655512a89e279a9f0ea51cb3216f7","transactionsRoot":"0x8e51dab5884f3f071a9425558dedb29ba337a8f14f9e0040d61909a4f967a455","receiptsRoot":"0xe9a548dfd63734ef33411bf6ea3e2b82a9419c2eb07a551daf0c0233d69650c9","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000200000000000000000000000002000000000000000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x19","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f208b","extraData":"0x","mixHash":"0x65a100f3763088c866c372311af4f15626c1c5b485841eeb110e4daff6ea8394","nonce":"0x0000000000000000","baseFeePerGas":"0x3108fca","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1d","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x1122c874891590bb82994ca028b21cbcd527bf8f46a493b856f0b5fcc76b4b19","s":"0x32a06c4aac4f65a43a4fd478cd9ee9d66aca564478d15f9aefb34530cb027720","yParity":"0x1","v":"0x1","hash":"0xeefc079729e4ba97111e1dbce507cc3cab548c5e7038836a8a6db99281d01d6c"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x16296483a568fd54a5f453e92219dfb46c148a2def2afc687797dca5a0b75926","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xac2af40b589a51040a39f63de1ccf296b9d7f2f2696f95ea1d034a5c8d4514f5","transactionsRoot":"0x77bba4a7f134da40b74a7d0a325c30b7e2a985473d1c94e034def784f3d201d3","receiptsRoot":"0x1e6b778802b2fc50fe71c4fa1091ab2023fbb582d5d90fadbd05759e92b15631","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xe","gasLimit":"0x1c9c380","gasUsed":"0xca339","timestamp":"0x691f2080","extraData":"0x","mixHash":"0xe9e86c6dee2face15a0042488939c40e781fb92697cb5853aeb3065b6f111ad0","nonce":"0x0000000000000000","baseFeePerGas":"0xc6f7043","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xa","gas":"0x106dca","maxFeePerGas":"0x1c62a3f9","maxPriorityFeePerGas":"0x1","to":null,"value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b50610e10806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80637f7120fe11610076578063d0ebdbe71161005b578063d0ebdbe7146102e3578063ec58f4b814610316578063f84436bd14610349576100a3565b80637f7120fe1461027b5780638fd57b92146102b0576100a3565b806302cc250d146100a857806343218e19146100ef578063481c6a75146102275780635624b25b14610258575b600080fd5b6100db600480360360208110156100be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661040c565b604080519115158252519081900360200190f35b6101b26004803603604081101561010557600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561013d57600080fd5b82018360208201111561014f57600080fd5b8035906020019184600183028401116401000000008311171561017157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610437945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ec5781810151838201526020016101d4565b50505050905090810190601f1680156102195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022f6105af565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101b26004803603604081101561026e57600080fd5b50803590602001356105d1565b6102ae6004803603602081101561029157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610647565b005b6102ae600480360360208110156102c657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107f8565b6102ae600480360360208110156102f957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610907565b6102ae6004803603602081101561032c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a47565b6101b26004803603604081101561035f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111640100000000831117156103cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b5a945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083106104a057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610463565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610500576040519150601f19603f3d011682016040523d82523d6000602084013e610505565b606091505b5080935081925050506105a882826040516020018083805190602001908083835b6020831061056357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610526565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b815260010192505050604051602081830303815290604052610da3565b5092915050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008260200267ffffffffffffffff811180156105ef57600080fd5b506040519080825280601f01601f19166020018201604052801561061a576020820181803683370190505b50905060005b8381101561063d5784810154602080830284010152600101610620565b5090505b92915050565b600054610100900460ff16806106605750610660610dab565b8061066e575060005460ff16155b6106d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e697469616c697a61626c653a20696e697469616c697a6564000000000000604482015290519081900360640190fd5b600054610100900460ff1615801561073f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851690810291909117825560408051918252602082019290925281517f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350929181900390910190a180156107f457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461088457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f475076323a2063616c6c6572206e6f74206d616e616765720000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055815192835290517f640e18a2587e1d83e4fdabf70257d0a800ca4b2c1aaad1dfc485a4ad8bbbd6c69281900390910190a150565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1633148061094f575033610937610db1565b73ffffffffffffffffffffffffffffffffffffffff16145b6109ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f475076323a206e6f7420617574686f72697a6564000000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff85161790945560408051918252939092041660208201819052825190927f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350928290030190a15050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314610ad357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f475076323a2063616c6c6572206e6f74206d616e616765720000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602081815260409283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155815192835290517f41f9d09dd5159251f8a8e482bbe097b7c01a5e6f70c5a0ddb494906464fc9dd79281900390910190a150565b606060006343218e1960e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610bc4578181015183820152602001610bac565b50505050905090810190601f168015610bf15780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909816979097178752518151919750309688965090945084935091508083835b60208310610cc257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c85565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d24576040519150601f19603f3d011682016040523d82523d6000602084013e610d29565b606091505b50905080925050600082600184510381518110610d4257fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b149050610d85836001855103610dd6565b8015610d92575050610641565b610d9b83610da3565b505092915050565b805160208201fd5b303b1590565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905256fea264697066735822122061c922ff3c8fd77b82a4bacb85f667123c27bea6c7c2450802edca5880c39c6364736f6c63430007060033","r":"0x167a1ee63050b893b5ca2395f30b89ae6754a181860fc6ccd3cf8ee263f3f46e","s":"0x3b89236015f974be3665da2e6da24d47a70fce6193aa4dfe1842913bfab9a20f","yParity":"0x0","v":"0x0","hash":"0x5c329798cae54c08d5e47486ced23a19fa5ea4159f6c826a2425adad28ce7e05"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x13c0a04ccc76d417ba25c85bf5f2b9224c592cae800870f5b218ddedf43f31ec","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x72da6d9391d1b6d94fefd9d236b064c36d00d9ca6a9ae2bc2e3c841163e34219","transactionsRoot":"0xdf3802b7e78552c9ad85b205800bf90506947b90d1f8ccdcae402fc0118058d9","receiptsRoot":"0xd9fcc954a27ed86cceb0735e7de42d43bac418341c12b296855d0740a43f53de","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000400000000000000000000000000000000010000000000000000010000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x2f","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20a1","extraData":"0x","mixHash":"0xbcc6af75ce4f3544e903727f89be662dd554d75d5dfa2aaa8fbdb24201b08676","nonce":"0x0000000000000000","baseFeePerGas":"0x29fb15","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x5616bdca865d8e81add4844f0b487daa603051e6e677d15ff54ca04ec0df3db0","s":"0x2630866f49801cca6ea520cf898ce0c8eb9056295cefb8267d8fb16b5509dd73","yParity":"0x1","v":"0x1","hash":"0x1c40a92c24405f2cd12c50e22200cd4d8f87f8e7a9bf5dada4d91af0a558520c"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe74b59d5210e14ac6c4556998fbdd628d69d3d77cc1e7374694981a6eadc67c9","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x6939f1094b59703367ca1d91c6e2e3c350d4d6e888b6be8d4009974fb37a91dc","transactionsRoot":"0xede117de9404d21ef5e32f3b45bbd03fa4c4396c42ef0e2c4578a3b6b7bafbcc","receiptsRoot":"0xfaa191479f9b6f20ff5eb74974b3fcdc498bfc49132a6315f7e94f86ddc38714","logsBloom":"0x00800000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0x51","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20c3","extraData":"0x","mixHash":"0x6a36dbeca2f43b103f4380a4b311c14ee907058942920bda3ca490130e563735","nonce":"0x0000000000000000","baseFeePerGas":"0x7477","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xc85350709d1671907adca10ee7daf9bdff28d9d161ba08c3499e15842f53fd24","s":"0x4e58da74cfc2243d393edb30ba960651f861d3bed9fe2596cfaa005ff9f28c91","yParity":"0x1","v":"0x1","hash":"0x25f03d54d93cb6647dcfbcb5ea1eaeec9cae41d75b74998da5423ee90fcdabe9"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xc4dad62861270b90c909b30f2b558707e6418ef90adcf862a18d2c7d2ab0403b","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x04e9b7947b623ac8054efe9325acc2843d2621f7c6e35429935a90f9f51b73c0","transactionsRoot":"0x4969b7021e164175b503b7fe9e549aad28db7f6c147c7a890025c2d108be2c77","receiptsRoot":"0x75e69a66c8ac46323f466ad0a709fa3fafc1b7b6cc9c37ab2ff559d6dba453c8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x15","gasLimit":"0x1c9c380","gasUsed":"0x87d5","timestamp":"0x691f2087","extraData":"0x","mixHash":"0x8a8ebdbcd2f51fd58d09221e455bd81aa08aaa744f02a35986cc9c24367b7663","nonce":"0x0000000000000000","baseFeePerGas":"0x538c833","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x19","gas":"0xbb9d","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x56bc75e2d63100000","accessList":[],"input":"0xd0e30db0","r":"0x16a840fe6bec3ac330cf887690dfcba763060e1fcb90835dd15abd6791c65f48","s":"0x1286b8d70eead1e94f33157a4adfa4a596aab8afa5d718aa85d3dc1a4c7b8d5e","yParity":"0x1","v":"0x1","hash":"0xdaa4b91b6faeaa6bb0a5bedd64d50f529e243d05f9a0354d2a23fb8782907e3c"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xd70636f10b60f7594c9f4c67a4224f49b7d058aca86e7ae86635ba37e9fc061b","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xf699fb29c623892257308cbb4ca20b93afaec9604c4b2fa9f1dcfe4e5c085d4b","transactionsRoot":"0xa5d685f4661e77ae157b63ef5e1ee3f410e8ab5c288e7a707525908131bb9dcf","receiptsRoot":"0xa088c1e9414248b0a1dcdabf2292da306b961991de0e907ea33bd3565be61636","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000002000000000000000008000000000000000000040000000000000000000000000040000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x4a","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20bc","extraData":"0x","mixHash":"0x34de409f52280ea2a3ee5a02de1b5a961bfa9cf2ba53b75191346df0f8f492fa","nonce":"0x0000000000000000","baseFeePerGas":"0x127a1","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xfdbe186fc2437e1c0ad5417e1c26783d82101658cbe2af8c11107c89dce567ad","s":"0x6051a98bac4a2c9bfe650019aa250086075aa00a34721c9714c891c975b558d7","yParity":"0x0","v":"0x0","hash":"0x8f37d113e1315224ad06a305fd707a81eb685c8b43bb8356448907dd66d40278"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x924f5e957b7aeea47d66773630dc080c56c46aed46cf53d818f90c0a6f7864cd","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x9831c7f38275fa6b1e3ef99a97187b9819129cbf816a3ad41b6a3ed32651c925","transactionsRoot":"0x626e48dd64fd087abb981acbecc70c9dcc9f4d696656acbe247c088d20dcd33f","receiptsRoot":"0x48d113358ecfc191a9aa89bacc28c2592c03439c30d7f5295eb577edee54ee31","logsBloom":"0x00000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000008000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000004000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x55","gasLimit":"0x1c9c380","gasUsed":"0xc821","timestamp":"0x691f20c7","extraData":"0x","mixHash":"0xb528fb6c8f80e2b760dae4eeabee2f88c68fa9501827e498f3c595cf25821270","nonce":"0x0000000000000000","baseFeePerGas":"0x4463","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x41","gas":"0x124b0","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a797200000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x326b21ad7aa3d02ab83b2eeb1ec7cc38532b31575bb66770e0ad60e34eae0fc2","s":"0x5729697b2767bb06f9861e34fa3d0773f61f2ce98f70803923201bdc3976ec65","yParity":"0x0","v":"0x0","hash":"0xb597fdfd63cb75e2e2d15c4dc83f5319ccaeddc84d561ff86a46519b39320fd5"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xf0b535631e7cc1229b1ade81c100dd03ee915361fd90fd4498e9464040051be4","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xafaee266603d67d859a478befa42458b9e2fa3891b25d8908bab9233dbe6e022","transactionsRoot":"0xe4835a1bf9a653f5be9ba1951a6b929dcba1f0ce81272460acada71e3136d1fd","receiptsRoot":"0xd2d1ec5343466da4c345caadb65be40e555b77927f456d520945c516fad2a5c5","logsBloom":"0x00000000000020000000000000000000000000040200000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x44","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20b6","extraData":"0x","mixHash":"0xa6e5314c2a0ed9baa7a790f02bcbaa5c27b6628223df791a17abda4cfad66418","nonce":"0x0000000000000000","baseFeePerGas":"0x290f0","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xa7bbc4e94531a61ad9c4d504f2991764eb7a85f97eb5b5fe501ba71d7a734279","s":"0xab15704987a7fe4b85d50c52a2f9e2c7ef8b3d74ff8ac896e2ab2b8a3d51f87","yParity":"0x1","v":"0x1","hash":"0x8958405befa7719e08a1088c16653330cf293fba2a7c0c4c9d63a027e03886a1"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe6b151b9fb27970d18ce4f69f382a7bce1e1bdbd7e9608bb709e0a157cd5ca2e","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x60eb457cbb7f02d7c71fe8f8d26d161528b6254e2de3c83508ffdf157742d333","transactionsRoot":"0xa271f10e1d82d1be8193d5089ed8823930dee0908668a47c64a08c3d57a76d71","receiptsRoot":"0x534bf63c81e8fd510cf287d0748c729432ce9a4ea65457eac465b03b66b44988","logsBloom":"0x00000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000008000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000004000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x56","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20c8","extraData":"0x","mixHash":"0x5c9337b4b00d6d354d4b9a27c4da137ded884e6e88aee2f54378fbec2170085c","nonce":"0x0000000000000000","baseFeePerGas":"0x3bdf","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x42","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x40c10f19000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a797200000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xa6085dea99557995362eaa393f60741423cb31c1a74f252ab91debf8f8851ead","s":"0x56e88e2734ff2bd13c5ba07cc83784e53fe28a664c9216790d26de5510c85221","yParity":"0x0","v":"0x0","hash":"0xcca471caab70ee47b36090a52fb71404d6386e116354c53edf0696c439fc89ba"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x5ebb9857d84ba5e374d62ff57200c776a92470f9a6af3443215fc78ea13ff21e","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4377dc9fff422ab06c673fa462ed3241521dd7cb8ec438e8cc9860ca7af56e90","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x60","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f20d2","extraData":"0x","mixHash":"0xf95bb2b603f5166d32407a3495edd9bccff35d764f490e4d974c14ecd6b5f34c","nonce":"0x0000000000000000","baseFeePerGas":"0xfcc","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0xc7e5e1ea2e20fb9d0289cc41363e66076b44fbf65ea82835ddb159c345adfd05","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x9c8eaf493f8b4edce2ba1647343eadcc0989cf461e712c0a6253ff2ca1842bb7","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x1","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f2073","extraData":"0x","mixHash":"0xfa9f1c4895c748f2eeb459f4fc7888230678985e8c67ee2f3cc397e3c7a7a12e","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0xdb4707c24a45bab42b00d1c8bc77429ae982e23b33ecacef5a5458eba563b6c3","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xfd70ffb46954294d494ee08d0b7dcb302adaff499d9cbc9691aad3a57b42fe68","transactionsRoot":"0x119519b83a80b0aac895d4d3b9394c32739e4adfc2581734bbee327d6ac94763","receiptsRoot":"0x75408546b6ccd74f22ce97666319fb4d0a0ebe9e80062fb70709489c8bd41f3d","logsBloom":"0x00000000000020000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000000000010000000000000000000000000000001000000000000000000000000000000","difficulty":"0x0","number":"0x20","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f2092","extraData":"0x","mixHash":"0xe5eacd526087d6258060f03500b626c22b1652657d47fe1151b99f69d250c161","nonce":"0x0000000000000000","baseFeePerGas":"0x1350df2","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xa87d10d1923703397f3454c9f48d8c4634419a28ed1fa1cae563e3fb692ca6a3","s":"0x470033b08c45a0badb01001c83ee4e3dc20de6b60c67a20bb5160e9ea8f99846","yParity":"0x0","v":"0x0","hash":"0xfbb3ecc4bb60564fa4461e2a91b35c5bd639d3e64cc3867acce2b3a3234e9094"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x77a0fd91122ddfea99cd4df1d506caba557ddaaf3d607d553c8497e36352f1bc","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x5627f4841dd304a41ca29e37fa617044b837d5047002f11f2e8a85bc32e3d430","transactionsRoot":"0x7c2a12cc912fa29dfbfabf3384123e06791272e32261923f847d18d65c4cf85c","receiptsRoot":"0xf660b00bb3acc34a2b602cf0988a351ebab3e8b2e6270524cd9a16c449cad375","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000","difficulty":"0x0","number":"0x10","gasLimit":"0x1c9c380","gasUsed":"0xb463","timestamp":"0x691f2082","extraData":"0x","mixHash":"0xe391d8516a6330ae2a7b8551e6f8992b64f25d1bccd3f478bd9a4242bb74c841","nonce":"0x0000000000000000","baseFeePerGas":"0xa072785","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xc","gas":"0xbcee","maxFeePerGas":"0x15eef5dd","maxPriorityFeePerGas":"0x1","to":"0x610178da211fef7d417bc0e6fed39f05609ad788","value":"0x0","accessList":[],"input":"0x7f7120fe000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0xdd2902250b54b9a4d598481048a0c92a07edd2a2214cb1f4fff7e21ab7b5e31f","s":"0x102cf8abe5e80554705d128fe21ca82ad1840764db3212cffcc498179c602d03","yParity":"0x0","v":"0x0","hash":"0x997d531d5245c8af0472b50f4c64f2bd63e31515055b8082e83b77804c8c5f4e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xdce183bb9360c2351ecf935023ce100b5b8492f362f26dc63e7597df69705401","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x30d8b82427ea4fbf8550ce3148fb4d1ed3e8d28d4f065d786d2479d14d20304d","transactionsRoot":"0x8ee6f2f5b558c72aa868a38d41021e4dcaabd764c7e1ed2da83dcb95fa225db6","receiptsRoot":"0x75e69a66c8ac46323f466ad0a709fa3fafc1b7b6cc9c37ab2ff559d6dba453c8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x1c","gasLimit":"0x1c9c380","gasUsed":"0x87d5","timestamp":"0x691f208e","extraData":"0x","mixHash":"0xbd23df5a56443e9eaf90ac8f564d013006191ad3ed2e10f7393b7dde4ba8503d","nonce":"0x0000000000000000","baseFeePerGas":"0x20e4a35","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x20","gas":"0xbb9d","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x56bc75e2d63100000","accessList":[],"input":"0xd0e30db0","r":"0x6c6a9b927a181c22c7f440b754cf1c52f53902045b113678793c9897b737942a","s":"0x6ebaf2f39b8ed56b4ddf0ff4c3e9da63229258c7e6f2691fb4711e6da633d794","yParity":"0x1","v":"0x1","hash":"0xc953777e5edcd0865d3153ab3ab3bc228e83c24266e5657c29d931ee19ae5c89"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x8d04e6290a33bc221960ba4518c53a5dd082bc8407afae536bc93f9ca183bc42","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x661123b4d48ab2f6aa7f86b09f346c747cb5a490b3fe6a535b8b0f7d78c04a29","transactionsRoot":"0xd25a70bcf3b8aa4a9bcc090f2fffb55e1c1c453a3eeadd26c2e248adbcee71a8","receiptsRoot":"0x178071edf5b0bbd4d10164a41f157eacdae1267f1fde40d64285d5cc822ea762","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x11","gasLimit":"0x1c9c380","gasUsed":"0xb7eb","timestamp":"0x691f2083","extraData":"0x","mixHash":"0x7abb3880f572876b98cecb674b9228e087e9c12be31b5d9edb741d81b2d5c676","nonce":"0x0000000000000000","baseFeePerGas":"0x8c73f7c","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xd","gas":"0xb7eb","maxFeePerGas":"0x140e4f0b","maxPriorityFeePerGas":"0x1","to":"0x610178da211fef7d417bc0e6fed39f05609ad788","value":"0x0","accessList":[],"input":"0xec58f4b8000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0xc0359fe278bacb0e90e7b396b9d3a34cc1f35db246f0ba3b95250a2946b6cdbc","s":"0x17f4e0c79d28616290b0d0cec94287e0fc980dc13bb99c3035bc4521531d343c","yParity":"0x0","v":"0x0","hash":"0xd4d2a78b187e7cea9fd7d00b08ec949d7cde0098dfa2a3029b9352c8dd02ca46"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x66201332feff49d4ba0e200506068935bd20a9db59cc1d2229682983a1a4312c","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x9e5c8b4c33530ea75bf692d57c5c54431b51decb398d327b49b18b3fc6cd1d0a","transactionsRoot":"0xfb68f3ea08d87cc6456ca81826d85f89415a904091972ac5c4684f4c2753fe58","receiptsRoot":"0x570485cd44ab5dd2397f0dd607246a9ee18523b733c5c1c0a83b5a98e3405de0","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000400000000000000000000000000000000010000000000000000010000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x2e","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20a0","extraData":"0x","mixHash":"0x27904c7165dc8ffdcadd7c0dea0e99f29ed90ff99b02b67e5720866d8d031f0b","nonce":"0x0000000000000000","baseFeePerGas":"0x2ff4f8","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x6976c2fa35168a67502ad7a2f0717fb269a5c367cb4b900529d591cceb9a531f","s":"0x664933dc771c2a65a9e4500672d79b63a563bc150eb2a836b74b40df66847196","yParity":"0x1","v":"0x1","hash":"0x9c1197011f7563ab9439ba62207bd744d788e0999a012f9d46d1aacd72b799ba"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xdcff38cfd13bf6844f9104930f56afd9e665a739edd72e25e50c905437df5430","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xc160e80923b9a418605bc3257fc99dd44c29226c54a706d401b1cd96b9a22b34","transactionsRoot":"0xe3d8b1d417c03f90a0befa9a3c47d5d538472ce0929b7c980c7fb3354853807c","receiptsRoot":"0x5d490b7739761e78e9c352db64380c5dc48826e93427adc3c658dd5ed1677dae","logsBloom":"0x00000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000004000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x32","gasLimit":"0x1c9c380","gasUsed":"0xc821","timestamp":"0x691f20a4","extraData":"0x","mixHash":"0x1ea432d802f5acf4b3054d081abc63e16bc7440a957cffef79cb1deaf9caed5a","nonce":"0x0000000000000000","baseFeePerGas":"0x1c2871","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2d","gas":"0x124b0","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a650000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xf0d52b1cc07cc0eb297b159e3590937b195f04e3e161ddbfd28dccaa3fdef2b1","s":"0x4d2af775edcd95350acfef0adae4c9c08c2cdc50f66eccccc9027f738c14150a","yParity":"0x0","v":"0x0","hash":"0x551e05eb126899ef1239e8c71ff2fabe0b9d65093b72e2c62db9fb3771a3e817"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xf40dadaeb294d7cf8a97c888839c21270cb9c483adb18d12325f83de59ee2f70","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x5dc824ce257574a741e92ca14ecfbc66179cd50bdbc7c2e2b1e65b2d552980f0","transactionsRoot":"0xc94a73098269110082ab34a96f08bf00da725e264a7ef03f2504aa0ef15c75e8","receiptsRoot":"0x7daba120d6c708f9abff727075c26e23f27a6302545ef5221f54f9d7e6e9ca28","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000000000000000000020000000000000000000000010000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x2d","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f209f","extraData":"0x","mixHash":"0xc2af54b8c20f9d28c5cca6e63f46f77c2d89f8e0572b86d59ac7bbf9742de13e","nonce":"0x0000000000000000","baseFeePerGas":"0x36c800","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2b","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x40c10f1900000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b9060000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x8898fa63d8e3dd83867abfb08bd5d0ff54cc2ff6f2cc7d6b8aed43d0d9edcb43","s":"0x769571d7fbdaeed6368fde727669feb410539ead4f9c7cb2a0b4187cd7dc16e4","yParity":"0x0","v":"0x0","hash":"0x9e6ed0d0ba1df01f801156e58fe1c1cfb46cbcbce9e37fd8aa36ec6d1d0755e9"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xaa90977e6b1a3aed61971281c9f7d9a4f4d719bccf0840136762c847be7bae61","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4377dc9fff422ab06c673fa462ed3241521dd7cb8ec438e8cc9860ca7af56e90","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5f","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f20d1","extraData":"0x","mixHash":"0x7ed001708af6d50fd713d9bf9b5b6363132b72c0100597279185d1343bb94c52","nonce":"0x0000000000000000","baseFeePerGas":"0x120d","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x68a1e75012814402277e45893649c1c147a2fa9588bfa35e45762ca9395894e3","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x626626f503e1d6de691957d26b154629f6eb6c9163d4b7b5bafed7244bd04630","transactionsRoot":"0xe06747140fbc98617c27fc920f7150e2fb4887b68c994475d19ceb58cc04b80a","receiptsRoot":"0x1c2efc6eb9ed6d129f3e54d43b80588432e389b60a06b78d2b9344a21655b8ee","logsBloom":"0x00000000040020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000010000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x36","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20a8","extraData":"0x","mixHash":"0x53025a710a82ae1390625f86042ca1d2dcdcd9235dbffd33b3341dc56e3d86a1","nonce":"0x0000000000000000","baseFeePerGas":"0x108980","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xc22912c0b3c870745cd9f76d75a6e6e19b2280afc8f6935fbfe2258ce99318f9","s":"0x4b0e25171ff64682870d85e3a11ce30e5e21bed33f66845c1b2f92e21f5379cb","yParity":"0x1","v":"0x1","hash":"0x97321c2d36a5db19ef3a36f1555e2ba11db8ba45d98eaf42574cadc5ffad15fa"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x2090bf7d9b5edc6a6cedd698e49d897177cc1b4d1feefee5bbdc58c97a024499","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4377dc9fff422ab06c673fa462ed3241521dd7cb8ec438e8cc9860ca7af56e90","transactionsRoot":"0x39839e23c5b69dc24fc76c279a80217efaa0db09869a6dcecfe76dfa835db332","receiptsRoot":"0xa7c7d0643ae95bbd5975f95b5df684024d658dbc456ca754d8725387dc51778d","logsBloom":"0x00000000000020000000040000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000004000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5a","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20cc","extraData":"0x","mixHash":"0x56cc8cf5e34dc68299f28332a5d5affeb791aa16802227a12d7cb68e334d714b","nonce":"0x0000000000000000","baseFeePerGas":"0x232b","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xbb1512d1d9e3a28c94b6156b2fff5956a3e0f9bbef3be8f4851095fd2187b578","s":"0x50d6cc946e6dda941c3be324f452ee103e9ae316567198ed6415fc895093572f","yParity":"0x1","v":"0x1","hash":"0x37d2624a13dc7d0e3d1240307387f6da9e960391387d2e0d94ca4b481d2dd553"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x75502cf8092d1e4c9209a857aa101d1402f24220894153aa6e47dd9ebf4d80c8","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xf462d80e41787827d8f6ee04196678b12f40f213861601e96357c4d439a999a9","transactionsRoot":"0x5f02c2a93fbb0b3d3e5b343c2777ee85ed5016ed37fecd9b7c8ba8c22843fb61","receiptsRoot":"0x5b38b54530ad8f3328b6cff2a58ba27de3e40e23b9cc963a9e3a12c78f421002","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000400000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000400000002000000000000000000000000000000000000000000010000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x2b","gasLimit":"0x1c9c380","gasUsed":"0xc821","timestamp":"0x691f209d","extraData":"0x","mixHash":"0x98d1f1fd7df4ecd48e8f7e3b62c2d8fa8af9e54c4cffb8cdec51ff9af22c2035","nonce":"0x0000000000000000","baseFeePerGas":"0x477b3b","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x29","gas":"0x124b0","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b9060000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xe6d91d3167e9d131f25900d714be74afda358d5ad4b75e49b9b8dd3d2fca54d8","s":"0x4be54ac253ab481aa010ddf1b95a4f57f5fa049c63ece5eb3bf28ba47ac1415a","yParity":"0x1","v":"0x1","hash":"0x5eda687f83aad4d4c75598ea1bb49972f6e6a9673b789376e152ec0a4915ce75"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4fb3bd7c3d137e5907acb5a7dd393287c92286505c2c8a2582d8d8456e2db6aa","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x10267a7606f1d32fd23620f6424cbdd75b01dfce2c061ec9d771f2e94beb7e54","transactionsRoot":"0xea034d36cdbedde67dbac112831fced67b6645926328da63d195101e9a8470cf","receiptsRoot":"0x75e69a66c8ac46323f466ad0a709fa3fafc1b7b6cc9c37ab2ff559d6dba453c8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x38","gasLimit":"0x1c9c380","gasUsed":"0x87d5","timestamp":"0x691f20aa","extraData":"0x","mixHash":"0x7199060d343223e07ce39d30e42c41129597150b98e35d7d9435849491487976","nonce":"0x0000000000000000","baseFeePerGas":"0xcac22","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x30","gas":"0xbb9d","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x56bc75e2d63100000","accessList":[],"input":"0xd0e30db0","r":"0xae3d344cbab74ee351a2d2b4c190a447ab8b8aace2139c8c99b6da14fd00a3be","s":"0x72b4cd79d4189e22028600ec7accdeb94bbb2e53fd89af88d408a222dd7f6df4","yParity":"0x0","v":"0x0","hash":"0x50ca1109426528e1d221c265d529ea969e5de3820d4ef3bb6f23a05deb50c8d1"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa96afd397a81f660e99458283b9ee38a5dc2c4b42e4a8797fba038ff4952fb8f","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xfbad18b4e0463809949045aaaf8b1be57ec79fc0b3a37c18c264671d09aaa7cf","transactionsRoot":"0x0f56800a612828aa7ca96b74815f4a69848af1fe3671f6a2d41f5f7f36f4c155","receiptsRoot":"0x1e87ad2a57e079d7e0d25283f3648e3cda602c25c35b886bf1c8dea5a42d853b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000400000000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000002000000000000000000000000040000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x49","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20bb","extraData":"0x","mixHash":"0x9b059ff93042254dabcc606fedd8b5a776e399c68a9c839de5827365342a6a8d","nonce":"0x0000000000000000","baseFeePerGas":"0x151b2","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3b","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x40c10f1900000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xdb3338aee93f380c05788509215ada96b6b33b1272769ad9734b5270b94cc7e6","s":"0x2bb3bf0f1c803a29fda7c095a32032f603288a0a3f721660e5c4bf1ef1d37788","yParity":"0x0","v":"0x0","hash":"0xfc1c5ef3aa349a268c97839e9df7a441d18aa8d3293ff98131a21631917e713f"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0c388984c75bed82395b398f140d34a7c30295d9ba25fc820fa805d2c5394552","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4377dc9fff422ab06c673fa462ed3241521dd7cb8ec438e8cc9860ca7af56e90","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5b","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f20cd","extraData":"0x","mixHash":"0x055afc9f3def5fbcc26dbec088cd33d219703a40d05c5c878f2d2428328b2d04","nonce":"0x0000000000000000","baseFeePerGas":"0x1eca","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0xf8f4361df6d7680ee55542a5aa3ca466fcff46d20b79e58efb8f1beb7efca533","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xe9d9f684dcd7f2b16d4298cf1d7b238b03ed5f232dafae2c14f9584c2238bc4d","transactionsRoot":"0xe7f25df8364f1bc381ef6d7a5836c1f8ee94364a0319e64660e65ed64f1889a3","receiptsRoot":"0x75e69a66c8ac46323f466ad0a709fa3fafc1b7b6cc9c37ab2ff559d6dba453c8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x54","gasLimit":"0x1c9c380","gasUsed":"0x87d5","timestamp":"0x691f20c6","extraData":"0x","mixHash":"0x3fe858e9c617b169cb8388c6abb6b7b475b737d0e86f5446915cb66b2ac9bc01","nonce":"0x0000000000000000","baseFeePerGas":"0x4e21","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x40","gas":"0xbb9d","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x56bc75e2d63100000","accessList":[],"input":"0xd0e30db0","r":"0x4c8880344fe6a47ce530ebc380163da07c8c58786db55bd3ec1b7be0464c840a","s":"0x72ce585f4e55fc93130e468b28f60d16812e692e616dc90c6bcfa4be28a1eda3","yParity":"0x1","v":"0x1","hash":"0xb67d1871b9dd67a2d2b8c52e64d1e708af6fd78fd0c7492ebfe83222ba304704"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xf71354c52e7c86acc207272c9377fdacac52f63537e06ae2b89eb3350e6d878f","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x2a0646ec83f4d018c766cb688e7283131dc53ce4f165d24921033c57ce1c395f","transactionsRoot":"0x22e4217c86e4c762440d9aade0a1a16ceacbe227e6ddb39c227793941d3a3d53","receiptsRoot":"0xf17a51b768faeaf4f34e1da4db0444d0e442e6e85e90938630a3f6eebdddae23","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x13","gasLimit":"0x1c9c380","gasUsed":"0x101c8","timestamp":"0x691f2085","extraData":"0x","mixHash":"0x7bd4e69df3b289d8a706fc7453f79ecbf196ac9bdf5a29c2144cdfa540d07fd3","nonce":"0x0000000000000000","baseFeePerGas":"0x6c443ac","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xf","gas":"0x14fd1","maxFeePerGas":"0xf5e728d","maxPriorityFeePerGas":"0x1","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","value":"0x0","accessList":[],"input":"0x0000000000000000000000000000000000000000000000000000000000000000608080604052346013576039908160188239f35b5f80fdfe5f80fdfea264697066735822122036ba1d0a51c38b9bf24b928ea7995bf7af4740f798592246106454ff3db66a2964736f6c634300081a0033","r":"0x660e9f7b496f64d46d816bf054e3729704516ca83444bf35132110653ad5d499","s":"0x59331a15818e3719928f647045de5dff584d12a50f1bcd7d75afcaa7c4e1085b","yParity":"0x1","v":"0x1","hash":"0x6fd345c9e451e7ce761d0d14e9e6309d340b10a0428a754be881a3977abd08d8"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x5757a2e66796b28c577a897b2e5e537425de0c67c4aa244ff9d7c4fc2e291d2d","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xcb8266ecf87c59492345c2819ecb6efb8fe20f8ae78f95dc7a10c5030be7fd24","transactionsRoot":"0x2270c9be387b093ff0c4ff4347fea10326eb99dad14127897b52513a79e71560","receiptsRoot":"0x44b7d63e65176bc5705235a90be5da3f903f620b6c6fe6add7881323a52e9048","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x17","gasLimit":"0x1c9c380","gasUsed":"0x8496","timestamp":"0x691f2089","extraData":"0x","mixHash":"0xc23a9a7796f41b371549987af06d4b1c02ac7e320231a10354714d85ae99e656","nonce":"0x0000000000000000","baseFeePerGas":"0x4001248","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1b","gas":"0xb721","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x40c10f19000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x39c7f9bb4ee98fd065e788af1220cb00fa379adc3e4ed1bbcf697b4396e742fc","s":"0x1e9555c72ba27a95b90a32ee5b0a4d2f578020ef20b473adedd223573f28b7b5","yParity":"0x0","v":"0x0","hash":"0x193718f7bb97364f461262a013efafdf0db29ce5c274c597a5ccd028973377b7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xacf29cf6df4106f1d7e3420dd94105a9c2328a4e8d871425ec2a880570559a8b","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4377dc9fff422ab06c673fa462ed3241521dd7cb8ec438e8cc9860ca7af56e90","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5e","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f20d0","extraData":"0x","mixHash":"0x865ff5c34d7aa97c6682fb5025b07a6871b62fcdfe4bb944fd71f133a637e73d","nonce":"0x0000000000000000","baseFeePerGas":"0x14a1","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x480de24e49ea597e46f13a1bb72d13c4dcaeef5e0bf6981c97bf48c1b56ef3c0","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xace027185174f4c97153cddfa8468e9c013c157b594a415d373cba2780be5a8d","transactionsRoot":"0x09b1625b2b54cad9cc24401f841f706227efa38c903069816218b27de772ad12","receiptsRoot":"0x75e69a66c8ac46323f466ad0a709fa3fafc1b7b6cc9c37ab2ff559d6dba453c8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x31","gasLimit":"0x1c9c380","gasUsed":"0x87d5","timestamp":"0x691f20a3","extraData":"0x","mixHash":"0x86454f23752768ff0bdec85a4d06d80cddccf710d60b389b243ac9eb0aa80828","nonce":"0x0000000000000000","baseFeePerGas":"0x202b7d","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2c","gas":"0xbb9d","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x56bc75e2d63100000","accessList":[],"input":"0xd0e30db0","r":"0x958ed16abee732cf41e0e0dccd238473864ff296c165d9751be212ccda32b151","s":"0x63ed5c568e1ccff64a47cd202f057ae123183b3c3f8786070d54cc97593a77ad","yParity":"0x1","v":"0x1","hash":"0x469625b2344c5413864bf875263af56e53f72c931f0b6d216739dd048e0a04e7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x2165269408a23e67e70851d7981386907c4a5286a962c1df19d3d699ee3058bb","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xacf657460b6ed0e2e0387b60c4a12aa262d998dc25fbe3da1691f3fe4c9f3e4f","transactionsRoot":"0x4d39ba396a02e70cb7e07f03cc6fcce5a695427355008988ad0aee31a60d9797","receiptsRoot":"0x75e69a66c8ac46323f466ad0a709fa3fafc1b7b6cc9c37ab2ff559d6dba453c8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x3f","gasLimit":"0x1c9c380","gasUsed":"0x87d5","timestamp":"0x691f20b1","extraData":"0x","mixHash":"0x11b86da748f66dd8d4efd1c10fc536465bc5da1ff2065e13ef14a58623555878","nonce":"0x0000000000000000","baseFeePerGas":"0x4fdf0","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x34","gas":"0xbb9d","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x56bc75e2d63100000","accessList":[],"input":"0xd0e30db0","r":"0x2a643f1f4ee956a3e791b21f12d4fd123ac28f02253b46a71c8b6f1a32618b86","s":"0x30a359493e9543dfa1a15ff66eee9582ba320662ed74474f532978da992a3ad1","yParity":"0x0","v":"0x0","hash":"0x93ade10ea692c829808797b91c8e08f9d8253b65567e84be8635c9e59618f49b"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x0","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f2072","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x3aede10169f4adabc14579635c6a68e283dca31161878fef75aa9e6c55299c23","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xaadf9af87eecd5cde199bb8a81b1febac19f96321964a1cc93b71a2b39539ad3","transactionsRoot":"0x6ff1073f3a60893b7f7d9e6845e852812bfebb167c8fd7d02f8aee1e73cfaa93","receiptsRoot":"0x9b2d93de7daf4b114baac92243f99e90af14479019e9319d0214b79872794b0f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xd","gasLimit":"0x1c9c380","gasUsed":"0x2289b","timestamp":"0x691f207f","extraData":"0x","mixHash":"0x6d4271c34c5249047dd288feedc426d4025f81f80469ef476c41541ef0f1feb5","nonce":"0x0000000000000000","baseFeePerGas":"0xe3151fc","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"Legacy":{"chainId":"0x7a69","nonce":"0x9","gasPrice":"0x49cc1bfc","gas":"0x2289b","to":null,"value":"0x0","input":"0x60808060405234601557610198908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80630f5a6efa146100605763fec90d721461002f575f80fd5b3461005c57604036600319011261005c57610048610136565b5061005161014c565b5060206040515f8152f35b5f80fd5b3461005c57604036600319011261005c57610079610136565b5060243567ffffffffffffffff811161005c573660238201121561005c5780600401359067ffffffffffffffff821161005c57602490369260051b01011161005c5760206040518181019080821067ffffffffffffffff8311176101225790806040525f82525f36813760405192839281840190828552518091526040840192915f5b82811061010b57505050500390f35b8351855286955093810193928101926001016100fc565b634e487b7160e01b5f52604160045260245ffd5b600435906001600160a01b038216820361005c57565b602435906001600160a01b038216820361005c5756fea26469706673582212206040a99238ce213f103492965ed74ea57d744e3f796abd195fd5b28637d8f66164736f6c634300081a0033","r":"0xe361469e0e01bfea7a4537da2d54dc9cc506ab0ccf17501b73b8a01ed6ba2df0","s":"0x39dc081795bf151505039bbe06d755743873b87772b2c99f58c77d78e68c92ca","yParity":"0x1","v":"0x1","hash":"0xf458a91163e983d2fc2b22b2e96c826339998e87a1440854bbe09a3fdf159785"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x57a7248540942a5ff6ea75779efdd301f89a5ef1713b742085f1436e0b55f9ea","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x28a92e0eb245a885d0d9fa39881303cd216eb9b665a79dd77f7ee927110f18f8","transactionsRoot":"0xb1c4e3bde07315e4cbc9a621f7d5b1facb33f86ae7c9e1eb98d73e8dd638f720","receiptsRoot":"0x57f5ce05e60a00c5b182d55ab6bfbbd7b69848b4195e7ed5ceb3cbc3847e469d","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000002000000000000000008000000000000000000000000000000000000000000000040000000000000000000000000000000010000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x4b","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20bd","extraData":"0x","mixHash":"0xd91447fe522d9d34d9760559a6bed99f1c52862427b8d300fcee4ac813498490","nonce":"0x0000000000000000","baseFeePerGas":"0x102cb","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x86143a40b3907ff75314731b5d0739235a77f7956d33f20a3308be1a036146d4","s":"0x5a57b904df3f9a32fd2e698c28875d500e98373a94cf5a78d98df9dfa31b102a","yParity":"0x0","v":"0x0","hash":"0x0a404cfcca9aac3d5d1381da894807787eec9b158c27bb2cc565e7901e611fa7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xf6dc67055f98cef6d71799a6e5aefa7570151b343c3c1d48200c01c4d74c66ee","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xa387b9e1faad8816fb2accf5e109513e1186938a5ce1cc17cc4c999de23893bd","transactionsRoot":"0xb3ab0b00a5a945058f96a292115ea9851138412458bd0fa3c61f5421295777af","receiptsRoot":"0xab1196488523948cf82b1f732dab26d7a01cb1f69f0f8094483e593c70dee434","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000400000000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000002000000000000000000000000040000000000000000000000000020000000000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x48","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20ba","extraData":"0x","mixHash":"0x3bae2532118185a57036a7cafda1f220b02e780d02cc2ed126761fb67d6df9e3","nonce":"0x0000000000000000","baseFeePerGas":"0x181bf","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3a","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x40c10f1900000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xe819b5d58aed7b8478e310fc6594070dfeab22a7e749a90fb9851575afb2fcff","s":"0x40c8862d8c2e331a09465bcc0d4a04012615757fbde6dcf899d02e855bc7c67c","yParity":"0x1","v":"0x1","hash":"0x6d9d6de4a2cf76bdf067c6d16692a7aca165dee4e1a1091a645249b8d0558852"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4c2fc227c30ec2d1fa3a1dde76630e9ea187ba997231f104bfc7f1df141d5e92","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb026ca09dd4246bd6713c8fe9ced38b7e6db9bb553218955803a1415b37713f3","transactionsRoot":"0xd571b195c6e4ee7c84c4842b047b81f2b824bebfdb604f4d6ebc196f78333106","receiptsRoot":"0xd5abde7ce6156970ac4db08c6889747bf32f2f8fd2187e86472d29db1c21044a","logsBloom":"0x00000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000840000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000000000000000000000000000000000000000001000000000000000000000000000000","difficulty":"0x0","number":"0x1d","gasLimit":"0x1c9c380","gasUsed":"0xc821","timestamp":"0x691f208f","extraData":"0x","mixHash":"0xb12db53cb3a368006fd0f0b1880c86d6b5057e39201d5534c6ee3cecf1655359","nonce":"0x0000000000000000","baseFeePerGas":"0x1cca7f9","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x21","gas":"0x124b0","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x9cf94a3d4198856983c21ec315c40c9eb8f1acce94bc02dbd6441c37fb996b84","s":"0x360b74fb0df61e24d67fd1cbb3aacc700439b88b9f58be2a609b5a8c47dca41b","yParity":"0x1","v":"0x1","hash":"0x91e6d4f1214fe4fa06171c249757acd02048e89a3cd264580bcb855ff10b3cf5"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xaf1aac753feaffae71e797ecce95d789e2aa15a71c5dd0728c423c646378997d","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x935cc2c79bb78a04d28f180c58437d194020a847e9b48aa6788f178678417092","transactionsRoot":"0xd98128964292fd987a29691507ef748d284f9abd50bd532afd83fef1a7978526","receiptsRoot":"0x786a8efb8f132321b2d7ac7e8af8fb865d21999cf0d4208737e94e7ed8f7b9f2","logsBloom":"0x00800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0x4e","gasLimit":"0x1c9c380","gasUsed":"0xc821","timestamp":"0x691f20c0","extraData":"0x","mixHash":"0xccbb4c8b71a2780271dc7c5a768a834482d615dfb04006ec8f47111f38f05e77","nonce":"0x0000000000000000","baseFeePerGas":"0xad96","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3d","gas":"0x124b0","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xa9059cbb00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f0000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xc06547562eefe0425fc6e96bc9f4d3ac31c0216cec1974f3dae893a9a167d499","s":"0x7b32b813a9bce1566826337739041a8479d4736f5b51b41633e032cb1f6cc860","yParity":"0x0","v":"0x0","hash":"0xb6d34a864402817ef2dcfdfe6234062ab4b79cf0d2d4e4f3b7e806d89373e27e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa0c7fb028a0610346c615419ee54974c5725d1e309b228e2756a98cb2bc1be80","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xbd9c4b1361a12bd3734da63150d5efbf778435f372a1ca7451d422bef66fd2f5","transactionsRoot":"0xb236c5a446d05ef9938fb49ac03309a9159d7b9a60746baa2a27aa65f547df5a","receiptsRoot":"0x24dd5526ec5457b381da35186a09c725e9b65f332c008de4081ab943f822f445","logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000200000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x28","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f209a","extraData":"0x","mixHash":"0x1d07dbf7c97519ae09c4bca52e5679c871678a59765d2e97be1962dd58e2eb2b","nonce":"0x0000000000000000","baseFeePerGas":"0x6a9261","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x954c99be021e000ea8a1bd28b997499a5997e69a9cf914ff43228817dbc1da39","s":"0x1cc9c19c7ee0680972d5a998f44c3d4412b40c58d201483a5137f191dde1aad5","yParity":"0x1","v":"0x1","hash":"0xeb43b75f27fe8512fd8bf27ef8228070304910edac56a459a070500a474d5fd7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa2cb7e3fe91e1aef17dbae026a2e3af9f7e1169000f4333164b51a4aebdcf50e","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xfa2340dfa9bf7204736ea1e0455d3af5a350ddf1e71cbd3ec1c2275ce16a5a3e","transactionsRoot":"0xa1be23da0135a9669e1347a81c86b6c7416d1a71899c819922c7016c04ea80ff","receiptsRoot":"0x6f49d8b2aae186339697fcf866d2927e3896751965b5a160420b57dd4e728f06","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000100001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000800000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x26","gasLimit":"0x1c9c380","gasUsed":"0xc756","timestamp":"0x691f2098","extraData":"0x","mixHash":"0x54a1434c8463e2f0cdd2ff2d14785f288c15e492dfcb8f0d109c1db02541098e","nonce":"0x0000000000000000","baseFeePerGas":"0x8b1122","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x27","gas":"0x11354","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x40c10f190000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc0000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x87f69e75136cffc34fd26e7cefba5ab783d7e96e0079963d3cfa5372ad05f894","s":"0x189de815f46eb3f05ec354736ff657f40c034d5f02e0800d4c2025ad76c74962","yParity":"0x1","v":"0x1","hash":"0x343e1fb9b6c4611e4ce31b7dcbe41bfc132dbd42613d2342351877688188248c"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xbb04b5b0e1c09a9df97c675d0064a8529b7cf7a0478e1074fb08a2c1b993a203","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x95311a8de5ce13469e38c3969c83c24ed99395a30a5335d5bfd6a3b6c62ed1a2","transactionsRoot":"0x311ba12da839de384cd9aea15cbce25fd6c836a2ff3410425291da5bd63fcdf7","receiptsRoot":"0x7ff508e08298001c990c7e2267df52c1795e5666cb88d68a1eead6d4543c5599","logsBloom":"0x00000004000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000800000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x3e","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20b0","extraData":"0x","mixHash":"0x022fe61e6d554f1717da6ccbb97b7404cc40487083c35e7b34d6b7b3d27df882","nonce":"0x0000000000000000","baseFeePerGas":"0x5b3db","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x182353fba7d2dae5a8a7496dfce6d2bc7d08fb314a79cb31b290f591b0a162a0","s":"0x7aa219f8970cdf1484594fe561ba0b97b8f2d95bce31c600278b2cde68126e24","yParity":"0x0","v":"0x0","hash":"0x8a7233cbe755adebf10070b6e4359b9a75f56f9da6892e75c0f700cec7900cc5"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4722e0a99e70d96961868c785626f1e984bdd2ce7b86a34a887bb922500835f2","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xe32ad88ad9f267b6df35aeea5ec455a9613c1fb3f04878d95efe1c83640c7e18","transactionsRoot":"0xbc7c6e3568e8c4bd04853c029079f848c3e7cd7476519b9c2202e870a87ae602","receiptsRoot":"0xb1a38ee4c544a6fc06ace6bda97258869cc788acdc9e2b259aebb3ac7cb00b57","logsBloom":"0x00000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x34","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f20a6","extraData":"0x","mixHash":"0x242506177d1040a36bdb194b61cab5124e3db27e311dce9ab45b0ad6c9cb2312","nonce":"0x0000000000000000","baseFeePerGas":"0x159458","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2f","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x40c10f1900000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a650000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0xe78fafc4b3004960adcc169b6ffd4f2f54b5ce00f64ddfa3af8a3de97c1d975e","s":"0x4b89d7304e76a948b12c0468c6c033c09ac32a29bf25c0cfa79049e3d60df156","yParity":"0x0","v":"0x0","hash":"0x8c614b094f001261c209299e9fed0d8acb8ee94d6fec9ee0432143b62a827b4d"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xdbeb9f0839e66b4fcf67716ad27b910c8d48ba7e892e1f4abd5084248c35a0dc","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x2c37faea4f57603b3116590dbedfad175c7d99528cd4abdc1d7a7a1fa9e3ca3d","transactionsRoot":"0x99089260f359e98593a4b14c66be45ea4d6687a69c95a12f3d0020072fda33cd","receiptsRoot":"0x103de4af1aa51f98bf0b615b0115d8a55dac6fa0acb988b762478fce08fb0f38","logsBloom":"0x00800000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000008000000000","difficulty":"0x0","number":"0x52","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20c4","extraData":"0x","mixHash":"0x8a551d5e655542b77b1694566871573ab49a95bcfb2a0af9778f7b0c1b6f519b","nonce":"0x0000000000000000","baseFeePerGas":"0x65f4","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xf2f93f8faf986116a11040de5246f2fab6813bf8f4a7530235d8f6a78ddd85e5","s":"0x7656e9413fd352292dbb8301303f1377feb298580c72ec52c74e30fa82473af3","yParity":"0x0","v":"0x0","hash":"0x333e4f553a2e41906493a4cebc992d60d23a0099a8c0a6537592bf1ba85d9b76"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x316d18eb3d57c040c4bf7358096dc975276d3dd5a079934f6e8e65e217f6194c","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xd1bea7cf3ba15169aae83bb5c65d8b5abf8f27933db25df226c42f7fd10d66a2","transactionsRoot":"0xe66723914b90be01f55797f1dc1c53fc1239cc587cbe3a899c0529d7f913d757","receiptsRoot":"0x7a28b82b89f038e5ae76564ced538212799b358488715878a3aa0ac31b6651c8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000100000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x7","gasLimit":"0x1c9c380","gasUsed":"0xb95f4","timestamp":"0x691f2079","extraData":"0x","mixHash":"0xb033f8e8d9344a9004ea57d25aab167462549f95d6da88cfc94cd139294252e1","nonce":"0x0000000000000000","baseFeePerGas":"0x1b269074","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3","gas":"0xf0fbd","maxFeePerGas":"0x5b450551","maxPriorityFeePerGas":"0x1","to":null,"value":"0x0","accessList":[],"input":"0x60e0806040523461047457610ff9803803809161001c8285610478565b83398101906080818303126104745780516001600160401b038111610474578261004791830161049b565b602082015190926001600160401b0382116104745761006791830161049b565b9060408101519060ff82168203610474576060015183519091906001600160401b0381116103a5576100995f546104f0565b601f8111610425575b50602094601f82116001146103c4579481929394955f926103b9575b50508160011b915f199060031b1c1916175f555b82516001600160401b0381116103a5576100ed6001546104f0565b601f8111610342575b506020601f82116001146102df57819293945f926102d4575b50508160011b915f199060031b1c1916176001555b6080524660a0526040515f905f54918161013d846104f0565b9182825260208201946001811690815f146102b8575060011461026e575b61016792500382610478565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526101db60c082610478565b51902060c05260025481810180911161025a57600255335f52600360205260405f208181540190556040519081525f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3604051610ab090816105298239608051816105e3015260a051816108e3015260c051816109090152f35b634e487b7160e01b5f52601160045260245ffd5b505f80805290915f80516020610fd98339815191525b81831061029c5750509060206101679282010161015b565b6020919350806001915483858801015201910190918392610284565b60ff191686525061016792151560051b8201602001905061015b565b015190505f8061010f565b601f1982169060015f52805f20915f5b81811061032a57509583600195969710610312575b505050811b01600155610124565b01515f1960f88460031b161c191690555f8080610304565b9192602060018192868b0151815501940192016102ef565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c8101916020841061039b575b601f0160051c01905b81811061039057506100f6565b5f8155600101610383565b909150819061037a565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100be565b601f198216955f8052805f20915f5b88811061040d575083600195969798106103f5575b505050811b015f556100d2565b01515f1960f88460031b161c191690555f80806103e8565b919260206001819286850151815501940192016103d3565b5f80525f80516020610fd9833981519152601f830160051c8101916020841061046a575b601f0160051c01905b81811061045f57506100a2565b5f8155600101610452565b9091508190610449565b5f80fd5b601f909101601f19168101906001600160401b038211908210176103a557604052565b81601f82011215610474578051906001600160401b0382116103a557604051926104cf601f8401601f191660200185610478565b8284526020838301011161047457815f9260208093018386015e8301015290565b90600182811c9216801561051e575b602083101461050a57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916104ff56fe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461076d578063095ea7b3146106f457806318160ddd146106d757806323b872dd14610607578063313ce567146105ca5780633644e515146105a857806340c10f191461053057806370a08231146104f85780637ecebe00146104c057806395d89b41146103e65780639dc29fac14610386578063a9059cbb14610311578063d505accf146101075763dd62ed3e146100b3575f80fd5b34610103576040366003190112610103576100cc6108a7565b6100d46108bd565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101035760e0366003190112610103576101206108a7565b6101286108bd565b6044356064359260843560ff8116809103610103574285106102cc5760805f916020936101536108e0565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d060e082610847565b519020604051908682019261190160f01b845260228301526042820152604281526101fc606282610847565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c1575f516001600160a01b0316801515806102b8575b15610282577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461023a565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346101035760403660031901126101035761032a6108a7565b60243590335f52600360205260405f206103458382546108d3565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610a5b83398151915260203392a3602060405160018152f35b34610103576040366003190112610103575f6103a06108a7565b5f80516020610a5b83398151915260206024359260018060a01b03169283855260038252604085206103d38282546108d3565b90558060025403600255604051908152a3005b34610103575f366003190112610103576040515f6001546104068161080f565b808452906001811690811561049c575060011461043e575b61043a8361042e81850382610847565b6040519182918261087d565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106104825750909150810160200161042e61041e565b91926001816020925483858801015201910190929161046a565b60ff191660208086019190915291151560051b8401909101915061042e905061041e565b34610103576020366003190112610103576001600160a01b036104e16108a7565b165f526005602052602060405f2054604051908152f35b34610103576020366003190112610103576001600160a01b036105196108a7565b165f526003602052602060405f2054604051908152f35b34610103576040366003190112610103576105496108a7565b60243590600254908282018092116105945760205f80516020610a5b833981519152915f9360025560018060a01b0316938484526003825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b34610103575f3660031901126101035760206105c26108e0565b604051908152f35b34610103575f36600319011261010357602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610103576060366003190112610103576106206108a7565b6106286108bd565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610a5b833981519152929185600182016106b2575b5050835f526003825260405f206106828682546108d3565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106bb916108d3565b5f8581526004845260408082203383528552902055858561066a565b34610103575f366003190112610103576020600254604051908152f35b346101035760403660031901126101035761070d6108a7565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610103575f366003190112610103576040515f805461078c8161080f565b808452906001811690811561049c57506001146107b35761043a8361042e81850382610847565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106107f55750909150810160200161042e61041e565b9192600181602092548385880101520191019092916107dd565b90600182811c9216801561083d575b602083101461082957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161081e565b90601f8019910116810190811067ffffffffffffffff82111761086957604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010357565b602435906001600160a01b038216820361010357565b9190820391821161059457565b467f00000000000000000000000000000000000000000000000000000000000000000361092b577f000000000000000000000000000000000000000000000000000000000000000090565b6040515f905f54918161093d8461080f565b9182825260208201946001811690815f14610a3e57506001146109e1575b61096792500382610847565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109db60c082610847565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a225750509060206109679282010161095b565b6020919350806001915483858801015201910190918392610a0a565b60ff191686525061096792151560051b8201602001905061095b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207de4439c7c575beac552a99bd7a80a56f5f69465e073bcea91ee0ad18ec4067f64736f6c634300081a0033290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000d3c21bcecceda1000000000000000000000000000000000000000000000000000000000000000000000e44616920537461626c65636f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034441490000000000000000000000000000000000000000000000000000000000","r":"0xeb5fb55f8bbae370e6e373ccf88ddf002a04a0386904baf9809f8200332b0a83","s":"0x216982caaea525382b499e0bf1004b3b7b1d45e877f4521ee0aa9feaf95dee5c","yParity":"0x0","v":"0x0","hash":"0x4f09c9d3952d84a8f6355783acaceb99add8247fdeb3e62eefedd50d328423a7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xd978d8afd9e322b5ce597d8f75440b0f05a822c3456abd6fb686b55ae134cdff","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x6a778761b52714cce0787b68c0f39499132b782e7e33d3e2957a24d2f37534b5","transactionsRoot":"0x0c6fb3d8349545a04c897018674fd9da78995eeb5790b6b99ef8a7c19f84fded","receiptsRoot":"0x9c61b21e45229aeccde035b085f7e66bcfec2d83c9eb996005ab53ac729d3bd0","logsBloom":"0x00000000000020000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000008000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000004000000000000010000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x58","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20ca","extraData":"0x","mixHash":"0xfc4e9dddf7acdfc1614fd86e67f498ab56031b9f3b6c549225ea0e2fb63caae6","nonce":"0x0000000000000000","baseFeePerGas":"0x2de3","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0x7488ce9d4127ebf7c24c8d3950c4a2b34bf81deb7d3c2b20b06b9b1ca01c7706","s":"0x5394eec6ba44f14fa3a1daa5241c3c3bc17d8e86f3c6e909d345fd3408a72406","yParity":"0x0","v":"0x0","hash":"0xd042d1acf9b3ef0b6c9a3d7a6c1ceb5fe0f34d6dafd020ebc51a292c9c022c2e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe3fbe9aa7849eba5a617b947db07be9b44c4e17613a8cff7b918598b1cdcdf52","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x6c1874081367d406c0250e4585fcc728284d4cdddf83f9e2ee7152560caddbfb","transactionsRoot":"0x951165a3446f574eb5479745ff1a5e50a65de2e5c00abd4e80a9407d36ca71ca","receiptsRoot":"0x8cc269626202e45e9b3c4311cc9cc7b669839148f6615949b7f8819114674905","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000000000000000000020000000000000000000000010000000000000000000000000400000000000000000","difficulty":"0x0","number":"0x2c","gasLimit":"0x1c9c380","gasUsed":"0xc762","timestamp":"0x691f209e","extraData":"0x","mixHash":"0x5009e0c4c277ccfde17ef75570845c5aaa247cbe80d3ac3d7487614fb28a426e","nonce":"0x0000000000000000","baseFeePerGas":"0x3e93a4","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2a","gas":"0x12398","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","value":"0x0","accessList":[],"input":"0x40c10f1900000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b9060000000000000000000000000000000000000000000000056bc75e2d63100000","r":"0x7b29f179204059190566dd4df94b41aa97852a67000fef4654c3f5d3250b08f0","s":"0x2aae606f35c3b964874e3ee89d643304655d959d9fa52848adc8e876ce196972","yParity":"0x1","v":"0x1","hash":"0xfb0282c78052ee3dc19cb2e55824f9f778c67cd169bc03206b5dbbfd276f8fd3"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa97f0a379f84bb7beb6c053446a72a3f55aa0ebce13d2296a92fc026f77e33e3","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4377dc9fff422ab06c673fa462ed3241521dd7cb8ec438e8cc9860ca7af56e90","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x61","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f20d3","extraData":"0x","mixHash":"0xa1e6235d50e88eed859835f0298cd89685b088751f4a61566429c9775e03c8f2","nonce":"0x0000000000000000","baseFeePerGas":"0xdd3","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0xd5a4ba2b344d7c2d7b03362e3e8d47d81538a40a30c2d3bcb38c1c421aaacafe","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x8b763de36b0b71b7c67afea8d8bdccb0a72ee6265c4140a1b01db5e96f694eff","transactionsRoot":"0x04385b8e25d4841c91985fe521c62d106d6bb75f4a251ee210b8e5d71e73e6f2","receiptsRoot":"0xa738395f5a462a4b99dd4ec03551692dd9728a5da501041fb784745533db8ded","logsBloom":"0x00800000000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000020000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0x53","gasLimit":"0x1c9c380","gasUsed":"0xb4a9","timestamp":"0x691f20c5","extraData":"0x","mixHash":"0xd4a5a90fe7fad56e880a05a5794d238bda80484370aefe45e04c9c192b121889","nonce":"0x0000000000000000","baseFeePerGas":"0x5940","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0x10837","maxFeePerGas":"0xbd95e2f","maxPriorityFeePerGas":"0x1","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","value":"0x0","accessList":[],"input":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","r":"0xd72eeb2073e04c267117107d66e2e6f7f65eb8877048351213fb7eb4bc530e1c","s":"0x6ca0379a598bb9df4829e0b764999d1d8dead75af16497eb8fea95ec04ca4f65","yParity":"0x0","v":"0x0","hash":"0x3919a1ed47f95e08750fd36437d797c1855667d1d93380359f66c6d002581743"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x30494c922cbba206ea1d432542fac13aa86ac46a5aef691e5c23590b7a6871c5","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4377dc9fff422ab06c673fa462ed3241521dd7cb8ec438e8cc9860ca7af56e90","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x62","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x691f20d4","extraData":"0x","mixHash":"0x4e4040b98d102ae3097486d50b2f0b7e1f7371677972fe684660dfe5cc818149","nonce":"0x0000000000000000","baseFeePerGas":"0xc19","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"transactions":[],"ommers":[]}],"transactions":[{"info":{"transaction_hash":"0xc6940d6837bbaf9ee0c12a15dd42ccdfe090cb96840a4e247575b5576acb7b6c","transaction_index":0,"from":"0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":0,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000200000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xa0c7fb028a0610346c615419ee54974c5725d1e309b228e2756a98cb2bc1be80","block_number":39},{"info":{"transaction_hash":"0x7f40a96c52e6605e11a2a298f321a53e3da97b064c67fb8dfaee084e71e87449","transaction_index":0,"from":"0x90f79bf6eb2c4f870365e785982e1f101e93b906","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x90f79bf6eb2c4f870365e785982e1f101e93b906","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":2,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000400100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000400000000000000000000000000000000010000000000000000010000000000000000000000000000000000000000000"},"block_hash":"0x480de24e49ea597e46f13a1bb72d13c4dcaeef5e0bf6981c97bf48c1b56ef3c0","block_number":48},{"info":{"transaction_hash":"0xd4d2a78b187e7cea9fd7d00b08ec949d7cde0098dfa2a3029b9352c8dd02ca46","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x610178da211fef7d417bc0e6fed39f05609ad788","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x610178da211fef7d417bc0e6fed39f05609ad788","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xec58f4b8000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":25651,"gas_limit":25651,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x41f9d09dd5159251f8a8e482bbe097b7c01a5e6f70c5a0ddb494906464fc9dd7"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":13,"gas_used":47083},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb7eb","logs":[{"address":"0x610178da211fef7d417bc0e6fed39f05609ad788","topics":["0x41f9d09dd5159251f8a8e482bbe097b7c01a5e6f70c5a0ddb494906464fc9dd7"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x9f9d30f44dec9dbc845ea1174d8ffc543059a7d8b1e3677cf74ae86975adf983","block_number":17},{"info":{"transaction_hash":"0xd780e8b5352a6f18aa2a19ad5fe527d564fbd2b9d98d3a9ced9d17ff63de4021","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":30,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000200000000000000000000000002000000000000000000000000010000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xa2ea670bdd837339558db7d506eac9544f000dc1f53379d24931ebf99455c178","block_number":26},{"info":{"transaction_hash":"0x0c7d2ea39da8ad62676a218f4c16a5472718be3f8ed744e8af87240112b41963","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":"0x3635c9adc5dea00000","data":"0xd0e30db0","output":"0x","gas_used":47909,"gas_limit":68600,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x00000000000000000000000000000000000000000000003635c9adc5dea00000"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x00000000000000000000000000000000000000000000003635c9adc5dea00000"},"decoded":null,"position":0,"index":1}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Stop","out":"0x","nonce":1,"gas_used":68973},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x10d6d","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x00000000000000000000000000000000000000000000003635c9adc5dea00000"},{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x00000000000000000000000000000000000000000000003635c9adc5dea00000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xacf9ab32c12228915aab4169128334d2d0d0e6c178fd7b1c3ee70dcb23ff43e4","block_number":5},{"info":{"transaction_hash":"0xcdb4fd18d28b5f6fdcb6a2caf758b7ab21911a7b8ad85c395a5487fdbce0c91e","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":31,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000200000000000000000000000002000000000000000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xdce183bb9360c2351ecf935023ce100b5b8492f362f26dc63e7597df69705401","block_number":27},{"info":{"transaction_hash":"0x91e6d4f1214fe4fa06171c249757acd02048e89a3cd264580bcb855ff10b3cf5","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":"0xa9059cbb00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29589,"gas_limit":53284,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":33,"gas_used":51233},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc821","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000840000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000000000000000000000000000000000000000001000000000000000000000000000000"},"block_hash":"0x788b0e059eef5d1c979c0f8f70694f51ab6d29916819783d3825ac272f237ddd","block_number":29},{"info":{"transaction_hash":"0xb6ddaf3ccd0bc15d081d0d7bdf8672752ec4e0fb078ce9938ed011301a0b94d2","transaction_index":5,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","contract_address":null,"traces":[{"parent":null,"children":[1,2,3],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x6a627842000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x0000000000000000000000000000000000000000000000183e55dbab04396869","gas_used":135629,"gas_limit":191640,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8"},"decoded":null,"position":3,"index":0},{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000183e55dbab04396869"},"decoded":null,"position":3,"index":1},{"raw_log":{"topics":["0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000043c33c1937564800000"},"decoded":null,"position":3,"index":2},{"raw_log":{"topics":["0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000043c33c1937564800000"},"decoded":null,"position":3,"index":3}],"ordering":[{"Call":0},{"Call":1},{"Call":2},{"Log":0},{"Log":1},{"Log":2},{"Log":3}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x70a08231000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60","output":"0x0000000000000000000000000000000000000000000000008ac7230489e80000","gas_used":2552,"gas_limit":176415,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]},{"parent":0,"children":[],"idx":2,"trace":{"depth":1,"success":true,"caller":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x70a08231000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60","output":"0x00000000000000000000000000000000000000000000043c33c1937564800000","gas_used":2552,"gas_limit":168958,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]},{"parent":0,"children":[],"idx":3,"trace":{"depth":1,"success":true,"caller":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x017e7e58","output":"0x0000000000000000000000000000000000000000000000000000000000000000","gas_used":2314,"gas_limit":161297,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000183e55dbab04396869","nonce":21,"gas_used":154261},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x7ccb9","logs":[{"address":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8"},{"address":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000183e55dbab04396869"},{"address":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","topics":["0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000043c33c1937564800000"},{"address":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","topics":["0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000043c33c1937564800000"}],"logsBloom":"0x00000000000000001000000080000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000100000800000000000008000000000010000000000000000000000000000000004000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000200000000000020000000000002000001000000000000020000000000000000000000000000000000020000000000000000000000000000000"},"block_hash":"0xc4dad62861270b90c909b30f2b558707e6418ef90adcf862a18d2c7d2ab0403b","block_number":20},{"info":{"transaction_hash":"0x5eda687f83aad4d4c75598ea1bb49972f6e6a9673b789376e152ec0a4915ce75","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":"0xa9059cbb00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b9060000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29589,"gas_limit":53284,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":41,"gas_used":51233},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc821","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000400000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000400000002000000000000000000000000000000000000000000010000000000000000000000000000000000000000000"},"block_hash":"0xe3fbe9aa7849eba5a617b947db07be9b44c4e17613a8cff7b918598b1cdcdf52","block_number":43},{"info":{"transaction_hash":"0x1700804a59d396a58d1d86ab9515ccee3d95c27e2808cf72e573af096954dd2b","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":"0xa9059cbb00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29589,"gas_limit":53284,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":57,"gas_used":51233},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc821","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000400000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000002000000000000000000000000000000000000042000000200000000000000000040000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xf6dc67055f98cef6d71799a6e5aefa7570151b343c3c1d48200c01c4d74c66ee","block_number":71},{"info":{"transaction_hash":"0x3919a1ed47f95e08750fd36437d797c1855667d1d93380359f66c6d002581743","transaction_index":0,"from":"0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":2,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00800000000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000020000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0xf8f4361df6d7680ee55542a5aa3ca466fcff46d20b79e58efb8f1beb7efca533","block_number":83},{"info":{"transaction_hash":"0xeefc079729e4ba97111e1dbce507cc3cab548c5e7038836a8a6db99281d01d6c","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":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":29,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000200000000000000000000000002000000000000000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x36b7881a5b3b7d5a428ea29ddb743b3ffdee61f090ae11ebf8355cb48821a6fc","block_number":25},{"info":{"transaction_hash":"0xff1efe51d71c7cdbe7ce175ee7db6fd0d1cb897599ba86e0378e50c786b2a069","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f19000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa90000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":55,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000040200000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000080000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xcf6822092cf5c518fb3ac9312910371f3a8b85d0ad919c97a45c604d7d64c6d7","block_number":66},{"info":{"transaction_hash":"0x0279a86985d2ca8f01dcf18a2d7ecfc58f98f29308d943eec438a60a363ab04c","transaction_index":0,"from":"0xa0ee7a142d267c1f36714e4a8f75612f20a79720","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xa0ee7a142d267c1f36714e4a8f75612f20a79720","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":1,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000004000000000000010000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x2090bf7d9b5edc6a6cedd698e49d897177cc1b4d1feefee5bbdc58c97a024499","block_number":89},{"info":{"transaction_hash":"0x93ea346814f820ae04bef4203efdee5094d437888beccab0d3c330e141467bbd","transaction_index":3,"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":"0xa9059cbb000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b600000000000000000000000000000000000000000000000008ac7230489e80000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29589,"gas_limit":49116,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e80000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":19,"gas_used":51221},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4a9e1","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e80000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000008000000000000000000000000000000000000080000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042001000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc4dad62861270b90c909b30f2b558707e6418ef90adcf862a18d2c7d2ab0403b","block_number":20},{"info":{"transaction_hash":"0xa797f54edeacb6679e753deeecf7c4266236e65cb906bb1ff5dac42c685def32","transaction_index":0,"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":"0x608060405234801561001057600080fd5b506040516138c63803806138c68339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055613863806100636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a2e74af61161005b578063a2e74af6146100fd578063c9c6539614610132578063e6a439051461016d578063f46901ed146101a857610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063574f2ba3146100e3575b600080fd5b6100956101db565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100956101f7565b610095600480360360208110156100dc57600080fd5b5035610213565b6100eb610247565b60408051918252519081900360200190f35b6101306004803603602081101561011357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661024d565b005b6100956004803603604081101561014857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661031a565b6100956004803603604081101561018357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166109ad565b610130600480360360208110156101be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109e0565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061022057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103b757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106103f45783856103f7565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff821661047e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561051f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b60606040518060200161053190610aad565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660408181527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087811b821660208581019190915287821b9092166034850152825160288186030181526048850184528051908301208551868401207fff000000000000000000000000000000000000000000000000000000000000006068870152309283901b6069870152607d8601829052609d8087018290528551808803909101815260bd8701808752815191909501209290935273ffffffffffffffffffffffffffffffffffffffff808a1660dd87015280891660fd87015261011d860182905261013d8601849052821661015d8601529251949550919390927f2577a905931c419496123816308a518e438af606bb12c033630222f97ff3bb1e919081900361017d0190a1828451602086016000f5604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152888116602483015291519299509089169163485cc9559160448082019260009290919082900301818387803b15801561070f57600080fd5b505af1158015610723573d6000803e3d6000fd5b5050505086600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060038790806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e989600380549050604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a350505050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612d7480610abb8339019056fe60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820693694dcfc2b95bd815ab65fb808b255b96283011e586ba90a9d17f948e116f364736f6c63430005100032000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063a2e74af61161005b578063a2e74af6146100fd578063c9c6539614610132578063e6a439051461016d578063f46901ed146101a857610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063574f2ba3146100e3575b600080fd5b6100956101db565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100956101f7565b610095600480360360208110156100dc57600080fd5b5035610213565b6100eb610247565b60408051918252519081900360200190f35b6101306004803603602081101561011357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661024d565b005b6100956004803603604081101561014857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661031a565b6100956004803603604081101561018357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166109ad565b610130600480360360208110156101be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109e0565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061022057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103b757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106103f45783856103f7565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff821661047e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561051f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b60606040518060200161053190610aad565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660408181527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087811b821660208581019190915287821b9092166034850152825160288186030181526048850184528051908301208551868401207fff000000000000000000000000000000000000000000000000000000000000006068870152309283901b6069870152607d8601829052609d8087018290528551808803909101815260bd8701808752815191909501209290935273ffffffffffffffffffffffffffffffffffffffff808a1660dd87015280891660fd87015261011d860182905261013d8601849052821661015d8601529251949550919390927f2577a905931c419496123816308a518e438af606bb12c033630222f97ff3bb1e919081900361017d0190a1828451602086016000f5604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152888116602483015291519299509089169163485cc9559160448082019260009290919082900301818387803b15801561070f57600080fd5b505af1158015610723573d6000803e3d6000fd5b5050505086600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060038790806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e989600380549050604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a350505050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612d7480610abb8339019056fe60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820693694dcfc2b95bd815ab65fb808b255b96283011e586ba90a9d17f948e116f364736f6c63430005100032","gas_used":2912403,"gas_limit":3865104,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063a2e74af61161005b578063a2e74af6146100fd578063c9c6539614610132578063e6a439051461016d578063f46901ed146101a857610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063574f2ba3146100e3575b600080fd5b6100956101db565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100956101f7565b610095600480360360208110156100dc57600080fd5b5035610213565b6100eb610247565b60408051918252519081900360200190f35b6101306004803603602081101561011357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661024d565b005b6100956004803603604081101561014857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661031a565b6100956004803603604081101561018357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166109ad565b610130600480360360208110156101be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109e0565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061022057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103b757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106103f45783856103f7565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff821661047e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561051f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b60606040518060200161053190610aad565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660408181527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087811b821660208581019190915287821b9092166034850152825160288186030181526048850184528051908301208551868401207fff000000000000000000000000000000000000000000000000000000000000006068870152309283901b6069870152607d8601829052609d8087018290528551808803909101815260bd8701808752815191909501209290935273ffffffffffffffffffffffffffffffffffffffff808a1660dd87015280891660fd87015261011d860182905261013d8601849052821661015d8601529251949550919390927f2577a905931c419496123816308a518e438af606bb12c033630222f97ff3bb1e919081900361017d0190a1828451602086016000f5604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152888116602483015291519299509089169163485cc9559160448082019260009290919082900301818387803b15801561070f57600080fd5b505af1158015610723573d6000803e3d6000fd5b5050505086600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060038790806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e989600380549050604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a350505050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612d7480610abb8339019056fe60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820693694dcfc2b95bd815ab65fb808b255b96283011e586ba90a9d17f948e116f364736f6c63430005100032","nonce":4,"gas_used":3175671},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x3074f7","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xe8cfe820627f063a981a4675161c70127f859d313ee2c6649063bcafa4a836f9","block_number":8},{"info":{"transaction_hash":"0x5c329798cae54c08d5e47486ced23a19fa5ea4159f6c826a2425adad28ce7e05","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":"0x608060405234801561001057600080fd5b50610e10806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80637f7120fe11610076578063d0ebdbe71161005b578063d0ebdbe7146102e3578063ec58f4b814610316578063f84436bd14610349576100a3565b80637f7120fe1461027b5780638fd57b92146102b0576100a3565b806302cc250d146100a857806343218e19146100ef578063481c6a75146102275780635624b25b14610258575b600080fd5b6100db600480360360208110156100be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661040c565b604080519115158252519081900360200190f35b6101b26004803603604081101561010557600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561013d57600080fd5b82018360208201111561014f57600080fd5b8035906020019184600183028401116401000000008311171561017157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610437945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ec5781810151838201526020016101d4565b50505050905090810190601f1680156102195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022f6105af565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101b26004803603604081101561026e57600080fd5b50803590602001356105d1565b6102ae6004803603602081101561029157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610647565b005b6102ae600480360360208110156102c657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107f8565b6102ae600480360360208110156102f957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610907565b6102ae6004803603602081101561032c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a47565b6101b26004803603604081101561035f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111640100000000831117156103cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b5a945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083106104a057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610463565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610500576040519150601f19603f3d011682016040523d82523d6000602084013e610505565b606091505b5080935081925050506105a882826040516020018083805190602001908083835b6020831061056357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610526565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b815260010192505050604051602081830303815290604052610da3565b5092915050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008260200267ffffffffffffffff811180156105ef57600080fd5b506040519080825280601f01601f19166020018201604052801561061a576020820181803683370190505b50905060005b8381101561063d5784810154602080830284010152600101610620565b5090505b92915050565b600054610100900460ff16806106605750610660610dab565b8061066e575060005460ff16155b6106d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e697469616c697a61626c653a20696e697469616c697a6564000000000000604482015290519081900360640190fd5b600054610100900460ff1615801561073f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851690810291909117825560408051918252602082019290925281517f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350929181900390910190a180156107f457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461088457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f475076323a2063616c6c6572206e6f74206d616e616765720000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055815192835290517f640e18a2587e1d83e4fdabf70257d0a800ca4b2c1aaad1dfc485a4ad8bbbd6c69281900390910190a150565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1633148061094f575033610937610db1565b73ffffffffffffffffffffffffffffffffffffffff16145b6109ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f475076323a206e6f7420617574686f72697a6564000000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff85161790945560408051918252939092041660208201819052825190927f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350928290030190a15050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314610ad357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f475076323a2063616c6c6572206e6f74206d616e616765720000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602081815260409283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155815192835290517f41f9d09dd5159251f8a8e482bbe097b7c01a5e6f70c5a0ddb494906464fc9dd79281900390910190a150565b606060006343218e1960e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610bc4578181015183820152602001610bac565b50505050905090810190601f168015610bf15780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909816979097178752518151919750309688965090945084935091508083835b60208310610cc257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c85565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d24576040519150601f19603f3d011682016040523d82523d6000602084013e610d29565b606091505b50905080925050600082600184510381518110610d4257fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b149050610d85836001855103610dd6565b8015610d92575050610641565b610d9b83610da3565b505092915050565b805160208201fd5b303b1590565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905256fea264697066735822122061c922ff3c8fd77b82a4bacb85f667123c27bea6c7c2450802edca5880c39c6364736f6c63430007060033","output":"0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80637f7120fe11610076578063d0ebdbe71161005b578063d0ebdbe7146102e3578063ec58f4b814610316578063f84436bd14610349576100a3565b80637f7120fe1461027b5780638fd57b92146102b0576100a3565b806302cc250d146100a857806343218e19146100ef578063481c6a75146102275780635624b25b14610258575b600080fd5b6100db600480360360208110156100be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661040c565b604080519115158252519081900360200190f35b6101b26004803603604081101561010557600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561013d57600080fd5b82018360208201111561014f57600080fd5b8035906020019184600183028401116401000000008311171561017157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610437945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ec5781810151838201526020016101d4565b50505050905090810190601f1680156102195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022f6105af565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101b26004803603604081101561026e57600080fd5b50803590602001356105d1565b6102ae6004803603602081101561029157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610647565b005b6102ae600480360360208110156102c657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107f8565b6102ae600480360360208110156102f957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610907565b6102ae6004803603602081101561032c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a47565b6101b26004803603604081101561035f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111640100000000831117156103cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b5a945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083106104a057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610463565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610500576040519150601f19603f3d011682016040523d82523d6000602084013e610505565b606091505b5080935081925050506105a882826040516020018083805190602001908083835b6020831061056357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610526565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b815260010192505050604051602081830303815290604052610da3565b5092915050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008260200267ffffffffffffffff811180156105ef57600080fd5b506040519080825280601f01601f19166020018201604052801561061a576020820181803683370190505b50905060005b8381101561063d5784810154602080830284010152600101610620565b5090505b92915050565b600054610100900460ff16806106605750610660610dab565b8061066e575060005460ff16155b6106d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e697469616c697a61626c653a20696e697469616c697a6564000000000000604482015290519081900360640190fd5b600054610100900460ff1615801561073f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851690810291909117825560408051918252602082019290925281517f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350929181900390910190a180156107f457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461088457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f475076323a2063616c6c6572206e6f74206d616e616765720000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055815192835290517f640e18a2587e1d83e4fdabf70257d0a800ca4b2c1aaad1dfc485a4ad8bbbd6c69281900390910190a150565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1633148061094f575033610937610db1565b73ffffffffffffffffffffffffffffffffffffffff16145b6109ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f475076323a206e6f7420617574686f72697a6564000000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff85161790945560408051918252939092041660208201819052825190927f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350928290030190a15050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314610ad357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f475076323a2063616c6c6572206e6f74206d616e616765720000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602081815260409283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155815192835290517f41f9d09dd5159251f8a8e482bbe097b7c01a5e6f70c5a0ddb494906464fc9dd79281900390910190a150565b606060006343218e1960e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610bc4578181015183820152602001610bac565b50505050905090810190601f168015610bf15780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909816979097178752518151919750309688965090945084935091508083835b60208310610cc257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c85565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d24576040519150601f19603f3d011682016040523d82523d6000602084013e610d29565b606091505b50905080925050600082600184510381518110610d4257fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b149050610d85836001855103610dd6565b8015610d92575050610641565b610d9b83610da3565b505092915050565b805160208201fd5b303b1590565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905256fea264697066735822122061c922ff3c8fd77b82a4bacb85f667123c27bea6c7c2450802edca5880c39c6364736f6c63430007060033","gas_used":720753,"gas_limit":969218,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80637f7120fe11610076578063d0ebdbe71161005b578063d0ebdbe7146102e3578063ec58f4b814610316578063f84436bd14610349576100a3565b80637f7120fe1461027b5780638fd57b92146102b0576100a3565b806302cc250d146100a857806343218e19146100ef578063481c6a75146102275780635624b25b14610258575b600080fd5b6100db600480360360208110156100be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661040c565b604080519115158252519081900360200190f35b6101b26004803603604081101561010557600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561013d57600080fd5b82018360208201111561014f57600080fd5b8035906020019184600183028401116401000000008311171561017157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610437945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ec5781810151838201526020016101d4565b50505050905090810190601f1680156102195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022f6105af565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101b26004803603604081101561026e57600080fd5b50803590602001356105d1565b6102ae6004803603602081101561029157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610647565b005b6102ae600480360360208110156102c657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107f8565b6102ae600480360360208110156102f957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610907565b6102ae6004803603602081101561032c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a47565b6101b26004803603604081101561035f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111640100000000831117156103cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b5a945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083106104a057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610463565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610500576040519150601f19603f3d011682016040523d82523d6000602084013e610505565b606091505b5080935081925050506105a882826040516020018083805190602001908083835b6020831061056357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610526565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b815260010192505050604051602081830303815290604052610da3565b5092915050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008260200267ffffffffffffffff811180156105ef57600080fd5b506040519080825280601f01601f19166020018201604052801561061a576020820181803683370190505b50905060005b8381101561063d5784810154602080830284010152600101610620565b5090505b92915050565b600054610100900460ff16806106605750610660610dab565b8061066e575060005460ff16155b6106d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e697469616c697a61626c653a20696e697469616c697a6564000000000000604482015290519081900360640190fd5b600054610100900460ff1615801561073f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff851690810291909117825560408051918252602082019290925281517f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350929181900390910190a180156107f457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461088457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f475076323a2063616c6c6572206e6f74206d616e616765720000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055815192835290517f640e18a2587e1d83e4fdabf70257d0a800ca4b2c1aaad1dfc485a4ad8bbbd6c69281900390910190a150565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1633148061094f575033610937610db1565b73ffffffffffffffffffffffffffffffffffffffff16145b6109ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f475076323a206e6f7420617574686f72697a6564000000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff85161790945560408051918252939092041660208201819052825190927f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350928290030190a15050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314610ad357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f475076323a2063616c6c6572206e6f74206d616e616765720000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602081815260409283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155815192835290517f41f9d09dd5159251f8a8e482bbe097b7c01a5e6f70c5a0ddb494906464fc9dd79281900390910190a150565b606060006343218e1960e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610bc4578181015183820152602001610bac565b50505050905090810190601f168015610bf15780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909816979097178752518151919750309688965090945084935091508083835b60208310610cc257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c85565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d24576040519150601f19603f3d011682016040523d82523d6000602084013e610d29565b606091505b50905080925050600082600184510381518110610d4257fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b149050610d85836001855103610dd6565b8015610d92575050610641565b610d9b83610da3565b505092915050565b805160208201fd5b303b1590565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905256fea264697066735822122061c922ff3c8fd77b82a4bacb85f667123c27bea6c7c2450802edca5880c39c6364736f6c63430007060033","nonce":10,"gas_used":828217},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xca339","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xf4ff6e1339bab0ca22679d17d690319176f66af84b2fbe7be13c76df521803da","block_number":14},{"info":{"transaction_hash":"0x035dfade4eea851cd7d6d2a8103f9d138b4abc774d2d1defaa988f2df1d7a484","transaction_index":0,"from":"0x15d34aaf54267db7d7c367839aaf71a00a2c6a65","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x15d34aaf54267db7d7c367839aaf71a00a2c6a65","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":0,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000040020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100300000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000004000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x68a1e75012814402277e45893649c1c147a2fa9588bfa35e45762ca9395894e3","block_number":53},{"info":{"transaction_hash":"0x72d3eb482709b1530aa4d791340480f7b96d333143a49e2d59003534299f4eb9","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","contract_address":null,"traces":[{"parent":null,"children":[1,2],"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":"0xc9c653960000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa30000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0","output":"0x0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227","gas_used":2507511,"gas_limit":3266304,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x2577a905931c419496123816308a518e438af606bb12c033630222f97ff3bb1e"],"data":"0x000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa30000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e04c038ad6bfca2133ee6f20ac54377d10fb6f3756d2321ead7428e24817161e77b6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af162270000000000000000000000000000000000000000000000000000000000000001"},"decoded":null,"position":2,"index":1}],"ordering":[{"Log":0},{"Call":0},{"Call":1},{"Log":1}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE2","value":"0x0","data":"0x60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","output":"0x608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032","gas_used":2327803,"gas_limit":3170739,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]},{"parent":0,"children":[],"idx":2,"trace":{"depth":1,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x485cc9550000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa30000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0","output":"0x","gas_used":44677,"gas_limit":878938,"status":"Stop","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227","nonce":6,"gas_used":2529311},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x26981f","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x2577a905931c419496123816308a518e438af606bb12c033630222f97ff3bb1e"],"data":"0x000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa30000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e04c038ad6bfca2133ee6f20ac54377d10fb6f3756d2321ead7428e24817161e77b6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af162270000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000040000000000000000000000000000080000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000040000000000000000000000000000000000000000000000000000000000000000004000000000002c000000000000000000000000000000000000080000000000000000000001000000000100000000000000"},"block_hash":"0x652509a9f45b9d034e624899a118ad13718d35c548db9919f0811d5d688fd429","block_number":10},{"info":{"transaction_hash":"0x0707c8c3e864767ba2c0722a72ef10321a5f92770527ada46a209edca6ad6e18","transaction_index":0,"from":"0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":2,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000300001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000200000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xfab0778ab305fb66e0e8aad973415257fcf066bdc03b871588c2ab20f0121cff","block_number":41},{"info":{"transaction_hash":"0x0d76fbf5cc4f26c2bde86cbbe29dd29cd0425a31b83c21e401172aa8c6dcf008","transaction_index":0,"from":"0x70997970c51812dc3a010c7d01b50e0d17dc79c8","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x70997970c51812dc3a010c7d01b50e0d17dc79c8","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":1,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000001000000000000400000000000000000"},"block_hash":"0x6e3720a3b4009452edb01f42e4903c73a06cec53335eea84dcb04826130a0c38","block_number":33},{"info":{"transaction_hash":"0x5f3e0b56a4158ee46013135a58318b3c7ae1b16e60a6dbc775b99aa9c25be98f","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","contract_address":null,"traces":[{"parent":null,"children":[1,2],"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":"0xc9c653960000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d","gas_used":2490411,"gas_limit":3244074,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x2577a905931c419496123816308a518e438af606bb12c033630222f97ff3bb1e"],"data":"0x000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9667546a103822a3ea5b74bdf319f969f53de0a26339708852cfa21db6575a3beb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0","0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9"],"data":"0x00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d0000000000000000000000000000000000000000000000000000000000000003"},"decoded":null,"position":2,"index":1}],"ordering":[{"Log":0},{"Call":0},{"Call":1},{"Log":1}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE2","value":"0x0","data":"0x60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","output":"0x608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032","gas_used":2327803,"gas_limit":3148857,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]},{"parent":0,"children":[],"idx":2,"trace":{"depth":1,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x485cc9550000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x","gas_used":44677,"gas_limit":857055,"status":"Stop","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d","nonce":8,"gas_used":2512211},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x265553","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x2577a905931c419496123816308a518e438af606bb12c033630222f97ff3bb1e"],"data":"0x000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9667546a103822a3ea5b74bdf319f969f53de0a26339708852cfa21db6575a3beb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0","0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9"],"data":"0x00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d0000000000000000000000000000000000000000000000000000000000000003"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000080000400000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000002000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000400000000000000000000000000000000000000000000000000000000000000000040000000000024000000000000000000000000000000000000088000000000000000000001000000000100000000000000"},"block_hash":"0x3aede10169f4adabc14579635c6a68e283dca31161878fef75aa9e6c55299c23","block_number":12},{"info":{"transaction_hash":"0xe591ade6d5edfa58862be01f0e238d9477200791ba9bd1df59a562a9e1635050","transaction_index":4,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa9059cbb000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b6000000000000000000000000000000000000000000000043c33c1937564800000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29611,"gas_limit":53321,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60"],"data":"0x00000000000000000000000000000000000000000000043c33c1937564800000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":20,"gas_used":51267},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x57224","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60"],"data":"0x00000000000000000000000000000000000000000000043c33c1937564800000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000800000000001000000000000000000000008000000000000000000000000000000000000080000000000000000000000000100000000000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002001000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc4dad62861270b90c909b30f2b558707e6418ef90adcf862a18d2c7d2ab0403b","block_number":20},{"info":{"transaction_hash":"0x8c614b094f001261c209299e9fed0d8acb8ee94d6fec9ee0432143b62a827b4d","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f1900000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a650000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":47,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xad02010a313fc28b0162149f342594e35bb989916137294e831f4f221ac9028e","block_number":52},{"info":{"transaction_hash":"0xe4aeaedc7593133db42c6eb956fe51685fb54366fba32ff7e814f8fe6353d729","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f190000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc0000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":50,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000008000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x858a043b6c8f6bceb4d4fff2388e0755ef42121f523bc574f6abc209144eb97d","block_number":58},{"info":{"transaction_hash":"0x242601f1833a87a7a34812e01731754b328b475cfd28d1bbe127bb9922ae55fe","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f1900000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f0000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":62,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000400000008000000000"},"block_hash":"0x24814b8d862cac39d484619c38ce26a5b64e771e8f137cfffd727d4612fdea68","block_number":79},{"info":{"transaction_hash":"0xb67d1871b9dd67a2d2b8c52e64d1e708af6fd78fd0c7492ebfe83222ba304704","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":"0x56bc75e2d63100000","data":"0xd0e30db0","output":"0x","gas_used":13709,"gas_limit":26965,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":1}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Stop","out":"0x","nonce":64,"gas_used":34773},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x87d5","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x924f5e957b7aeea47d66773630dc080c56c46aed46cf53d818f90c0a6f7864cd","block_number":84},{"info":{"transaction_hash":"0xb9a67cc56ef6d07a9ccc21f369129bd9ad3a659f1e8725ce131be897c467c23e","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":"0x56bc75e2d63100000","data":"0xd0e30db0","output":"0x","gas_used":13709,"gas_limit":26965,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":1}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Stop","out":"0x","nonce":36,"gas_used":34773},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x87d5","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xc407fc79fb15c54177ccb37118136e70ab7e5e9343c61c732b9c1a9af6428cd7","block_number":35},{"info":{"transaction_hash":"0x53ff517615cf875a2bb73dd30f61e7fa01d4a974d1bc3c5767dad2f1b40989e3","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f19000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa90000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":54,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000040200000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000080000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x62b475a48a6c8fe7928392fea2e7909bbf9c02a93cde521326cca79ca5587cd2","block_number":65},{"info":{"transaction_hash":"0x0a404cfcca9aac3d5d1381da894807787eec9b158c27bb2cc565e7901e611fa7","transaction_index":0,"from":"0x14dc79964da2c08b23698b3d3cc7ca32193d9955","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x14dc79964da2c08b23698b3d3cc7ca32193d9955","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":1,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000002000000000000000008000000000000000000000000000000000000000000000040000000000000000000000000000000010000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x0c817235f74464384a67c88bf8a1ad7557818e58a520274ad96de117ee9b3bf1","block_number":75},{"info":{"transaction_hash":"0xfbb3ecc4bb60564fa4461e2a91b35c5bd639d3e64cc3867acce2b3a3234e9094","transaction_index":0,"from":"0x70997970c51812dc3a010c7d01b50e0d17dc79c8","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x70997970c51812dc3a010c7d01b50e0d17dc79c8","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":0,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000000000010000000000000000000000000000001000000000000000000000000000000"},"block_hash":"0x709e822586c318977682275282997e92b924b5ed4d71db2ae0b3769509e1e84d","block_number":32},{"info":{"transaction_hash":"0x1543b5c6df461eefc14c6762c6dc4864694a64725019cb5328d9768ab8f82370","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":"0x60e0806040523461047457610ff9803803809161001c8285610478565b83398101906080818303126104745780516001600160401b038111610474578261004791830161049b565b602082015190926001600160401b0382116104745761006791830161049b565b9060408101519060ff82168203610474576060015183519091906001600160401b0381116103a5576100995f546104f0565b601f8111610425575b50602094601f82116001146103c4579481929394955f926103b9575b50508160011b915f199060031b1c1916175f555b82516001600160401b0381116103a5576100ed6001546104f0565b601f8111610342575b506020601f82116001146102df57819293945f926102d4575b50508160011b915f199060031b1c1916176001555b6080524660a0526040515f905f54918161013d846104f0565b9182825260208201946001811690815f146102b8575060011461026e575b61016792500382610478565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526101db60c082610478565b51902060c05260025481810180911161025a57600255335f52600360205260405f208181540190556040519081525f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3604051610ab090816105298239608051816105e3015260a051816108e3015260c051816109090152f35b634e487b7160e01b5f52601160045260245ffd5b505f80805290915f80516020610fd98339815191525b81831061029c5750509060206101679282010161015b565b6020919350806001915483858801015201910190918392610284565b60ff191686525061016792151560051b8201602001905061015b565b015190505f8061010f565b601f1982169060015f52805f20915f5b81811061032a57509583600195969710610312575b505050811b01600155610124565b01515f1960f88460031b161c191690555f8080610304565b9192602060018192868b0151815501940192016102ef565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c8101916020841061039b575b601f0160051c01905b81811061039057506100f6565b5f8155600101610383565b909150819061037a565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100be565b601f198216955f8052805f20915f5b88811061040d575083600195969798106103f5575b505050811b015f556100d2565b01515f1960f88460031b161c191690555f80806103e8565b919260206001819286850151815501940192016103d3565b5f80525f80516020610fd9833981519152601f830160051c8101916020841061046a575b601f0160051c01905b81811061045f57506100a2565b5f8155600101610452565b9091508190610449565b5f80fd5b601f909101601f19168101906001600160401b038211908210176103a557604052565b81601f82011215610474578051906001600160401b0382116103a557604051926104cf601f8401601f191660200185610478565b8284526020838301011161047457815f9260208093018386015e8301015290565b90600182811c9216801561051e575b602083101461050a57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916104ff56fe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461076d578063095ea7b3146106f457806318160ddd146106d757806323b872dd14610607578063313ce567146105ca5780633644e515146105a857806340c10f191461053057806370a08231146104f85780637ecebe00146104c057806395d89b41146103e65780639dc29fac14610386578063a9059cbb14610311578063d505accf146101075763dd62ed3e146100b3575f80fd5b34610103576040366003190112610103576100cc6108a7565b6100d46108bd565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101035760e0366003190112610103576101206108a7565b6101286108bd565b6044356064359260843560ff8116809103610103574285106102cc5760805f916020936101536108e0565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d060e082610847565b519020604051908682019261190160f01b845260228301526042820152604281526101fc606282610847565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c1575f516001600160a01b0316801515806102b8575b15610282577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461023a565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346101035760403660031901126101035761032a6108a7565b60243590335f52600360205260405f206103458382546108d3565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610a5b83398151915260203392a3602060405160018152f35b34610103576040366003190112610103575f6103a06108a7565b5f80516020610a5b83398151915260206024359260018060a01b03169283855260038252604085206103d38282546108d3565b90558060025403600255604051908152a3005b34610103575f366003190112610103576040515f6001546104068161080f565b808452906001811690811561049c575060011461043e575b61043a8361042e81850382610847565b6040519182918261087d565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106104825750909150810160200161042e61041e565b91926001816020925483858801015201910190929161046a565b60ff191660208086019190915291151560051b8401909101915061042e905061041e565b34610103576020366003190112610103576001600160a01b036104e16108a7565b165f526005602052602060405f2054604051908152f35b34610103576020366003190112610103576001600160a01b036105196108a7565b165f526003602052602060405f2054604051908152f35b34610103576040366003190112610103576105496108a7565b60243590600254908282018092116105945760205f80516020610a5b833981519152915f9360025560018060a01b0316938484526003825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b34610103575f3660031901126101035760206105c26108e0565b604051908152f35b34610103575f36600319011261010357602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610103576060366003190112610103576106206108a7565b6106286108bd565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610a5b833981519152929185600182016106b2575b5050835f526003825260405f206106828682546108d3565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106bb916108d3565b5f8581526004845260408082203383528552902055858561066a565b34610103575f366003190112610103576020600254604051908152f35b346101035760403660031901126101035761070d6108a7565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610103575f366003190112610103576040515f805461078c8161080f565b808452906001811690811561049c57506001146107b35761043a8361042e81850382610847565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106107f55750909150810160200161042e61041e565b9192600181602092548385880101520191019092916107dd565b90600182811c9216801561083d575b602083101461082957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161081e565b90601f8019910116810190811067ffffffffffffffff82111761086957604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010357565b602435906001600160a01b038216820361010357565b9190820391821161059457565b467f00000000000000000000000000000000000000000000000000000000000000000361092b577f000000000000000000000000000000000000000000000000000000000000000090565b6040515f905f54918161093d8461080f565b9182825260208201946001811690815f14610a3e57506001146109e1575b61096792500382610847565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109db60c082610847565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a225750509060206109679282010161095b565b6020919350806001915483858801015201910190918392610a0a565b60ff191686525061096792151560051b8201602001905061095b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207de4439c7c575beac552a99bd7a80a56f5f69465e073bcea91ee0ad18ec4067f64736f6c634300081a0033290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000e8d4a51000000000000000000000000000000000000000000000000000000000000000000855534420436f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461076d578063095ea7b3146106f457806318160ddd146106d757806323b872dd14610607578063313ce567146105ca5780633644e515146105a857806340c10f191461053057806370a08231146104f85780637ecebe00146104c057806395d89b41146103e65780639dc29fac14610386578063a9059cbb14610311578063d505accf146101075763dd62ed3e146100b3575f80fd5b34610103576040366003190112610103576100cc6108a7565b6100d46108bd565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101035760e0366003190112610103576101206108a7565b6101286108bd565b6044356064359260843560ff8116809103610103574285106102cc5760805f916020936101536108e0565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d060e082610847565b519020604051908682019261190160f01b845260228301526042820152604281526101fc606282610847565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c1575f516001600160a01b0316801515806102b8575b15610282577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461023a565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346101035760403660031901126101035761032a6108a7565b60243590335f52600360205260405f206103458382546108d3565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610a5b83398151915260203392a3602060405160018152f35b34610103576040366003190112610103575f6103a06108a7565b5f80516020610a5b83398151915260206024359260018060a01b03169283855260038252604085206103d38282546108d3565b90558060025403600255604051908152a3005b34610103575f366003190112610103576040515f6001546104068161080f565b808452906001811690811561049c575060011461043e575b61043a8361042e81850382610847565b6040519182918261087d565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106104825750909150810160200161042e61041e565b91926001816020925483858801015201910190929161046a565b60ff191660208086019190915291151560051b8401909101915061042e905061041e565b34610103576020366003190112610103576001600160a01b036104e16108a7565b165f526005602052602060405f2054604051908152f35b34610103576020366003190112610103576001600160a01b036105196108a7565b165f526003602052602060405f2054604051908152f35b34610103576040366003190112610103576105496108a7565b60243590600254908282018092116105945760205f80516020610a5b833981519152915f9360025560018060a01b0316938484526003825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b34610103575f3660031901126101035760206105c26108e0565b604051908152f35b34610103575f36600319011261010357602060405160ff7f0000000000000000000000000000000000000000000000000000000000000006168152f35b34610103576060366003190112610103576106206108a7565b6106286108bd565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610a5b833981519152929185600182016106b2575b5050835f526003825260405f206106828682546108d3565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106bb916108d3565b5f8581526004845260408082203383528552902055858561066a565b34610103575f366003190112610103576020600254604051908152f35b346101035760403660031901126101035761070d6108a7565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610103575f366003190112610103576040515f805461078c8161080f565b808452906001811690811561049c57506001146107b35761043a8361042e81850382610847565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106107f55750909150810160200161042e61041e565b9192600181602092548385880101520191019092916107dd565b90600182811c9216801561083d575b602083101461082957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161081e565b90601f8019910116810190811067ffffffffffffffff82111761086957604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010357565b602435906001600160a01b038216820361010357565b9190820391821161059457565b467f0000000000000000000000000000000000000000000000000000000000007a690361092b577f3b90aeef9a2f7a490b3ae05b3e096bd4b716c7eb9725b4723ffd8b849b8fcfd690565b6040515f905f54918161093d8461080f565b9182825260208201946001811690815f14610a3e57506001146109e1575b61096792500382610847565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109db60c082610847565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a225750509060206109679282010161095b565b6020919350806001915483858801015201910190918392610a0a565b60ff191686525061096792151560051b8201602001905061095b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207de4439c7c575beac552a99bd7a80a56f5f69465e073bcea91ee0ad18ec4067f64736f6c634300081a0033","gas_used":640704,"gas_limit":868460,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x000000000000000000000000000000000000000000000000000000e8d4a51000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461076d578063095ea7b3146106f457806318160ddd146106d757806323b872dd14610607578063313ce567146105ca5780633644e515146105a857806340c10f191461053057806370a08231146104f85780637ecebe00146104c057806395d89b41146103e65780639dc29fac14610386578063a9059cbb14610311578063d505accf146101075763dd62ed3e146100b3575f80fd5b34610103576040366003190112610103576100cc6108a7565b6100d46108bd565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101035760e0366003190112610103576101206108a7565b6101286108bd565b6044356064359260843560ff8116809103610103574285106102cc5760805f916020936101536108e0565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d060e082610847565b519020604051908682019261190160f01b845260228301526042820152604281526101fc606282610847565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c1575f516001600160a01b0316801515806102b8575b15610282577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461023a565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346101035760403660031901126101035761032a6108a7565b60243590335f52600360205260405f206103458382546108d3565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610a5b83398151915260203392a3602060405160018152f35b34610103576040366003190112610103575f6103a06108a7565b5f80516020610a5b83398151915260206024359260018060a01b03169283855260038252604085206103d38282546108d3565b90558060025403600255604051908152a3005b34610103575f366003190112610103576040515f6001546104068161080f565b808452906001811690811561049c575060011461043e575b61043a8361042e81850382610847565b6040519182918261087d565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106104825750909150810160200161042e61041e565b91926001816020925483858801015201910190929161046a565b60ff191660208086019190915291151560051b8401909101915061042e905061041e565b34610103576020366003190112610103576001600160a01b036104e16108a7565b165f526005602052602060405f2054604051908152f35b34610103576020366003190112610103576001600160a01b036105196108a7565b165f526003602052602060405f2054604051908152f35b34610103576040366003190112610103576105496108a7565b60243590600254908282018092116105945760205f80516020610a5b833981519152915f9360025560018060a01b0316938484526003825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b34610103575f3660031901126101035760206105c26108e0565b604051908152f35b34610103575f36600319011261010357602060405160ff7f0000000000000000000000000000000000000000000000000000000000000006168152f35b34610103576060366003190112610103576106206108a7565b6106286108bd565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610a5b833981519152929185600182016106b2575b5050835f526003825260405f206106828682546108d3565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106bb916108d3565b5f8581526004845260408082203383528552902055858561066a565b34610103575f366003190112610103576020600254604051908152f35b346101035760403660031901126101035761070d6108a7565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610103575f366003190112610103576040515f805461078c8161080f565b808452906001811690811561049c57506001146107b35761043a8361042e81850382610847565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106107f55750909150810160200161042e61041e565b9192600181602092548385880101520191019092916107dd565b90600182811c9216801561083d575b602083101461082957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161081e565b90601f8019910116810190811067ffffffffffffffff82111761086957604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010357565b602435906001600160a01b038216820361010357565b9190820391821161059457565b467f0000000000000000000000000000000000000000000000000000000000007a690361092b577f3b90aeef9a2f7a490b3ae05b3e096bd4b716c7eb9725b4723ffd8b849b8fcfd690565b6040515f905f54918161093d8461080f565b9182825260208201946001811690815f14610a3e57506001146109e1575b61096792500382610847565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109db60c082610847565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a225750509060206109679282010161095b565b6020919350806001915483858801015201910190918392610a0a565b60ff191686525061096792151560051b8201602001905061095b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207de4439c7c575beac552a99bd7a80a56f5f69465e073bcea91ee0ad18ec4067f64736f6c634300081a0033","nonce":2,"gas_used":759188},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb9594","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x000000000000000000000000000000000000000000000000000000e8d4a51000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x316d18eb3d57c040c4bf7358096dc975276d3dd5a079934f6e8e65e217f6194c","block_number":6},{"info":{"transaction_hash":"0xfb0282c78052ee3dc19cb2e55824f9f778c67cd169bc03206b5dbbfd276f8fd3","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f1900000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b9060000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":42,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000000000000000000020000000000000000000000010000000000000000000000000400000000000000000"},"block_hash":"0xf40dadaeb294d7cf8a97c888839c21270cb9c483adb18d12325f83de59ee2f70","block_number":44},{"info":{"transaction_hash":"0x342d4028e10971cd4ab6d101db641b2902140f47971f71ab3f9bb6cf1b398eb7","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":"0x56bc75e2d63100000","data":"0xd0e30db0","output":"0x","gas_used":13709,"gas_limit":26965,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":1}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Stop","out":"0x","nonce":60,"gas_used":34773},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x87d5","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xaf1aac753feaffae71e797ecce95d789e2aa15a71c5dd0728c423c646378997d","block_number":77},{"info":{"transaction_hash":"0xb09d315cde0ff3d1de59fbcadab9e8a08684bd62538ff85b9dbce0a7c50c9f21","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":"0x60e0604052346103dd576040516100176040826103e1565b600d81526c2bb930b83832b21022ba3432b960991b602082015260405161003f6040826103e1565b60048152630ae8aa8960e31b602082015281516001600160401b0381116103105761006a5f54610404565b601f811161038e575b50602092601f821160011461032f57928192935f92610324575b50508160011b915f199060031b1c1916175f555b80516001600160401b038111610310576100bc600154610404565b601f81116102ad575b50602091601f821160011461024d579181925f92610242575b50508160011b915f199060031b1c1916176001555b60126080524660a0526040515f905f54918161010e84610404565b9182825260208201946001811690815f1461022657506001146101dc575b610138925003826103e1565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526101ac60c0826103e1565b51902060c052604051610b3a908161043d82396080518161052b015260a05181610903015260c051816109290152f35b505f80805290915f80516020610f778339815191525b81831061020a5750509060206101389282010161012c565b60209193508060019154838588010152019101909183926101f2565b60ff191686525061013892151560051b8201602001905061012c565b015190505f806100de565b601f1982169260015f52805f20915f5b8581106102955750836001951061027d575b505050811b016001556100f3565b01515f1960f88460031b161c191690555f808061026f565b9192602060018192868501518155019401920161025d565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610306575b601f0160051c01905b8181106102fb57506100c5565b5f81556001016102ee565b90915081906102e5565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061008d565b601f198216935f8052805f20915f5b868110610376575083600195961061035e575b505050811b015f556100a1565b01515f1960f88460031b161c191690555f8080610351565b9192602060018192868501518155019401920161033e565b5f80525f80516020610f77833981519152601f830160051c810191602084106103d3575b601f0160051c01905b8181106103c85750610073565b5f81556001016103bb565b90915081906103b2565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761031057604052565b90600182811c92168015610432575b602083101461041e57565b634e487b7160e01b5f52602260045260245ffd5b91607f169161041356fe60806040526004361015610022575b3615610018575f80fd5b610020610a7a565b005b5f3560e01c806306fdde0314610779578063095ea7b31461070057806318160ddd146106e357806323b872dd146106135780632e1a7d4d1461054f578063313ce567146105125780633644e515146104f057806370a08231146104b85780637ecebe001461048057806395d89b41146103a6578063a9059cbb14610331578063d0e30db01461031e578063d505accf146101145763dd62ed3e0361000e5734610110576040366003190112610110576100d96108b3565b6100e16108c9565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101105760e03660031901126101105761012d6108b3565b6101356108c9565b6044356064359260843560ff8116809103610110574285106102d95760805f91602093610160610900565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101dd60e082610853565b519020604051908682019261190160f01b84526022830152604282015260428152610209606282610853565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102ce575f516001600160a01b0316801515806102c5575b1561028f577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b50828114610247565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b5f36600319011261011057610020610a7a565b346101105760403660031901126101105761034a6108b3565b60243590335f52600360205260405f206103658382546108df565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610ae583398151915260203392a3602060405160018152f35b34610110575f366003190112610110576040515f6001546103c68161081b565b808452906001811690811561045c57506001146103fe575b6103fa836103ee81850382610853565b60405191829182610889565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b808210610442575090915081016020016103ee6103de565b91926001816020925483858801015201910190929161042a565b60ff191660208086019190915291151560051b840190910191506103ee90506103de565b34610110576020366003190112610110576001600160a01b036104a16108b3565b165f526005602052602060405f2054604051908152f35b34610110576020366003190112610110576001600160a01b036104d96108b3565b165f526003602052602060405f2054604051908152f35b34610110575f36600319011261011057602061050a610900565b604051908152f35b34610110575f36600319011261011057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610110576020366003190112610110575f80808060043533825260036020526040822061057e8282546108df565b90558060025403600255816040518281525f80516020610ae583398151915260203392a36040518181527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2335af1156105d857005b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b346101105760603660031901126101105761062c6108b3565b6106346108c9565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610ae5833981519152929185600182016106be575b5050835f526003825260405f2061068e8682546108df565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106c7916108df565b5f85815260048452604080822033835285529020558585610676565b34610110575f366003190112610110576020600254604051908152f35b34610110576040366003190112610110576107196108b3565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610110575f366003190112610110576040515f80546107988161081b565b808452906001811690811561045c57506001146107bf576103fa836103ee81850382610853565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210610801575090915081016020016103ee6103de565b9192600181602092548385880101520191019092916107e9565b90600182811c92168015610849575b602083101461083557565b634e487b7160e01b5f52602260045260245ffd5b91607f169161082a565b90601f8019910116810190811067ffffffffffffffff82111761087557604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361011057565b602435906001600160a01b038216820361011057565b919082039182116108ec57565b634e487b7160e01b5f52601160045260245ffd5b467f00000000000000000000000000000000000000000000000000000000000000000361094b577f000000000000000000000000000000000000000000000000000000000000000090565b6040515f905f54918161095d8461081b565b9182825260208201946001811690815f14610a5e5750600114610a01575b61098792500382610853565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109fb60c082610853565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a425750509060206109879282010161097b565b6020919350806001915483858801015201910190918392610a2a565b60ff191686525061098792151560051b8201602001905061097b565b6002543481018091116108ec57600255335f52600360205260405f203481540190556040513481525f5f80516020610ae583398151915260203393a36040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122024ac75ee9edc4ac63c67f4de95b97766973b0fda8bfb850f9561a95f37fe1b1c64736f6c634300081a0033290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563","output":"0x60806040526004361015610022575b3615610018575f80fd5b610020610a7a565b005b5f3560e01c806306fdde0314610779578063095ea7b31461070057806318160ddd146106e357806323b872dd146106135780632e1a7d4d1461054f578063313ce567146105125780633644e515146104f057806370a08231146104b85780637ecebe001461048057806395d89b41146103a6578063a9059cbb14610331578063d0e30db01461031e578063d505accf146101145763dd62ed3e0361000e5734610110576040366003190112610110576100d96108b3565b6100e16108c9565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101105760e03660031901126101105761012d6108b3565b6101356108c9565b6044356064359260843560ff8116809103610110574285106102d95760805f91602093610160610900565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101dd60e082610853565b519020604051908682019261190160f01b84526022830152604282015260428152610209606282610853565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102ce575f516001600160a01b0316801515806102c5575b1561028f577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b50828114610247565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b5f36600319011261011057610020610a7a565b346101105760403660031901126101105761034a6108b3565b60243590335f52600360205260405f206103658382546108df565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610ae583398151915260203392a3602060405160018152f35b34610110575f366003190112610110576040515f6001546103c68161081b565b808452906001811690811561045c57506001146103fe575b6103fa836103ee81850382610853565b60405191829182610889565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b808210610442575090915081016020016103ee6103de565b91926001816020925483858801015201910190929161042a565b60ff191660208086019190915291151560051b840190910191506103ee90506103de565b34610110576020366003190112610110576001600160a01b036104a16108b3565b165f526005602052602060405f2054604051908152f35b34610110576020366003190112610110576001600160a01b036104d96108b3565b165f526003602052602060405f2054604051908152f35b34610110575f36600319011261011057602061050a610900565b604051908152f35b34610110575f36600319011261011057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000012168152f35b34610110576020366003190112610110575f80808060043533825260036020526040822061057e8282546108df565b90558060025403600255816040518281525f80516020610ae583398151915260203392a36040518181527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2335af1156105d857005b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b346101105760603660031901126101105761062c6108b3565b6106346108c9565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610ae5833981519152929185600182016106be575b5050835f526003825260405f2061068e8682546108df565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106c7916108df565b5f85815260048452604080822033835285529020558585610676565b34610110575f366003190112610110576020600254604051908152f35b34610110576040366003190112610110576107196108b3565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610110575f366003190112610110576040515f80546107988161081b565b808452906001811690811561045c57506001146107bf576103fa836103ee81850382610853565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210610801575090915081016020016103ee6103de565b9192600181602092548385880101520191019092916107e9565b90600182811c92168015610849575b602083101461083557565b634e487b7160e01b5f52602260045260245ffd5b91607f169161082a565b90601f8019910116810190811067ffffffffffffffff82111761087557604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361011057565b602435906001600160a01b038216820361011057565b919082039182116108ec57565b634e487b7160e01b5f52601160045260245ffd5b467f0000000000000000000000000000000000000000000000000000000000007a690361094b577ffdc402efeac514c5b64538326215e4ce385c49a106c95b87e9b53dcd30d93edd90565b6040515f905f54918161095d8461081b565b9182825260208201946001811690815f14610a5e5750600114610a01575b61098792500382610853565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109fb60c082610853565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a425750509060206109879282010161097b565b6020919350806001915483858801015201910190918392610a2a565b60ff191686525061098792151560051b8201602001905061097b565b6002543481018091116108ec57600255335f52600360205260405f203481540190556040513481525f5f80516020610ae583398151915260203393a36040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122024ac75ee9edc4ac63c67f4de95b97766973b0fda8bfb850f9561a95f37fe1b1c64736f6c634300081a0033","gas_used":621464,"gas_limit":842563,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x60806040526004361015610022575b3615610018575f80fd5b610020610a7a565b005b5f3560e01c806306fdde0314610779578063095ea7b31461070057806318160ddd146106e357806323b872dd146106135780632e1a7d4d1461054f578063313ce567146105125780633644e515146104f057806370a08231146104b85780637ecebe001461048057806395d89b41146103a6578063a9059cbb14610331578063d0e30db01461031e578063d505accf146101145763dd62ed3e0361000e5734610110576040366003190112610110576100d96108b3565b6100e16108c9565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101105760e03660031901126101105761012d6108b3565b6101356108c9565b6044356064359260843560ff8116809103610110574285106102d95760805f91602093610160610900565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101dd60e082610853565b519020604051908682019261190160f01b84526022830152604282015260428152610209606282610853565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102ce575f516001600160a01b0316801515806102c5575b1561028f577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b50828114610247565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b5f36600319011261011057610020610a7a565b346101105760403660031901126101105761034a6108b3565b60243590335f52600360205260405f206103658382546108df565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610ae583398151915260203392a3602060405160018152f35b34610110575f366003190112610110576040515f6001546103c68161081b565b808452906001811690811561045c57506001146103fe575b6103fa836103ee81850382610853565b60405191829182610889565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b808210610442575090915081016020016103ee6103de565b91926001816020925483858801015201910190929161042a565b60ff191660208086019190915291151560051b840190910191506103ee90506103de565b34610110576020366003190112610110576001600160a01b036104a16108b3565b165f526005602052602060405f2054604051908152f35b34610110576020366003190112610110576001600160a01b036104d96108b3565b165f526003602052602060405f2054604051908152f35b34610110575f36600319011261011057602061050a610900565b604051908152f35b34610110575f36600319011261011057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000012168152f35b34610110576020366003190112610110575f80808060043533825260036020526040822061057e8282546108df565b90558060025403600255816040518281525f80516020610ae583398151915260203392a36040518181527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2335af1156105d857005b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b346101105760603660031901126101105761062c6108b3565b6106346108c9565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610ae5833981519152929185600182016106be575b5050835f526003825260405f2061068e8682546108df565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106c7916108df565b5f85815260048452604080822033835285529020558585610676565b34610110575f366003190112610110576020600254604051908152f35b34610110576040366003190112610110576107196108b3565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610110575f366003190112610110576040515f80546107988161081b565b808452906001811690811561045c57506001146107bf576103fa836103ee81850382610853565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210610801575090915081016020016103ee6103de565b9192600181602092548385880101520191019092916107e9565b90600182811c92168015610849575b602083101461083557565b634e487b7160e01b5f52602260045260245ffd5b91607f169161082a565b90601f8019910116810190811067ffffffffffffffff82111761087557604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361011057565b602435906001600160a01b038216820361011057565b919082039182116108ec57565b634e487b7160e01b5f52601160045260245ffd5b467f0000000000000000000000000000000000000000000000000000000000007a690361094b577ffdc402efeac514c5b64538326215e4ce385c49a106c95b87e9b53dcd30d93edd90565b6040515f905f54918161095d8461081b565b9182825260208201946001811690815f14610a5e5750600114610a01575b61098792500382610853565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109fb60c082610853565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a425750509060206109879282010161097b565b6020919350806001915483858801015201910190918392610a2a565b60ff191686525061098792151560051b8201602001905061097b565b6002543481018091116108ec57600255335f52600360205260405f203481540190556040513481525f5f80516020610ae583398151915260203393a36040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122024ac75ee9edc4ac63c67f4de95b97766973b0fda8bfb850f9561a95f37fe1b1c64736f6c634300081a0033","nonce":0,"gas_used":736998},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb3ee6","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x8f8862cbe2ace13c51d2265d40b8e98d502cb74ffc77a074f113854a697c0b0d","block_number":4},{"info":{"transaction_hash":"0x8a375a4bf3f427a8ca694b1297ff1036a1e774d5b274fde484d8c08fa5bf701c","transaction_index":0,"from":"0x15d34aaf54267db7d7c367839aaf71a00a2c6a65","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x15d34aaf54267db7d7c367839aaf71a00a2c6a65","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":2,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000040020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100100000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4fb3bd7c3d137e5907acb5a7dd393287c92286505c2c8a2582d8d8456e2db6aa","block_number":55},{"info":{"transaction_hash":"0xc953777e5edcd0865d3153ab3ab3bc228e83c24266e5657c29d931ee19ae5c89","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":"0x56bc75e2d63100000","data":"0xd0e30db0","output":"0x","gas_used":13709,"gas_limit":26965,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":1}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Stop","out":"0x","nonce":32,"gas_used":34773},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x87d5","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x4c2fc227c30ec2d1fa3a1dde76630e9ea187ba997231f104bfc7f1df141d5e92","block_number":28},{"info":{"transaction_hash":"0x160f0fdd48f4b2843155cef3c6cd55e5cd77b6c69473b392cc234542ce9ebb29","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","traces":[{"parent":null,"children":[1],"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":"0x6101006040523480156200001257600080fd5b506040516200569d3803806200569d83398101604081905262000035916200015b565b604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6c85c0337eba1661327f94f3bf46c8a7f9311a563f4d5c948362567f5d8ed60c828401527ff9446b8e937d86f0bc87cac73923491692b123ca5f8761908494703758206adf606080840191909152466080808501919091523060a08086019190915285518086038201815260c09586019687905280519401939093209052600180556001600160601b031986821b811690925284901b16905281906200010a906200014d565b62000116919062000199565b604051809103906000f08015801562000133573d6000803e3d6000fd5b5060601b6001600160601b03191660e05250620001c69050565b61129e80620043ff83390190565b600080604083850312156200016e578182fd5b82516200017b81620001ad565b60208401519092506200018e81620001ad565b809150509250929050565b6001600160a01b0391909116815260200190565b6001600160a01b0381168114620001c357600080fd5b50565b60805160a05160601c60c05160601c60e05160601c6141d762000228600039806105d25280610f45528061127452806117d45250806106e8528061176f52508061039252806108a05280610b81525080611502528061262f52506141d76000f3fe6080604052600436106100ec5760003560e01c80639b552cc21161008a578063ed9f35ce11610059578063ed9f35ce14610274578063f698da2514610294578063f84436bd146102a9578063fbfa77cf146102c9576100f3565b80639b552cc2146101ff578063a2a7d51b14610214578063d08d33d114610234578063ec6cb13f14610254576100f3565b80632479fb6e116100c65780632479fb6e1461016557806343218e19146101925780635624b25b146101bf578063845a101f146101df576100f3565b806313d79a0b146100f857806315337bc01461011a5780632335c76b1461013a576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061011861011336600461347e565b6102de565b005b34801561012657600080fd5b50610118610135366004613691565b6107a5565b34801561014657600080fd5b5061014f61089e565b60405161015c919061393e565b60405180910390f35b34801561017157600080fd5b5061018561018036600461371a565b6108c2565b60405161015c9190613a40565b34801561019e57600080fd5b506101b26101ad3660046133f0565b6108df565b60405161015c9190613a5d565b3480156101cb57600080fd5b506101b26101da36600461374d565b610a57565b3480156101eb57600080fd5b506101186101fa3660046135de565b610acd565b34801561020b57600080fd5b5061014f611272565b34801561022057600080fd5b5061011861022f36600461343e565b611296565b34801561024057600080fd5b5061018561024f36600461371a565b6112df565b34801561026057600080fd5b5061011861026f3660046136c5565b6112fc565b34801561028057600080fd5b5061011861028f36600461343e565b6114bb565b3480156102a057600080fd5b50610185611500565b3480156102b557600080fd5b506101b26102c43660046133f0565b611524565b3480156102d557600080fd5b5061014f61176d565b6002600154141561035057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001556040517f02cc250d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906302cc250d906103c790339060040161393e565b60206040518083038186803b1580156103df57600080fd5b505afa1580156103f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104179190613675565b610456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f1c565b60405180910390fd5b60405133907f7c3354d25cde0396b97e394765fc57e6725a2af3bd430f2fa5fb18c1275b767390610488908590613a40565b60405180910390a26104ac8160005b6020028101906104a79190613fc8565b611791565b6040517fb30270a37e2e4cc4e92f89e7e547d3071f3df248b1d38087d25e1b3428b66cc390600090a16040517f37c8fc3ebb5e40b9957fb555efaa44a206d443b7ac930fb87ca80bd4aa86a5c290610505908490613a40565b60405180910390a160008061051e8989898989896118ce565b915091507f6e54a7dbb4b29f8784749754dededb16b110602787effe25acd400ba0139da4782518251604051610555929190613fba565b60405180910390a17f3800ddfb7721134ba29414e8edf556e71bbc37c70fc77f684cfbea4cdd1deb3e825160405161058d9190613a40565b60405180910390a16040517f7d10d11f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637d10d11f9061060790859060040161395f565b600060405180830381600087803b15801561062157600080fd5b505af1158015610635573d6000803e3d6000fd5b50506040517f307733f9f689d0bf848ca325cddded11e589c82ea2e55dbb22f929d9a7fe3bac925060009150a161066d836001610497565b6040517fa04bed3ab5f235073cbe25d194bb3d5c636f079ec1baa00d440bd241e18ce96590600090a17f1f51c6f18a8d6b960829349f9d73b906fe712f3a831efd9a60b255e4c7f1174f81516040516106c69190613a40565b60405180910390a161070e73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001682611a35565b6040517fba2eda774c2667685901b47fd7e31a3eb285c4abda72da45c11ab9d78636fc1190600090a1610742836002610497565b6040517f0d82c2d8bda7f712283f61fcc6206fdc702fdba0d2febffc66566be95eb8fbbd90600090a160405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a250506001805550505050505050565b60006107b18383611d13565b5091505073ffffffffffffffffffffffffffffffffffffffff81163314610804576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613cbf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60028484604051610837929190613912565b9081526020016040518091039020819055508073ffffffffffffffffffffffffffffffffffffffff167f875b6cb035bbd4ac6500fabc6d1e4ca5bdc58a3e2b424ccb5c24cdbebeb009a98484604051610891929190613a49565b60405180910390a2505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b805160208183018101805160028252928201919093012091525481565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831061094857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161090b565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109a8576040519150601f19603f3d011682016040523d82523d6000602084013e6109ad565b606091505b508093508192505050610a5082826040516020018083805190602001908083835b60208310610a0b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109ce565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b815260010192505050604051602081830303815290604052611da1565b5092915050565b606060008260200267ffffffffffffffff81118015610a7557600080fd5b506040519080825280601f01601f191660200182016040528015610aa0576020820181803683370190505b50905060005b83811015610ac35784810154602080830284010152600101610aa6565b5090505b92915050565b60026001541415610b3f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001556040517f02cc250d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906302cc250d90610bb690339060040161393e565b60206040518083038186803b158015610bce57600080fd5b505afa158015610be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c069190613675565b610c3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f1c565b6000610c46611da9565b8051909150610c5782868686611dd6565b60007ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677582610100015114610c8c576001610c8f565b60005b9050610c996131e0565b60408085015173ffffffffffffffffffffffffffffffffffffffff90811683526101408501517f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce9081146020850152606080880151909216928401929092526101608501519091149082015260008667ffffffffffffffff81118015610d1e57600080fd5b50604051908082528060200260200182016040528015610d48578160200160208202803683370190505b50610100850151909150610120870135907ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467751415610e14578460800151811015610dbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613ee5565b610dcb8560600151611e74565b82886000013581518110610ddb57fe5b602002602001018181525050610df081611e74565b60000382886020013581518110610e0357fe5b602002602001018181525050610ea4565b8460600151811115610e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e40565b610e5b81611e74565b82886000013581518110610e6b57fe5b602002602001018181525050610e848560800151611e74565b60000382886020013581518110610e9757fe5b6020026020010181815250505b610eac6131e0565b8660400151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560000151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560e0015181604001818152505085610140015181606001818152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634817a286878f8f8f8f8b8b8f60a001518b6040518a63ffffffff1660e01b8152600401610fb099989796959493929190613b1b565b600060405180830381600087803b158015610fca57600080fd5b505af1158015610fde573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611024919081019061353d565b90506000886020015190506000611051838c600001358151811061104457fe5b6020026020010151611f09565b90506000611078848d602001358151811061106857fe5b6020026020010151600003611f09565b905060028360405161108a9190613922565b9081526020016040518091039020546000146110d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467758a61010001511415611166578960600151821461113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d64565b89606001516002846040516111519190613922565b908152604051908190036020019020556111c9565b896080015181146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d9b565b89608001516002846040516111b89190613922565b908152604051908190036020019020555b8a6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc178b600001518c6020015185858f60e001518960405161122996959493929190613ac4565b60405180910390a260405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a25050600180555050505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b3033146112cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e09565b6112db60008383611f7a565b5050565b805160208183018101805160008252928201919093012091525481565b60006113088484611d13565b5091505073ffffffffffffffffffffffffffffffffffffffff8116331461139057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f475076323a2063616e6e6f74207072657369676e206f72646572000000000000604482015290519081900360640190fd5b81156113ea577ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c60008585604051808383808284378083019250505092505050908152602001604051809103902081905550611416565b600080858560405180838380828437919091019485525050604051928390036020019092209290925550505b8073ffffffffffffffffffffffffffffffffffffffff167f01bf7c8b0ca55deecbea89d7e58295b7ffbf685fd0d96801034ba8c6ffe1c68d858585604051808060200183151581526020018281038252858582818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a250505050565b3033146114f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e09565b6112db60028383611f7a565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060006343218e1960e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561158e578181015183820152602001611576565b50505050905090810190601f1680156115bb5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909816979097178752518151919750309688965090945084935091508083835b6020831061168c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161164f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146116ee576040519150601f19603f3d011682016040523d82523d6000602084013e6116f3565b606091505b5090508092505060008260018451038151811061170c57fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b14905061174f83600185510361202a565b801561175c575050610ac7565b61176583611da1565b505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005b818110156118c957368383838181106117a957fe5b90506020028101906117bb9190614090565b905073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661180160208301836133d4565b73ffffffffffffffffffffffffffffffffffffffff16141561184f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f53565b6118588161202e565b61186560208201826133d4565b73ffffffffffffffffffffffffffffffffffffffff167fed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c282602001356118aa84612085565b6040516118b8929190613f8a565b60405180910390a250600101611794565b505050565b60608060006118db611da9565b90508367ffffffffffffffff811180156118f457600080fd5b5060405190808252806020026020018201604052801561192e57816020015b61191b6131e0565b8152602001906001900390816119135790505b5092508367ffffffffffffffff8111801561194857600080fd5b5060405190808252806020026020018201604052801561198257816020015b61196f6131e0565b8152602001906001900390816119675790505b50915060005b84811015611a28573686868381811061199d57fe5b90506020028101906119af91906140c3565b90506119bd838c8c84611dd6565b611a1f838a8a84358181106119ce57fe5b905060200201358b8b85602001358181106119e557fe5b905060200201358461012001358987815181106119fe57fe5b6020026020010151898881518110611a1257fe5b60200260200101516120af565b50600101611988565b5050965096945050505050565b6000815167ffffffffffffffff81118015611a4f57600080fd5b50604051908082528060200260200182016040528015611a8957816020015b611a76613207565b815260200190600190039081611a6e5790505b5090506000805b8351811015611c77576000848281518110611aa757fe5b6020026020010151905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611bab577f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce81606001511415611b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613dd2565b8051604080830151905173ffffffffffffffffffffffffffffffffffffffff9092169181156108fc0291906000818181858888f19350505050158015611ba5573d6000803e3d6000fd5b50611c6e565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981606001511415611c0a57805160408201516020830151611c059273ffffffffffffffffffffffffffffffffffffffff90911691612466565b611c6e565b6000848480600101955081518110611c1e57fe5b602090810291909101810151600081528382015173ffffffffffffffffffffffffffffffffffffffff90811692820192909252604080850151908201523060608201528351909116608090910152505b50600101611a90565b508015611d0d57611c88828261202a565b6040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690630e8e3e8490611cda9085906004016139ad565b600060405180830381600087803b158015611cf457600080fd5b505af1158015611d08573d6000803e3d6000fd5b505050505b50505050565b6000808060388414611d8657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f475076323a20696e76616c696420756964000000000000000000000000000000604482015290519081900360640190fd5b5050823593602084013560601c936034013560e01c92509050565b805160208201fd5b611db1613237565b6040805160388082526060820190925290602082018180368337505050602082015290565b83516000611de68386868561253e565b9050600080611e038484611dfe61014089018961402d565b612626565b91509150611e2682828660a001518b602001516126d5909392919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff81166040890152611e4c8482612757565b73ffffffffffffffffffffffffffffffffffffffff1660609098019790975250505050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611f0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f53616665436173743a20696e74323536206f766572666c6f7700000000000000604482015290519081900360640190fd5b5090565b600080821215611f0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f53616665436173743a206e6f7420706f73697469766500000000000000000000604482015290519081900360640190fd5b60005b81811015611d0d57366000848484818110611f9457fe5b9050602002810190611fa6919061402d565b915091506000611fb68383611d13565b92505050428163ffffffff1610611ff9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613eae565b600087848460405161200c929190613912565b90815260405190819003602001902055505060019091019050611f7d565b9052565b73ffffffffffffffffffffffffffffffffffffffff813516602082013536600061205b604086018661402d565b9150915060405181838237600080838387895af161207d573d6000803e3d6000fd5b505050505050565b60003681612096604085018561402d565b9092509050600481106120a857813592505b5050919050565b6000866000015190506000876020015190506000428360a0015163ffffffff161090507f9b4eb7f4556a1352e4627acf6b73a4ddfc64291c08ae077411b2eafe1436c8eb828a60400151856060015186608001518760e001518660405161211b96959493929190613a70565b60405180910390a1428360a0015163ffffffff161015612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613cf6565b60808301516121769088612789565b6060840151612185908a612789565b10156121bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d2d565b6000806000807ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677587610100015114156122be578661012001511561222a57899350612223876060015161221d868a60e0015161278990919063ffffffff16565b90612819565b9150612239565b866060015193508660e0015191505b61224d8b612247868f612789565b9061289a565b9250612279846002886040516122639190613922565b9081526040519081900360200190205490612938565b905086606001518111156122b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b612365565b866101200151156122f2578992506122eb876080015161221d858a60e0015161278990919063ffffffff16565b9150612301565b866080015192508660e0015191505b61230f8c61221d858e612789565b9350612325836002886040516122639190613922565b90508660800151811115612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b61236f8483612938565b9350806002876040516123829190613922565b9081526020016040518091039020819055508c6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17886000015189602001518787878c6040516123f096959493929190613ac4565b60405180910390a250506040808c015173ffffffffffffffffffffffffffffffffffffffff9081168952865181166020808b0191909152898301949094526101408701516060998a01529b8801518c16875282860151909b16918601919091529884019890985250610160015191015250505050565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff84166004830152602482018390529060008060448382895af16124c9573d6000803e3d6000fd5b506124d3846129ac565b611d0d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f475076323a206661696c6564207472616e736665720000000000000000000000604482015290519081900360640190fd5b60008383863581811061254d57fe5b6020908102929092013573ffffffffffffffffffffffffffffffffffffffff168452508490849087013581811061258057fe5b73ffffffffffffffffffffffffffffffffffffffff602091820293909301358316908501525060408087013590911690830152606080860135908301526080808601359083015263ffffffff60a080870135919091169083015260c0808601359083015260e080860135908301526125fc610100860135612a76565b61016087019190915261014086019190915290151561012085015261010090930152509392505050565b600080612653867f0000000000000000000000000000000000000000000000000000000000000000612bcb565b9150600085600381111561266357fe5b141561267b57612674828585612c55565b90506126cc565b600185600381111561268957fe5b141561269a57612674828585612c6a565b60028560038111156126a857fe5b14156126b957612674828585612cd2565b6126c98285858960a00151612e70565b90505b94509492505050565b603884511461274557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a2075696420627566666572206f766572666c6f7700000000000000604482015290519081900360640190fd5b60388401526034830152602090910152565b604082015160009073ffffffffffffffffffffffffffffffffffffffff16612780575080610ac7565b50506040015190565b60008261279857506000610ac7565b828202828482816127a557fe5b041461281257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d6174683a206d756c206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b9392505050565b600080821161288957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d6174683a206469766973696f6e2062792030000000000000000000604482015290519081900360640190fd5b81838161289257fe5b049392505050565b600080821161290a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f536166654d6174683a206365696c696e67206469766973696f6e206279203000604482015290519081900360640190fd5b81838161291357fe5b0615612920576001612923565b60005b60ff1682848161292f57fe5b04019392505050565b60008282018381101561281257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006129ea565b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452806024528160445260646000fd5b3d8015612a295760208114612a6357612a247f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f6129b3565b612a70565b823b612a5a57612a5a7f475076323a206e6f74206120636f6e747261637400000000000000000000000060146129b3565b60019150612a70565b3d6000803e600051151591505b50919050565b60008080808060018616612aac577ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467759450612ad0565b7f6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc94505b600286161515935060088616612b08577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99250612b5c565b60048616612b38577fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea06329250612b5c565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce92505b60108616612b8c577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99150612bb0565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce91505b600586901c6003811115612bc057fe5b905091939590929450565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090910180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6000612c62848484613035565b949350505050565b6000808460405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050612cc9818585613035565b95945050505050565b813560601c366000612ce7846014818861411a565b604080517f1626ba7e00000000000000000000000000000000000000000000000000000000808252600482018b81526024830193845260448301859052949650929450919273ffffffffffffffffffffffffffffffffffffffff871692631626ba7e928b928892889290606401848480828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201965060209550909350505081840390508186803b158015612dad57600080fd5b505afa158015612dc1573d6000803e3d6000fd5b505050506040513d6020811015612dd757600080fd5b50517fffffffff000000000000000000000000000000000000000000000000000000001614612e6757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f475076323a20696e76616c69642065697031323731207369676e617475726500604482015290519081900360640190fd5b50509392505050565b600060148314612ee157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f475076323a206d616c666f726d6564207072657369676e617475726500000000604482015290519081900360640190fd5b506040805160388082526060828101909352853590921c9160009190602082018180368337019050509050612f18818784866126d5565b7ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c6000826040518082805190602001908083835b60208310612f8c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f4f565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020541461302c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a206f72646572206e6f74207072657369676e656400000000000000604482015290519081900360640190fd5b50949350505050565b6000604182146130a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f475076323a206d616c666f726d6564206563647361207369676e617475726500604482015290519081900360640190fd5b604080516000815260208181018084528790528286013560f81c82840181905286356060840181905282880135608085018190529451909493919260019260a0808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015613129573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015194505073ffffffffffffffffffffffffffffffffffffffff84166131d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f475076323a20696e76616c6964206563647361207369676e6174757265000000604482015290519081900360640190fd5b5050509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040805160a081019091528060008152600060208201819052604082018190526060820181905260809091015290565b604051806080016040528061324a613264565b815260606020820181905260006040830181905291015290565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915290565b60008083601f8401126132d9578182fd5b50813567ffffffffffffffff8111156132f0578182fd5b602083019150836020808302850101111561330a57600080fd5b9250929050565b60008083601f840112613322578182fd5b50813567ffffffffffffffff811115613339578182fd5b60208301915083602082850101111561330a57600080fd5b600082601f830112613361578081fd5b813567ffffffffffffffff81111561337557fe5b6133a660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016140f6565b8181528460208386010111156133ba578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156133e5578081fd5b81356128128161416e565b60008060408385031215613402578081fd5b823561340d8161416e565b9150602083013567ffffffffffffffff811115613428578182fd5b61343485828601613351565b9150509250929050565b60008060208385031215613450578182fd5b823567ffffffffffffffff811115613466578283fd5b613472858286016132c8565b90969095509350505050565b60008060008060008060006080888a031215613498578283fd5b873567ffffffffffffffff808211156134af578485fd5b6134bb8b838c016132c8565b909950975060208a01359150808211156134d3578485fd5b6134df8b838c016132c8565b909750955060408a01359150808211156134f7578485fd5b6135038b838c016132c8565b909550935060608a013591508082111561351b578283fd5b508801606081018a101561352d578182fd5b8091505092959891949750929550565b6000602080838503121561354f578182fd5b825167ffffffffffffffff80821115613566578384fd5b818501915085601f830112613579578384fd5b81518181111561358557fe5b83810291506135958483016140f6565b8181528481019084860184860187018a10156135af578788fd5b8795505b838610156135d15780518352600195909501949186019186016135b3565b5098975050505050505050565b6000806000806000606086880312156135f5578081fd5b853567ffffffffffffffff8082111561360c578283fd5b61361889838a016132c8565b90975095506020880135915080821115613630578283fd5b61363c89838a016132c8565b90955093506040880135915080821115613654578283fd5b5086016101608189031215613667578182fd5b809150509295509295909350565b600060208284031215613686578081fd5b815161281281614193565b600080602083850312156136a3578182fd5b823567ffffffffffffffff8111156136b9578283fd5b61347285828601613311565b6000806000604084860312156136d9578081fd5b833567ffffffffffffffff8111156136ef578182fd5b6136fb86828701613311565b909450925050602084013561370f81614193565b809150509250925092565b60006020828403121561372b578081fd5b813567ffffffffffffffff811115613741578182fd5b612c6284828501613351565b6000806040838503121561375f578182fd5b50508035926020909101359150565b60008284526020808501945082825b858110156137b85781356137908161416e565b73ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161377d565b509495945050505050565b6000815180845260208085019450808401835b838110156137b8578151875295820195908201906001016137d6565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b60008151808452613852816020860160208601614142565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8082511683528060208301511660208401525060408101516040830152606081015160608301525050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b63ffffffff169052565b6000828483379101908152919050565b60008251613934818460208701614142565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6020808252825182820181905260009190848201906040850190845b818110156139a15761398e838551613884565b928401926080929092019160010161397b565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b82811015613a335781518051600481106139e057fe5b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a090930192908501906001016139ca565b5091979650505050505050565b90815260200190565b600060208252612c626020830184866137f2565b600060208252612812602083018461383a565b600060c08252613a8360c083018961383a565b73ffffffffffffffffffffffffffffffffffffffff97909716602083015250604081019490945260608401929092526080830152151560a090910152919050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015283608083015260c060a0830152613b0f60c083018461383a565b98975050505050505050565b60006101a0820160028c10613b2c57fe5b8b835260206101a081850152818b83526101c0850190506101c0828d0286010192508c845b8d811015613c5a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe408786030183527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618f360301823512613bb0578586fd5b8e823501803586528481013585870152604081013560408701526060810135606087015260808101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112613c08578788fd5b8101803567ffffffffffffffff811115613c20578889fd5b803603831315613c2e578889fd5b60a06080890152613c4560a08901828985016137f2565b97505050928401925090830190600101613b51565b505050508281036040840152613c7181898b61376e565b9050613c8060608401886138c4565b82810360e0840152613c9281876137c3565b915050613ca3610100830185613908565b613cb1610120830184613884565b9a9950505050505050505050565b6020808252601f908201527f475076323a2063616c6c657220646f6573206e6f74206f776e206f7264657200604082015260600190565b60208082526013908201527f475076323a206f72646572206578706972656400000000000000000000000000604082015260600190565b6020808252601f908201527f475076323a206c696d6974207072696365206e6f742072657370656374656400604082015260600190565b6020808252601f908201527f475076323a2073656c6c20616d6f756e74206e6f742072657370656374656400604082015260600190565b6020808252601e908201527f475076323a2062757920616d6f756e74206e6f74207265737065637465640000604082015260600190565b6020808252601e908201527f475076323a20756e737570706f7274656420696e7465726e616c204554480000604082015260600190565b60208082526018908201527f475076323a206e6f7420616e20696e746572616374696f6e0000000000000000604082015260600190565b60208082526014908201527f475076323a206c696d697420746f6f2068696768000000000000000000000000604082015260600190565b60208082526012908201527f475076323a206f726465722066696c6c65640000000000000000000000000000604082015260600190565b60208082526017908201527f475076323a206f72646572207374696c6c2076616c6964000000000000000000604082015260600190565b60208082526013908201527f475076323a206c696d697420746f6f206c6f7700000000000000000000000000604082015260600190565b60208082526012908201527f475076323a206e6f74206120736f6c7665720000000000000000000000000000604082015260600190565b6020808252601b908201527f475076323a20666f7262696464656e20696e746572616374696f6e0000000000604082015260600190565b9182527fffffffff0000000000000000000000000000000000000000000000000000000016602082015260400190565b918252602082015260400190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613ffc578283fd5b83018035915067ffffffffffffffff821115614016578283fd5b602090810192508102360382131561330a57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614061578283fd5b83018035915067ffffffffffffffff82111561407b578283fd5b60200191503681900382131561330a57600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112613934578182fd5b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea1833603018112613934578182fd5b60405181810167ffffffffffffffff8111828210171561411257fe5b604052919050565b60008085851115614129578182fd5b83861115614135578182fd5b5050820193919092039150565b60005b8381101561415d578181015183820152602001614145565b83811115611d0d5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461419057600080fd5b50565b801515811461419057600080fdfea2646970667358221220e44c81ebee4bd12f2c28a8fff7d83554efc672515327da65767f1268b1aed5f164736f6c6343000706003360c060405234801561001057600080fd5b5060405161129e38038061129e83398101604081905261002f9161004b565b33606090811b6080521b6001600160601b03191660a052610079565b60006020828403121561005c578081fd5b81516001600160a01b0381168114610072578182fd5b9392505050565b60805160601c60a05160601c6111ee6100b060003980610130528061020152806102bd5250806093528061024c52506111ee6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634817a2861461003b5780637d10d11f14610064575b600080fd5b61004e610049366004610cd9565b610079565b60405161005b9190610eb3565b60405180910390f35b610077610072366004610c69565b610234565b005b60603373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146100f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea906110e5565b60405180910390fd5b6040517f945bcec900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063945bcec990610171908c908c908c908c908c908c908c90600401610f59565b600060405180830381600087803b15801561018b57600080fd5b505af115801561019f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526101e59190810190610bd9565b905061022873ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001683336102e9565b98975050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea906110e5565b6102e573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016838333610551565b5050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61030e6040840160208501610bb6565b73ffffffffffffffffffffffffffffffffffffffff16141561035c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea9061111c565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9826060013514156103d0576103cb6103986020840184610bb6565b82604085018035906103ad9060208801610bb6565b73ffffffffffffffffffffffffffffffffffffffff16929190610816565b61054c565b604080516001808252818301909252600091816020015b6103ef6109cb565b8152602001906001900390816103e757905050905060008160008151811061041357fe5b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea063284606001351461044f576002610452565b60035b8190600381111561045f57fe5b9081600381111561046c57fe5b90525061047f6040850160208601610bb6565b73ffffffffffffffffffffffffffffffffffffffff16602080830191909152604080860135908301526104b490850185610bb6565b73ffffffffffffffffffffffffffffffffffffffff908116606083015283811660808301526040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815290861690630e8e3e8490610517908590600401610ec6565b600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505050505b505050565b60008267ffffffffffffffff8111801561056a57600080fd5b506040519080825280602002602001820160405280156105a457816020015b6105916109cb565b8152602001906001900390816105895790505b5090506000805b8481101561077857368686838181106105c057fe5b60800291909101915073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90506105f06040830160208401610bb6565b73ffffffffffffffffffffffffffffffffffffffff16141561063e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea9061111c565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9816060013514156106945761068f61067a6020830183610bb6565b86604084018035906103ad9060208701610bb6565b61076f565b60008484806001019550815181106106a857fe5b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea06328260600135146106e45760016106e7565b60035b819060038111156106f457fe5b9081600381111561070157fe5b9052506107146040830160208401610bb6565b73ffffffffffffffffffffffffffffffffffffffff166020808301919091526040808401359083015261074990830183610bb6565b73ffffffffffffffffffffffffffffffffffffffff908116606083015286166080909101525b506001016105ab565b50801561080e5761078982826108fd565b6040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690630e8e3e84906107db908590600401610ec6565b600060405180830381600087803b1580156107f557600080fd5b505af1158015610809573d6000803e3d6000fd5b505050505b505050505050565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff8581166004840152841660248301526044820183905290600080606483828a5af1610881573d6000803e3d6000fd5b5061088b85610901565b6108f657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a206661696c6564207472616e7366657246726f6d00000000000000604482015290519081900360640190fd5b5050505050565b9052565b600061093f565b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452806024528160445260646000fd5b3d801561097e57602081146109b8576109797f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f610908565b6109c5565b823b6109af576109af7f475076323a206e6f74206120636f6e74726163740000000000000000000000006014610908565b600191506109c5565b3d6000803e600051151591505b50919050565b6040805160a081019091528060008152600060208201819052604082018190526060820181905260809091015290565b600082601f830112610a0b578081fd5b81356020610a20610a1b83611175565b611151565b8281528181019085830183850287018401881015610a3c578586fd5b855b85811015610a63578135610a5181611193565b84529284019290840190600101610a3e565b5090979650505050505050565b600082601f830112610a80578081fd5b81356020610a90610a1b83611175565b8281528181019085830183850287018401881015610aac578586fd5b855b85811015610a6357813584529284019290840190600101610aae565b60008083601f840112610adb578182fd5b50813567ffffffffffffffff811115610af2578182fd5b6020830191508360208083028501011115610b0c57600080fd5b9250929050565b80358015158114610b2357600080fd5b919050565b6000608082840312156109c5578081fd5b600060808284031215610b4a578081fd5b6040516080810181811067ffffffffffffffff82111715610b6757fe5b6040529050808235610b7881611193565b8152610b8660208401610b13565b60208201526040830135610b9981611193565b6040820152610baa60608401610b13565b60608201525092915050565b600060208284031215610bc7578081fd5b8135610bd281611193565b9392505050565b60006020808385031215610beb578182fd5b825167ffffffffffffffff811115610c01578283fd5b8301601f81018513610c11578283fd5b8051610c1f610a1b82611175565b8181528381019083850185840285018601891015610c3b578687fd5b8694505b83851015610c5d578051835260019490940193918501918501610c3f565b50979650505050505050565b60008060208385031215610c7b578081fd5b823567ffffffffffffffff80821115610c92578283fd5b818501915085601f830112610ca5578283fd5b813581811115610cb3578384fd5b866020608083028501011115610cc7578384fd5b60209290920196919550909350505050565b6000806000806000806000806101a0898b031215610cf5578384fd5b883560028110610d03578485fd5b9750602089013567ffffffffffffffff80821115610d1f578586fd5b610d2b8c838d01610aca565b909950975060408b0135915080821115610d43578586fd5b610d4f8c838d016109fb565b9650610d5e8c60608d01610b39565b955060e08b0135915080821115610d73578485fd5b50610d808b828c01610a70565b9350506101008901359150610d998a6101208b01610b28565b90509295985092959890939650565b6000815180845260208085019450808401835b83811015610ded57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101610dbb565b509495945050505050565b6000815180845260208085019450808401835b83811015610ded57815187529582019590820190600101610e0b565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b600060208252610bd26020830184610df8565b602080825282518282018190526000919060409081850190868401855b82811015610f4c578151805160048110610ef957fe5b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a09093019290850190600101610ee3565b5091979650505050505050565b600061012080830160028b10610f6b57fe5b8a8452602080850192909252889052610140808401918981028501909101908a845b8b811015611098577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec087850301855281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618e3603018112610fed578687fd5b8d01803585528381013584860152604080820135908601526060808201359086015260a0608080830135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe101811261104757898afd5b8301803567ffffffffffffffff81111561105f578a8bfd5b80360385131561106d578a8bfd5b83838a0152611081848a01828a8501610e27565b998801999850505093850193505050600101610f8d565b50505083810360408501526110ad8189610da8565b9150506110bd6060840187610e6f565b82810360e08401526110cf8186610df8565b9150508261010083015298975050505050505050565b60208082526011908201527f475076323a206e6f742063726561746f72000000000000000000000000000000604082015260600190565b6020808252818101527f475076323a2063616e6e6f74207472616e73666572206e617469766520455448604082015260600190565b60405181810167ffffffffffffffff8111828210171561116d57fe5b604052919050565b600067ffffffffffffffff82111561118957fe5b5060209081020190565b73ffffffffffffffffffffffffffffffffffffffff811681146111b557600080fd5b5056fea2646970667358221220addf78f9933867b13bfb595f92d06bf1ca903f014437092b1df8accfeef30b2d64736f6c63430007060033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad7880000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc318","output":"0x6080604052600436106100ec5760003560e01c80639b552cc21161008a578063ed9f35ce11610059578063ed9f35ce14610274578063f698da2514610294578063f84436bd146102a9578063fbfa77cf146102c9576100f3565b80639b552cc2146101ff578063a2a7d51b14610214578063d08d33d114610234578063ec6cb13f14610254576100f3565b80632479fb6e116100c65780632479fb6e1461016557806343218e19146101925780635624b25b146101bf578063845a101f146101df576100f3565b806313d79a0b146100f857806315337bc01461011a5780632335c76b1461013a576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061011861011336600461347e565b6102de565b005b34801561012657600080fd5b50610118610135366004613691565b6107a5565b34801561014657600080fd5b5061014f61089e565b60405161015c919061393e565b60405180910390f35b34801561017157600080fd5b5061018561018036600461371a565b6108c2565b60405161015c9190613a40565b34801561019e57600080fd5b506101b26101ad3660046133f0565b6108df565b60405161015c9190613a5d565b3480156101cb57600080fd5b506101b26101da36600461374d565b610a57565b3480156101eb57600080fd5b506101186101fa3660046135de565b610acd565b34801561020b57600080fd5b5061014f611272565b34801561022057600080fd5b5061011861022f36600461343e565b611296565b34801561024057600080fd5b5061018561024f36600461371a565b6112df565b34801561026057600080fd5b5061011861026f3660046136c5565b6112fc565b34801561028057600080fd5b5061011861028f36600461343e565b6114bb565b3480156102a057600080fd5b50610185611500565b3480156102b557600080fd5b506101b26102c43660046133f0565b611524565b3480156102d557600080fd5b5061014f61176d565b6002600154141561035057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001556040517f02cc250d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad78816906302cc250d906103c790339060040161393e565b60206040518083038186803b1580156103df57600080fd5b505afa1580156103f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104179190613675565b610456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f1c565b60405180910390fd5b60405133907f7c3354d25cde0396b97e394765fc57e6725a2af3bd430f2fa5fb18c1275b767390610488908590613a40565b60405180910390a26104ac8160005b6020028101906104a79190613fc8565b611791565b6040517fb30270a37e2e4cc4e92f89e7e547d3071f3df248b1d38087d25e1b3428b66cc390600090a16040517f37c8fc3ebb5e40b9957fb555efaa44a206d443b7ac930fb87ca80bd4aa86a5c290610505908490613a40565b60405180910390a160008061051e8989898989896118ce565b915091507f6e54a7dbb4b29f8784749754dededb16b110602787effe25acd400ba0139da4782518251604051610555929190613fba565b60405180910390a17f3800ddfb7721134ba29414e8edf556e71bbc37c70fc77f684cfbea4cdd1deb3e825160405161058d9190613a40565b60405180910390a16040517f7d10d11f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d1690637d10d11f9061060790859060040161395f565b600060405180830381600087803b15801561062157600080fd5b505af1158015610635573d6000803e3d6000fd5b50506040517f307733f9f689d0bf848ca325cddded11e589c82ea2e55dbb22f929d9a7fe3bac925060009150a161066d836001610497565b6040517fa04bed3ab5f235073cbe25d194bb3d5c636f079ec1baa00d440bd241e18ce96590600090a17f1f51c6f18a8d6b960829349f9d73b906fe712f3a831efd9a60b255e4c7f1174f81516040516106c69190613a40565b60405180910390a161070e73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3181682611a35565b6040517fba2eda774c2667685901b47fd7e31a3eb285c4abda72da45c11ab9d78636fc1190600090a1610742836002610497565b6040517f0d82c2d8bda7f712283f61fcc6206fdc702fdba0d2febffc66566be95eb8fbbd90600090a160405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a250506001805550505050505050565b60006107b18383611d13565b5091505073ffffffffffffffffffffffffffffffffffffffff81163314610804576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613cbf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60028484604051610837929190613912565b9081526020016040518091039020819055508073ffffffffffffffffffffffffffffffffffffffff167f875b6cb035bbd4ac6500fabc6d1e4ca5bdc58a3e2b424ccb5c24cdbebeb009a98484604051610891929190613a49565b60405180910390a2505050565b7f000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad78881565b805160208183018101805160028252928201919093012091525481565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831061094857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161090b565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109a8576040519150601f19603f3d011682016040523d82523d6000602084013e6109ad565b606091505b508093508192505050610a5082826040516020018083805190602001908083835b60208310610a0b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109ce565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b815260010192505050604051602081830303815290604052611da1565b5092915050565b606060008260200267ffffffffffffffff81118015610a7557600080fd5b506040519080825280601f01601f191660200182016040528015610aa0576020820181803683370190505b50905060005b83811015610ac35784810154602080830284010152600101610aa6565b5090505b92915050565b60026001541415610b3f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001556040517f02cc250d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad78816906302cc250d90610bb690339060040161393e565b60206040518083038186803b158015610bce57600080fd5b505afa158015610be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c069190613675565b610c3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f1c565b6000610c46611da9565b8051909150610c5782868686611dd6565b60007ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677582610100015114610c8c576001610c8f565b60005b9050610c996131e0565b60408085015173ffffffffffffffffffffffffffffffffffffffff90811683526101408501517f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce9081146020850152606080880151909216928401929092526101608501519091149082015260008667ffffffffffffffff81118015610d1e57600080fd5b50604051908082528060200260200182016040528015610d48578160200160208202803683370190505b50610100850151909150610120870135907ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467751415610e14578460800151811015610dbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613ee5565b610dcb8560600151611e74565b82886000013581518110610ddb57fe5b602002602001018181525050610df081611e74565b60000382886020013581518110610e0357fe5b602002602001018181525050610ea4565b8460600151811115610e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e40565b610e5b81611e74565b82886000013581518110610e6b57fe5b602002602001018181525050610e848560800151611e74565b60000382886020013581518110610e9757fe5b6020026020010181815250505b610eac6131e0565b8660400151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560000151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560e0015181604001818152505085610140015181606001818152505060007f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d73ffffffffffffffffffffffffffffffffffffffff16634817a286878f8f8f8f8b8b8f60a001518b6040518a63ffffffff1660e01b8152600401610fb099989796959493929190613b1b565b600060405180830381600087803b158015610fca57600080fd5b505af1158015610fde573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611024919081019061353d565b90506000886020015190506000611051838c600001358151811061104457fe5b6020026020010151611f09565b90506000611078848d602001358151811061106857fe5b6020026020010151600003611f09565b905060028360405161108a9190613922565b9081526020016040518091039020546000146110d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467758a61010001511415611166578960600151821461113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d64565b89606001516002846040516111519190613922565b908152604051908190036020019020556111c9565b896080015181146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d9b565b89608001516002846040516111b89190613922565b908152604051908190036020019020555b8a6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc178b600001518c6020015185858f60e001518960405161122996959493929190613ac4565b60405180910390a260405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a25050600180555050505050505050505050505050565b7f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d81565b3033146112cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e09565b6112db60008383611f7a565b5050565b805160208183018101805160008252928201919093012091525481565b60006113088484611d13565b5091505073ffffffffffffffffffffffffffffffffffffffff8116331461139057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f475076323a2063616e6e6f74207072657369676e206f72646572000000000000604482015290519081900360640190fd5b81156113ea577ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c60008585604051808383808284378083019250505092505050908152602001604051809103902081905550611416565b600080858560405180838380828437919091019485525050604051928390036020019092209290925550505b8073ffffffffffffffffffffffffffffffffffffffff167f01bf7c8b0ca55deecbea89d7e58295b7ffbf685fd0d96801034ba8c6ffe1c68d858585604051808060200183151581526020018281038252858582818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a250505050565b3033146114f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e09565b6112db60028383611f7a565b7f01775d1b0885613ec7338c7192b2e10f00c2331f27493e2a3d2247c244cd3fc281565b606060006343218e1960e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561158e578181015183820152602001611576565b50505050905090810190601f1680156115bb5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909816979097178752518151919750309688965090945084935091508083835b6020831061168c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161164f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146116ee576040519150601f19603f3d011682016040523d82523d6000602084013e6116f3565b606091505b5090508092505060008260018451038151811061170c57fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b14905061174f83600185510361202a565b801561175c575050610ac7565b61176583611da1565b505092915050565b7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b60005b818110156118c957368383838181106117a957fe5b90506020028101906117bb9190614090565b905073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d1661180160208301836133d4565b73ffffffffffffffffffffffffffffffffffffffff16141561184f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f53565b6118588161202e565b61186560208201826133d4565b73ffffffffffffffffffffffffffffffffffffffff167fed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c282602001356118aa84612085565b6040516118b8929190613f8a565b60405180910390a250600101611794565b505050565b60608060006118db611da9565b90508367ffffffffffffffff811180156118f457600080fd5b5060405190808252806020026020018201604052801561192e57816020015b61191b6131e0565b8152602001906001900390816119135790505b5092508367ffffffffffffffff8111801561194857600080fd5b5060405190808252806020026020018201604052801561198257816020015b61196f6131e0565b8152602001906001900390816119675790505b50915060005b84811015611a28573686868381811061199d57fe5b90506020028101906119af91906140c3565b90506119bd838c8c84611dd6565b611a1f838a8a84358181106119ce57fe5b905060200201358b8b85602001358181106119e557fe5b905060200201358461012001358987815181106119fe57fe5b6020026020010151898881518110611a1257fe5b60200260200101516120af565b50600101611988565b5050965096945050505050565b6000815167ffffffffffffffff81118015611a4f57600080fd5b50604051908082528060200260200182016040528015611a8957816020015b611a76613207565b815260200190600190039081611a6e5790505b5090506000805b8351811015611c77576000848281518110611aa757fe5b6020026020010151905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611bab577f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce81606001511415611b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613dd2565b8051604080830151905173ffffffffffffffffffffffffffffffffffffffff9092169181156108fc0291906000818181858888f19350505050158015611ba5573d6000803e3d6000fd5b50611c6e565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981606001511415611c0a57805160408201516020830151611c059273ffffffffffffffffffffffffffffffffffffffff90911691612466565b611c6e565b6000848480600101955081518110611c1e57fe5b602090810291909101810151600081528382015173ffffffffffffffffffffffffffffffffffffffff90811692820192909252604080850151908201523060608201528351909116608090910152505b50600101611a90565b508015611d0d57611c88828261202a565b6040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690630e8e3e8490611cda9085906004016139ad565b600060405180830381600087803b158015611cf457600080fd5b505af1158015611d08573d6000803e3d6000fd5b505050505b50505050565b6000808060388414611d8657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f475076323a20696e76616c696420756964000000000000000000000000000000604482015290519081900360640190fd5b5050823593602084013560601c936034013560e01c92509050565b805160208201fd5b611db1613237565b6040805160388082526060820190925290602082018180368337505050602082015290565b83516000611de68386868561253e565b9050600080611e038484611dfe61014089018961402d565b612626565b91509150611e2682828660a001518b602001516126d5909392919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff81166040890152611e4c8482612757565b73ffffffffffffffffffffffffffffffffffffffff1660609098019790975250505050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611f0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f53616665436173743a20696e74323536206f766572666c6f7700000000000000604482015290519081900360640190fd5b5090565b600080821215611f0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f53616665436173743a206e6f7420706f73697469766500000000000000000000604482015290519081900360640190fd5b60005b81811015611d0d57366000848484818110611f9457fe5b9050602002810190611fa6919061402d565b915091506000611fb68383611d13565b92505050428163ffffffff1610611ff9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613eae565b600087848460405161200c929190613912565b90815260405190819003602001902055505060019091019050611f7d565b9052565b73ffffffffffffffffffffffffffffffffffffffff813516602082013536600061205b604086018661402d565b9150915060405181838237600080838387895af161207d573d6000803e3d6000fd5b505050505050565b60003681612096604085018561402d565b9092509050600481106120a857813592505b5050919050565b6000866000015190506000876020015190506000428360a0015163ffffffff161090507f9b4eb7f4556a1352e4627acf6b73a4ddfc64291c08ae077411b2eafe1436c8eb828a60400151856060015186608001518760e001518660405161211b96959493929190613a70565b60405180910390a1428360a0015163ffffffff161015612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613cf6565b60808301516121769088612789565b6060840151612185908a612789565b10156121bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d2d565b6000806000807ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677587610100015114156122be578661012001511561222a57899350612223876060015161221d868a60e0015161278990919063ffffffff16565b90612819565b9150612239565b866060015193508660e0015191505b61224d8b612247868f612789565b9061289a565b9250612279846002886040516122639190613922565b9081526040519081900360200190205490612938565b905086606001518111156122b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b612365565b866101200151156122f2578992506122eb876080015161221d858a60e0015161278990919063ffffffff16565b9150612301565b866080015192508660e0015191505b61230f8c61221d858e612789565b9350612325836002886040516122639190613922565b90508660800151811115612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b61236f8483612938565b9350806002876040516123829190613922565b9081526020016040518091039020819055508c6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17886000015189602001518787878c6040516123f096959493929190613ac4565b60405180910390a250506040808c015173ffffffffffffffffffffffffffffffffffffffff9081168952865181166020808b0191909152898301949094526101408701516060998a01529b8801518c16875282860151909b16918601919091529884019890985250610160015191015250505050565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff84166004830152602482018390529060008060448382895af16124c9573d6000803e3d6000fd5b506124d3846129ac565b611d0d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f475076323a206661696c6564207472616e736665720000000000000000000000604482015290519081900360640190fd5b60008383863581811061254d57fe5b6020908102929092013573ffffffffffffffffffffffffffffffffffffffff168452508490849087013581811061258057fe5b73ffffffffffffffffffffffffffffffffffffffff602091820293909301358316908501525060408087013590911690830152606080860135908301526080808601359083015263ffffffff60a080870135919091169083015260c0808601359083015260e080860135908301526125fc610100860135612a76565b61016087019190915261014086019190915290151561012085015261010090930152509392505050565b600080612653867f01775d1b0885613ec7338c7192b2e10f00c2331f27493e2a3d2247c244cd3fc2612bcb565b9150600085600381111561266357fe5b141561267b57612674828585612c55565b90506126cc565b600185600381111561268957fe5b141561269a57612674828585612c6a565b60028560038111156126a857fe5b14156126b957612674828585612cd2565b6126c98285858960a00151612e70565b90505b94509492505050565b603884511461274557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a2075696420627566666572206f766572666c6f7700000000000000604482015290519081900360640190fd5b60388401526034830152602090910152565b604082015160009073ffffffffffffffffffffffffffffffffffffffff16612780575080610ac7565b50506040015190565b60008261279857506000610ac7565b828202828482816127a557fe5b041461281257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d6174683a206d756c206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b9392505050565b600080821161288957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d6174683a206469766973696f6e2062792030000000000000000000604482015290519081900360640190fd5b81838161289257fe5b049392505050565b600080821161290a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f536166654d6174683a206365696c696e67206469766973696f6e206279203000604482015290519081900360640190fd5b81838161291357fe5b0615612920576001612923565b60005b60ff1682848161292f57fe5b04019392505050565b60008282018381101561281257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006129ea565b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452806024528160445260646000fd5b3d8015612a295760208114612a6357612a247f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f6129b3565b612a70565b823b612a5a57612a5a7f475076323a206e6f74206120636f6e747261637400000000000000000000000060146129b3565b60019150612a70565b3d6000803e600051151591505b50919050565b60008080808060018616612aac577ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467759450612ad0565b7f6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc94505b600286161515935060088616612b08577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99250612b5c565b60048616612b38577fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea06329250612b5c565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce92505b60108616612b8c577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99150612bb0565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce91505b600586901c6003811115612bc057fe5b905091939590929450565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090910180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6000612c62848484613035565b949350505050565b6000808460405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050612cc9818585613035565b95945050505050565b813560601c366000612ce7846014818861411a565b604080517f1626ba7e00000000000000000000000000000000000000000000000000000000808252600482018b81526024830193845260448301859052949650929450919273ffffffffffffffffffffffffffffffffffffffff871692631626ba7e928b928892889290606401848480828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201965060209550909350505081840390508186803b158015612dad57600080fd5b505afa158015612dc1573d6000803e3d6000fd5b505050506040513d6020811015612dd757600080fd5b50517fffffffff000000000000000000000000000000000000000000000000000000001614612e6757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f475076323a20696e76616c69642065697031323731207369676e617475726500604482015290519081900360640190fd5b50509392505050565b600060148314612ee157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f475076323a206d616c666f726d6564207072657369676e617475726500000000604482015290519081900360640190fd5b506040805160388082526060828101909352853590921c9160009190602082018180368337019050509050612f18818784866126d5565b7ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c6000826040518082805190602001908083835b60208310612f8c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f4f565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020541461302c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a206f72646572206e6f74207072657369676e656400000000000000604482015290519081900360640190fd5b50949350505050565b6000604182146130a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f475076323a206d616c666f726d6564206563647361207369676e617475726500604482015290519081900360640190fd5b604080516000815260208181018084528790528286013560f81c82840181905286356060840181905282880135608085018190529451909493919260019260a0808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015613129573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015194505073ffffffffffffffffffffffffffffffffffffffff84166131d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f475076323a20696e76616c6964206563647361207369676e6174757265000000604482015290519081900360640190fd5b5050509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040805160a081019091528060008152600060208201819052604082018190526060820181905260809091015290565b604051806080016040528061324a613264565b815260606020820181905260006040830181905291015290565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915290565b60008083601f8401126132d9578182fd5b50813567ffffffffffffffff8111156132f0578182fd5b602083019150836020808302850101111561330a57600080fd5b9250929050565b60008083601f840112613322578182fd5b50813567ffffffffffffffff811115613339578182fd5b60208301915083602082850101111561330a57600080fd5b600082601f830112613361578081fd5b813567ffffffffffffffff81111561337557fe5b6133a660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016140f6565b8181528460208386010111156133ba578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156133e5578081fd5b81356128128161416e565b60008060408385031215613402578081fd5b823561340d8161416e565b9150602083013567ffffffffffffffff811115613428578182fd5b61343485828601613351565b9150509250929050565b60008060208385031215613450578182fd5b823567ffffffffffffffff811115613466578283fd5b613472858286016132c8565b90969095509350505050565b60008060008060008060006080888a031215613498578283fd5b873567ffffffffffffffff808211156134af578485fd5b6134bb8b838c016132c8565b909950975060208a01359150808211156134d3578485fd5b6134df8b838c016132c8565b909750955060408a01359150808211156134f7578485fd5b6135038b838c016132c8565b909550935060608a013591508082111561351b578283fd5b508801606081018a101561352d578182fd5b8091505092959891949750929550565b6000602080838503121561354f578182fd5b825167ffffffffffffffff80821115613566578384fd5b818501915085601f830112613579578384fd5b81518181111561358557fe5b83810291506135958483016140f6565b8181528481019084860184860187018a10156135af578788fd5b8795505b838610156135d15780518352600195909501949186019186016135b3565b5098975050505050505050565b6000806000806000606086880312156135f5578081fd5b853567ffffffffffffffff8082111561360c578283fd5b61361889838a016132c8565b90975095506020880135915080821115613630578283fd5b61363c89838a016132c8565b90955093506040880135915080821115613654578283fd5b5086016101608189031215613667578182fd5b809150509295509295909350565b600060208284031215613686578081fd5b815161281281614193565b600080602083850312156136a3578182fd5b823567ffffffffffffffff8111156136b9578283fd5b61347285828601613311565b6000806000604084860312156136d9578081fd5b833567ffffffffffffffff8111156136ef578182fd5b6136fb86828701613311565b909450925050602084013561370f81614193565b809150509250925092565b60006020828403121561372b578081fd5b813567ffffffffffffffff811115613741578182fd5b612c6284828501613351565b6000806040838503121561375f578182fd5b50508035926020909101359150565b60008284526020808501945082825b858110156137b85781356137908161416e565b73ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161377d565b509495945050505050565b6000815180845260208085019450808401835b838110156137b8578151875295820195908201906001016137d6565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b60008151808452613852816020860160208601614142565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8082511683528060208301511660208401525060408101516040830152606081015160608301525050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b63ffffffff169052565b6000828483379101908152919050565b60008251613934818460208701614142565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6020808252825182820181905260009190848201906040850190845b818110156139a15761398e838551613884565b928401926080929092019160010161397b565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b82811015613a335781518051600481106139e057fe5b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a090930192908501906001016139ca565b5091979650505050505050565b90815260200190565b600060208252612c626020830184866137f2565b600060208252612812602083018461383a565b600060c08252613a8360c083018961383a565b73ffffffffffffffffffffffffffffffffffffffff97909716602083015250604081019490945260608401929092526080830152151560a090910152919050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015283608083015260c060a0830152613b0f60c083018461383a565b98975050505050505050565b60006101a0820160028c10613b2c57fe5b8b835260206101a081850152818b83526101c0850190506101c0828d0286010192508c845b8d811015613c5a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe408786030183527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618f360301823512613bb0578586fd5b8e823501803586528481013585870152604081013560408701526060810135606087015260808101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112613c08578788fd5b8101803567ffffffffffffffff811115613c20578889fd5b803603831315613c2e578889fd5b60a06080890152613c4560a08901828985016137f2565b97505050928401925090830190600101613b51565b505050508281036040840152613c7181898b61376e565b9050613c8060608401886138c4565b82810360e0840152613c9281876137c3565b915050613ca3610100830185613908565b613cb1610120830184613884565b9a9950505050505050505050565b6020808252601f908201527f475076323a2063616c6c657220646f6573206e6f74206f776e206f7264657200604082015260600190565b60208082526013908201527f475076323a206f72646572206578706972656400000000000000000000000000604082015260600190565b6020808252601f908201527f475076323a206c696d6974207072696365206e6f742072657370656374656400604082015260600190565b6020808252601f908201527f475076323a2073656c6c20616d6f756e74206e6f742072657370656374656400604082015260600190565b6020808252601e908201527f475076323a2062757920616d6f756e74206e6f74207265737065637465640000604082015260600190565b6020808252601e908201527f475076323a20756e737570706f7274656420696e7465726e616c204554480000604082015260600190565b60208082526018908201527f475076323a206e6f7420616e20696e746572616374696f6e0000000000000000604082015260600190565b60208082526014908201527f475076323a206c696d697420746f6f2068696768000000000000000000000000604082015260600190565b60208082526012908201527f475076323a206f726465722066696c6c65640000000000000000000000000000604082015260600190565b60208082526017908201527f475076323a206f72646572207374696c6c2076616c6964000000000000000000604082015260600190565b60208082526013908201527f475076323a206c696d697420746f6f206c6f7700000000000000000000000000604082015260600190565b60208082526012908201527f475076323a206e6f74206120736f6c7665720000000000000000000000000000604082015260600190565b6020808252601b908201527f475076323a20666f7262696464656e20696e746572616374696f6e0000000000604082015260600190565b9182527fffffffff0000000000000000000000000000000000000000000000000000000016602082015260400190565b918252602082015260400190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613ffc578283fd5b83018035915067ffffffffffffffff821115614016578283fd5b602090810192508102360382131561330a57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614061578283fd5b83018035915067ffffffffffffffff82111561407b578283fd5b60200191503681900382131561330a57600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112613934578182fd5b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea1833603018112613934578182fd5b60405181810167ffffffffffffffff8111828210171561411257fe5b604052919050565b60008085851115614129578182fd5b83861115614135578182fd5b5050820193919092039150565b60005b8381101561415d578181015183820152602001614145565b83811115611d0d5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461419057600080fd5b50565b801515811461419057600080fdfea2646970667358221220e44c81ebee4bd12f2c28a8fff7d83554efc672515327da65767f1268b1aed5f164736f6c63430007060033","gas_used":4349874,"gas_limit":5768203,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","address":"0x8daf17a20c9dba35f005b6324f493785d239719d","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60c060405234801561001057600080fd5b5060405161129e38038061129e83398101604081905261002f9161004b565b33606090811b6080521b6001600160601b03191660a052610079565b60006020828403121561005c578081fd5b81516001600160a01b0381168114610072578182fd5b9392505050565b60805160601c60a05160601c6111ee6100b060003980610130528061020152806102bd5250806093528061024c52506111ee6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634817a2861461003b5780637d10d11f14610064575b600080fd5b61004e610049366004610cd9565b610079565b60405161005b9190610eb3565b60405180910390f35b610077610072366004610c69565b610234565b005b60603373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146100f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea906110e5565b60405180910390fd5b6040517f945bcec900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063945bcec990610171908c908c908c908c908c908c908c90600401610f59565b600060405180830381600087803b15801561018b57600080fd5b505af115801561019f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526101e59190810190610bd9565b905061022873ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001683336102e9565b98975050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea906110e5565b6102e573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016838333610551565b5050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61030e6040840160208501610bb6565b73ffffffffffffffffffffffffffffffffffffffff16141561035c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea9061111c565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9826060013514156103d0576103cb6103986020840184610bb6565b82604085018035906103ad9060208801610bb6565b73ffffffffffffffffffffffffffffffffffffffff16929190610816565b61054c565b604080516001808252818301909252600091816020015b6103ef6109cb565b8152602001906001900390816103e757905050905060008160008151811061041357fe5b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea063284606001351461044f576002610452565b60035b8190600381111561045f57fe5b9081600381111561046c57fe5b90525061047f6040850160208601610bb6565b73ffffffffffffffffffffffffffffffffffffffff16602080830191909152604080860135908301526104b490850185610bb6565b73ffffffffffffffffffffffffffffffffffffffff908116606083015283811660808301526040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815290861690630e8e3e8490610517908590600401610ec6565b600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505050505b505050565b60008267ffffffffffffffff8111801561056a57600080fd5b506040519080825280602002602001820160405280156105a457816020015b6105916109cb565b8152602001906001900390816105895790505b5090506000805b8481101561077857368686838181106105c057fe5b60800291909101915073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90506105f06040830160208401610bb6565b73ffffffffffffffffffffffffffffffffffffffff16141561063e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea9061111c565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9816060013514156106945761068f61067a6020830183610bb6565b86604084018035906103ad9060208701610bb6565b61076f565b60008484806001019550815181106106a857fe5b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea06328260600135146106e45760016106e7565b60035b819060038111156106f457fe5b9081600381111561070157fe5b9052506107146040830160208401610bb6565b73ffffffffffffffffffffffffffffffffffffffff166020808301919091526040808401359083015261074990830183610bb6565b73ffffffffffffffffffffffffffffffffffffffff908116606083015286166080909101525b506001016105ab565b50801561080e5761078982826108fd565b6040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690630e8e3e84906107db908590600401610ec6565b600060405180830381600087803b1580156107f557600080fd5b505af1158015610809573d6000803e3d6000fd5b505050505b505050505050565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff8581166004840152841660248301526044820183905290600080606483828a5af1610881573d6000803e3d6000fd5b5061088b85610901565b6108f657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a206661696c6564207472616e7366657246726f6d00000000000000604482015290519081900360640190fd5b5050505050565b9052565b600061093f565b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452806024528160445260646000fd5b3d801561097e57602081146109b8576109797f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f610908565b6109c5565b823b6109af576109af7f475076323a206e6f74206120636f6e74726163740000000000000000000000006014610908565b600191506109c5565b3d6000803e600051151591505b50919050565b6040805160a081019091528060008152600060208201819052604082018190526060820181905260809091015290565b600082601f830112610a0b578081fd5b81356020610a20610a1b83611175565b611151565b8281528181019085830183850287018401881015610a3c578586fd5b855b85811015610a63578135610a5181611193565b84529284019290840190600101610a3e565b5090979650505050505050565b600082601f830112610a80578081fd5b81356020610a90610a1b83611175565b8281528181019085830183850287018401881015610aac578586fd5b855b85811015610a6357813584529284019290840190600101610aae565b60008083601f840112610adb578182fd5b50813567ffffffffffffffff811115610af2578182fd5b6020830191508360208083028501011115610b0c57600080fd5b9250929050565b80358015158114610b2357600080fd5b919050565b6000608082840312156109c5578081fd5b600060808284031215610b4a578081fd5b6040516080810181811067ffffffffffffffff82111715610b6757fe5b6040529050808235610b7881611193565b8152610b8660208401610b13565b60208201526040830135610b9981611193565b6040820152610baa60608401610b13565b60608201525092915050565b600060208284031215610bc7578081fd5b8135610bd281611193565b9392505050565b60006020808385031215610beb578182fd5b825167ffffffffffffffff811115610c01578283fd5b8301601f81018513610c11578283fd5b8051610c1f610a1b82611175565b8181528381019083850185840285018601891015610c3b578687fd5b8694505b83851015610c5d578051835260019490940193918501918501610c3f565b50979650505050505050565b60008060208385031215610c7b578081fd5b823567ffffffffffffffff80821115610c92578283fd5b818501915085601f830112610ca5578283fd5b813581811115610cb3578384fd5b866020608083028501011115610cc7578384fd5b60209290920196919550909350505050565b6000806000806000806000806101a0898b031215610cf5578384fd5b883560028110610d03578485fd5b9750602089013567ffffffffffffffff80821115610d1f578586fd5b610d2b8c838d01610aca565b909950975060408b0135915080821115610d43578586fd5b610d4f8c838d016109fb565b9650610d5e8c60608d01610b39565b955060e08b0135915080821115610d73578485fd5b50610d808b828c01610a70565b9350506101008901359150610d998a6101208b01610b28565b90509295985092959890939650565b6000815180845260208085019450808401835b83811015610ded57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101610dbb565b509495945050505050565b6000815180845260208085019450808401835b83811015610ded57815187529582019590820190600101610e0b565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b600060208252610bd26020830184610df8565b602080825282518282018190526000919060409081850190868401855b82811015610f4c578151805160048110610ef957fe5b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a09093019290850190600101610ee3565b5091979650505050505050565b600061012080830160028b10610f6b57fe5b8a8452602080850192909252889052610140808401918981028501909101908a845b8b811015611098577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec087850301855281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618e3603018112610fed578687fd5b8d01803585528381013584860152604080820135908601526060808201359086015260a0608080830135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe101811261104757898afd5b8301803567ffffffffffffffff81111561105f578a8bfd5b80360385131561106d578a8bfd5b83838a0152611081848a01828a8501610e27565b998801999850505093850193505050600101610f8d565b50505083810360408501526110ad8189610da8565b9150506110bd6060840187610e6f565b82810360e08401526110cf8186610df8565b9150508261010083015298975050505050505050565b60208082526011908201527f475076323a206e6f742063726561746f72000000000000000000000000000000604082015260600190565b6020808252818101527f475076323a2063616e6e6f74207472616e73666572206e617469766520455448604082015260600190565b60405181810167ffffffffffffffff8111828210171561116d57fe5b604052919050565b600067ffffffffffffffff82111561118957fe5b5060209081020190565b73ffffffffffffffffffffffffffffffffffffffff811681146111b557600080fd5b5056fea2646970667358221220addf78f9933867b13bfb595f92d06bf1ca903f014437092b1df8accfeef30b2d64736f6c634300070600330000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc318","output":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80634817a2861461003b5780637d10d11f14610064575b600080fd5b61004e610049366004610cd9565b610079565b60405161005b9190610eb3565b60405180910390f35b610077610072366004610c69565b610234565b005b60603373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e16146100f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea906110e5565b60405180910390fd5b6040517f945bcec900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc318169063945bcec990610171908c908c908c908c908c908c908c90600401610f59565b600060405180830381600087803b15801561018b57600080fd5b505af115801561019f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526101e59190810190610bd9565b905061022873ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3181683336102e9565b98975050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e16146102a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea906110e5565b6102e573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31816838333610551565b5050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61030e6040840160208501610bb6565b73ffffffffffffffffffffffffffffffffffffffff16141561035c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea9061111c565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9826060013514156103d0576103cb6103986020840184610bb6565b82604085018035906103ad9060208801610bb6565b73ffffffffffffffffffffffffffffffffffffffff16929190610816565b61054c565b604080516001808252818301909252600091816020015b6103ef6109cb565b8152602001906001900390816103e757905050905060008160008151811061041357fe5b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea063284606001351461044f576002610452565b60035b8190600381111561045f57fe5b9081600381111561046c57fe5b90525061047f6040850160208601610bb6565b73ffffffffffffffffffffffffffffffffffffffff16602080830191909152604080860135908301526104b490850185610bb6565b73ffffffffffffffffffffffffffffffffffffffff908116606083015283811660808301526040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815290861690630e8e3e8490610517908590600401610ec6565b600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505050505b505050565b60008267ffffffffffffffff8111801561056a57600080fd5b506040519080825280602002602001820160405280156105a457816020015b6105916109cb565b8152602001906001900390816105895790505b5090506000805b8481101561077857368686838181106105c057fe5b60800291909101915073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90506105f06040830160208401610bb6565b73ffffffffffffffffffffffffffffffffffffffff16141561063e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ea9061111c565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9816060013514156106945761068f61067a6020830183610bb6565b86604084018035906103ad9060208701610bb6565b61076f565b60008484806001019550815181106106a857fe5b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea06328260600135146106e45760016106e7565b60035b819060038111156106f457fe5b9081600381111561070157fe5b9052506107146040830160208401610bb6565b73ffffffffffffffffffffffffffffffffffffffff166020808301919091526040808401359083015261074990830183610bb6565b73ffffffffffffffffffffffffffffffffffffffff908116606083015286166080909101525b506001016105ab565b50801561080e5761078982826108fd565b6040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690630e8e3e84906107db908590600401610ec6565b600060405180830381600087803b1580156107f557600080fd5b505af1158015610809573d6000803e3d6000fd5b505050505b505050505050565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff8581166004840152841660248301526044820183905290600080606483828a5af1610881573d6000803e3d6000fd5b5061088b85610901565b6108f657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a206661696c6564207472616e7366657246726f6d00000000000000604482015290519081900360640190fd5b5050505050565b9052565b600061093f565b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452806024528160445260646000fd5b3d801561097e57602081146109b8576109797f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f610908565b6109c5565b823b6109af576109af7f475076323a206e6f74206120636f6e74726163740000000000000000000000006014610908565b600191506109c5565b3d6000803e600051151591505b50919050565b6040805160a081019091528060008152600060208201819052604082018190526060820181905260809091015290565b600082601f830112610a0b578081fd5b81356020610a20610a1b83611175565b611151565b8281528181019085830183850287018401881015610a3c578586fd5b855b85811015610a63578135610a5181611193565b84529284019290840190600101610a3e565b5090979650505050505050565b600082601f830112610a80578081fd5b81356020610a90610a1b83611175565b8281528181019085830183850287018401881015610aac578586fd5b855b85811015610a6357813584529284019290840190600101610aae565b60008083601f840112610adb578182fd5b50813567ffffffffffffffff811115610af2578182fd5b6020830191508360208083028501011115610b0c57600080fd5b9250929050565b80358015158114610b2357600080fd5b919050565b6000608082840312156109c5578081fd5b600060808284031215610b4a578081fd5b6040516080810181811067ffffffffffffffff82111715610b6757fe5b6040529050808235610b7881611193565b8152610b8660208401610b13565b60208201526040830135610b9981611193565b6040820152610baa60608401610b13565b60608201525092915050565b600060208284031215610bc7578081fd5b8135610bd281611193565b9392505050565b60006020808385031215610beb578182fd5b825167ffffffffffffffff811115610c01578283fd5b8301601f81018513610c11578283fd5b8051610c1f610a1b82611175565b8181528381019083850185840285018601891015610c3b578687fd5b8694505b83851015610c5d578051835260019490940193918501918501610c3f565b50979650505050505050565b60008060208385031215610c7b578081fd5b823567ffffffffffffffff80821115610c92578283fd5b818501915085601f830112610ca5578283fd5b813581811115610cb3578384fd5b866020608083028501011115610cc7578384fd5b60209290920196919550909350505050565b6000806000806000806000806101a0898b031215610cf5578384fd5b883560028110610d03578485fd5b9750602089013567ffffffffffffffff80821115610d1f578586fd5b610d2b8c838d01610aca565b909950975060408b0135915080821115610d43578586fd5b610d4f8c838d016109fb565b9650610d5e8c60608d01610b39565b955060e08b0135915080821115610d73578485fd5b50610d808b828c01610a70565b9350506101008901359150610d998a6101208b01610b28565b90509295985092959890939650565b6000815180845260208085019450808401835b83811015610ded57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101610dbb565b509495945050505050565b6000815180845260208085019450808401835b83811015610ded57815187529582019590820190600101610e0b565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b600060208252610bd26020830184610df8565b602080825282518282018190526000919060409081850190868401855b82811015610f4c578151805160048110610ef957fe5b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a09093019290850190600101610ee3565b5091979650505050505050565b600061012080830160028b10610f6b57fe5b8a8452602080850192909252889052610140808401918981028501909101908a845b8b811015611098577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec087850301855281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618e3603018112610fed578687fd5b8d01803585528381013584860152604080820135908601526060808201359086015260a0608080830135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe101811261104757898afd5b8301803567ffffffffffffffff81111561105f578a8bfd5b80360385131561106d578a8bfd5b83838a0152611081848a01828a8501610e27565b998801999850505093850193505050600101610f8d565b50505083810360408501526110ad8189610da8565b9150506110bd6060840187610e6f565b82810360e08401526110cf8186610df8565b9150508261010083015298975050505050505050565b60208082526011908201527f475076323a206e6f742063726561746f72000000000000000000000000000000604082015260600190565b6020808252818101527f475076323a2063616e6e6f74207472616e73666572206e617469766520455448604082015260600190565b60405181810167ffffffffffffffff8111828210171561116d57fe5b604052919050565b600067ffffffffffffffff82111561118957fe5b5060209081020190565b73ffffffffffffffffffffffffffffffffffffffff811681146111b557600080fd5b5056fea2646970667358221220addf78f9933867b13bfb595f92d06bf1ca903f014437092b1df8accfeef30b2d64736f6c63430007060033","gas_used":919258,"gas_limit":5622738,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x6080604052600436106100ec5760003560e01c80639b552cc21161008a578063ed9f35ce11610059578063ed9f35ce14610274578063f698da2514610294578063f84436bd146102a9578063fbfa77cf146102c9576100f3565b80639b552cc2146101ff578063a2a7d51b14610214578063d08d33d114610234578063ec6cb13f14610254576100f3565b80632479fb6e116100c65780632479fb6e1461016557806343218e19146101925780635624b25b146101bf578063845a101f146101df576100f3565b806313d79a0b146100f857806315337bc01461011a5780632335c76b1461013a576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061011861011336600461347e565b6102de565b005b34801561012657600080fd5b50610118610135366004613691565b6107a5565b34801561014657600080fd5b5061014f61089e565b60405161015c919061393e565b60405180910390f35b34801561017157600080fd5b5061018561018036600461371a565b6108c2565b60405161015c9190613a40565b34801561019e57600080fd5b506101b26101ad3660046133f0565b6108df565b60405161015c9190613a5d565b3480156101cb57600080fd5b506101b26101da36600461374d565b610a57565b3480156101eb57600080fd5b506101186101fa3660046135de565b610acd565b34801561020b57600080fd5b5061014f611272565b34801561022057600080fd5b5061011861022f36600461343e565b611296565b34801561024057600080fd5b5061018561024f36600461371a565b6112df565b34801561026057600080fd5b5061011861026f3660046136c5565b6112fc565b34801561028057600080fd5b5061011861028f36600461343e565b6114bb565b3480156102a057600080fd5b50610185611500565b3480156102b557600080fd5b506101b26102c43660046133f0565b611524565b3480156102d557600080fd5b5061014f61176d565b6002600154141561035057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001556040517f02cc250d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad78816906302cc250d906103c790339060040161393e565b60206040518083038186803b1580156103df57600080fd5b505afa1580156103f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104179190613675565b610456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f1c565b60405180910390fd5b60405133907f7c3354d25cde0396b97e394765fc57e6725a2af3bd430f2fa5fb18c1275b767390610488908590613a40565b60405180910390a26104ac8160005b6020028101906104a79190613fc8565b611791565b6040517fb30270a37e2e4cc4e92f89e7e547d3071f3df248b1d38087d25e1b3428b66cc390600090a16040517f37c8fc3ebb5e40b9957fb555efaa44a206d443b7ac930fb87ca80bd4aa86a5c290610505908490613a40565b60405180910390a160008061051e8989898989896118ce565b915091507f6e54a7dbb4b29f8784749754dededb16b110602787effe25acd400ba0139da4782518251604051610555929190613fba565b60405180910390a17f3800ddfb7721134ba29414e8edf556e71bbc37c70fc77f684cfbea4cdd1deb3e825160405161058d9190613a40565b60405180910390a16040517f7d10d11f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d1690637d10d11f9061060790859060040161395f565b600060405180830381600087803b15801561062157600080fd5b505af1158015610635573d6000803e3d6000fd5b50506040517f307733f9f689d0bf848ca325cddded11e589c82ea2e55dbb22f929d9a7fe3bac925060009150a161066d836001610497565b6040517fa04bed3ab5f235073cbe25d194bb3d5c636f079ec1baa00d440bd241e18ce96590600090a17f1f51c6f18a8d6b960829349f9d73b906fe712f3a831efd9a60b255e4c7f1174f81516040516106c69190613a40565b60405180910390a161070e73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3181682611a35565b6040517fba2eda774c2667685901b47fd7e31a3eb285c4abda72da45c11ab9d78636fc1190600090a1610742836002610497565b6040517f0d82c2d8bda7f712283f61fcc6206fdc702fdba0d2febffc66566be95eb8fbbd90600090a160405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a250506001805550505050505050565b60006107b18383611d13565b5091505073ffffffffffffffffffffffffffffffffffffffff81163314610804576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613cbf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60028484604051610837929190613912565b9081526020016040518091039020819055508073ffffffffffffffffffffffffffffffffffffffff167f875b6cb035bbd4ac6500fabc6d1e4ca5bdc58a3e2b424ccb5c24cdbebeb009a98484604051610891929190613a49565b60405180910390a2505050565b7f000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad78881565b805160208183018101805160028252928201919093012091525481565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831061094857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161090b565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109a8576040519150601f19603f3d011682016040523d82523d6000602084013e6109ad565b606091505b508093508192505050610a5082826040516020018083805190602001908083835b60208310610a0b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109ce565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b815260010192505050604051602081830303815290604052611da1565b5092915050565b606060008260200267ffffffffffffffff81118015610a7557600080fd5b506040519080825280601f01601f191660200182016040528015610aa0576020820181803683370190505b50905060005b83811015610ac35784810154602080830284010152600101610aa6565b5090505b92915050565b60026001541415610b3f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001556040517f02cc250d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad78816906302cc250d90610bb690339060040161393e565b60206040518083038186803b158015610bce57600080fd5b505afa158015610be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c069190613675565b610c3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f1c565b6000610c46611da9565b8051909150610c5782868686611dd6565b60007ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677582610100015114610c8c576001610c8f565b60005b9050610c996131e0565b60408085015173ffffffffffffffffffffffffffffffffffffffff90811683526101408501517f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce9081146020850152606080880151909216928401929092526101608501519091149082015260008667ffffffffffffffff81118015610d1e57600080fd5b50604051908082528060200260200182016040528015610d48578160200160208202803683370190505b50610100850151909150610120870135907ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467751415610e14578460800151811015610dbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613ee5565b610dcb8560600151611e74565b82886000013581518110610ddb57fe5b602002602001018181525050610df081611e74565b60000382886020013581518110610e0357fe5b602002602001018181525050610ea4565b8460600151811115610e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e40565b610e5b81611e74565b82886000013581518110610e6b57fe5b602002602001018181525050610e848560800151611e74565b60000382886020013581518110610e9757fe5b6020026020010181815250505b610eac6131e0565b8660400151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560000151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560e0015181604001818152505085610140015181606001818152505060007f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d73ffffffffffffffffffffffffffffffffffffffff16634817a286878f8f8f8f8b8b8f60a001518b6040518a63ffffffff1660e01b8152600401610fb099989796959493929190613b1b565b600060405180830381600087803b158015610fca57600080fd5b505af1158015610fde573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611024919081019061353d565b90506000886020015190506000611051838c600001358151811061104457fe5b6020026020010151611f09565b90506000611078848d602001358151811061106857fe5b6020026020010151600003611f09565b905060028360405161108a9190613922565b9081526020016040518091039020546000146110d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467758a61010001511415611166578960600151821461113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d64565b89606001516002846040516111519190613922565b908152604051908190036020019020556111c9565b896080015181146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d9b565b89608001516002846040516111b89190613922565b908152604051908190036020019020555b8a6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc178b600001518c6020015185858f60e001518960405161122996959493929190613ac4565b60405180910390a260405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a25050600180555050505050505050505050505050565b7f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d81565b3033146112cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e09565b6112db60008383611f7a565b5050565b805160208183018101805160008252928201919093012091525481565b60006113088484611d13565b5091505073ffffffffffffffffffffffffffffffffffffffff8116331461139057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f475076323a2063616e6e6f74207072657369676e206f72646572000000000000604482015290519081900360640190fd5b81156113ea577ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c60008585604051808383808284378083019250505092505050908152602001604051809103902081905550611416565b600080858560405180838380828437919091019485525050604051928390036020019092209290925550505b8073ffffffffffffffffffffffffffffffffffffffff167f01bf7c8b0ca55deecbea89d7e58295b7ffbf685fd0d96801034ba8c6ffe1c68d858585604051808060200183151581526020018281038252858582818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a250505050565b3033146114f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e09565b6112db60028383611f7a565b7f01775d1b0885613ec7338c7192b2e10f00c2331f27493e2a3d2247c244cd3fc281565b606060006343218e1960e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561158e578181015183820152602001611576565b50505050905090810190601f1680156115bb5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909816979097178752518151919750309688965090945084935091508083835b6020831061168c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161164f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146116ee576040519150601f19603f3d011682016040523d82523d6000602084013e6116f3565b606091505b5090508092505060008260018451038151811061170c57fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b14905061174f83600185510361202a565b801561175c575050610ac7565b61176583611da1565b505092915050565b7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b60005b818110156118c957368383838181106117a957fe5b90506020028101906117bb9190614090565b905073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d1661180160208301836133d4565b73ffffffffffffffffffffffffffffffffffffffff16141561184f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613f53565b6118588161202e565b61186560208201826133d4565b73ffffffffffffffffffffffffffffffffffffffff167fed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c282602001356118aa84612085565b6040516118b8929190613f8a565b60405180910390a250600101611794565b505050565b60608060006118db611da9565b90508367ffffffffffffffff811180156118f457600080fd5b5060405190808252806020026020018201604052801561192e57816020015b61191b6131e0565b8152602001906001900390816119135790505b5092508367ffffffffffffffff8111801561194857600080fd5b5060405190808252806020026020018201604052801561198257816020015b61196f6131e0565b8152602001906001900390816119675790505b50915060005b84811015611a28573686868381811061199d57fe5b90506020028101906119af91906140c3565b90506119bd838c8c84611dd6565b611a1f838a8a84358181106119ce57fe5b905060200201358b8b85602001358181106119e557fe5b905060200201358461012001358987815181106119fe57fe5b6020026020010151898881518110611a1257fe5b60200260200101516120af565b50600101611988565b5050965096945050505050565b6000815167ffffffffffffffff81118015611a4f57600080fd5b50604051908082528060200260200182016040528015611a8957816020015b611a76613207565b815260200190600190039081611a6e5790505b5090506000805b8351811015611c77576000848281518110611aa757fe5b6020026020010151905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611bab577f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce81606001511415611b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613dd2565b8051604080830151905173ffffffffffffffffffffffffffffffffffffffff9092169181156108fc0291906000818181858888f19350505050158015611ba5573d6000803e3d6000fd5b50611c6e565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981606001511415611c0a57805160408201516020830151611c059273ffffffffffffffffffffffffffffffffffffffff90911691612466565b611c6e565b6000848480600101955081518110611c1e57fe5b602090810291909101810151600081528382015173ffffffffffffffffffffffffffffffffffffffff90811692820192909252604080850151908201523060608201528351909116608090910152505b50600101611a90565b508015611d0d57611c88828261202a565b6040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690630e8e3e8490611cda9085906004016139ad565b600060405180830381600087803b158015611cf457600080fd5b505af1158015611d08573d6000803e3d6000fd5b505050505b50505050565b6000808060388414611d8657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f475076323a20696e76616c696420756964000000000000000000000000000000604482015290519081900360640190fd5b5050823593602084013560601c936034013560e01c92509050565b805160208201fd5b611db1613237565b6040805160388082526060820190925290602082018180368337505050602082015290565b83516000611de68386868561253e565b9050600080611e038484611dfe61014089018961402d565b612626565b91509150611e2682828660a001518b602001516126d5909392919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff81166040890152611e4c8482612757565b73ffffffffffffffffffffffffffffffffffffffff1660609098019790975250505050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611f0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f53616665436173743a20696e74323536206f766572666c6f7700000000000000604482015290519081900360640190fd5b5090565b600080821215611f0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f53616665436173743a206e6f7420706f73697469766500000000000000000000604482015290519081900360640190fd5b60005b81811015611d0d57366000848484818110611f9457fe5b9050602002810190611fa6919061402d565b915091506000611fb68383611d13565b92505050428163ffffffff1610611ff9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613eae565b600087848460405161200c929190613912565b90815260405190819003602001902055505060019091019050611f7d565b9052565b73ffffffffffffffffffffffffffffffffffffffff813516602082013536600061205b604086018661402d565b9150915060405181838237600080838387895af161207d573d6000803e3d6000fd5b505050505050565b60003681612096604085018561402d565b9092509050600481106120a857813592505b5050919050565b6000866000015190506000876020015190506000428360a0015163ffffffff161090507f9b4eb7f4556a1352e4627acf6b73a4ddfc64291c08ae077411b2eafe1436c8eb828a60400151856060015186608001518760e001518660405161211b96959493929190613a70565b60405180910390a1428360a0015163ffffffff161015612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613cf6565b60808301516121769088612789565b6060840151612185908a612789565b10156121bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613d2d565b6000806000807ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677587610100015114156122be578661012001511561222a57899350612223876060015161221d868a60e0015161278990919063ffffffff16565b90612819565b9150612239565b866060015193508660e0015191505b61224d8b612247868f612789565b9061289a565b9250612279846002886040516122639190613922565b9081526040519081900360200190205490612938565b905086606001518111156122b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b612365565b866101200151156122f2578992506122eb876080015161221d858a60e0015161278990919063ffffffff16565b9150612301565b866080015192508660e0015191505b61230f8c61221d858e612789565b9350612325836002886040516122639190613922565b90508660800151811115612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044d90613e77565b61236f8483612938565b9350806002876040516123829190613922565b9081526020016040518091039020819055508c6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17886000015189602001518787878c6040516123f096959493929190613ac4565b60405180910390a250506040808c015173ffffffffffffffffffffffffffffffffffffffff9081168952865181166020808b0191909152898301949094526101408701516060998a01529b8801518c16875282860151909b16918601919091529884019890985250610160015191015250505050565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff84166004830152602482018390529060008060448382895af16124c9573d6000803e3d6000fd5b506124d3846129ac565b611d0d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f475076323a206661696c6564207472616e736665720000000000000000000000604482015290519081900360640190fd5b60008383863581811061254d57fe5b6020908102929092013573ffffffffffffffffffffffffffffffffffffffff168452508490849087013581811061258057fe5b73ffffffffffffffffffffffffffffffffffffffff602091820293909301358316908501525060408087013590911690830152606080860135908301526080808601359083015263ffffffff60a080870135919091169083015260c0808601359083015260e080860135908301526125fc610100860135612a76565b61016087019190915261014086019190915290151561012085015261010090930152509392505050565b600080612653867f01775d1b0885613ec7338c7192b2e10f00c2331f27493e2a3d2247c244cd3fc2612bcb565b9150600085600381111561266357fe5b141561267b57612674828585612c55565b90506126cc565b600185600381111561268957fe5b141561269a57612674828585612c6a565b60028560038111156126a857fe5b14156126b957612674828585612cd2565b6126c98285858960a00151612e70565b90505b94509492505050565b603884511461274557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a2075696420627566666572206f766572666c6f7700000000000000604482015290519081900360640190fd5b60388401526034830152602090910152565b604082015160009073ffffffffffffffffffffffffffffffffffffffff16612780575080610ac7565b50506040015190565b60008261279857506000610ac7565b828202828482816127a557fe5b041461281257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d6174683a206d756c206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b9392505050565b600080821161288957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d6174683a206469766973696f6e2062792030000000000000000000604482015290519081900360640190fd5b81838161289257fe5b049392505050565b600080821161290a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f536166654d6174683a206365696c696e67206469766973696f6e206279203000604482015290519081900360640190fd5b81838161291357fe5b0615612920576001612923565b60005b60ff1682848161292f57fe5b04019392505050565b60008282018381101561281257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006129ea565b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452806024528160445260646000fd5b3d8015612a295760208114612a6357612a247f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f6129b3565b612a70565b823b612a5a57612a5a7f475076323a206e6f74206120636f6e747261637400000000000000000000000060146129b3565b60019150612a70565b3d6000803e600051151591505b50919050565b60008080808060018616612aac577ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467759450612ad0565b7f6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc94505b600286161515935060088616612b08577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99250612b5c565b60048616612b38577fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea06329250612b5c565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce92505b60108616612b8c577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99150612bb0565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce91505b600586901c6003811115612bc057fe5b905091939590929450565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090910180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6000612c62848484613035565b949350505050565b6000808460405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050612cc9818585613035565b95945050505050565b813560601c366000612ce7846014818861411a565b604080517f1626ba7e00000000000000000000000000000000000000000000000000000000808252600482018b81526024830193845260448301859052949650929450919273ffffffffffffffffffffffffffffffffffffffff871692631626ba7e928b928892889290606401848480828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201965060209550909350505081840390508186803b158015612dad57600080fd5b505afa158015612dc1573d6000803e3d6000fd5b505050506040513d6020811015612dd757600080fd5b50517fffffffff000000000000000000000000000000000000000000000000000000001614612e6757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f475076323a20696e76616c69642065697031323731207369676e617475726500604482015290519081900360640190fd5b50509392505050565b600060148314612ee157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f475076323a206d616c666f726d6564207072657369676e617475726500000000604482015290519081900360640190fd5b506040805160388082526060828101909352853590921c9160009190602082018180368337019050509050612f18818784866126d5565b7ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c6000826040518082805190602001908083835b60208310612f8c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f4f565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020541461302c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a206f72646572206e6f74207072657369676e656400000000000000604482015290519081900360640190fd5b50949350505050565b6000604182146130a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f475076323a206d616c666f726d6564206563647361207369676e617475726500604482015290519081900360640190fd5b604080516000815260208181018084528790528286013560f81c82840181905286356060840181905282880135608085018190529451909493919260019260a0808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015613129573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015194505073ffffffffffffffffffffffffffffffffffffffff84166131d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f475076323a20696e76616c6964206563647361207369676e6174757265000000604482015290519081900360640190fd5b5050509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040805160a081019091528060008152600060208201819052604082018190526060820181905260809091015290565b604051806080016040528061324a613264565b815260606020820181905260006040830181905291015290565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915290565b60008083601f8401126132d9578182fd5b50813567ffffffffffffffff8111156132f0578182fd5b602083019150836020808302850101111561330a57600080fd5b9250929050565b60008083601f840112613322578182fd5b50813567ffffffffffffffff811115613339578182fd5b60208301915083602082850101111561330a57600080fd5b600082601f830112613361578081fd5b813567ffffffffffffffff81111561337557fe5b6133a660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016140f6565b8181528460208386010111156133ba578283fd5b816020850160208301379081016020019190915292915050565b6000602082840312156133e5578081fd5b81356128128161416e565b60008060408385031215613402578081fd5b823561340d8161416e565b9150602083013567ffffffffffffffff811115613428578182fd5b61343485828601613351565b9150509250929050565b60008060208385031215613450578182fd5b823567ffffffffffffffff811115613466578283fd5b613472858286016132c8565b90969095509350505050565b60008060008060008060006080888a031215613498578283fd5b873567ffffffffffffffff808211156134af578485fd5b6134bb8b838c016132c8565b909950975060208a01359150808211156134d3578485fd5b6134df8b838c016132c8565b909750955060408a01359150808211156134f7578485fd5b6135038b838c016132c8565b909550935060608a013591508082111561351b578283fd5b508801606081018a101561352d578182fd5b8091505092959891949750929550565b6000602080838503121561354f578182fd5b825167ffffffffffffffff80821115613566578384fd5b818501915085601f830112613579578384fd5b81518181111561358557fe5b83810291506135958483016140f6565b8181528481019084860184860187018a10156135af578788fd5b8795505b838610156135d15780518352600195909501949186019186016135b3565b5098975050505050505050565b6000806000806000606086880312156135f5578081fd5b853567ffffffffffffffff8082111561360c578283fd5b61361889838a016132c8565b90975095506020880135915080821115613630578283fd5b61363c89838a016132c8565b90955093506040880135915080821115613654578283fd5b5086016101608189031215613667578182fd5b809150509295509295909350565b600060208284031215613686578081fd5b815161281281614193565b600080602083850312156136a3578182fd5b823567ffffffffffffffff8111156136b9578283fd5b61347285828601613311565b6000806000604084860312156136d9578081fd5b833567ffffffffffffffff8111156136ef578182fd5b6136fb86828701613311565b909450925050602084013561370f81614193565b809150509250925092565b60006020828403121561372b578081fd5b813567ffffffffffffffff811115613741578182fd5b612c6284828501613351565b6000806040838503121561375f578182fd5b50508035926020909101359150565b60008284526020808501945082825b858110156137b85781356137908161416e565b73ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161377d565b509495945050505050565b6000815180845260208085019450808401835b838110156137b8578151875295820195908201906001016137d6565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b60008151808452613852816020860160208601614142565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8082511683528060208301511660208401525060408101516040830152606081015160608301525050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b63ffffffff169052565b6000828483379101908152919050565b60008251613934818460208701614142565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6020808252825182820181905260009190848201906040850190845b818110156139a15761398e838551613884565b928401926080929092019160010161397b565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b82811015613a335781518051600481106139e057fe5b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a090930192908501906001016139ca565b5091979650505050505050565b90815260200190565b600060208252612c626020830184866137f2565b600060208252612812602083018461383a565b600060c08252613a8360c083018961383a565b73ffffffffffffffffffffffffffffffffffffffff97909716602083015250604081019490945260608401929092526080830152151560a090910152919050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015283608083015260c060a0830152613b0f60c083018461383a565b98975050505050505050565b60006101a0820160028c10613b2c57fe5b8b835260206101a081850152818b83526101c0850190506101c0828d0286010192508c845b8d811015613c5a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe408786030183527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618f360301823512613bb0578586fd5b8e823501803586528481013585870152604081013560408701526060810135606087015260808101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112613c08578788fd5b8101803567ffffffffffffffff811115613c20578889fd5b803603831315613c2e578889fd5b60a06080890152613c4560a08901828985016137f2565b97505050928401925090830190600101613b51565b505050508281036040840152613c7181898b61376e565b9050613c8060608401886138c4565b82810360e0840152613c9281876137c3565b915050613ca3610100830185613908565b613cb1610120830184613884565b9a9950505050505050505050565b6020808252601f908201527f475076323a2063616c6c657220646f6573206e6f74206f776e206f7264657200604082015260600190565b60208082526013908201527f475076323a206f72646572206578706972656400000000000000000000000000604082015260600190565b6020808252601f908201527f475076323a206c696d6974207072696365206e6f742072657370656374656400604082015260600190565b6020808252601f908201527f475076323a2073656c6c20616d6f756e74206e6f742072657370656374656400604082015260600190565b6020808252601e908201527f475076323a2062757920616d6f756e74206e6f74207265737065637465640000604082015260600190565b6020808252601e908201527f475076323a20756e737570706f7274656420696e7465726e616c204554480000604082015260600190565b60208082526018908201527f475076323a206e6f7420616e20696e746572616374696f6e0000000000000000604082015260600190565b60208082526014908201527f475076323a206c696d697420746f6f2068696768000000000000000000000000604082015260600190565b60208082526012908201527f475076323a206f726465722066696c6c65640000000000000000000000000000604082015260600190565b60208082526017908201527f475076323a206f72646572207374696c6c2076616c6964000000000000000000604082015260600190565b60208082526013908201527f475076323a206c696d697420746f6f206c6f7700000000000000000000000000604082015260600190565b60208082526012908201527f475076323a206e6f74206120736f6c7665720000000000000000000000000000604082015260600190565b6020808252601b908201527f475076323a20666f7262696464656e20696e746572616374696f6e0000000000604082015260600190565b9182527fffffffff0000000000000000000000000000000000000000000000000000000016602082015260400190565b918252602082015260400190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613ffc578283fd5b83018035915067ffffffffffffffff821115614016578283fd5b602090810192508102360382131561330a57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614061578283fd5b83018035915067ffffffffffffffff82111561407b578283fd5b60200191503681900382131561330a57600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112613934578182fd5b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea1833603018112613934578182fd5b60405181810167ffffffffffffffff8111828210171561411257fe5b604052919050565b60008085851115614129578182fd5b83861115614135578182fd5b5050820193919092039150565b60005b8381101561415d578181015183820152602001614145565b83811115611d0d5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461419057600080fd5b50565b801515811461419057600080fdfea2646970667358221220e44c81ebee4bd12f2c28a8fff7d83554efc672515327da65767f1268b1aed5f164736f6c63430007060033","nonce":11,"gas_used":4727764},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4823d4","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x77a0fd91122ddfea99cd4df1d506caba557ddaaf3d607d553c8497e36352f1bc","block_number":15},{"info":{"transaction_hash":"0xb1e9e103f751f84f6a3b0baa858bf0e40c4369460efe79a85a3293d7fe0dba77","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f1900000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a650000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":46,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x4722e0a99e70d96961868c785626f1e984bdd2ce7b86a34a887bb922500835f2","block_number":51},{"info":{"transaction_hash":"0x5b4b9cb6078c4ff97e0fab350faaf891cf17c67abf6d6bb69dadcbacf4844710","transaction_index":0,"from":"0x976ea74026e726554db657fa54763abd0c3a0aa9","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x976ea74026e726554db657fa54763abd0c3a0aa9","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":2,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000040200000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xf4f9f3796a4bd1a09fefa4ea35eca479906648c64cccf0f01c4a9901f79f7c0e","block_number":69},{"info":{"transaction_hash":"0x3915f3cb90720fad3186a18b7227b357c61ad14e86f23c2a0fec7e92a2169282","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":"0xa9059cbb000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":7689,"gas_limit":15004,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":26,"gas_used":26533},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x67a5","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x5757a2e66796b28c577a897b2e5e537425de0c67c4aa244ff9d7c4fc2e291d2d","block_number":22},{"info":{"transaction_hash":"0x1c40a92c24405f2cd12c50e22200cd4d8f87f8e7a9bf5dada4d91af0a558520c","transaction_index":0,"from":"0x90f79bf6eb2c4f870365e785982e1f101e93b906","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x90f79bf6eb2c4f870365e785982e1f101e93b906","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":1,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000400000000000000000000000000000000010000000000000000010000000000000000000000000400000000000000000"},"block_hash":"0x7cd3f1a549ada3ae687c6c422157b02bd932bc769ff3ded1157eefb1519a7fb4","block_number":47},{"info":{"transaction_hash":"0x9c1197011f7563ab9439ba62207bd744d788e0999a012f9d46d1aacd72b799ba","transaction_index":0,"from":"0x90f79bf6eb2c4f870365e785982e1f101e93b906","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x90f79bf6eb2c4f870365e785982e1f101e93b906","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":0,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000400000000000000000000000000000000010000000000000000010000000000000000000000000000000000000000000"},"block_hash":"0x13c0a04ccc76d417ba25c85bf5f2b9224c592cae800870f5b218ddedf43f31ec","block_number":46},{"info":{"transaction_hash":"0x50ca1109426528e1d221c265d529ea969e5de3820d4ef3bb6f23a05deb50c8d1","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":"0x56bc75e2d63100000","data":"0xd0e30db0","output":"0x","gas_used":13709,"gas_limit":26965,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":1}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Stop","out":"0x","nonce":48,"gas_used":34773},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x87d5","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xc892f62dd5cb28c73d6fe31e5dc3ff99d94a024f5f614ab589b42e26718e9315","block_number":56},{"info":{"transaction_hash":"0x469625b2344c5413864bf875263af56e53f72c931f0b6d216739dd048e0a04e7","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":"0x56bc75e2d63100000","data":"0xd0e30db0","output":"0x","gas_used":13709,"gas_limit":26965,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":1}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Stop","out":"0x","nonce":44,"gas_used":34773},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x87d5","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xdcff38cfd13bf6844f9104930f56afd9e665a739edd72e25e50c905437df5430","block_number":49},{"info":{"transaction_hash":"0x8f37d113e1315224ad06a305fd707a81eb685c8b43bb8356448907dd66d40278","transaction_index":0,"from":"0x14dc79964da2c08b23698b3d3cc7ca32193d9955","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x14dc79964da2c08b23698b3d3cc7ca32193d9955","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":0,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000002000000000000000008000000000000000000040000000000000000000000000040000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x57a7248540942a5ff6ea75779efdd301f89a5ef1713b742085f1436e0b55f9ea","block_number":74},{"info":{"transaction_hash":"0x8935e7a24c3d4c47fc5902382b2dfd66ca326f214a56c8428a3e18547121b758","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f19000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a797200000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":67,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000008000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000004000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xd978d8afd9e322b5ce597d8f75440b0f05a822c3456abd6fb686b55ae134cdff","block_number":87},{"info":{"transaction_hash":"0x3a41aa09cc808fee6628b7c31d79b9c1840c17c1b199da2f0cf8366a5b5571a9","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":"0xa9059cbb000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa90000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29589,"gas_limit":53284,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":53,"gas_used":51233},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc821","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000040200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000080000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x0545770d15764b8fc0de6d7b61fe4b4676421718494c13051d6a3ba565afb43a","block_number":64},{"info":{"transaction_hash":"0x036f7b97bc38df001216f9d330adafbb75d510805b10d4605b3239d1e114b377","transaction_index":6,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa9059cbb00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d00000000000000000000000000000000000000000000000000000002540be400","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29611,"gas_limit":53299,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d"],"data":"0x00000000000000000000000000000000000000000000000000000002540be400"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":22,"gas_used":51219},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x894cc","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d"],"data":"0x00000000000000000000000000000000000000000000000000000002540be400"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004000200000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000400000000000000000"},"block_hash":"0xc4dad62861270b90c909b30f2b558707e6418ef90adcf862a18d2c7d2ab0403b","block_number":20},{"info":{"transaction_hash":"0xddcb6bd466c4e8c65c16407446a7f79b22abf36171b98f1bdf77eaa3c9ae2fe1","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","contract_address":null,"traces":[{"parent":null,"children":[1,2],"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":"0xc9c653960000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60","gas_used":2490411,"gas_limit":3244074,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x2577a905931c419496123816308a518e438af606bb12c033630222f97ff3bb1e"],"data":"0x000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc97569654ce5a580c471b4bbc3cb97bcf2d84605a52a19152d085f971cb23ca24db6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3","0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9"],"data":"0x000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b600000000000000000000000000000000000000000000000000000000000000002"},"decoded":null,"position":2,"index":1}],"ordering":[{"Log":0},{"Call":0},{"Call":1},{"Log":1}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE2","value":"0x0","data":"0x60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","output":"0x608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582053961b5fa32a0834070f9a48e89a1d19fcf04097acd95326ec75bb965561f93064736f6c63430005100032","gas_used":2327803,"gas_limit":3148857,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]},{"parent":0,"children":[],"idx":2,"trace":{"depth":1,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0xff5c725f53c37fff771db3cda7a8b0178f622b60","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x485cc9550000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x","gas_used":44677,"gas_limit":857055,"status":"Stop","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60","nonce":7,"gas_used":2512211},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x265553","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x2577a905931c419496123816308a518e438af606bb12c033630222f97ff3bb1e"],"data":"0x000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc97569654ce5a580c471b4bbc3cb97bcf2d84605a52a19152d085f971cb23ca24db6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b60"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3","0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9"],"data":"0x000000000000000000000000ff5c725f53c37fff771db3cda7a8b0178f622b600000000000000000000000000000000000000000000000000000000000000002"}],"logsBloom":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000080000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180000000000000000040000000000000000000000000000000000000000000000000000000000000000004000000000002c000000000000000000000000000000000000088000000000000000000001000000000100000000000000"},"block_hash":"0x0a8836b74a2bf41454a350180a0315ffb1ac28e7596ee6766850ce0f294e1e6f","block_number":11},{"info":{"transaction_hash":"0x6d9d6de4a2cf76bdf067c6d16692a7aca165dee4e1a1091a645249b8d0558852","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f1900000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":58,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000400000000000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000002000000000000000000000000040000000000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xa96afd397a81f660e99458283b9ee38a5dc2c4b42e4a8797fba038ff4952fb8f","block_number":72},{"info":{"transaction_hash":"0xa1428cd3185fa136a97ab999caa5009ae0f19b4ae4c85067bdff16e3ac7aea99","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f1900000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f0000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":63,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0xe74b59d5210e14ac6c4556998fbdd628d69d3d77cc1e7374694981a6eadc67c9","block_number":80},{"info":{"transaction_hash":"0x394a4a45ca2967c534f2a80d87df9fadcd9c632e5ee01937f063f77802aa6dd2","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x4e59b44847b379578588920ca78fbf26c0b4956c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x000000000000000000000000000000000000000000000000000000000000000060808060405234601557610b15908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c63f88cf6db14610024575f80fd5b346100e557366003190161010081126100e5576060136100e55761004860e0604052565b60043561005481610135565b60805260243561006381610135565b60a05260443561007281610135565b60c05261007d610146565b610085610153565b60a4359160e435919060c43567ffffffffffffffff84116100e5576100e1946100b56100bd953690600401610160565b9490936103dd565b60408051948552602085019390935291830152151560608201529081906080820190565b0390f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761011f57604052565b6100e9565b604051906101336080836100fd565b565b6001600160a01b038116036100e557565b6064359061013382610135565b6084359061013382610135565b9181601f840112156100e55782359167ffffffffffffffff83116100e5576020808501948460051b0101116100e557565b67ffffffffffffffff811161011f5760051b60200190565b604080519091906101ba83826100fd565b6001815291601f1901366020840137565b634e487b7160e01b5f52603260045260245ffd5b8051156101ec5760200190565b6101cb565b6020818303126100e55780519067ffffffffffffffff82116100e557019080601f830112156100e557815161022581610191565b9261023360405194856100fd565b81845260208085019260051b8201019283116100e557602001905b82821061025b5750505090565b815181526020918201910161024e565b6060602091604081019360018060a01b031681526040838201528451809452019201905f5b81811061029d5750505090565b82516001600160a01b0316845260209384019390920191600101610290565b6040513d5f823e3d90fd5b908160209103126100e5575180151581036100e55790565b908160209103126100e5575190565b6102f86001610191565b9061030660405192836100fd565b6001825281601f196103186001610191565b015f5b81811061032757505050565b60405190608082019180831067ffffffffffffffff84111761011f576020926040525f81525f838201525f60408201525f60608201528282860101520161031b565b5f9103126100e557565b60206040818301928281528451809452019201905f5b8181106103965750505090565b825180516001600160a01b03908116865260208281015190911681870152604080830151908701526060918201519186019190915260809094019390920191600101610389565b9592946103ed9192946080610a24565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc984036105fa576040516370a0823160e01b81526001600160a01b038681166004830152821695906020816024818a5afa9081156105d8576104a8916020915f916105dd575b5060a051909890610474906001600160a01b03165b6001600160a01b031690565b604051636eb1769f60e11b81526001600160a01b038087166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f916105a9575b50945b8587116105a25786925b61050884966104d46102ee565b95811561059a5750915b6104f86104e9610124565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6040830152606082015261051b826101df565b52610525816101df565b5060a05161053b906001600160a01b0316610468565b803b156100e557604051637d10d11f60e01b8152915f9183918290849082906105679060048301610373565b03925af19081610580575b5061057b575f90565b600190565b8061058e5f610594936100fd565b80610369565b5f610572565b9050916104de565b85926104c7565b6105cb915060203d6020116105d1575b6105c381836100fd565b8101906102df565b5f6104ba565b503d6105b9565b6102bc565b6105f49150823d84116105d1576105c381836100fd565b5f610453565b7fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632840361077f576040516370a0823160e01b81526001600160a01b038681166004830152821695906020816024818a5afa9081156105d8575f91610760575b50956106bd602061067461046860c05160018060a01b031690565b60a051610689906001600160a01b0316610468565b604051637f6486b960e11b81526001600160a01b038088166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f91610731575b501561072a5760c0516106f191602091610474906001600160a01b0316610468565b03915afa9081156105d8575f9161070b575b505b946104bd565b610724915060203d6020116105d1576105c381836100fd565b5f610703565b505f610705565b610753915060203d602011610759575b61074b81836100fd565b8101906102c7565b5f6106cf565b503d610741565b610779915060203d6020116105d1576105c381836100fd565b5f610659565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce84036108ee576108085f6107b26101a9565b6107d76001600160a01b0385166107c8836101df565b6001600160a01b039091169052565b60c0516107ec906001600160a01b0316610468565b60405180809581946307ad377d60e11b83528c6004840161026b565b03915afa80156105d857610823915f916108cc575b506101df565b5194610887602061083e61046860c05160018060a01b031690565b60a051610853906001600160a01b0316610468565b604051637f6486b960e11b81526001600160a01b038087166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f916108ad575b50156108a7575f19946104bd565b5f610705565b6108c6915060203d6020116107595761074b81836100fd565b5f610899565b6108e891503d805f833e6108e081836100fd565b8101906101f1565b5f61081d565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c696420746f6b656e20736f7572636560601b6044820152606490fd5b1561093157565b60405162461bcd60e51b815260206004820152601960248201527f696e636f72726563742063616c6c696e6720636f6e74657874000000000000006044820152606490fd5b91908110156101ec5760051b81013590605e19813603018212156100e5570190565b356109a281610135565b90565b903590601e19813603018212156100e5570180359067ffffffffffffffff82116100e5576020019181360383136100e557565b156109df57565b60405162461bcd60e51b815260206004820152601b60248201527f475076323a20666f7262696464656e20696e746572616374696f6e00000000006044820152606490fd5b90610a45610a3e610468610468855160018060a01b031690565b301461092a565b5f5b838110610a545750505050565b5f80610a69610a64848887610976565b610998565b6020610a76858988610976565b013590610a91610a87868a89610976565b60408101906109a5565b929091610ac1610ab061046861046860208d015160018060a01b031690565b6001600160a01b03831614156109d8565b836040519384375af115610ad757600101610a47565b3d5f803e3d5ffdfea2646970667358221220817f6f9e36588d53ed578c1391c22dae49a1f153afcbf598beefca254298a7c864736f6c634300081a0033","output":"0xbd5a6618df333f8f66702daadc9a953e2b52a65d","gas_used":601363,"gas_limit":813291,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x4e59b44847b379578588920ca78fbf26c0b4956c","address":"0xbd5a6618df333f8f66702daadc9a953e2b52a65d","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE2","value":"0x0","data":"0x60808060405234601557610b15908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c63f88cf6db14610024575f80fd5b346100e557366003190161010081126100e5576060136100e55761004860e0604052565b60043561005481610135565b60805260243561006381610135565b60a05260443561007281610135565b60c05261007d610146565b610085610153565b60a4359160e435919060c43567ffffffffffffffff84116100e5576100e1946100b56100bd953690600401610160565b9490936103dd565b60408051948552602085019390935291830152151560608201529081906080820190565b0390f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761011f57604052565b6100e9565b604051906101336080836100fd565b565b6001600160a01b038116036100e557565b6064359061013382610135565b6084359061013382610135565b9181601f840112156100e55782359167ffffffffffffffff83116100e5576020808501948460051b0101116100e557565b67ffffffffffffffff811161011f5760051b60200190565b604080519091906101ba83826100fd565b6001815291601f1901366020840137565b634e487b7160e01b5f52603260045260245ffd5b8051156101ec5760200190565b6101cb565b6020818303126100e55780519067ffffffffffffffff82116100e557019080601f830112156100e557815161022581610191565b9261023360405194856100fd565b81845260208085019260051b8201019283116100e557602001905b82821061025b5750505090565b815181526020918201910161024e565b6060602091604081019360018060a01b031681526040838201528451809452019201905f5b81811061029d5750505090565b82516001600160a01b0316845260209384019390920191600101610290565b6040513d5f823e3d90fd5b908160209103126100e5575180151581036100e55790565b908160209103126100e5575190565b6102f86001610191565b9061030660405192836100fd565b6001825281601f196103186001610191565b015f5b81811061032757505050565b60405190608082019180831067ffffffffffffffff84111761011f576020926040525f81525f838201525f60408201525f60608201528282860101520161031b565b5f9103126100e557565b60206040818301928281528451809452019201905f5b8181106103965750505090565b825180516001600160a01b03908116865260208281015190911681870152604080830151908701526060918201519186019190915260809094019390920191600101610389565b9592946103ed9192946080610a24565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc984036105fa576040516370a0823160e01b81526001600160a01b038681166004830152821695906020816024818a5afa9081156105d8576104a8916020915f916105dd575b5060a051909890610474906001600160a01b03165b6001600160a01b031690565b604051636eb1769f60e11b81526001600160a01b038087166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f916105a9575b50945b8587116105a25786925b61050884966104d46102ee565b95811561059a5750915b6104f86104e9610124565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6040830152606082015261051b826101df565b52610525816101df565b5060a05161053b906001600160a01b0316610468565b803b156100e557604051637d10d11f60e01b8152915f9183918290849082906105679060048301610373565b03925af19081610580575b5061057b575f90565b600190565b8061058e5f610594936100fd565b80610369565b5f610572565b9050916104de565b85926104c7565b6105cb915060203d6020116105d1575b6105c381836100fd565b8101906102df565b5f6104ba565b503d6105b9565b6102bc565b6105f49150823d84116105d1576105c381836100fd565b5f610453565b7fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632840361077f576040516370a0823160e01b81526001600160a01b038681166004830152821695906020816024818a5afa9081156105d8575f91610760575b50956106bd602061067461046860c05160018060a01b031690565b60a051610689906001600160a01b0316610468565b604051637f6486b960e11b81526001600160a01b038088166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f91610731575b501561072a5760c0516106f191602091610474906001600160a01b0316610468565b03915afa9081156105d8575f9161070b575b505b946104bd565b610724915060203d6020116105d1576105c381836100fd565b5f610703565b505f610705565b610753915060203d602011610759575b61074b81836100fd565b8101906102c7565b5f6106cf565b503d610741565b610779915060203d6020116105d1576105c381836100fd565b5f610659565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce84036108ee576108085f6107b26101a9565b6107d76001600160a01b0385166107c8836101df565b6001600160a01b039091169052565b60c0516107ec906001600160a01b0316610468565b60405180809581946307ad377d60e11b83528c6004840161026b565b03915afa80156105d857610823915f916108cc575b506101df565b5194610887602061083e61046860c05160018060a01b031690565b60a051610853906001600160a01b0316610468565b604051637f6486b960e11b81526001600160a01b038087166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f916108ad575b50156108a7575f19946104bd565b5f610705565b6108c6915060203d6020116107595761074b81836100fd565b5f610899565b6108e891503d805f833e6108e081836100fd565b8101906101f1565b5f61081d565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c696420746f6b656e20736f7572636560601b6044820152606490fd5b1561093157565b60405162461bcd60e51b815260206004820152601960248201527f696e636f72726563742063616c6c696e6720636f6e74657874000000000000006044820152606490fd5b91908110156101ec5760051b81013590605e19813603018212156100e5570190565b356109a281610135565b90565b903590601e19813603018212156100e5570180359067ffffffffffffffff82116100e5576020019181360383136100e557565b156109df57565b60405162461bcd60e51b815260206004820152601b60248201527f475076323a20666f7262696464656e20696e746572616374696f6e00000000006044820152606490fd5b90610a45610a3e610468610468855160018060a01b031690565b301461092a565b5f5b838110610a545750505050565b5f80610a69610a64848887610976565b610998565b6020610a76858988610976565b013590610a91610a87868a89610976565b60408101906109a5565b929091610ac1610ab061046861046860208d015160018060a01b031690565b6001600160a01b03831614156109d8565b836040519384375af115610ad757600101610a47565b3d5f803e3d5ffdfea2646970667358221220817f6f9e36588d53ed578c1391c22dae49a1f153afcbf598beefca254298a7c864736f6c634300081a0033","output":"0x60806040526004361015610011575f80fd5b5f3560e01c63f88cf6db14610024575f80fd5b346100e557366003190161010081126100e5576060136100e55761004860e0604052565b60043561005481610135565b60805260243561006381610135565b60a05260443561007281610135565b60c05261007d610146565b610085610153565b60a4359160e435919060c43567ffffffffffffffff84116100e5576100e1946100b56100bd953690600401610160565b9490936103dd565b60408051948552602085019390935291830152151560608201529081906080820190565b0390f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761011f57604052565b6100e9565b604051906101336080836100fd565b565b6001600160a01b038116036100e557565b6064359061013382610135565b6084359061013382610135565b9181601f840112156100e55782359167ffffffffffffffff83116100e5576020808501948460051b0101116100e557565b67ffffffffffffffff811161011f5760051b60200190565b604080519091906101ba83826100fd565b6001815291601f1901366020840137565b634e487b7160e01b5f52603260045260245ffd5b8051156101ec5760200190565b6101cb565b6020818303126100e55780519067ffffffffffffffff82116100e557019080601f830112156100e557815161022581610191565b9261023360405194856100fd565b81845260208085019260051b8201019283116100e557602001905b82821061025b5750505090565b815181526020918201910161024e565b6060602091604081019360018060a01b031681526040838201528451809452019201905f5b81811061029d5750505090565b82516001600160a01b0316845260209384019390920191600101610290565b6040513d5f823e3d90fd5b908160209103126100e5575180151581036100e55790565b908160209103126100e5575190565b6102f86001610191565b9061030660405192836100fd565b6001825281601f196103186001610191565b015f5b81811061032757505050565b60405190608082019180831067ffffffffffffffff84111761011f576020926040525f81525f838201525f60408201525f60608201528282860101520161031b565b5f9103126100e557565b60206040818301928281528451809452019201905f5b8181106103965750505090565b825180516001600160a01b03908116865260208281015190911681870152604080830151908701526060918201519186019190915260809094019390920191600101610389565b9592946103ed9192946080610a24565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc984036105fa576040516370a0823160e01b81526001600160a01b038681166004830152821695906020816024818a5afa9081156105d8576104a8916020915f916105dd575b5060a051909890610474906001600160a01b03165b6001600160a01b031690565b604051636eb1769f60e11b81526001600160a01b038087166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f916105a9575b50945b8587116105a25786925b61050884966104d46102ee565b95811561059a5750915b6104f86104e9610124565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6040830152606082015261051b826101df565b52610525816101df565b5060a05161053b906001600160a01b0316610468565b803b156100e557604051637d10d11f60e01b8152915f9183918290849082906105679060048301610373565b03925af19081610580575b5061057b575f90565b600190565b8061058e5f610594936100fd565b80610369565b5f610572565b9050916104de565b85926104c7565b6105cb915060203d6020116105d1575b6105c381836100fd565b8101906102df565b5f6104ba565b503d6105b9565b6102bc565b6105f49150823d84116105d1576105c381836100fd565b5f610453565b7fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632840361077f576040516370a0823160e01b81526001600160a01b038681166004830152821695906020816024818a5afa9081156105d8575f91610760575b50956106bd602061067461046860c05160018060a01b031690565b60a051610689906001600160a01b0316610468565b604051637f6486b960e11b81526001600160a01b038088166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f91610731575b501561072a5760c0516106f191602091610474906001600160a01b0316610468565b03915afa9081156105d8575f9161070b575b505b946104bd565b610724915060203d6020116105d1576105c381836100fd565b5f610703565b505f610705565b610753915060203d602011610759575b61074b81836100fd565b8101906102c7565b5f6106cf565b503d610741565b610779915060203d6020116105d1576105c381836100fd565b5f610659565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce84036108ee576108085f6107b26101a9565b6107d76001600160a01b0385166107c8836101df565b6001600160a01b039091169052565b60c0516107ec906001600160a01b0316610468565b60405180809581946307ad377d60e11b83528c6004840161026b565b03915afa80156105d857610823915f916108cc575b506101df565b5194610887602061083e61046860c05160018060a01b031690565b60a051610853906001600160a01b0316610468565b604051637f6486b960e11b81526001600160a01b038087166004830152909116602482015292839190829081906044820190565b03915afa9081156105d8575f916108ad575b50156108a7575f19946104bd565b5f610705565b6108c6915060203d6020116107595761074b81836100fd565b5f610899565b6108e891503d805f833e6108e081836100fd565b8101906101f1565b5f61081d565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c696420746f6b656e20736f7572636560601b6044820152606490fd5b1561093157565b60405162461bcd60e51b815260206004820152601960248201527f696e636f72726563742063616c6c696e6720636f6e74657874000000000000006044820152606490fd5b91908110156101ec5760051b81013590605e19813603018212156100e5570190565b356109a281610135565b90565b903590601e19813603018212156100e5570180359067ffffffffffffffff82116100e5576020019181360383136100e557565b156109df57565b60405162461bcd60e51b815260206004820152601b60248201527f475076323a20666f7262696464656e20696e746572616374696f6e00000000006044820152606490fd5b90610a45610a3e610468610468855160018060a01b031690565b301461092a565b5f5b838110610a545750505050565b5f80610a69610a64848887610976565b610998565b6020610a76858988610976565b013590610a91610a87868a89610976565b60408101906109a5565b929091610ac1610ab061046861046860208d015160018060a01b031690565b6001600160a01b03831614156109d8565b836040519384375af115610ad757600101610a47565b3d5f803e3d5ffdfea2646970667358221220817f6f9e36588d53ed578c1391c22dae49a1f153afcbf598beefca254298a7c864736f6c634300081a0033","gas_used":568007,"gas_limit":767792,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0xbd5a6618df333f8f66702daadc9a953e2b52a65d","nonce":14,"gas_used":667555},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xa2fa3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xf71354c52e7c86acc207272c9377fdacac52f63537e06ae2b89eb3350e6d878f","block_number":18},{"info":{"transaction_hash":"0x97321c2d36a5db19ef3a36f1555e2ba11db8ba45d98eaf42574cadc5ffad15fa","transaction_index":0,"from":"0x15d34aaf54267db7d7c367839aaf71a00a2c6a65","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x15d34aaf54267db7d7c367839aaf71a00a2c6a65","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":1,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000040020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000010000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x819e33c3812b6d74e291192ea55a578eb8b29cd4697159880fc993cca2a39317","block_number":54},{"info":{"transaction_hash":"0xff5dfca2ee83307e48aefa3b9ac525395d62fbf54373398d985484e6df87251f","transaction_index":0,"from":"0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":1,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000004000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000800000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xbb04b5b0e1c09a9df97c675d0064a8529b7cf7a0478e1074fb08a2c1b993a203","block_number":61},{"info":{"transaction_hash":"0x2d1fa462ceb17257b0ae835dedfaa0b79ce2e5d5fdbd5723f4f3b26f3018b4c3","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","contract_address":null,"traces":[{"parent":null,"children":[1,2,3],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x6a627842000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x000000000000000000000000000000000000000000000000000196bd077f99cd","gas_used":133340,"gas_limit":188479,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8"},"decoded":null,"position":3,"index":0},{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x000000000000000000000000000000000000000000000000000196bd077f99cd"},"decoded":null,"position":3,"index":1},{"raw_log":{"topics":["0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000004a817c800"},"decoded":null,"position":3,"index":2},{"raw_log":{"topics":["0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000004a817c800"},"decoded":null,"position":3,"index":3}],"ordering":[{"Call":0},{"Call":1},{"Call":2},{"Log":0},{"Log":1},{"Log":2},{"Log":3}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x70a082310000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227","output":"0x0000000000000000000000000000000000000000000000008ac7230489e80000","gas_used":2552,"gas_limit":173304,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]},{"parent":0,"children":[],"idx":2,"trace":{"depth":1,"success":true,"caller":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x70a082310000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227","output":"0x00000000000000000000000000000000000000000000000000000004a817c800","gas_used":2552,"gas_limit":165846,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]},{"parent":0,"children":[],"idx":3,"trace":{"depth":1,"success":true,"caller":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x017e7e58","output":"0x0000000000000000000000000000000000000000000000000000000000000000","gas_used":2314,"gas_limit":158186,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x000000000000000000000000000000000000000000000000000196bd077f99cd","nonce":18,"gas_used":151972},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x3e1cc","logs":[{"address":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8"},{"address":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x000000000000000000000000000000000000000000000000000196bd077f99cd"},{"address":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","topics":["0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000004a817c800"},{"address":"0x5a270e627326bf3d504d7e41ccff73ca6af16227","topics":["0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000004a817c800"}],"logsBloom":"0x00000000000000000000000080000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000100000800000000000008000000000010000000000000000080000000000000000000000000000000000040080000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000300000000000020000000000002000001000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc4dad62861270b90c909b30f2b558707e6418ef90adcf862a18d2c7d2ab0403b","block_number":20},{"info":{"transaction_hash":"0x343e1fb9b6c4611e4ce31b7dcbe41bfc132dbd42613d2342351877688188248c","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f190000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc0000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":48852,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":39,"gas_used":51030},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc756","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000100001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000800000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x7576e697df929f2a9338161ceb7f28b35ed43dff2e115fe7fa66d536651baedb","block_number":38},{"info":{"transaction_hash":"0xeb43b75f27fe8512fd8bf27ef8228070304910edac56a459a070500a474d5fd7","transaction_index":0,"from":"0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":1,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000200000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x143c0c70aef2e9cd1f337f325e368b67feded90090ed40af7b81173672998058","block_number":40},{"info":{"transaction_hash":"0x93ade10ea692c829808797b91c8e08f9d8253b65567e84be8635c9e59618f49b","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":"0x56bc75e2d63100000","data":"0xd0e30db0","output":"0x","gas_used":13709,"gas_limit":26965,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":1}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Stop","out":"0x","nonce":52,"gas_used":34773},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x87d5","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x992cde96c857f072e1c991d3db4c8d8be489586c4b84a0c2cfd24c7d7fef582c","block_number":63},{"info":{"transaction_hash":"0x8958405befa7719e08a1088c16653330cf293fba2a7c0c4c9d63a027e03886a1","transaction_index":0,"from":"0x976ea74026e726554db657fa54763abd0c3a0aa9","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x976ea74026e726554db657fa54763abd0c3a0aa9","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":1,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000040200000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xec5fe90f9dfcf2b63f6a665a72b9a1ecbf407feeddad1e4fd4e22ed99acebf59","block_number":68},{"info":{"transaction_hash":"0xfc1c5ef3aa349a268c97839e9df7a441d18aa8d3293ff98131a21631917e713f","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f1900000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":59,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000400000000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000002000000000000000000000000040000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xd70636f10b60f7594c9f4c67a4224f49b7d058aca86e7ae86635ba37e9fc061b","block_number":73},{"info":{"transaction_hash":"0x997d531d5245c8af0472b50f4c64f2bd63e31515055b8082e83b77804c8c5f4e","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x610178da211fef7d417bc0e6fed39f05609ad788","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x610178da211fef7d417bc0e6fed39f05609ad788","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x7f7120fe000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":24747,"gas_limit":26934,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":12,"gas_used":46179},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb463","logs":[{"address":"0x610178da211fef7d417bc0e6fed39f05609ad788","topics":["0x605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000"},"block_hash":"0x8d04e6290a33bc221960ba4518c53a5dd082bc8407afae536bc93f9ca183bc42","block_number":16},{"info":{"transaction_hash":"0xb6d34a864402817ef2dcfdfe6234062ab4b79cf0d2d4e4f3b7e806d89373e27e","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":"0xa9059cbb00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f0000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29589,"gas_limit":53284,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":61,"gas_used":51233},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc821","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0x40e40d623352113abcd2c11db7102eca963a8ac4f9270d63bc0b54896b4ff260","block_number":78},{"info":{"transaction_hash":"0x333e4f553a2e41906493a4cebc992d60d23a0099a8c0a6537592bf1ba85d9b76","transaction_index":0,"from":"0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":1,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00800000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000008000000000"},"block_hash":"0xd5a4ba2b344d7c2d7b03362e3e8d47d81538a40a30c2d3bcb38c1c421aaacafe","block_number":82},{"info":{"transaction_hash":"0xb597fdfd63cb75e2e2d15c4dc83f5319ccaeddc84d561ff86a46519b39320fd5","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":"0xa9059cbb000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a797200000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29589,"gas_limit":53284,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":65,"gas_used":51233},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc821","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000008000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000004000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xe6b151b9fb27970d18ce4f69f382a7bce1e1bdbd7e9608bb709e0a157cd5ca2e","block_number":85},{"info":{"transaction_hash":"0xcca471caab70ee47b36090a52fb71404d6386e116354c53edf0696c439fc89ba","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f19000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a797200000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":66,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000008000000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000004000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x44d56f3268e71f08d69ab4f84ec866df540658fe179d7e0c688f70f2ab46d77c","block_number":86},{"info":{"transaction_hash":"0x1786e85c0b029fb5da4940f415cc064e7615fff63b12a869a2d1969aef2bdd9e","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":"0xa9059cbb0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc0000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29589,"gas_limit":49116,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":37,"gas_used":51221},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc815","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000008000000000000000000000000000000000000000000000040000000000000000100000000000800000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000200000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x3c5e16cc857fade2df24db9f589508259727b165c992a673ef9e3ebb52514d5c","block_number":36},{"info":{"transaction_hash":"0x36ba8284c9556f9534e1309c285c80d630b4c7458278f50ea20f1aa267dd48ee","transaction_index":8,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","contract_address":null,"traces":[{"parent":null,"children":[1,2,3],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x6a627842000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x000000000000000000000000000000000000000000000000002386f26fc0fc18","gas_used":133885,"gas_limit":189231,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8"},"decoded":null,"position":3,"index":0},{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x000000000000000000000000000000000000000000000000002386f26fc0fc18"},"decoded":null,"position":3,"index":1},{"raw_log":{"topics":["0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1"],"data":"0x00000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021e19e0c9bab2400000"},"decoded":null,"position":3,"index":2},{"raw_log":{"topics":["0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x00000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021e19e0c9bab2400000"},"decoded":null,"position":3,"index":3}],"ordering":[{"Call":0},{"Call":1},{"Call":2},{"Log":0},{"Log":1},{"Log":2},{"Log":3}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x70a0823100000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d","output":"0x00000000000000000000000000000000000000000000000000000002540be400","gas_used":2552,"gas_limit":174044,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]},{"parent":0,"children":[],"idx":2,"trace":{"depth":1,"success":true,"caller":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x70a0823100000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d","output":"0x00000000000000000000000000000000000000000000021e19e0c9bab2400000","gas_used":2552,"gas_limit":166586,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]},{"parent":0,"children":[],"idx":3,"trace":{"depth":1,"success":true,"caller":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x017e7e58","output":"0x0000000000000000000000000000000000000000000000000000000000000000","gas_used":2314,"gas_limit":158926,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x000000000000000000000000000000000000000000000000002386f26fc0fc18","nonce":24,"gas_used":152517},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xbb0d4","logs":[{"address":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8"},{"address":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x000000000000000000000000000000000000000000000000002386f26fc0fc18"},{"address":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","topics":["0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1"],"data":"0x00000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021e19e0c9bab2400000"},{"address":"0x94eccb8e4635821e636c6651d2a5964562d31c5d","topics":["0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x00000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021e19e0c9bab2400000"}],"logsBloom":"0x00000000000000000000004080000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000100000800000000000008000000000010000000000000000000000000000000000000000000000000000000080000000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000200000000000020000000000002000001000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc4dad62861270b90c909b30f2b558707e6418ef90adcf862a18d2c7d2ab0403b","block_number":20},{"info":{"transaction_hash":"0x551e05eb126899ef1239e8c71ff2fabe0b9d65093b72e2c62db9fb3771a3e817","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":"0xa9059cbb00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a650000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29589,"gas_limit":53284,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":45,"gas_used":51233},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc821","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000004000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xbc61f7d89270676e104b09eb6ba1c13290e10afdd2282a03f238c18031721934","block_number":50},{"info":{"transaction_hash":"0x9e6ed0d0ba1df01f801156e58fe1c1cfb46cbcbce9e37fd8aa36ec6d1d0755e9","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f1900000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b9060000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":43,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000090f79bf6eb2c4f870365e785982e1f101e93b906"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000000000000000000020000000000000000000000010000000000000000000000000000000000000000000"},"block_hash":"0x66201332feff49d4ba0e200506068935bd20a9db59cc1d2229682983a1a4312c","block_number":45},{"info":{"transaction_hash":"0xdc6f2036ff23a9e8469f9df11f0d99df91a2bdd352bba340f2c7a5b90ad1ddf6","transaction_index":0,"from":"0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":0,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000004000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000008000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040800000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xf795060f6e1d599a36ea309fa3859c3525eaa5f2aa98360d82b2f054cb925d80","block_number":60},{"info":{"transaction_hash":"0x09a2e4c48d02153d32bf9a4ac4daf0ffb26e7aa86dc4a4630997347a90c68a43","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f1900000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":35,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000800020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000001000000000000000000000000000000"},"block_hash":"0xdb4707c24a45bab42b00d1c8bc77429ae982e23b33ecacef5a5458eba563b6c3","block_number":31},{"info":{"transaction_hash":"0x76eac991af1ccd8e8327775221b7985c78e2c7c4b57da06dea246f8bf23d3d15","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":"0xa9059cbb0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc0000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29589,"gas_limit":53284,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":49,"gas_used":51233},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc821","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000008000000000000000000000000040000000000000000100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042800000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x1194aba7b06fd0a6a6c61e3fb8e316af6b414e3e5cce74904422658e9b52db8a","block_number":57},{"info":{"transaction_hash":"0x4f09c9d3952d84a8f6355783acaceb99add8247fdeb3e62eefedd50d328423a7","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":"0x60e0806040523461047457610ff9803803809161001c8285610478565b83398101906080818303126104745780516001600160401b038111610474578261004791830161049b565b602082015190926001600160401b0382116104745761006791830161049b565b9060408101519060ff82168203610474576060015183519091906001600160401b0381116103a5576100995f546104f0565b601f8111610425575b50602094601f82116001146103c4579481929394955f926103b9575b50508160011b915f199060031b1c1916175f555b82516001600160401b0381116103a5576100ed6001546104f0565b601f8111610342575b506020601f82116001146102df57819293945f926102d4575b50508160011b915f199060031b1c1916176001555b6080524660a0526040515f905f54918161013d846104f0565b9182825260208201946001811690815f146102b8575060011461026e575b61016792500382610478565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526101db60c082610478565b51902060c05260025481810180911161025a57600255335f52600360205260405f208181540190556040519081525f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3604051610ab090816105298239608051816105e3015260a051816108e3015260c051816109090152f35b634e487b7160e01b5f52601160045260245ffd5b505f80805290915f80516020610fd98339815191525b81831061029c5750509060206101679282010161015b565b6020919350806001915483858801015201910190918392610284565b60ff191686525061016792151560051b8201602001905061015b565b015190505f8061010f565b601f1982169060015f52805f20915f5b81811061032a57509583600195969710610312575b505050811b01600155610124565b01515f1960f88460031b161c191690555f8080610304565b9192602060018192868b0151815501940192016102ef565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c8101916020841061039b575b601f0160051c01905b81811061039057506100f6565b5f8155600101610383565b909150819061037a565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100be565b601f198216955f8052805f20915f5b88811061040d575083600195969798106103f5575b505050811b015f556100d2565b01515f1960f88460031b161c191690555f80806103e8565b919260206001819286850151815501940192016103d3565b5f80525f80516020610fd9833981519152601f830160051c8101916020841061046a575b601f0160051c01905b81811061045f57506100a2565b5f8155600101610452565b9091508190610449565b5f80fd5b601f909101601f19168101906001600160401b038211908210176103a557604052565b81601f82011215610474578051906001600160401b0382116103a557604051926104cf601f8401601f191660200185610478565b8284526020838301011161047457815f9260208093018386015e8301015290565b90600182811c9216801561051e575b602083101461050a57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916104ff56fe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461076d578063095ea7b3146106f457806318160ddd146106d757806323b872dd14610607578063313ce567146105ca5780633644e515146105a857806340c10f191461053057806370a08231146104f85780637ecebe00146104c057806395d89b41146103e65780639dc29fac14610386578063a9059cbb14610311578063d505accf146101075763dd62ed3e146100b3575f80fd5b34610103576040366003190112610103576100cc6108a7565b6100d46108bd565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101035760e0366003190112610103576101206108a7565b6101286108bd565b6044356064359260843560ff8116809103610103574285106102cc5760805f916020936101536108e0565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d060e082610847565b519020604051908682019261190160f01b845260228301526042820152604281526101fc606282610847565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c1575f516001600160a01b0316801515806102b8575b15610282577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461023a565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346101035760403660031901126101035761032a6108a7565b60243590335f52600360205260405f206103458382546108d3565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610a5b83398151915260203392a3602060405160018152f35b34610103576040366003190112610103575f6103a06108a7565b5f80516020610a5b83398151915260206024359260018060a01b03169283855260038252604085206103d38282546108d3565b90558060025403600255604051908152a3005b34610103575f366003190112610103576040515f6001546104068161080f565b808452906001811690811561049c575060011461043e575b61043a8361042e81850382610847565b6040519182918261087d565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106104825750909150810160200161042e61041e565b91926001816020925483858801015201910190929161046a565b60ff191660208086019190915291151560051b8401909101915061042e905061041e565b34610103576020366003190112610103576001600160a01b036104e16108a7565b165f526005602052602060405f2054604051908152f35b34610103576020366003190112610103576001600160a01b036105196108a7565b165f526003602052602060405f2054604051908152f35b34610103576040366003190112610103576105496108a7565b60243590600254908282018092116105945760205f80516020610a5b833981519152915f9360025560018060a01b0316938484526003825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b34610103575f3660031901126101035760206105c26108e0565b604051908152f35b34610103575f36600319011261010357602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610103576060366003190112610103576106206108a7565b6106286108bd565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610a5b833981519152929185600182016106b2575b5050835f526003825260405f206106828682546108d3565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106bb916108d3565b5f8581526004845260408082203383528552902055858561066a565b34610103575f366003190112610103576020600254604051908152f35b346101035760403660031901126101035761070d6108a7565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610103575f366003190112610103576040515f805461078c8161080f565b808452906001811690811561049c57506001146107b35761043a8361042e81850382610847565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106107f55750909150810160200161042e61041e565b9192600181602092548385880101520191019092916107dd565b90600182811c9216801561083d575b602083101461082957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161081e565b90601f8019910116810190811067ffffffffffffffff82111761086957604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010357565b602435906001600160a01b038216820361010357565b9190820391821161059457565b467f00000000000000000000000000000000000000000000000000000000000000000361092b577f000000000000000000000000000000000000000000000000000000000000000090565b6040515f905f54918161093d8461080f565b9182825260208201946001811690815f14610a3e57506001146109e1575b61096792500382610847565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109db60c082610847565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a225750509060206109679282010161095b565b6020919350806001915483858801015201910190918392610a0a565b60ff191686525061096792151560051b8201602001905061095b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207de4439c7c575beac552a99bd7a80a56f5f69465e073bcea91ee0ad18ec4067f64736f6c634300081a0033290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000d3c21bcecceda1000000000000000000000000000000000000000000000000000000000000000000000e44616920537461626c65636f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034441490000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461076d578063095ea7b3146106f457806318160ddd146106d757806323b872dd14610607578063313ce567146105ca5780633644e515146105a857806340c10f191461053057806370a08231146104f85780637ecebe00146104c057806395d89b41146103e65780639dc29fac14610386578063a9059cbb14610311578063d505accf146101075763dd62ed3e146100b3575f80fd5b34610103576040366003190112610103576100cc6108a7565b6100d46108bd565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101035760e0366003190112610103576101206108a7565b6101286108bd565b6044356064359260843560ff8116809103610103574285106102cc5760805f916020936101536108e0565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d060e082610847565b519020604051908682019261190160f01b845260228301526042820152604281526101fc606282610847565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c1575f516001600160a01b0316801515806102b8575b15610282577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461023a565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346101035760403660031901126101035761032a6108a7565b60243590335f52600360205260405f206103458382546108d3565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610a5b83398151915260203392a3602060405160018152f35b34610103576040366003190112610103575f6103a06108a7565b5f80516020610a5b83398151915260206024359260018060a01b03169283855260038252604085206103d38282546108d3565b90558060025403600255604051908152a3005b34610103575f366003190112610103576040515f6001546104068161080f565b808452906001811690811561049c575060011461043e575b61043a8361042e81850382610847565b6040519182918261087d565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106104825750909150810160200161042e61041e565b91926001816020925483858801015201910190929161046a565b60ff191660208086019190915291151560051b8401909101915061042e905061041e565b34610103576020366003190112610103576001600160a01b036104e16108a7565b165f526005602052602060405f2054604051908152f35b34610103576020366003190112610103576001600160a01b036105196108a7565b165f526003602052602060405f2054604051908152f35b34610103576040366003190112610103576105496108a7565b60243590600254908282018092116105945760205f80516020610a5b833981519152915f9360025560018060a01b0316938484526003825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b34610103575f3660031901126101035760206105c26108e0565b604051908152f35b34610103575f36600319011261010357602060405160ff7f0000000000000000000000000000000000000000000000000000000000000012168152f35b34610103576060366003190112610103576106206108a7565b6106286108bd565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610a5b833981519152929185600182016106b2575b5050835f526003825260405f206106828682546108d3565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106bb916108d3565b5f8581526004845260408082203383528552902055858561066a565b34610103575f366003190112610103576020600254604051908152f35b346101035760403660031901126101035761070d6108a7565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610103575f366003190112610103576040515f805461078c8161080f565b808452906001811690811561049c57506001146107b35761043a8361042e81850382610847565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106107f55750909150810160200161042e61041e565b9192600181602092548385880101520191019092916107dd565b90600182811c9216801561083d575b602083101461082957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161081e565b90601f8019910116810190811067ffffffffffffffff82111761086957604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010357565b602435906001600160a01b038216820361010357565b9190820391821161059457565b467f0000000000000000000000000000000000000000000000000000000000007a690361092b577fbbc0a900de8284772ac03c8129074657946241fe61d4c7d06407c89645b00ab490565b6040515f905f54918161093d8461080f565b9182825260208201946001811690815f14610a3e57506001146109e1575b61096792500382610847565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109db60c082610847565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a225750509060206109679282010161095b565b6020919350806001915483858801015201910190918392610a0a565b60ff191686525061096792151560051b8201602001905061095b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207de4439c7c575beac552a99bd7a80a56f5f69465e073bcea91ee0ad18ec4067f64736f6c634300081a0033","gas_used":640704,"gas_limit":868489,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x00000000000000000000000000000000000000000000d3c21bcecceda1000000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461076d578063095ea7b3146106f457806318160ddd146106d757806323b872dd14610607578063313ce567146105ca5780633644e515146105a857806340c10f191461053057806370a08231146104f85780637ecebe00146104c057806395d89b41146103e65780639dc29fac14610386578063a9059cbb14610311578063d505accf146101075763dd62ed3e146100b3575f80fd5b34610103576040366003190112610103576100cc6108a7565b6100d46108bd565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346101035760e0366003190112610103576101206108a7565b6101286108bd565b6044356064359260843560ff8116809103610103574285106102cc5760805f916020936101536108e0565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d060e082610847565b519020604051908682019261190160f01b845260228301526042820152604281526101fc606282610847565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c1575f516001600160a01b0316801515806102b8575b15610282577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461023a565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346101035760403660031901126101035761032a6108a7565b60243590335f52600360205260405f206103458382546108d3565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f80516020610a5b83398151915260203392a3602060405160018152f35b34610103576040366003190112610103575f6103a06108a7565b5f80516020610a5b83398151915260206024359260018060a01b03169283855260038252604085206103d38282546108d3565b90558060025403600255604051908152a3005b34610103575f366003190112610103576040515f6001546104068161080f565b808452906001811690811561049c575060011461043e575b61043a8361042e81850382610847565b6040519182918261087d565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106104825750909150810160200161042e61041e565b91926001816020925483858801015201910190929161046a565b60ff191660208086019190915291151560051b8401909101915061042e905061041e565b34610103576020366003190112610103576001600160a01b036104e16108a7565b165f526005602052602060405f2054604051908152f35b34610103576020366003190112610103576001600160a01b036105196108a7565b165f526003602052602060405f2054604051908152f35b34610103576040366003190112610103576105496108a7565b60243590600254908282018092116105945760205f80516020610a5b833981519152915f9360025560018060a01b0316938484526003825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b34610103575f3660031901126101035760206105c26108e0565b604051908152f35b34610103575f36600319011261010357602060405160ff7f0000000000000000000000000000000000000000000000000000000000000012168152f35b34610103576060366003190112610103576106206108a7565b6106286108bd565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f80516020610a5b833981519152929185600182016106b2575b5050835f526003825260405f206106828682546108d3565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b6106bb916108d3565b5f8581526004845260408082203383528552902055858561066a565b34610103575f366003190112610103576020600254604051908152f35b346101035760403660031901126101035761070d6108a7565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610103575f366003190112610103576040515f805461078c8161080f565b808452906001811690811561049c57506001146107b35761043a8361042e81850382610847565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106107f55750909150810160200161042e61041e565b9192600181602092548385880101520191019092916107dd565b90600182811c9216801561083d575b602083101461082957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161081e565b90601f8019910116810190811067ffffffffffffffff82111761086957604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010357565b602435906001600160a01b038216820361010357565b9190820391821161059457565b467f0000000000000000000000000000000000000000000000000000000000007a690361092b577fbbc0a900de8284772ac03c8129074657946241fe61d4c7d06407c89645b00ab490565b6040515f905f54918161093d8461080f565b9182825260208201946001811690815f14610a3e57506001146109e1575b61096792500382610847565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526109db60c082610847565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610a225750509060206109679282010161095b565b6020919350806001915483858801015201910190918392610a0a565b60ff191686525061096792151560051b8201602001905061095b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207de4439c7c575beac552a99bd7a80a56f5f69465e073bcea91ee0ad18ec4067f64736f6c634300081a0033","nonce":3,"gas_used":759284},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb95f4","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x00000000000000000000000000000000000000000000d3c21bcecceda1000000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000100000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xd0b5d0b086a51ed3cafffbe7fb9d54a2b0a93eb63c6ab84ae38a5efd8411c13a","block_number":7},{"info":{"transaction_hash":"0xb302836899629ee12a26abeee78b6438d6c2b9efae947ef67578b619bbc05b7e","transaction_index":0,"from":"0x976ea74026e726554db657fa54763abd0c3a0aa9","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x976ea74026e726554db657fa54763abd0c3a0aa9","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":0,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000976ea74026e726554db657fa54763abd0c3a0aa9","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000040200000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000080000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xf0b535631e7cc1229b1ade81c100dd03ee915361fd90fd4498e9464040051be4","block_number":67},{"info":{"transaction_hash":"0xe7db78d40829d8ccb29ca6e9e539e6041180bd5566c5a334589ac6561c803ce7","transaction_index":0,"from":"0x14dc79964da2c08b23698b3d3cc7ca32193d9955","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x14dc79964da2c08b23698b3d3cc7ca32193d9955","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":2,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000002000000000000000008000000000000000000000000000000000000000000000040000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xff6da4ad91679a0d720c2a44e9a8397dfad020f6bbe47ef09550379aa8ba4687","block_number":76},{"info":{"transaction_hash":"0xdfdf5413384c30392203647536f2cc001d6bc9b36833cc720a68ea388f710655","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa9059cbb0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af1622700000000000000000000000000000000000000000000000000000004a817c800","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29611,"gas_limit":53299,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227"],"data":"0x00000000000000000000000000000000000000000000000000000004a817c800"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":17,"gas_used":51219},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x19028","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227"],"data":"0x00000000000000000000000000000000000000000000000000000004a817c800"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000108000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000010000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xc4dad62861270b90c909b30f2b558707e6418ef90adcf862a18d2c7d2ab0403b","block_number":20},{"info":{"transaction_hash":"0x182e8902b88de991ec9845d1e85ed045659b38b3577fcb383f2b316f9729254b","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":"0xa9059cbb0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af162270000000000000000000000000000000000000000000000008ac7230489e80000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29589,"gas_limit":49116,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e80000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":16,"gas_used":51221},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc815","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000005a270e627326bf3d504d7e41ccff73ca6af16227"],"data":"0x0000000000000000000000000000000000000000000000008ac7230489e80000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000108000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000010000000001000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000062000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc4dad62861270b90c909b30f2b558707e6418ef90adcf862a18d2c7d2ab0403b","block_number":20},{"info":{"transaction_hash":"0x193718f7bb97364f461262a013efafdf0db29ce5c274c597a5ccd028973377b7","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f19000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":12298,"gas_limit":25237,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":27,"gas_used":33942},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8496","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xea413542df5959e286a82ad78a72886da071241895bdb6834e860535539eec55","block_number":23},{"info":{"transaction_hash":"0xe6ca8ea29e65d367eefb4752b6197a533d663f57a1c52c32a5a5f5d5d3652255","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":"0x56bc75e2d63100000","data":"0xd0e30db0","output":"0x","gas_used":13709,"gas_limit":26965,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":1}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Stop","out":"0x","nonce":40,"gas_used":34773},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x87d5","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x75502cf8092d1e4c9209a857aa101d1402f24220894153aa6e47dd9ebf4d80c8","block_number":42},{"info":{"transaction_hash":"0xdaa4b91b6faeaa6bb0a5bedd64d50f529e243d05f9a0354d2a23fb8782907e3c","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":"0x56bc75e2d63100000","data":"0xd0e30db0","output":"0x","gas_used":13709,"gas_limit":26965,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":1}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Stop","out":"0x","nonce":25,"gas_used":34773},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x87d5","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xc1e9e6a4076aa9ec4f645b4f537f1f280b9ecfe1fffb838b1260616d22da3371","block_number":21},{"info":{"transaction_hash":"0xd042d1acf9b3ef0b6c9a3d7a6c1ceb5fe0f34d6dafd020ebc51a292c9c022c2e","transaction_index":0,"from":"0xa0ee7a142d267c1f36714e4a8f75612f20a79720","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xa0ee7a142d267c1f36714e4a8f75612f20a79720","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":0,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000008000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000004000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x05617381463cc277caee615ffb878a0bf85003e4b42bf37c6cf0c1cb3bd55d4f","block_number":88},{"info":{"transaction_hash":"0x58862088592acb147160957c2b97a5fd105116e7870fb258d1ab85bf3a128830","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f190000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc0000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":51,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000008000000000000000000000000000020000000000000000000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xf501b1fd88e89f72ef50678819cbbd9b93bad9b0fbd6ac0244bc78d9c9f96b92","block_number":59},{"info":{"transaction_hash":"0x7dc780834553766c60b0e9637071a198f11d5abdcc5df92cc208fca60d7d7097","transaction_index":7,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa9059cbb00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d00000000000000000000000000000000000000000000021e19e0c9bab2400000","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":29611,"gas_limit":53321,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d"],"data":"0x00000000000000000000000000000000000000000000021e19e0c9bab2400000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":23,"gas_used":51267},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x95d0f","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000094eccb8e4635821e636c6651d2a5964562d31c5d"],"data":"0x00000000000000000000000000000000000000000000021e19e0c9bab2400000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000008000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004000200000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc4dad62861270b90c909b30f2b558707e6418ef90adcf862a18d2c7d2ab0403b","block_number":20},{"info":{"transaction_hash":"0x2259700eb5af9039ade0a20b9935aba7e21a2b0f59e0d67f6961f73aca7e0c2a","transaction_index":0,"from":"0x70997970c51812dc3a010c7d01b50e0d17dc79c8","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x70997970c51812dc3a010c7d01b50e0d17dc79c8","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":2,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000002000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000001000000000000000000000000000000"},"block_hash":"0xcb65e9eb5fbdaf90bb77c9f226530ef1a3762ac96883aee84fe83d49312f9326","block_number":34},{"info":{"transaction_hash":"0x8a7233cbe755adebf10070b6e4359b9a75f56f9da6892e75c0f700cec7900cc5","transaction_index":0,"from":"0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":2,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000004000020000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000800000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x2165269408a23e67e70851d7981386907c4a5286a962c1df19d3d699ee3058bb","block_number":62},{"info":{"transaction_hash":"0x2fc7bb0b95cf7e49f7766cabb9d5a6e142e4cdb5402c8518db305a2006e8c0c3","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f19000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":12298,"gas_limit":25237,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":28,"gas_used":33942},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8496","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000008000000000000000000000000000000000000000000000000020000000000000100000800000000000000000000000010000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xe907c84e8881dea03a0cb85c039326d226c7a1101d66ad377d22555961cf4cd8","block_number":24},{"info":{"transaction_hash":"0xf458a91163e983d2fc2b22b2e96c826339998e87a1440854bbe09a3fdf159785","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":"0x60808060405234601557610198908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80630f5a6efa146100605763fec90d721461002f575f80fd5b3461005c57604036600319011261005c57610048610136565b5061005161014c565b5060206040515f8152f35b5f80fd5b3461005c57604036600319011261005c57610079610136565b5060243567ffffffffffffffff811161005c573660238201121561005c5780600401359067ffffffffffffffff821161005c57602490369260051b01011161005c5760206040518181019080821067ffffffffffffffff8311176101225790806040525f82525f36813760405192839281840190828552518091526040840192915f5b82811061010b57505050500390f35b8351855286955093810193928101926001016100fc565b634e487b7160e01b5f52604160045260245ffd5b600435906001600160a01b038216820361005c57565b602435906001600160a01b038216820361005c5756fea26469706673582212206040a99238ce213f103492965ed74ea57d744e3f796abd195fd5b28637d8f66164736f6c634300081a0033","output":"0x60806040526004361015610011575f80fd5b5f3560e01c80630f5a6efa146100605763fec90d721461002f575f80fd5b3461005c57604036600319011261005c57610048610136565b5061005161014c565b5060206040515f8152f35b5f80fd5b3461005c57604036600319011261005c57610079610136565b5060243567ffffffffffffffff811161005c573660238201121561005c5780600401359067ffffffffffffffff821161005c57602490369260051b01011161005c5760206040518181019080821067ffffffffffffffff8311176101225790806040525f82525f36813760405192839281840190828552518091526040840192915f5b82811061010b57505050500390f35b8351855286955093810193928101926001016100fc565b634e487b7160e01b5f52604160045260245ffd5b600435906001600160a01b038216820361005c57565b602435906001600160a01b038216820361005c5756fea26469706673582212206040a99238ce213f103492965ed74ea57d744e3f796abd195fd5b28637d8f66164736f6c634300081a0033","gas_used":81735,"gas_limit":81735,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x60806040526004361015610011575f80fd5b5f3560e01c80630f5a6efa146100605763fec90d721461002f575f80fd5b3461005c57604036600319011261005c57610048610136565b5061005161014c565b5060206040515f8152f35b5f80fd5b3461005c57604036600319011261005c57610079610136565b5060243567ffffffffffffffff811161005c573660238201121561005c5780600401359067ffffffffffffffff821161005c57602490369260051b01011161005c5760206040518181019080821067ffffffffffffffff8311176101225790806040525f82525f36813760405192839281840190828552518091526040840192915f5b82811061010b57505050500390f35b8351855286955093810193928101926001016100fc565b634e487b7160e01b5f52604160045260245ffd5b600435906001600160a01b038216820361005c57565b602435906001600160a01b038216820361005c5756fea26469706673582212206040a99238ce213f103492965ed74ea57d744e3f796abd195fd5b28637d8f66164736f6c634300081a0033","nonce":9,"gas_used":141467},"receipt":{"type":"0x0","status":"0x1","cumulativeGasUsed":"0x2289b","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x16296483a568fd54a5f453e92219dfb46c148a2def2afc687797dca5a0b75926","block_number":13},{"info":{"transaction_hash":"0x8dd2f3570167ac4a416ffd67d1f7dbae42498d1ca830bc358127abe8a5311533","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":"0x60c06040523480156200001157600080fd5b506040516200577338038062005773833981810160405260408110156200003757600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c6155ec62000187600039806101ac5280610e5d5280610e985280610fd5528061129852806116f252806118d65280611e1e5280611fa252806120725280612179528061232c52806123c15280612673528061271a52806127ef52806128f452806129dc5280612a5d52806130ec5280613422528061347852806134ac528061352d528061374752806138f7528061398c5250806110c752806111c5528061136b52806113a4528061154f52806117e452806118b45280611aa1528061225f528061240052806125a95280612a9c5280612ddf5280613071528061309a52806130ca52806132a75280613456528061382d52806139cb5280614434528061447752806147d752806149b85280614f335280615014528061509452506155ec6000f3fe60806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a612d65565b9093509150610e96898685613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613ce9565b50965096945050505050565b6000610f44848484613e26565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f00000000000000000000000000000000000000000000000000000000000000008a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140b0565b8560008151811061124a57fe5b602002602001015161419b565b6112968287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525030925061436b915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613ce9565b509695505050505050565b60606113917f000000000000000000000000000000000000000000000000000000000000000084846145f2565b90505b92915050565b60008060006113ca7f00000000000000000000000000000000000000000000000000000000000000008f8f6140b0565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b6113598287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b6000806118fa7f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006140b0565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a61419b565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614780915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b1316565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614780915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613ce9565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b5095945050505050565b6000610f44848484614b85565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610f44848484614ca9565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f00000000000000000000000000000000000000000000000000000000000000008989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613ce9565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614780915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f00000000000000000000000000000000000000000000000000000000000000008c8c6140b0565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d89565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606113917f00000000000000000000000000000000000000000000000000000000000000008484613f4a565b60008060006131107f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006140b0565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614edc565b909450925060006132cd7f00000000000000000000000000000000000000000000000000000000000000008e8e6140b0565b90506132db8d33838861419b565b6132e78c33838761419b565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c614edc565b9094509250600061349c7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006140b0565b90506134aa8b33838861419b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613ce9565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f0000000000000000000000000000000000000000000000000000000000000000888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae68287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613ce9565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613ce2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061555f602d913960400191505060405180910390fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d6057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d23565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dc2576040519150601f19603f3d011682016040523d82523d6000602084013e613dc7565b606091505b5050905080613e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603481526020018061541b6034913960400191505060405180910390fd5b505050565b6000808411613e80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061558c602b913960400191505060405180910390fd5b600083118015613e905750600082115b613ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000613ef9856103e563ffffffff6151dd16565b90506000613f0d828563ffffffff6151dd16565b90506000613f3383613f27886103e863ffffffff6151dd16565b9063ffffffff61526316565b9050808281613f3e57fe5b04979650505050505050565b6060600282511015613fbd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613fd557600080fd5b50604051908082528060200260200182016040528015613fff578160200160208202803683370190505b509050828160008151811061401057fe5b60200260200101818152505060005b60018351038110156140a8576000806140628786858151811061403e57fe5b602002602001015187866001018151811061405557fe5b60200260200101516152d5565b9150915061408484848151811061407557fe5b60200260200101518383613e26565b84846001018151811061409357fe5b6020908102919091010152505060010161401f565b509392505050565b60008060006140bf8585614d89565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061427957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161423c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142db576040519150601f19603f3d011682016040523d82523d6000602084013e6142e0565b606091505b509150915081801561430e57508051158061430e575080806020019051602081101561430b57600080fd5b50515b614363576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806153ea6031913960400191505060405180910390fd5b505050505050565b60005b60018351038110156145ec5760008084838151811061438957fe5b60200260200101518584600101815181106143a057fe5b60200260200101519150915060006143b88383614d89565b50905060008785600101815181106143cc57fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461441457826000614418565b6000835b91509150600060028a5103881061442f5788614470565b6144707f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061446357fe5b60200260200101516140b0565b905061449d7f000000000000000000000000000000000000000000000000000000000000000088886140b0565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144e7576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561457257818101518382015260200161455a565b50505050905090810190601f16801561459f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145c157600080fd5b505af11580156145d5573d6000803e3d6000fd5b50506001909901985061436e975050505050505050565b50505050565b606060028251101561466557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561467d57600080fd5b506040519080825280602002602001820160405280156146a7578160200160208202803683370190505b50905082816001835103815181106146bb57fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140a85760008061471b8786600186038151811061470757fe5b602002602001015187868151811061405557fe5b9150915061473d84848151811061472e57fe5b60200260200101518383614b85565b84600185038151811061474c57fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016146eb565b60005b6001835103811015613e215760008084838151811061479e57fe5b60200260200101518584600101815181106147b557fe5b60200260200101519150915060006147cd8383614d89565b50905060006147fd7f000000000000000000000000000000000000000000000000000000000000000085856140b0565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561484b57600080fd5b505afa15801561485f573d6000803e3d6000fd5b505050506040513d606081101561487557600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148bf5782846148c2565b83835b91509150614947828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b9550614954868383613e26565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149985782600061499c565b6000835b91509150600060028c51038a106149b3578a6149e7565b6149e77f0000000000000000000000000000000000000000000000000000000000000000898e8d6002018151811061446357fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614a97578181015183820152602001614a7f565b50505050905090810190601f168015614ac45780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614ae657600080fd5b505af1158015614afa573d6000803e3d6000fd5b50506001909b019a506147839950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153be602c913960400191505060405180910390fd5b600083118015614bef5750600082115b614c44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000614c686103e8614c5c868863ffffffff6151dd16565b9063ffffffff6151dd16565b90506000614c826103e5614c5c868963ffffffff614b1316565b9050614c9f6001828481614c9257fe5b049063ffffffff61526316565b9695505050505050565b6000808411614d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154c26025913960400191505060405180910390fd5b600083118015614d135750600082115b614d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b82614d79858463ffffffff6151dd16565b81614d8057fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061544f6025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e4b578284614e4e565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b158015614f7c57600080fd5b505afa158015614f90573d6000803e3d6000fd5b505050506040513d6020811015614fa657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561508c57604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b15801561505f57600080fd5b505af1158015615073573d6000803e3d6000fd5b505050506040513d602081101561508957600080fd5b50505b6000806150ba7f00000000000000000000000000000000000000000000000000000000000000008b8b6152d5565b915091508160001480156150cc575080155b156150dc578793508692506151d0565b60006150e9898484614ca9565b9050878111615156578581101561514b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b8894509250826151ce565b6000615163898486614ca9565b90508981111561516f57fe5b878110156151c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008115806151f8575050808202828282816151f557fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152e48585614d89565b5090506000806152f58888886140b0565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561533a57600080fd5b505afa15801561534e573d6000803e3d6000fd5b505050506040513d606081101561536457600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153ab5780826153ae565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a264697066735822122058679bc9474b9bf23de79679b7f67187bb1fb84a5701294ce32c84e6b840987e64736f6c63430006060033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3","output":"0x60806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa316146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa38a8a8a308a612d65565b9093509150610e96898685613b22565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613ce9565b50965096945050505050565b6000610f44848484613e26565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa31686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140b0565b8560008151811061124a57fe5b602002602001015161419b565b6112968287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525030925061436b915050565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613ce9565b509695505050505050565b60606113917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c984846145f2565b90505b92915050565b60008060006113ca7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98f8f6140b0565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b6113598287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa31686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b6000806118fa7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98d7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa36140b0565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a61419b565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614780915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b1316565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa31685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614780915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa316916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613ce9565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c934888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b5095945050505050565b6000610f44848484614b85565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa381565b6000610f44848484614ca9565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa38989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613ce9565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614780915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98c8c6140b0565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d89565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60606113917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98484613f4a565b60008060006131107f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98e7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa36140b0565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614edc565b909450925060006132cd7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98e8e6140b0565b90506132db8d33838861419b565b6132e78c33838761419b565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa38b348c8c614edc565b9094509250600061349c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98c7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa36140b0565b90506134aa8b33838861419b565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613ce9565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae68287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613ce9565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613ce2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061555f602d913960400191505060405180910390fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d6057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d23565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dc2576040519150601f19603f3d011682016040523d82523d6000602084013e613dc7565b606091505b5050905080613e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603481526020018061541b6034913960400191505060405180910390fd5b505050565b6000808411613e80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061558c602b913960400191505060405180910390fd5b600083118015613e905750600082115b613ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000613ef9856103e563ffffffff6151dd16565b90506000613f0d828563ffffffff6151dd16565b90506000613f3383613f27886103e863ffffffff6151dd16565b9063ffffffff61526316565b9050808281613f3e57fe5b04979650505050505050565b6060600282511015613fbd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613fd557600080fd5b50604051908082528060200260200182016040528015613fff578160200160208202803683370190505b509050828160008151811061401057fe5b60200260200101818152505060005b60018351038110156140a8576000806140628786858151811061403e57fe5b602002602001015187866001018151811061405557fe5b60200260200101516152d5565b9150915061408484848151811061407557fe5b60200260200101518383613e26565b84846001018151811061409357fe5b6020908102919091010152505060010161401f565b509392505050565b60008060006140bf8585614d89565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061427957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161423c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142db576040519150601f19603f3d011682016040523d82523d6000602084013e6142e0565b606091505b509150915081801561430e57508051158061430e575080806020019051602081101561430b57600080fd5b50515b614363576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806153ea6031913960400191505060405180910390fd5b505050505050565b60005b60018351038110156145ec5760008084838151811061438957fe5b60200260200101518584600101815181106143a057fe5b60200260200101519150915060006143b88383614d89565b50905060008785600101815181106143cc57fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461441457826000614418565b6000835b91509150600060028a5103881061442f5788614470565b6144707f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9878c8b6002018151811061446357fe5b60200260200101516140b0565b905061449d7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c988886140b0565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144e7576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561457257818101518382015260200161455a565b50505050905090810190601f16801561459f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145c157600080fd5b505af11580156145d5573d6000803e3d6000fd5b50506001909901985061436e975050505050505050565b50505050565b606060028251101561466557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561467d57600080fd5b506040519080825280602002602001820160405280156146a7578160200160208202803683370190505b50905082816001835103815181106146bb57fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140a85760008061471b8786600186038151811061470757fe5b602002602001015187868151811061405557fe5b9150915061473d84848151811061472e57fe5b60200260200101518383614b85565b84600185038151811061474c57fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016146eb565b60005b6001835103811015613e215760008084838151811061479e57fe5b60200260200101518584600101815181106147b557fe5b60200260200101519150915060006147cd8383614d89565b50905060006147fd7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c985856140b0565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561484b57600080fd5b505afa15801561485f573d6000803e3d6000fd5b505050506040513d606081101561487557600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148bf5782846148c2565b83835b91509150614947828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b9550614954868383613e26565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149985782600061499c565b6000835b91509150600060028c51038a106149b3578a6149e7565b6149e77f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9898e8d6002018151811061446357fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614a97578181015183820152602001614a7f565b50505050905090810190601f168015614ac45780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614ae657600080fd5b505af1158015614afa573d6000803e3d6000fd5b50506001909b019a506147839950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153be602c913960400191505060405180910390fd5b600083118015614bef5750600082115b614c44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000614c686103e8614c5c868863ffffffff6151dd16565b9063ffffffff6151dd16565b90506000614c826103e5614c5c868963ffffffff614b1316565b9050614c9f6001828481614c9257fe5b049063ffffffff61526316565b9695505050505050565b6000808411614d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154c26025913960400191505060405180910390fd5b600083118015614d135750600082115b614d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b82614d79858463ffffffff6151dd16565b81614d8057fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061544f6025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e4b578284614e4e565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99092169163e6a4390591604480820192602092909190829003018186803b158015614f7c57600080fd5b505afa158015614f90573d6000803e3d6000fd5b505050506040513d6020811015614fa657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561508c57604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99092169163c9c65396916044808201926020929091908290030181600087803b15801561505f57600080fd5b505af1158015615073573d6000803e3d6000fd5b505050506040513d602081101561508957600080fd5b50505b6000806150ba7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98b8b6152d5565b915091508160001480156150cc575080155b156150dc578793508692506151d0565b60006150e9898484614ca9565b9050878111615156578581101561514b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b8894509250826151ce565b6000615163898486614ca9565b90508981111561516f57fe5b878110156151c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008115806151f8575050808202828282816151f557fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152e48585614d89565b5090506000806152f58888886140b0565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561533a57600080fd5b505afa15801561534e573d6000803e3d6000fd5b505050506040513d606081101561536457600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153ab5780826153ae565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a264697066735822122058679bc9474b9bf23de79679b7f67187bb1fb84a5701294ce32c84e6b840987e64736f6c63430006060033","gas_used":4404970,"gas_limit":5835733,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x60806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa316146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa38a8a8a308a612d65565b9093509150610e96898685613b22565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613ce9565b50965096945050505050565b6000610f44848484613e26565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa31686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140b0565b8560008151811061124a57fe5b602002602001015161419b565b6112968287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525030925061436b915050565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613ce9565b509695505050505050565b60606113917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c984846145f2565b90505b92915050565b60008060006113ca7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98f8f6140b0565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b6113598287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa31686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b6000806118fa7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98d7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa36140b0565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a61419b565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614780915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b1316565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa31685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614780915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa316916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613ce9565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c934888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f4a92505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615534602b913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b5095945050505050565b6000610f44848484614b85565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa381565b6000610f44848484614ca9565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa38989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613ce9565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614780915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98c8c6140b0565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d89565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60606113917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98484613f4a565b60008060006131107f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98e7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa36140b0565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614edc565b909450925060006132cd7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98e8e6140b0565b90506132db8d33838861419b565b6132e78c33838761419b565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa38b348c8c614edc565b9094509250600061349c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98c7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa36140b0565b90506134aa8b33838861419b565b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613ce9565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506145f292505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154e76027913960400191505060405180910390fd5b7f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c989896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae68287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061436b915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613ce9565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613ce2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061555f602d913960400191505060405180910390fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d6057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d23565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dc2576040519150601f19603f3d011682016040523d82523d6000602084013e613dc7565b606091505b5050905080613e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603481526020018061541b6034913960400191505060405180910390fd5b505050565b6000808411613e80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061558c602b913960400191505060405180910390fd5b600083118015613e905750600082115b613ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000613ef9856103e563ffffffff6151dd16565b90506000613f0d828563ffffffff6151dd16565b90506000613f3383613f27886103e863ffffffff6151dd16565b9063ffffffff61526316565b9050808281613f3e57fe5b04979650505050505050565b6060600282511015613fbd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613fd557600080fd5b50604051908082528060200260200182016040528015613fff578160200160208202803683370190505b509050828160008151811061401057fe5b60200260200101818152505060005b60018351038110156140a8576000806140628786858151811061403e57fe5b602002602001015187866001018151811061405557fe5b60200260200101516152d5565b9150915061408484848151811061407557fe5b60200260200101518383613e26565b84846001018151811061409357fe5b6020908102919091010152505060010161401f565b509392505050565b60008060006140bf8585614d89565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb6912aa8f91da604bdd903b3484a9f6bb569baa993085fc590133487ff27f91e609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061427957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161423c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142db576040519150601f19603f3d011682016040523d82523d6000602084013e6142e0565b606091505b509150915081801561430e57508051158061430e575080806020019051602081101561430b57600080fd5b50515b614363576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806153ea6031913960400191505060405180910390fd5b505050505050565b60005b60018351038110156145ec5760008084838151811061438957fe5b60200260200101518584600101815181106143a057fe5b60200260200101519150915060006143b88383614d89565b50905060008785600101815181106143cc57fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461441457826000614418565b6000835b91509150600060028a5103881061442f5788614470565b6144707f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9878c8b6002018151811061446357fe5b60200260200101516140b0565b905061449d7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c988886140b0565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144e7576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561457257818101518382015260200161455a565b50505050905090810190601f16801561459f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145c157600080fd5b505af11580156145d5573d6000803e3d6000fd5b50506001909901985061436e975050505050505050565b50505050565b606060028251101561466557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561467d57600080fd5b506040519080825280602002602001820160405280156146a7578160200160208202803683370190505b50905082816001835103815181106146bb57fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140a85760008061471b8786600186038151811061470757fe5b602002602001015187868151811061405557fe5b9150915061473d84848151811061472e57fe5b60200260200101518383614b85565b84600185038151811061474c57fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016146eb565b60005b6001835103811015613e215760008084838151811061479e57fe5b60200260200101518584600101815181106147b557fe5b60200260200101519150915060006147cd8383614d89565b50905060006147fd7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c985856140b0565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561484b57600080fd5b505afa15801561485f573d6000803e3d6000fd5b505050506040513d606081101561487557600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148bf5782846148c2565b83835b91509150614947828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b9550614954868383613e26565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149985782600061499c565b6000835b91509150600060028c51038a106149b3578a6149e7565b6149e77f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9898e8d6002018151811061446357fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614a97578181015183820152602001614a7f565b50505050905090810190601f168015614ac45780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614ae657600080fd5b505af1158015614afa573d6000803e3d6000fd5b50506001909b019a506147839950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153be602c913960400191505060405180910390fd5b600083118015614bef5750600082115b614c44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b6000614c686103e8614c5c868863ffffffff6151dd16565b9063ffffffff6151dd16565b90506000614c826103e5614c5c868963ffffffff614b1316565b9050614c9f6001828481614c9257fe5b049063ffffffff61526316565b9695505050505050565b6000808411614d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154c26025913960400191505060405180910390fd5b600083118015614d135750600082115b614d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061549a6028913960400191505060405180910390fd5b82614d79858463ffffffff6151dd16565b81614d8057fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061544f6025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e4b578284614e4e565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99092169163e6a4390591604480820192602092909190829003018186803b158015614f7c57600080fd5b505afa158015614f90573d6000803e3d6000fd5b505050506040513d6020811015614fa657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561508c57604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99092169163c9c65396916044808201926020929091908290030181600087803b15801561505f57600080fd5b505af1158015615073573d6000803e3d6000fd5b505050506040513d602081101561508957600080fd5b50505b6000806150ba7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c98b8b6152d5565b915091508160001480156150cc575080155b156150dc578793508692506151d0565b60006150e9898484614ca9565b9050878111615156578581101561514b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154746026913960400191505060405180910390fd5b8894509250826151ce565b6000615163898486614ca9565b90508981111561516f57fe5b878110156151c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061550e6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008115806151f8575050808202828282816151f557fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152e48585614d89565b5090506000806152f58888886140b0565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561533a57600080fd5b505afa15801561534e573d6000803e3d6000fd5b505050506040513d606081101561536457600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153ab5780826153ae565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a264697066735822122058679bc9474b9bf23de79679b7f67187bb1fb84a5701294ce32c84e6b840987e64736f6c63430006060033","nonce":5,"gas_used":4769210},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x48c5ba","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xad3014edebe1530e2352f02b2f0dbab6301640046fbc4b63eb5b315f4f71c080","block_number":9},{"info":{"transaction_hash":"0xed3a9679fabb51178adca1dd6d63978ff85a59de31732341619bd379b7272617","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f1900000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":53004,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":34,"gas_used":51042},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc762","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000008000000000000000000000000000000000000000000000800020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000001000000000000400000000000000000"},"block_hash":"0xaa2337f13426c069ddef12073de59a27dce0d8141816b5564956ea495708bb65","block_number":30},{"info":{"transaction_hash":"0x6fd345c9e451e7ce761d0d14e9e6309d340b10a0428a754be881a3977abd08d8","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x4e59b44847b379578588920ca78fbf26c0b4956c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x0000000000000000000000000000000000000000000000000000000000000000608080604052346013576039908160188239f35b5f80fdfe5f80fdfea264697066735822122036ba1d0a51c38b9bf24b928ea7995bf7af4740f798592246106454ff3db66a2964736f6c634300081a0033","output":"0x7377795aa7b4a8fca5e4e194f54eaff667db45f0","gas_used":43592,"gas_limit":63569,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x4e59b44847b379578588920ca78fbf26c0b4956c","address":"0x7377795aa7b4a8fca5e4e194f54eaff667db45f0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE2","value":"0x0","data":"0x608080604052346013576039908160188239f35b5f80fdfe5f80fdfea264697066735822122036ba1d0a51c38b9bf24b928ea7995bf7af4740f798592246106454ff3db66a2964736f6c634300081a0033","output":"0x5f80fdfea264697066735822122036ba1d0a51c38b9bf24b928ea7995bf7af4740f798592246106454ff3db66a2964736f6c634300081a0033","gas_used":11469,"gas_limit":30998,"status":"Return","steps":[],"decoded":null},"logs":[],"ordering":[]}],"exit":"Return","out":"0x7377795aa7b4a8fca5e4e194f54eaff667db45f0","nonce":15,"gas_used":65992},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x101c8","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x04b64147df7c76a7c2deac8641b29cfe99e6b5a40b78efa41db2b442e823d2b0","block_number":19},{"info":{"transaction_hash":"0x04788f0d64ca1fbb5cba7be020a7d48d69763a02d1af4b8d2fcb8757c06f9941","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":"0x56bc75e2d63100000","data":"0xd0e30db0","output":"0x","gas_used":13709,"gas_limit":26965,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0},{"raw_log":{"topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":1}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Stop","out":"0x","nonce":56,"gas_used":34773},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x87d5","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000008000000000000040020000000000000100000800000000000000000000000010000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000042000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0x6dce8799af2fbd91eddb8ab9a82d2ad89b1bfd11c9e6619f1cf67f98a3e6e0c9","block_number":70},{"info":{"transaction_hash":"0xce59ab76e1bd72a6d41a827661c96c69b18a4f7f9843ed1869f43e7849304acc","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x40c10f190000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc0000000000000000000000000000000000000000000000056bc75e2d63100000","output":"0x","gas_used":29398,"gas_limit":48852,"status":"Stop","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":38,"gas_used":51030},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xc756","logs":[{"address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc"],"data":"0x0000000000000000000000000000000000000000000000056bc75e2d63100000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040200000000000100000000000000000000000000008000000000000000000000000000000000000000000000000020000000000000000000800000800000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000400000000000000000"},"block_hash":"0xa2cb7e3fe91e1aef17dbae026a2e3af9f7e1169000f4333164b51a4aebdcf50e","block_number":37},{"info":{"transaction_hash":"0x37d2624a13dc7d0e3d1240307387f6da9e960391387d2e0d94ca4b481d2dd553","transaction_index":0,"from":"0xa0ee7a142d267c1f36714e4a8f75612f20a79720","to":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xa0ee7a142d267c1f36714e4a8f75612f20a79720","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":2,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00000000000020000000040000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000200001000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000004000000000000010000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x0c388984c75bed82395b398f140d34a7c30295d9ba25fc820fa805d2c5394552","block_number":90},{"info":{"transaction_hash":"0x25f03d54d93cb6647dcfbcb5ea1eaeec9cae41d75b74998da5423ee90fcdabe9","transaction_index":0,"from":"0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x095ea7b30000000000000000000000008daf17a20c9dba35f005b6324f493785d239719dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","output":"0x0000000000000000000000000000000000000000000000000000000000000001","gas_used":24305,"gas_limit":45695,"status":"Return","steps":[],"decoded":null},"logs":[{"raw_log":{"topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"decoded":null,"position":0,"index":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x0000000000000000000000000000000000000000000000000000000000000001","nonce":0,"gas_used":46249},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xb4a9","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0x00000000000000000000000023618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","0x0000000000000000000000008daf17a20c9dba35f005b6324f493785d239719d"],"data":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"logsBloom":"0x00800000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000100200000000020000000000000000000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0xdbeb9f0839e66b4fcf67716ad27b910c8d48ba7e892e1f4abd5084248c35a0dc","block_number":81}],"historical_states":null} \ No newline at end of file diff --git a/playground/prometheus.yml b/playground/prometheus.yml index 456c7b10d2..aec4fdb3c4 100644 --- a/playground/prometheus.yml +++ b/playground/prometheus.yml @@ -1,5 +1,12 @@ global: - scrape_interval: 5s + scrape_interval: 15s # Reduced from 5s to decrease data volume + evaluation_interval: 15s + external_labels: + cluster: "cow-protocol-offline" + environment: "local" + +# Enable remote write receiver for K6 (only when K6 is running) +# Note: Removed self-referencing remote_write that was causing data duplication scrape_configs: - job_name: "prometheus" @@ -21,3 +28,9 @@ scrape_configs: - job_name: "baseline" static_configs: - targets: ["baseline:80"] + + # K6 performance testing metrics (if exposed) + - job_name: "k6" + static_configs: + - targets: ["k6:6565"] + scrape_interval: 5s diff --git a/playground/test_playground_offline_cow.sh b/playground/test_playground_offline_cow.sh new file mode 100755 index 0000000000..04714ac6a9 --- /dev/null +++ b/playground/test_playground_offline_cow.sh @@ -0,0 +1,322 @@ +#!/bin/bash + +# Test CoW Protocol offline mode with peer-to-peer order matching (no AMM needed) +set -e +set -u + +HOST=localhost:8080 +RPC_URL=http://localhost:8545 +CHAIN_ID=31337 + +# Contract addresses from addresses.json +WETH_ADDRESS="0x5FbDB2315678afecb367f032d93F642f64180aa3" +USDC_ADDRESS="0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0" +SETTLEMENT_CONTRACT="0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e" +VAULT_RELAYER="0x8dAF17A20c9DBA35f005b6324F493785D239719d" +VAULT="0x8A791620dd6260079BF849Dc5567aDC3F2FdC318" + +# Two test accounts (Anvil accounts #1 and #2 - not using #0 since it's the solver) +TRADER_A_KEY="0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d" # Account #1 +TRADER_B_KEY="0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a" # Account #2 + +TRADER_A=$(cast wallet address $TRADER_A_KEY) +TRADER_B=$(cast wallet address $TRADER_B_KEY) + +echo "๐Ÿงช Testing CoW Protocol Offline Mode - Peer-to-Peer Matching" +echo "=============================================================" +echo "" +echo "Trader A: $TRADER_A (will sell WETH for USDC)" +echo "Trader B: $TRADER_B (will sell USDC for WETH)" +echo "" + +# Wait for services +echo "โณ Waiting for services to be ready..." +curl --retry 24 --retry-delay 5 --retry-all-errors --fail-with-body -s \ + http://$HOST/api/v1/version > /dev/null +echo "โœ… Services ready!" +echo "" + +# Setup Trader A (has WETH, wants USDC) +echo "๐Ÿ’ฐ Setting up Trader A with WETH..." +cast send $WETH_ADDRESS --private-key $TRADER_A_KEY --rpc-url $RPC_URL --chain-id $CHAIN_ID \ + --value 2000000000000000000 "deposit()" > /dev/null +cast send $WETH_ADDRESS --private-key $TRADER_A_KEY --rpc-url $RPC_URL --chain-id $CHAIN_ID \ + "approve(address,uint256)" $VAULT_RELAYER "1000000000000000000000000" > /dev/null +BALANCE_A=$(cast call $WETH_ADDRESS --rpc-url $RPC_URL "balanceOf(address)(uint256)" $TRADER_A) +echo " โœ… Trader A has $(cast --from-wei $BALANCE_A) WETH" +echo "" + +# Setup Trader B (has USDC, wants WETH) +echo "๐Ÿ’ฐ Setting up Trader B with USDC..." +# Mint USDC to Trader B (20,000 USDC - 6 decimals) +cast send $USDC_ADDRESS --private-key $TRADER_B_KEY --rpc-url $RPC_URL --chain-id $CHAIN_ID \ + "mint(address,uint256)" $TRADER_B "20000000000" > /dev/null +cast send $USDC_ADDRESS --private-key $TRADER_B_KEY --rpc-url $RPC_URL --chain-id $CHAIN_ID \ + "approve(address,uint256)" $VAULT_RELAYER "1000000000000000000000000" > /dev/null +BALANCE_B=$(cast call $USDC_ADDRESS --rpc-url $RPC_URL "balanceOf(address)(uint256)" $TRADER_B) +echo " โœ… Trader B has $(echo "scale=2; $BALANCE_B / 1000000" | bc) USDC" +echo "" + +# Create Order A: Sell 0.1 WETH for USDC using quote endpoint +echo "๐Ÿ“ Creating Order A: Trader A sells 0.1 WETH for USDC" +echo "" + +# Get quote from API +echo "๐Ÿ“Š Getting quote from orderbook..." +QUOTE_A_RESPONSE=$(curl -s -X POST "http://$HOST/api/v1/quote" \ + -H 'Content-Type: application/json' \ + -d '{ + "sellToken": "'$WETH_ADDRESS'", + "buyToken": "'$USDC_ADDRESS'", + "receiver": "'$TRADER_A'", + "sellAmountBeforeFee": "100000000000000000", + "kind": "sell", + "from": "'$TRADER_A'" + }') + +# Check if quote was successful +if echo "$QUOTE_A_RESPONSE" | jq -e '.errorType' > /dev/null 2>&1; then + echo "โŒ Quote request failed:" + echo "$QUOTE_A_RESPONSE" | jq . + exit 1 +fi + +# Extract quote parameters +SELL_AMOUNT_A=$(echo "$QUOTE_A_RESPONSE" | jq -r '.quote.sellAmount') +BUY_AMOUNT_A=$(echo "$QUOTE_A_RESPONSE" | jq -r '.quote.buyAmount') +FEE_AMOUNT_A=$(echo "$QUOTE_A_RESPONSE" | jq -r '.quote.feeAmount') +VALID_TO=$(echo "$QUOTE_A_RESPONSE" | jq -r '.quote.validTo') +APP_DATA_HASH=$(echo "$QUOTE_A_RESPONSE" | jq -r '.quote.appData') + +# Validate that we got valid values +if [ "$BUY_AMOUNT_A" = "null" ] || [ "$VALID_TO" = "null" ]; then + echo "โŒ Quote returned null values:" + echo "$QUOTE_A_RESPONSE" | jq . + exit 1 +fi + +echo " Quote received:" +echo " Sell amount: $(cast --from-wei $SELL_AMOUNT_A 2>/dev/null || echo $SELL_AMOUNT_A) WETH" +echo " Buy amount: $(echo "scale=2; $BUY_AMOUNT_A / 1000000" | bc) USDC" +echo " Fee: $(cast --from-wei $FEE_AMOUNT_A 2>/dev/null || echo $FEE_AMOUNT_A) WETH" +echo " Valid until: $VALID_TO" +echo "" + +# Sign Order A using Python script (fee set to 0 for offline mode) +ORDER_A_UNSIGNED='{ + "sellToken": "'$WETH_ADDRESS'", + "buyToken": "'$USDC_ADDRESS'", + "receiver": "'$TRADER_A'", + "sellAmount": "100000000000000000", + "buyAmount": "'$BUY_AMOUNT_A'", + "validTo": '$VALID_TO', + "appData": "'$APP_DATA_HASH'", + "feeAmount": "0", + "kind": "sell", + "partiallyFillable": false, + "sellTokenBalance": "erc20", + "buyTokenBalance": "erc20", + "chainId": '$CHAIN_ID', + "settlement": "'$SETTLEMENT_CONTRACT'" +}' + +ORDER_A_SIGNED=$(python3 poc-offline-mode/scripts/sign_order.py "$TRADER_A_KEY" "$ORDER_A_UNSIGNED") + +echo "๐Ÿ“ค Posting Order A..." +ORDER_A_RESPONSE=$(curl -s -X POST "http://$HOST/api/v1/orders" \ + -H 'Content-Type: application/json' \ + -d "$ORDER_A_SIGNED" || echo "failed") + +echo "Response: $ORDER_A_RESPONSE" +echo "" + +# Create Order B: Sell USDC for WETH using quote endpoint +echo "๐Ÿ“ Creating Order B: Trader B sells USDC for WETH" +echo "" + +# Get quote from API +echo "๐Ÿ“Š Getting quote from orderbook..." +QUOTE_B_RESPONSE=$(curl -s -X POST "http://$HOST/api/v1/quote" \ + -H 'Content-Type: application/json' \ + -d '{ + "sellToken": "'$USDC_ADDRESS'", + "buyToken": "'$WETH_ADDRESS'", + "receiver": "'$TRADER_B'", + "sellAmountBeforeFee": "200000000", + "kind": "sell", + "from": "'$TRADER_B'" + }') + +# Check if quote was successful +if echo "$QUOTE_B_RESPONSE" | jq -e '.errorType' > /dev/null 2>&1; then + echo "โŒ Quote request failed:" + echo "$QUOTE_B_RESPONSE" | jq . + exit 1 +fi + +# Extract quote parameters +SELL_AMOUNT_B=$(echo "$QUOTE_B_RESPONSE" | jq -r '.quote.sellAmount') +BUY_AMOUNT_B=$(echo "$QUOTE_B_RESPONSE" | jq -r '.quote.buyAmount') +FEE_AMOUNT_B=$(echo "$QUOTE_B_RESPONSE" | jq -r '.quote.feeAmount') +VALID_TO_B=$(echo "$QUOTE_B_RESPONSE" | jq -r '.quote.validTo') +APP_DATA_HASH_B=$(echo "$QUOTE_B_RESPONSE" | jq -r '.quote.appData') + +# Validate that we got valid values +if [ "$BUY_AMOUNT_B" = "null" ] || [ "$VALID_TO_B" = "null" ]; then + echo "โŒ Quote returned null values:" + echo "$QUOTE_B_RESPONSE" | jq . + exit 1 +fi + +echo " Quote received:" +echo " Sell amount: $(echo "scale=2; $SELL_AMOUNT_B / 1000000" | bc) USDC" +echo " Buy amount: $(cast --from-wei $BUY_AMOUNT_B 2>/dev/null || echo $BUY_AMOUNT_B) WETH" +echo " Fee: $(echo "scale=2; $FEE_AMOUNT_B / 1000000" | bc) USDC" +echo " Valid until: $VALID_TO_B" +echo "" + +# Sign Order B with fee set to 0 for offline mode +ORDER_B_UNSIGNED='{ + "sellToken": "'$USDC_ADDRESS'", + "buyToken": "'$WETH_ADDRESS'", + "receiver": "'$TRADER_B'", + "sellAmount": "200000000", + "buyAmount": "'$BUY_AMOUNT_B'", + "validTo": '$VALID_TO_B', + "appData": "'$APP_DATA_HASH_B'", + "feeAmount": "0", + "kind": "sell", + "partiallyFillable": false, + "sellTokenBalance": "erc20", + "buyTokenBalance": "erc20", + "chainId": '$CHAIN_ID', + "settlement": "'$SETTLEMENT_CONTRACT'" +}' + +ORDER_B_SIGNED=$(python3 poc-offline-mode/scripts/sign_order.py "$TRADER_B_KEY" "$ORDER_B_UNSIGNED") + +echo "๐Ÿ“ค Posting Order B..." +ORDER_B_RESPONSE=$(curl -s -X POST "http://$HOST/api/v1/orders" \ + -H 'Content-Type: application/json' \ + -d "$ORDER_B_SIGNED" || echo "failed") + +echo "Response: $ORDER_B_RESPONSE" +echo "" + +echo "โณ Waiting for autopilot to match orders and create settlement..." +echo " (Checking every 5 seconds for up to 2 minutes)" +echo "" + +# Extract order UIDs from responses +ORDER_A_UID=$(echo "$ORDER_A_RESPONSE" | tr -d '"') +ORDER_B_UID=$(echo "$ORDER_B_RESPONSE" | tr -d '"') + +echo " Order A UID: ${ORDER_A_UID:0:20}..." +echo " Order B UID: ${ORDER_B_UID:0:20}..." +echo "" + +# Function to check order status +check_order_status() { + local order_uid=$1 + local order_data=$(curl -s "http://$HOST/api/v1/orders/$order_uid" 2>/dev/null) + echo "$order_data" | jq -r '.status' 2>/dev/null || echo "unknown" +} + +# Wait for orders to be settled (max 2 minutes) +MAX_WAIT=120 +ELAPSED=0 +SETTLEMENT_FOUND=false + +while [ $ELAPSED -lt $MAX_WAIT ]; do + ORDER_A_STATUS=$(check_order_status "$ORDER_A_UID") + ORDER_B_STATUS=$(check_order_status "$ORDER_B_UID") + + echo " [$ELAPSED s] Order A: $ORDER_A_STATUS | Order B: $ORDER_B_STATUS" + + # Check if BOTH orders are fulfilled/traded (peer-to-peer matching) + if ([ "$ORDER_A_STATUS" = "fulfilled" ] || [ "$ORDER_A_STATUS" = "traded" ]) && \ + ([ "$ORDER_B_STATUS" = "fulfilled" ] || [ "$ORDER_B_STATUS" = "traded" ]); then + SETTLEMENT_FOUND=true + echo "" + echo "โœ… Both orders settled successfully!" + break + fi + + sleep 5 + ELAPSED=$((ELAPSED + 5)) +done + +if [ "$SETTLEMENT_FOUND" = false ]; then + echo "" + echo "โŒ ERROR: Orders were not settled within $MAX_WAIT seconds" + echo "" + echo "Final status:" + echo " Order A: $ORDER_A_STATUS" + echo " Order B: $ORDER_B_STATUS" + echo "" + echo "Driver logs (last 30 lines):" + docker-compose -f docker-compose.offline.yml logs driver --tail=30 2>&1 | grep -E "(error|Error|ERROR|settlement|solution)" || echo "No relevant logs found" + exit 1 +fi + +echo "" +echo "๐Ÿ” Verifying settlement transaction..." + +# Get settlement transaction from driver logs +SETTLEMENT_TX=$(docker-compose -f docker-compose.offline.yml logs driver --since 3m 2>&1 | \ + grep -oE "0x[a-fA-F0-9]{64}" | grep -v "0x0000000000000000000000000000000000000000000000000000000000000000" | tail -1) + +if [ -n "$SETTLEMENT_TX" ]; then + echo " Settlement TX: $SETTLEMENT_TX" +fi + +echo "" +echo "๐Ÿ“Š Checking final balances..." +echo "" + +# Function to parse balance and remove brackets/scientific notation +parse_balance() { + local raw_value=$1 + # Remove brackets and whitespace, extract just the number + echo "$raw_value" | sed 's/\[//g' | sed 's/\]//g' | awk '{print $1}' +} + +# Check final balances +FINAL_BALANCE_A_WETH_RAW=$(cast call $WETH_ADDRESS --rpc-url $RPC_URL "balanceOf(address)(uint256)" $TRADER_A) +FINAL_BALANCE_A_USDC_RAW=$(cast call $USDC_ADDRESS --rpc-url $RPC_URL "balanceOf(address)(uint256)" $TRADER_A) +FINAL_BALANCE_B_WETH_RAW=$(cast call $WETH_ADDRESS --rpc-url $RPC_URL "balanceOf(address)(uint256)" $TRADER_B) +FINAL_BALANCE_B_USDC_RAW=$(cast call $USDC_ADDRESS --rpc-url $RPC_URL "balanceOf(address)(uint256)" $TRADER_B) + +FINAL_BALANCE_A_WETH=$(parse_balance "$FINAL_BALANCE_A_WETH_RAW") +FINAL_BALANCE_A_USDC=$(parse_balance "$FINAL_BALANCE_A_USDC_RAW") +FINAL_BALANCE_B_WETH=$(parse_balance "$FINAL_BALANCE_B_WETH_RAW") +FINAL_BALANCE_B_USDC=$(parse_balance "$FINAL_BALANCE_B_USDC_RAW") + +BALANCE_A_CLEAN=$(parse_balance "$BALANCE_A") +BALANCE_B_CLEAN=$(parse_balance "$BALANCE_B") + +echo "Trader A (sold WETH for USDC):" +echo " WETH: $(cast --to-unit $FINAL_BALANCE_A_WETH ether 2>/dev/null || echo "$(echo "scale=4; $FINAL_BALANCE_A_WETH / 1000000000000000000" | bc) ETH") (was: $(cast --to-unit $BALANCE_A_CLEAN ether 2>/dev/null || echo "$(echo "scale=4; $BALANCE_A_CLEAN / 1000000000000000000" | bc) ETH"))" +echo " USDC: $(echo "scale=2; $FINAL_BALANCE_A_USDC / 1000000" | bc)" +echo "" +echo "Trader B (sold USDC for WETH):" +echo " WETH: $(cast --to-unit $FINAL_BALANCE_B_WETH ether 2>/dev/null || echo "$(echo "scale=4; $FINAL_BALANCE_B_WETH / 1000000000000000000" | bc) ETH")" +echo " USDC: $(echo "scale=2; $FINAL_BALANCE_B_USDC / 1000000" | bc) (was: $(echo "scale=2; $BALANCE_B_CLEAN / 1000000" | bc))" +echo "" + +# Verify balances changed (use bc for comparison to handle large numbers) +A_USDC_GT_ZERO=$(echo "$FINAL_BALANCE_A_USDC > 0" | bc) +B_WETH_GT_ZERO=$(echo "$FINAL_BALANCE_B_WETH > 0" | bc) + +if [ "$A_USDC_GT_ZERO" = "1" ] && [ "$B_WETH_GT_ZERO" = "1" ]; then + echo "โœ… Balances updated correctly - trades executed!" +else + echo "โŒ Balances did not change as expected" + echo " Trader A USDC: $FINAL_BALANCE_A_USDC" + echo " Trader B WETH: $FINAL_BALANCE_B_WETH" + exit 1 +fi + +echo "" +echo "๐ŸŽ‰ TEST PASSED - CoW Protocol offline mode working correctly!" +echo "============================================================="