From c3f4ee88e1f39018304274dc67b1c60a0db6a63d Mon Sep 17 00:00:00 2001 From: Tomasz Polaczyk Date: Mon, 6 Mar 2023 13:57:58 +0100 Subject: [PATCH 1/5] allow calling proxy.proxy from smart contracts in moonbase --- precompiles/proxy/src/lib.rs | 32 +++++++++++++++++++++++++++++ precompiles/proxy/src/mock.rs | 2 +- runtime/moonbase/src/precompiles.rs | 4 ++-- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/precompiles/proxy/src/lib.rs b/precompiles/proxy/src/lib.rs index 4ae519a8e7..b31e788478 100644 --- a/precompiles/proxy/src/lib.rs +++ b/precompiles/proxy/src/lib.rs @@ -70,6 +70,38 @@ where } } +#[derive(Debug)] +pub struct OnlyIsProxyAndProxy(PhantomData); + +impl SelectorFilter for OnlyIsProxyAndProxy +where + Runtime: pallet_proxy::Config + pallet_evm::Config + frame_system::Config, + <::RuntimeCall as Dispatchable>::RuntimeOrigin: + From>, + ::ProxyType: Decode + EvmProxyCallFilter, + ::RuntimeCall: + Dispatchable + GetDispatchInfo, + <::RuntimeCall as Dispatchable>::RuntimeOrigin: + From>, + ::RuntimeCall: From>, +{ + fn is_allowed(_caller: H160, selector: Option) -> bool { + match selector { + None => false, + Some(selector) => { + ProxyPrecompileCall::::is_proxy_selectors().contains(&selector) + || ProxyPrecompileCall::::proxy_selectors().contains(&selector) + || ProxyPrecompileCall::::proxy_force_type_selectors() + .contains(&selector) + } + } + } + + fn description() -> String { + "Allowed for all callers only for selectors 'is_proxy', 'proxy', 'proxy_force_type'".into() + } +} + pub const CALL_DATA_LIMIT: u32 = 2u32.pow(16); type GetCallDataLimit = ConstU32; diff --git a/precompiles/proxy/src/mock.rs b/precompiles/proxy/src/mock.rs index 97c3aa6a39..cf01caa794 100644 --- a/precompiles/proxy/src/mock.rs +++ b/precompiles/proxy/src/mock.rs @@ -108,7 +108,7 @@ pub type Precompiles = PrecompileSetBuilder< ProxyPrecompile, ( SubcallWithMaxNesting<1>, - CallableByContract>, + CallableByContract>, ), >, ), diff --git a/runtime/moonbase/src/precompiles.rs b/runtime/moonbase/src/precompiles.rs index e2255016a2..7fb8c103f1 100644 --- a/runtime/moonbase/src/precompiles.rs +++ b/runtime/moonbase/src/precompiles.rs @@ -34,7 +34,7 @@ use pallet_evm_precompile_democracy::DemocracyPrecompile; use pallet_evm_precompile_modexp::Modexp; use pallet_evm_precompile_parachain_staking::ParachainStakingPrecompile; use pallet_evm_precompile_preimage::PreimagePrecompile; -use pallet_evm_precompile_proxy::{OnlyIsProxy, ProxyPrecompile}; +use pallet_evm_precompile_proxy::{OnlyIsProxyAndProxy, ProxyPrecompile}; use pallet_evm_precompile_randomness::RandomnessPrecompile; use pallet_evm_precompile_referenda::ReferendaPrecompile; use pallet_evm_precompile_relay_encoder::RelayEncoderPrecompile; @@ -173,7 +173,7 @@ type MoonbasePrecompilesAt = ( AddressU64<2059>, ProxyPrecompile, ( - CallableByContract>, + CallableByContract>, SubcallWithMaxNesting<0>, // Batch is the only precompile allowed to call Proxy. CallableByPrecompile>>, From 770fe99846f390c84da96fc2cbc55e9b503da0a3 Mon Sep 17 00:00:00 2001 From: Tomasz Polaczyk Date: Tue, 7 Mar 2023 11:42:34 +0100 Subject: [PATCH 2/5] Remove redundant is_precompile check This was actually preventing the batch precompile from being able to call proxy precompile --- precompiles/proxy/src/lib.rs | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/precompiles/proxy/src/lib.rs b/precompiles/proxy/src/lib.rs index b31e788478..4c4b14683e 100644 --- a/precompiles/proxy/src/lib.rs +++ b/precompiles/proxy/src/lib.rs @@ -18,7 +18,7 @@ #![feature(assert_matches)] use evm::ExitReason; -use fp_evm::{Context, PrecompileFailure, PrecompileHandle, PrecompileSet, Transfer}; +use fp_evm::{Context, PrecompileFailure, PrecompileHandle, Transfer}; use frame_support::dispatch::{Dispatchable, GetDispatchInfo, PostDispatchInfo}; use pallet_evm::AddressMapping; use pallet_proxy::Call as ProxyCall; @@ -32,7 +32,7 @@ use sp_core::H160; use sp_core::U256; use sp_runtime::{ codec::Decode, - traits::{ConstU32, Get, StaticLookup, Zero}, + traits::{ConstU32, StaticLookup, Zero}, }; use sp_std::marker::PhantomData; @@ -333,14 +333,6 @@ where force_proxy_type: Option<::ProxyType>, evm_subcall: EvmSubCall, ) -> EvmResult { - // Proxied call can be dispatched by users only. - // We should forbid precompiles here because pre_check allows precompiles. - if ::PrecompilesValue::get() - .is_precompile(handle.context().caller) - { - return Err(revert("Proxy.proxy not callable by precompiles")); - } - // Read proxy let real_account_id = Runtime::AddressMapping::into_account_id(real.clone().into()); let who = Runtime::AddressMapping::into_account_id(handle.context().caller); From c1a2d78d43d8b63663ffa5f55d4192f5da4971bf Mon Sep 17 00:00:00 2001 From: Tomasz Polaczyk Date: Tue, 7 Mar 2023 11:43:18 +0100 Subject: [PATCH 3/5] Add tests proxy.proxy can be called from smart contracts and allowed precompiles --- precompiles/proxy/src/mock.rs | 6 +- precompiles/proxy/src/tests.rs | 104 ++++++++++++++++++++++++++++++++- 2 files changed, 108 insertions(+), 2 deletions(-) diff --git a/precompiles/proxy/src/mock.rs b/precompiles/proxy/src/mock.rs index cf01caa794..fccc38f7d6 100644 --- a/precompiles/proxy/src/mock.rs +++ b/precompiles/proxy/src/mock.rs @@ -24,7 +24,8 @@ use frame_support::{ use pallet_evm::{EnsureAddressNever, EnsureAddressOrigin, SubstrateBlockHashMapping}; use precompile_utils::{ precompile_set::{ - AddressU64, CallableByContract, PrecompileAt, PrecompileSetBuilder, SubcallWithMaxNesting, + AddressU64, CallableByContract, CallableByPrecompile, OnlyFrom, PrecompileAt, + PrecompileSetBuilder, RevertPrecompile, SubcallWithMaxNesting, }, testing::MockAccount, }; @@ -109,8 +110,11 @@ pub type Precompiles = PrecompileSetBuilder< ( SubcallWithMaxNesting<1>, CallableByContract>, + // Batch is the only precompile allowed to call Proxy. + CallableByPrecompile>>, ), >, + RevertPrecompile>, ), >; diff --git a/precompiles/proxy/src/tests.rs b/precompiles/proxy/src/tests.rs index 72025cd5f5..6f12f69b4a 100644 --- a/precompiles/proxy/src/tests.rs +++ b/precompiles/proxy/src/tests.rs @@ -18,6 +18,7 @@ use crate::mock::{ AccountId, ExtBuilder, PCall, PrecompilesValue, ProxyType, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, }; +use evm::{ExitReason, ExitSucceed}; use frame_support::{assert_ok, dispatch::Dispatchable}; use pallet_evm::Call as EvmCall; use pallet_proxy::{ @@ -25,7 +26,9 @@ use pallet_proxy::{ }; use precompile_utils::precompile_set::AddressU64; use precompile_utils::{assert_event_emitted, assert_event_not_emitted, prelude::*, testing::*}; -use sp_core::{Get, H160, U256}; +use sp_core::{Get, H160, H256, U256}; +use std::cell::Cell; +use std::rc::Rc; use std::str::from_utf8; #[test] @@ -686,3 +689,102 @@ fn proxy_proxy_should_fail_if_called_by_precompile() { .execute_reverts(|output| output == b"Function not callable by precompiles"); }) } + +#[test] +fn proxy_proxy_should_succeed_if_called_by_allowed_precompile() { + // "Not proxy" means that the security filter has passed, so the call to proxy.proxy would work + // if we had done a proxy.add_proxy before. + ExtBuilder::default() + .with_balances(vec![ + (AddressU64::<1>::get().into(), 1000), + (Bob.into(), 1000), + ]) + .build() + .execute_with(|| { + PrecompilesValue::get() + .prepare_test( + // Address<2> allowed in mock.rs + AddressU64::<2>::get(), + Precompile1, + PCall::proxy { + real: Address(Alice.into()), + call_to: Address(Bob.into()), + call_data: BoundedBytes::from([]), + }, + ) + .execute_reverts(|output| output == b"Not proxy"); + }) +} + +#[test] +fn proxy_proxy_should_succeed_if_called_by_smart_contract() { + ExtBuilder::default() + .with_balances(vec![ + (AddressU64::<1>::get().into(), 1000), + (Bob.into(), 1000), + ]) + .build() + .execute_with(|| { + // Set code to Alice address as it if was a smart contract. + pallet_evm::AccountCodes::::insert(H160::from(Alice), vec![10u8]); + + // Bob allows Alice to make calls on his behalf + assert_ok!(RuntimeCall::Proxy(ProxyCall::add_proxy { + delegate: Alice.into(), + proxy_type: ProxyType::Any, + delay: 0, + }) + .dispatch(RuntimeOrigin::signed(Bob.into()))); + + let inside = Rc::new(Cell::new(false)); + let inside2 = inside.clone(); + + // The smart contract calls proxy.proxy to call address Charlie as if it was Bob + PrecompilesValue::get() + .prepare_test( + Alice, + Precompile1, + PCall::proxy { + real: Address(Bob.into()), + call_to: Address(Charlie.into()), + call_data: BoundedBytes::from([1]), + }, + ) + .with_subcall_handle(move |subcall| { + let Subcall { + address, + transfer, + input, + target_gas: _, + is_static, + context, + } = subcall; + + assert_eq!(context.caller, Bob.into()); + assert_eq!(address, Charlie.into()); + assert_eq!(is_static, false); + + assert!(transfer.is_none()); + + assert_eq!(context.address, Charlie.into()); + assert_eq!(context.apparent_value, 0u8.into()); + + assert_eq!(&input, &[1]); + + inside2.set(true); + + SubcallOutput { + reason: ExitReason::Succeed(ExitSucceed::Returned), + output: b"TEST".to_vec(), + cost: 13, + logs: vec![log1(Bob, H256::repeat_byte(0x11), vec![])], + } + }) + .execute_returns_encoded(()); + + // Ensure that the subcall was actually called. + // proxy.proxy does not propagate the return value, so we cannot check for the return + // value "TEST" + assert!(inside.get(), "subcall not called"); + }) +} From 6177b7b7866401d313841e5c05933a1528d06efe Mon Sep 17 00:00:00 2001 From: Tomasz Polaczyk Date: Tue, 7 Mar 2023 12:40:46 +0100 Subject: [PATCH 4/5] Rename proxy_force_type to proxyForceType --- precompiles/proxy/Proxy.sol | 12 ++++++------ precompiles/proxy/src/lib.rs | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/precompiles/proxy/Proxy.sol b/precompiles/proxy/Proxy.sol index 8959fb052b..acb3feda8a 100644 --- a/precompiles/proxy/Proxy.sol +++ b/precompiles/proxy/Proxy.sol @@ -51,8 +51,8 @@ interface Proxy { /// @custom:selector 14a5b5fa function removeProxies() external; - /// @dev Dispatch the given subcall (`call_to`, `call_data`) from an account that the sender - /// is authorised for through `add_proxy` + /// @dev Dispatch the given subcall (`callTo`, `callData`) from an account that the sender + /// is authorised for through `addProxy` /// @custom:selector 0d3cff86 /// @param real The account that the proxy will make a call on behalf of /// @param callTo Recipient of the call to be made by the `real` account @@ -63,14 +63,14 @@ interface Proxy { bytes memory callData ) external payable; - /// @dev Dispatch the given subcall (`call_to`, `call_data`) from an account that the sender - /// is authorised for through `add_proxy` - /// @custom:selector 4a36b2cd + /// @dev Dispatch the given subcall (`callTo`, `callData`) from an account that the sender + /// is authorised for through `addProxy` + /// @custom:selector 685b9d2f /// @param real The account that the proxy will make a call on behalf of /// @param forceProxyType Specify the exact proxy type to be used and checked for this call /// @param callTo Recipient of the call to be made by the `real` account /// @param callData Data of the call to be made by the `real` account - function proxy_force_type( + function proxyForceType( address real, ProxyType forceProxyType, address callTo, diff --git a/precompiles/proxy/src/lib.rs b/precompiles/proxy/src/lib.rs index 4c4b14683e..dd9966a2e0 100644 --- a/precompiles/proxy/src/lib.rs +++ b/precompiles/proxy/src/lib.rs @@ -270,6 +270,7 @@ where /// - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. /// - `call_to`: Recipient of the call to be made by the `real` account. /// - `call_data`: Data of the call to be made by the `real` account. + #[precompile::public("proxyForceType(address,uint8,address,bytes)")] #[precompile::public("proxy_force_type(address,uint8,address,bytes)")] #[precompile::payable] fn proxy_force_type( From 570a33e2e4e91d366036a7fdfa50cc498c7d1657 Mon Sep 17 00:00:00 2001 From: Tomasz Polaczyk Date: Tue, 7 Mar 2023 12:41:24 +0100 Subject: [PATCH 5/5] Compile contracts --- tests/contracts/compiled/AuthorMapping.json | 68 +++++- tests/contracts/compiled/Proxy.json | 16 +- tests/contracts/compiled/ProxyLeaderDemo.json | 16 +- tests/contracts/compiled/Referenda.json | 206 +++++++++++++++++- .../compiled/ReferendaAutoUpgradeDemo.json | 2 +- .../compiled/ReferendaAutoUpgradeDemoV1.json | 28 +-- .../compiled/ReferendaAutoUpgradeDemoV2.json | 28 +-- .../contracts/compiled/ReferendaChecker.json | 16 +- 8 files changed, 322 insertions(+), 58 deletions(-) diff --git a/tests/contracts/compiled/AuthorMapping.json b/tests/contracts/compiled/AuthorMapping.json index 1757fd7f58..609c95c688 100644 --- a/tests/contracts/compiled/AuthorMapping.json +++ b/tests/contracts/compiled/AuthorMapping.json @@ -11,6 +11,17 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { "internalType": "bytes32", "name": "nimbusId", "type": "bytes32" } + ], + "name": "addressOf", + "outputs": [ + { "internalType": "address", "name": "", "type": "address" } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "bytes32", "name": "nimbusId", "type": "bytes32" } @@ -20,6 +31,28 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { "internalType": "bytes32", "name": "nimbusId", "type": "bytes32" } + ], + "name": "keysOf", + "outputs": [ + { "internalType": "bytes", "name": "keys", "type": "bytes" } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "who", "type": "address" } + ], + "name": "nimbusIdOf", + "outputs": [ + { "internalType": "bytes32", "name": "", "type": "bytes32" } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "removeKeys", @@ -66,11 +99,39 @@ "details": "Add association", "params": { "nimbusId": "The nimbusId to be associated" } }, + "addressOf(bytes32)": { + "custom:selector": "bb34534c", + "details": "Get the address of the given nimbus ID", + "params": { + "nimbusId": "The nimbus ID for which we want to know the address" + }, + "returns": { + "_0": "address The address, or zero if this nimbus ID is unknown." + } + }, "clearAssociation(bytes32)": { "custom:selector": "448b54d6", "details": "Clear existing association", "params": { "nimbusId": "The nimbusId to be cleared" } }, + "keysOf(bytes32)": { + "custom:selector": "089b7a68", + "details": "Get the keys of the given nimbus ID", + "params": { + "nimbusId": "The nimbus ID for which we want to know the keys" + }, + "returns": { "keys": "Keys, or empty if this nimbus ID is unknown." } + }, + "nimbusIdOf(address)": { + "custom:selector": "3cb194f2", + "details": "Get the nimbus ID of the given addresss", + "params": { + "who": "The address for which we want to know the nimbus id" + }, + "returns": { + "_0": "id The nimbus ID, or zero if this address don't have a nimbus ID." + } + }, "removeKeys()": { "custom:selector": "a36fee17", "details": "Remove keys" @@ -115,16 +176,19 @@ "legacyAssembly": null, "methodIdentifiers": { "addAssociation(bytes32)": "ef8b6cd8", + "addressOf(bytes32)": "bb34534c", "clearAssociation(bytes32)": "448b54d6", + "keysOf(bytes32)": "089b7a68", + "nimbusIdOf(address)": "3cb194f2", "removeKeys()": "a36fee17", "setKeys(bytes)": "f1ec919c", "updateAssociation(bytes32,bytes32)": "25a39da5" } }, "ewasm": { "wasm": "" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nimbusId\",\"type\":\"bytes32\"}],\"name\":\"addAssociation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nimbusId\",\"type\":\"bytes32\"}],\"name\":\"clearAssociation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeKeys\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"keys\",\"type\":\"bytes\"}],\"name\":\"setKeys\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"oldNimbusId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newNimbusId\",\"type\":\"bytes32\"}],\"name\":\"updateAssociation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Moonbeam Team\",\"custom:address\":\"0x0000000000000000000000000000000000000807\",\"details\":\"The interface through which solidity contracts will interact with pallet-author.mapping\",\"kind\":\"dev\",\"methods\":{\"addAssociation(bytes32)\":{\"custom:selector\":\"ef8b6cd8\",\"details\":\"Add association\",\"params\":{\"nimbusId\":\"The nimbusId to be associated\"}},\"clearAssociation(bytes32)\":{\"custom:selector\":\"448b54d6\",\"details\":\"Clear existing association\",\"params\":{\"nimbusId\":\"The nimbusId to be cleared\"}},\"removeKeys()\":{\"custom:selector\":\"a36fee17\",\"details\":\"Remove keys\"},\"setKeys(bytes)\":{\"custom:selector\":\"f1ec919c\",\"details\":\"Set keys\",\"params\":{\"keys\":\"The new session keys\"}},\"updateAssociation(bytes32,bytes32)\":{\"custom:selector\":\"25a39da5\",\"details\":\"Update existing association\",\"params\":{\"newNimbusId\":\"The new nimbusId to be associated\",\"oldNimbusId\":\"The old nimbusId to be replaced\"}}},\"title\":\"Pallet AuthorMapping Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"AuthorMapping\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"main.sol\":{\"keccak256\":\"0x9e26bde1df7c18ce8895281dba5786f9669cc1c0e2dbb5f69aeecb2d065ab8a8\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://9fe4c69a11fa68d4fc5e2cd6b9882eb7e0c0df747e7bec20b6db906147ee6429\",\"dweb:/ipfs/QmUmmzfWkd6iYXP1P8nWL4jwaduBDWHUvj1Rhnu5pKA9pz\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nimbusId\",\"type\":\"bytes32\"}],\"name\":\"addAssociation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nimbusId\",\"type\":\"bytes32\"}],\"name\":\"addressOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nimbusId\",\"type\":\"bytes32\"}],\"name\":\"clearAssociation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nimbusId\",\"type\":\"bytes32\"}],\"name\":\"keysOf\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"keys\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"nimbusIdOf\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeKeys\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"keys\",\"type\":\"bytes\"}],\"name\":\"setKeys\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"oldNimbusId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newNimbusId\",\"type\":\"bytes32\"}],\"name\":\"updateAssociation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Moonbeam Team\",\"custom:address\":\"0x0000000000000000000000000000000000000807\",\"details\":\"The interface through which solidity contracts will interact with pallet-author.mapping\",\"kind\":\"dev\",\"methods\":{\"addAssociation(bytes32)\":{\"custom:selector\":\"ef8b6cd8\",\"details\":\"Add association\",\"params\":{\"nimbusId\":\"The nimbusId to be associated\"}},\"addressOf(bytes32)\":{\"custom:selector\":\"bb34534c\",\"details\":\"Get the address of the given nimbus ID\",\"params\":{\"nimbusId\":\"The nimbus ID for which we want to know the address\"},\"returns\":{\"_0\":\"address The address, or zero if this nimbus ID is unknown.\"}},\"clearAssociation(bytes32)\":{\"custom:selector\":\"448b54d6\",\"details\":\"Clear existing association\",\"params\":{\"nimbusId\":\"The nimbusId to be cleared\"}},\"keysOf(bytes32)\":{\"custom:selector\":\"089b7a68\",\"details\":\"Get the keys of the given nimbus ID\",\"params\":{\"nimbusId\":\"The nimbus ID for which we want to know the keys\"},\"returns\":{\"keys\":\"Keys, or empty if this nimbus ID is unknown.\"}},\"nimbusIdOf(address)\":{\"custom:selector\":\"3cb194f2\",\"details\":\"Get the nimbus ID of the given addresss\",\"params\":{\"who\":\"The address for which we want to know the nimbus id\"},\"returns\":{\"_0\":\"id The nimbus ID, or zero if this address don't have a nimbus ID.\"}},\"removeKeys()\":{\"custom:selector\":\"a36fee17\",\"details\":\"Remove keys\"},\"setKeys(bytes)\":{\"custom:selector\":\"f1ec919c\",\"details\":\"Set keys\",\"params\":{\"keys\":\"The new session keys\"}},\"updateAssociation(bytes32,bytes32)\":{\"custom:selector\":\"25a39da5\",\"details\":\"Update existing association\",\"params\":{\"newNimbusId\":\"The new nimbusId to be associated\",\"oldNimbusId\":\"The old nimbusId to be replaced\"}}},\"title\":\"Pallet AuthorMapping Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"AuthorMapping\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"main.sol\":{\"keccak256\":\"0x1e698fc651f571790d36b9d0031988cb120d8b4f428146d68d1a2ea7168bf968\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://efc78fa4413329edea12a74d3f75e7bc56c04186b2f6a8e082154c1ca5d1e164\",\"dweb:/ipfs/QmecwhAZykF6aubyE6AxD2KVPg6mH2QE9M466kkUvwPJWy\"]}},\"version\":1}", "storageLayout": { "storage": [], "types": null }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, - "sourceCode": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity >=0.8.3;\n\n/// @dev The AuthorMapping contract's address.\naddress constant AUTHOR_MAPPING_ADDRESS = 0x0000000000000000000000000000000000000807;\n\n/// @dev The AuthorMapping contract's instance.\nAuthorMapping constant AUTHOR_MAPPING_CONTRACT = AuthorMapping(\n AUTHOR_MAPPING_ADDRESS\n);\n\n/// @author The Moonbeam Team\n/// @title Pallet AuthorMapping Interface\n/// @dev The interface through which solidity contracts will interact with pallet-author.mapping\n/// @custom:address 0x0000000000000000000000000000000000000807\ninterface AuthorMapping {\n /// @dev Add association\n /// @custom:selector ef8b6cd8\n ///\n /// @param nimbusId The nimbusId to be associated\n function addAssociation(bytes32 nimbusId) external;\n\n /// @dev Update existing association\n /// @custom:selector 25a39da5\n ///\n /// @param oldNimbusId The old nimbusId to be replaced\n /// @param newNimbusId The new nimbusId to be associated\n function updateAssociation(bytes32 oldNimbusId, bytes32 newNimbusId)\n external;\n\n /// @dev Clear existing association\n /// @custom:selector 448b54d6\n ///\n /// @param nimbusId The nimbusId to be cleared\n function clearAssociation(bytes32 nimbusId) external;\n\n /// @dev Remove keys\n /// @custom:selector a36fee17\n ///\n function removeKeys() external;\n\n /// @dev Set keys\n /// @custom:selector f1ec919c\n ///\n /// @param keys The new session keys\n function setKeys(bytes memory keys) external;\n}\n" + "sourceCode": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity >=0.8.3;\n\n/// @dev The AuthorMapping contract's address.\naddress constant AUTHOR_MAPPING_ADDRESS = 0x0000000000000000000000000000000000000807;\n\n/// @dev The AuthorMapping contract's instance.\nAuthorMapping constant AUTHOR_MAPPING_CONTRACT = AuthorMapping(\n AUTHOR_MAPPING_ADDRESS\n);\n\n/// @author The Moonbeam Team\n/// @title Pallet AuthorMapping Interface\n/// @dev The interface through which solidity contracts will interact with pallet-author.mapping\n/// @custom:address 0x0000000000000000000000000000000000000807\ninterface AuthorMapping {\n /// @dev Add association\n /// @custom:selector ef8b6cd8\n ///\n /// @param nimbusId The nimbusId to be associated\n function addAssociation(bytes32 nimbusId) external;\n\n /// @dev Update existing association\n /// @custom:selector 25a39da5\n ///\n /// @param oldNimbusId The old nimbusId to be replaced\n /// @param newNimbusId The new nimbusId to be associated\n function updateAssociation(bytes32 oldNimbusId, bytes32 newNimbusId)\n external;\n\n /// @dev Clear existing association\n /// @custom:selector 448b54d6\n ///\n /// @param nimbusId The nimbusId to be cleared\n function clearAssociation(bytes32 nimbusId) external;\n\n /// @dev Remove keys\n /// @custom:selector a36fee17\n ///\n function removeKeys() external;\n\n /// @dev Set keys\n /// @custom:selector f1ec919c\n ///\n /// @param keys The new session keys\n function setKeys(bytes memory keys) external;\n\n /// @dev Get the nimbus ID of the given addresss\n ///\n /// @custom:selector 3cb194f2\n /// @param who The address for which we want to know the nimbus id\n /// @return id The nimbus ID, or zero if this address don't have a nimbus ID.\n function nimbusIdOf(address who) external returns (bytes32);\n\n /// @dev Get the address of the given nimbus ID\n ///\n /// @custom:selector bb34534c\n /// @param nimbusId The nimbus ID for which we want to know the address\n /// @return address The address, or zero if this nimbus ID is unknown.\n function addressOf(bytes32 nimbusId) external returns (address);\n\n /// @dev Get the keys of the given nimbus ID\n ///\n /// @custom:selector 089b7a68\n /// @param nimbusId The nimbus ID for which we want to know the keys\n /// @return keys Keys, or empty if this nimbus ID is unknown.\n function keysOf(bytes32 nimbusId) external returns (bytes memory keys);\n}\n" } diff --git a/tests/contracts/compiled/Proxy.json b/tests/contracts/compiled/Proxy.json index f46a410614..c440f423b5 100644 --- a/tests/contracts/compiled/Proxy.json +++ b/tests/contracts/compiled/Proxy.json @@ -57,7 +57,7 @@ { "internalType": "address", "name": "callTo", "type": "address" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], - "name": "proxy_force_type", + "name": "proxyForceType", "outputs": [], "stateMutability": "payable", "type": "function" @@ -112,16 +112,16 @@ }, "proxy(address,address,bytes)": { "custom:selector": "0d3cff86", - "details": "Dispatch the given subcall (`call_to`, `call_data`) from an account that the sender is authorised for through `add_proxy`", + "details": "Dispatch the given subcall (`callTo`, `callData`) from an account that the sender is authorised for through `addProxy`", "params": { "callData": "Data of the call to be made by the `real` account", "callTo": "Recipient of the call to be made by the `real` account", "real": "The account that the proxy will make a call on behalf of" } }, - "proxy_force_type(address,uint8,address,bytes)": { - "custom:selector": "4a36b2cd", - "details": "Dispatch the given subcall (`call_to`, `call_data`) from an account that the sender is authorised for through `add_proxy`", + "proxyForceType(address,uint8,address,bytes)": { + "custom:selector": "685b9d2f", + "details": "Dispatch the given subcall (`callTo`, `callData`) from an account that the sender is authorised for through `addProxy`", "params": { "callData": "Data of the call to be made by the `real` account", "callTo": "Recipient of the call to be made by the `real` account", @@ -171,15 +171,15 @@ "addProxy(address,uint8,uint32)": "74a34dd3", "isProxy(address,address,uint8,uint32)": "e26d38ed", "proxy(address,address,bytes)": "0d3cff86", - "proxy_force_type(address,uint8,address,bytes)": "4a36b2cd", + "proxyForceType(address,uint8,address,bytes)": "685b9d2f", "removeProxies()": "14a5b5fa", "removeProxy(address,uint8,uint32)": "fef3f708" } }, "ewasm": { "wasm": "" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"proxyType\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"addProxy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"real\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"proxyType\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"isProxy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"real\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callTo\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"proxy\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"real\",\"type\":\"address\"},{\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"forceProxyType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"callTo\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"proxy_force_type\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeProxies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"proxyType\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"removeProxy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Moonbeam Team\",\"custom:address\":\"0x000000000000000000000000000000000000080b\",\"kind\":\"dev\",\"methods\":{\"addProxy(address,uint8,uint32)\":{\"custom:selector\":\"74a34dd3\",\"details\":\"Register a proxy account for the sender that is able to make calls on its behalf\",\"params\":{\"delay\":\"The announcement period required of the initial proxy, will generally be zero\",\"delegate\":\"The account that the caller would like to make a proxy\",\"proxyType\":\"The permissions allowed for this proxy account\"}},\"isProxy(address,address,uint8,uint32)\":{\"custom:selector\":\"e26d38ed\",\"details\":\"Checks if the caller has an account proxied with a given proxy type\",\"params\":{\"delay\":\"The announcement period required of the initial proxy, will generally be zero\",\"delegate\":\"The account that the caller has maybe proxied\",\"proxyType\":\"The permissions allowed for the proxy\",\"real\":\"The real account that maybe has a proxy\"},\"returns\":{\"exists\":\"True if a proxy exists, False otherwise\"}},\"proxy(address,address,bytes)\":{\"custom:selector\":\"0d3cff86\",\"details\":\"Dispatch the given subcall (`call_to`, `call_data`) from an account that the sender is authorised for through `add_proxy`\",\"params\":{\"callData\":\"Data of the call to be made by the `real` account\",\"callTo\":\"Recipient of the call to be made by the `real` account\",\"real\":\"The account that the proxy will make a call on behalf of\"}},\"proxy_force_type(address,uint8,address,bytes)\":{\"custom:selector\":\"4a36b2cd\",\"details\":\"Dispatch the given subcall (`call_to`, `call_data`) from an account that the sender is authorised for through `add_proxy`\",\"params\":{\"callData\":\"Data of the call to be made by the `real` account\",\"callTo\":\"Recipient of the call to be made by the `real` account\",\"forceProxyType\":\"Specify the exact proxy type to be used and checked for this call\",\"real\":\"The account that the proxy will make a call on behalf of\"}},\"removeProxies()\":{\"custom:selector\":\"14a5b5fa\",\"details\":\"Unregister all proxy accounts for the sender\"},\"removeProxy(address,uint8,uint32)\":{\"custom:selector\":\"fef3f708\",\"details\":\"Register a proxy account for the sender that is able to make calls on its behalf\",\"params\":{\"delay\":\"The announcement period required of the initial proxy, will generally be zero\",\"delegate\":\"The account that the caller would like to remove as a proxy\",\"proxyType\":\"The permissions currently enabled for the removed proxy account\"}}},\"title\":\"Pallet Proxy InterfaceThe interface through which solidity contracts will interact with the Proxy pallet\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"Proxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"main.sol\":{\"keccak256\":\"0x653d089c7d40e00fbd4ec8a81839b97817f1e871edf2fec96c7bf0d8406bd3dd\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://171af4a17ab9d74910fe42184b586f3badf7038cdd991c9d27d1e4400a29b12e\",\"dweb:/ipfs/QmS4qWtDGjHh8wD4jEogaPoLFjfp2UqT9q3zF89kimMALx\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"proxyType\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"addProxy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"real\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"proxyType\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"isProxy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"real\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callTo\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"proxy\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"real\",\"type\":\"address\"},{\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"forceProxyType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"callTo\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"proxyForceType\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeProxies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"proxyType\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"removeProxy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Moonbeam Team\",\"custom:address\":\"0x000000000000000000000000000000000000080b\",\"kind\":\"dev\",\"methods\":{\"addProxy(address,uint8,uint32)\":{\"custom:selector\":\"74a34dd3\",\"details\":\"Register a proxy account for the sender that is able to make calls on its behalf\",\"params\":{\"delay\":\"The announcement period required of the initial proxy, will generally be zero\",\"delegate\":\"The account that the caller would like to make a proxy\",\"proxyType\":\"The permissions allowed for this proxy account\"}},\"isProxy(address,address,uint8,uint32)\":{\"custom:selector\":\"e26d38ed\",\"details\":\"Checks if the caller has an account proxied with a given proxy type\",\"params\":{\"delay\":\"The announcement period required of the initial proxy, will generally be zero\",\"delegate\":\"The account that the caller has maybe proxied\",\"proxyType\":\"The permissions allowed for the proxy\",\"real\":\"The real account that maybe has a proxy\"},\"returns\":{\"exists\":\"True if a proxy exists, False otherwise\"}},\"proxy(address,address,bytes)\":{\"custom:selector\":\"0d3cff86\",\"details\":\"Dispatch the given subcall (`callTo`, `callData`) from an account that the sender is authorised for through `addProxy`\",\"params\":{\"callData\":\"Data of the call to be made by the `real` account\",\"callTo\":\"Recipient of the call to be made by the `real` account\",\"real\":\"The account that the proxy will make a call on behalf of\"}},\"proxyForceType(address,uint8,address,bytes)\":{\"custom:selector\":\"685b9d2f\",\"details\":\"Dispatch the given subcall (`callTo`, `callData`) from an account that the sender is authorised for through `addProxy`\",\"params\":{\"callData\":\"Data of the call to be made by the `real` account\",\"callTo\":\"Recipient of the call to be made by the `real` account\",\"forceProxyType\":\"Specify the exact proxy type to be used and checked for this call\",\"real\":\"The account that the proxy will make a call on behalf of\"}},\"removeProxies()\":{\"custom:selector\":\"14a5b5fa\",\"details\":\"Unregister all proxy accounts for the sender\"},\"removeProxy(address,uint8,uint32)\":{\"custom:selector\":\"fef3f708\",\"details\":\"Register a proxy account for the sender that is able to make calls on its behalf\",\"params\":{\"delay\":\"The announcement period required of the initial proxy, will generally be zero\",\"delegate\":\"The account that the caller would like to remove as a proxy\",\"proxyType\":\"The permissions currently enabled for the removed proxy account\"}}},\"title\":\"Pallet Proxy InterfaceThe interface through which solidity contracts will interact with the Proxy pallet\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"Proxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"main.sol\":{\"keccak256\":\"0x9d59eb41ee8c11786124195dec7704e5776374087eda17d5189c111c68dd2ef3\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://f50cbf8a5441ad2becd6c378ef067bf9d5f3d6358e3793685f7826ac5d26e641\",\"dweb:/ipfs/QmQBJWoRois1ne2XFS6RgdU9cdjL2hiFkD6XtSTyCRghj8\"]}},\"version\":1}", "storageLayout": { "storage": [], "types": null }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, - "sourceCode": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity >=0.8.3;\n\n/// @dev The Proxy contract's address.\naddress constant PROXY_ADDRESS = 0x000000000000000000000000000000000000080b;\n\n/// @dev The Proxy contract's instance.\nProxy constant PROXY_CONTRACT = Proxy(PROXY_ADDRESS);\n\n/// @author The Moonbeam Team\n/// @title Pallet Proxy Interface\n/// @title The interface through which solidity contracts will interact with the Proxy pallet\n/// @custom:address 0x000000000000000000000000000000000000080b\ninterface Proxy {\n /// @dev Defines the proxy permission types.\n /// The values start at `0` (most permissive) and are represented as `uint8`\n enum ProxyType {\n Any,\n NonTransfer,\n Governance,\n Staking,\n CancelProxy,\n Balances,\n AuthorMapping,\n IdentityJudgement\n }\n\n /// @dev Register a proxy account for the sender that is able to make calls on its behalf\n /// @custom:selector 74a34dd3\n /// @param delegate The account that the caller would like to make a proxy\n /// @param proxyType The permissions allowed for this proxy account\n /// @param delay The announcement period required of the initial proxy, will generally be zero\n function addProxy(\n address delegate,\n ProxyType proxyType,\n uint32 delay\n ) external;\n\n /// @dev Register a proxy account for the sender that is able to make calls on its behalf\n /// @custom:selector fef3f708\n /// @param delegate The account that the caller would like to remove as a proxy\n /// @param proxyType The permissions currently enabled for the removed proxy account\n /// @param delay The announcement period required of the initial proxy, will generally be zero\n function removeProxy(\n address delegate,\n ProxyType proxyType,\n uint32 delay\n ) external;\n\n /// @dev Unregister all proxy accounts for the sender\n /// @custom:selector 14a5b5fa\n function removeProxies() external;\n\n /// @dev Dispatch the given subcall (`call_to`, `call_data`) from an account that the sender\n /// is authorised for through `add_proxy`\n /// @custom:selector 0d3cff86\n /// @param real The account that the proxy will make a call on behalf of\n /// @param callTo Recipient of the call to be made by the `real` account\n /// @param callData Data of the call to be made by the `real` account\n function proxy(\n address real,\n address callTo,\n bytes memory callData\n ) external payable;\n\n /// @dev Dispatch the given subcall (`call_to`, `call_data`) from an account that the sender\n /// is authorised for through `add_proxy`\n /// @custom:selector 4a36b2cd\n /// @param real The account that the proxy will make a call on behalf of\n /// @param forceProxyType Specify the exact proxy type to be used and checked for this call\n /// @param callTo Recipient of the call to be made by the `real` account\n /// @param callData Data of the call to be made by the `real` account\n function proxy_force_type(\n address real,\n ProxyType forceProxyType,\n address callTo,\n bytes memory callData\n ) external payable;\n\n /// @dev Checks if the caller has an account proxied with a given proxy type\n /// @custom:selector e26d38ed\n /// @param real The real account that maybe has a proxy\n /// @param delegate The account that the caller has maybe proxied\n /// @param proxyType The permissions allowed for the proxy\n /// @param delay The announcement period required of the initial proxy, will generally be zero\n /// @return exists True if a proxy exists, False otherwise\n function isProxy(\n address real,\n address delegate,\n ProxyType proxyType,\n uint32 delay\n ) external view returns (bool exists);\n}\n" + "sourceCode": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity >=0.8.3;\n\n/// @dev The Proxy contract's address.\naddress constant PROXY_ADDRESS = 0x000000000000000000000000000000000000080b;\n\n/// @dev The Proxy contract's instance.\nProxy constant PROXY_CONTRACT = Proxy(PROXY_ADDRESS);\n\n/// @author The Moonbeam Team\n/// @title Pallet Proxy Interface\n/// @title The interface through which solidity contracts will interact with the Proxy pallet\n/// @custom:address 0x000000000000000000000000000000000000080b\ninterface Proxy {\n /// @dev Defines the proxy permission types.\n /// The values start at `0` (most permissive) and are represented as `uint8`\n enum ProxyType {\n Any,\n NonTransfer,\n Governance,\n Staking,\n CancelProxy,\n Balances,\n AuthorMapping,\n IdentityJudgement\n }\n\n /// @dev Register a proxy account for the sender that is able to make calls on its behalf\n /// @custom:selector 74a34dd3\n /// @param delegate The account that the caller would like to make a proxy\n /// @param proxyType The permissions allowed for this proxy account\n /// @param delay The announcement period required of the initial proxy, will generally be zero\n function addProxy(\n address delegate,\n ProxyType proxyType,\n uint32 delay\n ) external;\n\n /// @dev Register a proxy account for the sender that is able to make calls on its behalf\n /// @custom:selector fef3f708\n /// @param delegate The account that the caller would like to remove as a proxy\n /// @param proxyType The permissions currently enabled for the removed proxy account\n /// @param delay The announcement period required of the initial proxy, will generally be zero\n function removeProxy(\n address delegate,\n ProxyType proxyType,\n uint32 delay\n ) external;\n\n /// @dev Unregister all proxy accounts for the sender\n /// @custom:selector 14a5b5fa\n function removeProxies() external;\n\n /// @dev Dispatch the given subcall (`callTo`, `callData`) from an account that the sender\n /// is authorised for through `addProxy`\n /// @custom:selector 0d3cff86\n /// @param real The account that the proxy will make a call on behalf of\n /// @param callTo Recipient of the call to be made by the `real` account\n /// @param callData Data of the call to be made by the `real` account\n function proxy(\n address real,\n address callTo,\n bytes memory callData\n ) external payable;\n\n /// @dev Dispatch the given subcall (`callTo`, `callData`) from an account that the sender\n /// is authorised for through `addProxy`\n /// @custom:selector 685b9d2f\n /// @param real The account that the proxy will make a call on behalf of\n /// @param forceProxyType Specify the exact proxy type to be used and checked for this call\n /// @param callTo Recipient of the call to be made by the `real` account\n /// @param callData Data of the call to be made by the `real` account\n function proxyForceType(\n address real,\n ProxyType forceProxyType,\n address callTo,\n bytes memory callData\n ) external payable;\n\n /// @dev Checks if the caller has an account proxied with a given proxy type\n /// @custom:selector e26d38ed\n /// @param real The real account that maybe has a proxy\n /// @param delegate The account that the caller has maybe proxied\n /// @param proxyType The permissions allowed for the proxy\n /// @param delay The announcement period required of the initial proxy, will generally be zero\n /// @return exists True if a proxy exists, False otherwise\n function isProxy(\n address real,\n address delegate,\n ProxyType proxyType,\n uint32 delay\n ) external view returns (bool exists);\n}\n" } diff --git a/tests/contracts/compiled/ProxyLeaderDemo.json b/tests/contracts/compiled/ProxyLeaderDemo.json index 8ae3395fc6..cc3aa2ab59 100644 --- a/tests/contracts/compiled/ProxyLeaderDemo.json +++ b/tests/contracts/compiled/ProxyLeaderDemo.json @@ -1,5 +1,5 @@ { - "byteCode": "0x6080604052600360005560ff600155670de0b6b3a764000060025534801561002657600080fd5b5033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006003819055506000600460006101000a81548160ff0219169083151502179055506122da8061011e6000396000f3fe6080604052600436106100e85760003560e01c80635ebaf1db1161008a578063c3403ddf11610059578063c3403ddf146102a1578063c535c733146102b8578063f19e9d81146102e3578063f3baf070146102fa576100e8565b80635ebaf1db146102045780638371e6b41461022f578063adfaa72e14610239578063bb72544014610276576100e8565b80631ec6b60a116100c65780631ec6b60a1461016c5780633706dd4e146101835780633a984bc5146101ae5780635aa68ac0146101d9576100e8565b80630c340a24146100ed5780631afa74e5146101185780631bbef39914610141575b600080fd5b3480156100f957600080fd5b50610102610325565b60405161010f9190611db7565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a9190611e03565b61034b565b005b34801561014d57600080fd5b506101566108a4565b6040516101639190611e5e565b60405180910390f35b34801561017857600080fd5b506101816108b7565b005b34801561018f57600080fd5b50610198610a1d565b6040516101a59190611e92565b60405180910390f35b3480156101ba57600080fd5b506101c3610a23565b6040516101d09190611e92565b60405180910390f35b3480156101e557600080fd5b506101ee610a29565b6040516101fb9190611f6b565b60405180910390f35b34801561021057600080fd5b50610219610ab7565b6040516102269190611db7565b60405180910390f35b610237610add565b005b34801561024557600080fd5b50610260600480360381019061025b9190611f8d565b610ddf565b60405161026d9190611e5e565b60405180910390f35b34801561028257600080fd5b5061028b610ea1565b6040516102989190611e92565b60405180910390f35b3480156102ad57600080fd5b506102b6610ea7565b005b3480156102c457600080fd5b506102cd6116b9565b6040516102da9190611e92565b60405180910390f35b3480156102ef57600080fd5b506102f86116bf565b005b34801561030657600080fd5b5061030f611d70565b60405161031c9190611e92565b60405180910390f35b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900460ff16610391576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff168152602001600182015481525050905060096000600354815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105ea576003546040517fc0afe58d0000000000000000000000000000000000000000000000000000000081526004016105e19190611e92565b60405180910390fd5b826000015161063057836040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106279190611db7565b60405180910390fd5b816000015161067657856040517f76a1be0500000000000000000000000000000000000000000000000000000000815260040161066d9190611db7565b60405180910390fd5b80600001516106bc57846040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106b39190611db7565b60405180910390fd5b600160096000600354815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006003548152602001908152602001600020600080600181111561075357610752611fba565b5b600181111561076557610764611fba565b5b815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107bf9190612018565b925050819055506001600a6000600354815260200190815260200160002060006001808111156107f2576107f1611fba565b5b600181111561080457610803611fba565b5b815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461085e9190612018565b925050819055507f16a9aa39af49f169911e977347975198c503525f7240d6892a626f0227642fce846040516108949190611db7565b60405180910390a1505050505050565b600460009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091157600080fd5b600460009054906101000a900460ff1615610958576040517f79bde80600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005460078054905010156109ad576007805490506000546040517f5fdd6f490000000000000000000000000000000000000000000000000000000081526004016109a492919061204c565b60405180910390fd5b6001600360008282546109c09190612018565b925050819055506001600460006101000a81548160ff0219169083151502179055507fcf33babc496bb6dc2942b39cb7b75766bbbadf7da50d176ff8c513e991140239600354604051610a139190611e92565b60405180910390a1565b60065481565b60005481565b60606007805480602002602001604051908101604052809291908181526020018280548015610aad57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a63575b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905060003490506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015115610bbe57826040517fac7195c0000000000000000000000000000000000000000000000000000000008152600401610bb59190611db7565b60405180910390fd5b60015460078054905010610c12576007805490506001546040517fe3185778000000000000000000000000000000000000000000000000000000008152600401610c0992919061204c565b60405180910390fd5b600254821015610c5d57816002546040517f01672028000000000000000000000000000000000000000000000000000000008152600401610c5492919061204c565b60405180910390fd5b8160066000828254610c6f9190612018565b92505081905550604051806060016040528060011515815260200160078054905060ff16815260200183815250600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff160217905550604082015181600101559050506007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff167fc14c5e71ddef2aca3e9418524a979cb2131b9370676bdca8c03d345c7abb46c983604051610dd29190611e92565b60405180910390a2505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff168015610e9a575060096000600354815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050919050565b60025481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600460009054906101000a900460ff16610f47576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460006101000a81548160ff02191690831515021790555060008080600090505b6007805490508160ff16101561107157600060078260ff1681548110610f9457610f93612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a600060035481526020019081526020016000206000806001811115610fed57610fec611fba565b5b6001811115610fff57610ffe611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561105c578094508193505b50508080611069906120b1565b915050610f6b565b5060008080600090505b6007805490508160ff16101561118157600060078260ff16815481106110a4576110a3612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a6000600354815260200190815260200160002060006001808111156110fd576110fc611fba565b5b600181111561110f5761110e611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561116c578094508193505b50508080611179906120b1565b91505061107b565b50600073ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112df5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b815260040161123b93929190612177565b600060405180830381600087803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b50505050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb160036040516112d691906121ae565b60405180910390a25b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143c5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b815260040161139893929190612177565b600060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1600360405161143391906121ae565b60405180910390a25b61080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd384600260006040518463ffffffff1660e01b815260040161147d93929190612177565b600060405180830381600087803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960026040516114f691906121ae565b60405180910390a28073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115f45761080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd382600360006040518463ffffffff1660e01b815260040161157293929190612177565b600060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960036040516115eb91906121ae565b60405180910390a25b82600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6779bb375c13eedc94d78615cd3246f769b7e0e440f17078d2b0fd7cd6cbb87760035482856040516116ab939291906121c9565b60405180910390a150505050565b60035481565b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015161179a57816040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016117919190612255565b60405180910390fd5b6000600760016007805490506117b09190612270565b815481106117c1576117c0612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050806007836020015160ff168154811061180a57611809612075565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff021916908360ff160217905550600760016007805490506118c59190612270565b815481106118d6576118d5612075565b5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556000820160016101000a81549060ff021916905560018201600090555050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b135761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b8152600401611a2d93929190612177565b600060405180830381600087803b158015611a4757600080fd5b505af1158015611a5b573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16002604051611ac891906121ae565b60405180910390a26000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb15761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b8152600401611bcb93929190612177565b600060405180830381600087803b158015611be557600080fd5b505af1158015611bf9573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16003604051611c6691906121ae565b60405180910390a26000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8273ffffffffffffffffffffffffffffffffffffffff166108fc83604001519081150290604051600060405180830381858888f19350505050158015611cfb573d6000803e3d6000fd5b50816040015160066000828254611d129190612270565b925050819055508273ffffffffffffffffffffffffffffffffffffffff167f8271947fe3347a460cc3b967688953f8add3a506ecfc40ee6a998a82269565d88360400151604051611d639190611e92565b60405180910390a2505050565b60015481565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611da182611d76565b9050919050565b611db181611d96565b82525050565b6000602082019050611dcc6000830184611da8565b92915050565b600080fd5b611de081611d96565b8114611deb57600080fd5b50565b600081359050611dfd81611dd7565b92915050565b60008060408385031215611e1a57611e19611dd2565b5b6000611e2885828601611dee565b9250506020611e3985828601611dee565b9150509250929050565b60008115159050919050565b611e5881611e43565b82525050565b6000602082019050611e736000830184611e4f565b92915050565b6000819050919050565b611e8c81611e79565b82525050565b6000602082019050611ea76000830184611e83565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ee281611d96565b82525050565b6000611ef48383611ed9565b60208301905092915050565b6000602082019050919050565b6000611f1882611ead565b611f228185611eb8565b9350611f2d83611ec9565b8060005b83811015611f5e578151611f458882611ee8565b9750611f5083611f00565b925050600181019050611f31565b5085935050505092915050565b60006020820190508181036000830152611f858184611f0d565b905092915050565b600060208284031215611fa357611fa2611dd2565b5b6000611fb184828501611dee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202382611e79565b915061202e83611e79565b925082820190508082111561204657612045611fe9565b5b92915050565b60006040820190506120616000830185611e83565b61206e6020830184611e83565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff82169050919050565b60006120bc826120a4565b915060ff82036120cf576120ce611fe9565b5b600182019050919050565b600881106120eb576120ea611fba565b5b50565b60008190506120fc826120da565b919050565b600061210c826120ee565b9050919050565b61211c81612101565b82525050565b6000819050919050565b600063ffffffff82169050919050565b6000819050919050565b600061216161215c61215784612122565b61213c565b61212c565b9050919050565b61217181612146565b82525050565b600060608201905061218c6000830186611da8565b6121996020830185612113565b6121a66040830184612168565b949350505050565b60006020820190506121c36000830184612113565b92915050565b60006060820190506121de6000830186611e83565b6121eb6020830185611da8565b6121f86040830184611da8565b949350505050565b600061221b61221661221184611d76565b61213c565b611d76565b9050919050565b600061222d82612200565b9050919050565b600061223f82612222565b9050919050565b61224f81612234565b82525050565b600060208201905061226a6000830184612246565b92915050565b600061227b82611e79565b915061228683611e79565b925082820390508181111561229e5761229d611fe9565b5b9291505056fea2646970667358221220810898531e66f6cf90c6d05f8e4e250906cafe30107d480c70bebd232eca9d6b64736f6c63430008110033", + "byteCode": "0x6080604052600360005560ff600155670de0b6b3a764000060025534801561002657600080fd5b5033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006003819055506000600460006101000a81548160ff0219169083151502179055506122da8061011e6000396000f3fe6080604052600436106100e85760003560e01c80635ebaf1db1161008a578063c3403ddf11610059578063c3403ddf146102a1578063c535c733146102b8578063f19e9d81146102e3578063f3baf070146102fa576100e8565b80635ebaf1db146102045780638371e6b41461022f578063adfaa72e14610239578063bb72544014610276576100e8565b80631ec6b60a116100c65780631ec6b60a1461016c5780633706dd4e146101835780633a984bc5146101ae5780635aa68ac0146101d9576100e8565b80630c340a24146100ed5780631afa74e5146101185780631bbef39914610141575b600080fd5b3480156100f957600080fd5b50610102610325565b60405161010f9190611db7565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a9190611e03565b61034b565b005b34801561014d57600080fd5b506101566108a4565b6040516101639190611e5e565b60405180910390f35b34801561017857600080fd5b506101816108b7565b005b34801561018f57600080fd5b50610198610a1d565b6040516101a59190611e92565b60405180910390f35b3480156101ba57600080fd5b506101c3610a23565b6040516101d09190611e92565b60405180910390f35b3480156101e557600080fd5b506101ee610a29565b6040516101fb9190611f6b565b60405180910390f35b34801561021057600080fd5b50610219610ab7565b6040516102269190611db7565b60405180910390f35b610237610add565b005b34801561024557600080fd5b50610260600480360381019061025b9190611f8d565b610ddf565b60405161026d9190611e5e565b60405180910390f35b34801561028257600080fd5b5061028b610ea1565b6040516102989190611e92565b60405180910390f35b3480156102ad57600080fd5b506102b6610ea7565b005b3480156102c457600080fd5b506102cd6116b9565b6040516102da9190611e92565b60405180910390f35b3480156102ef57600080fd5b506102f86116bf565b005b34801561030657600080fd5b5061030f611d70565b60405161031c9190611e92565b60405180910390f35b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900460ff16610391576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff168152602001600182015481525050905060096000600354815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105ea576003546040517fc0afe58d0000000000000000000000000000000000000000000000000000000081526004016105e19190611e92565b60405180910390fd5b826000015161063057836040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106279190611db7565b60405180910390fd5b816000015161067657856040517f76a1be0500000000000000000000000000000000000000000000000000000000815260040161066d9190611db7565b60405180910390fd5b80600001516106bc57846040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106b39190611db7565b60405180910390fd5b600160096000600354815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006003548152602001908152602001600020600080600181111561075357610752611fba565b5b600181111561076557610764611fba565b5b815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107bf9190612018565b925050819055506001600a6000600354815260200190815260200160002060006001808111156107f2576107f1611fba565b5b600181111561080457610803611fba565b5b815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461085e9190612018565b925050819055507f16a9aa39af49f169911e977347975198c503525f7240d6892a626f0227642fce846040516108949190611db7565b60405180910390a1505050505050565b600460009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091157600080fd5b600460009054906101000a900460ff1615610958576040517f79bde80600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005460078054905010156109ad576007805490506000546040517f5fdd6f490000000000000000000000000000000000000000000000000000000081526004016109a492919061204c565b60405180910390fd5b6001600360008282546109c09190612018565b925050819055506001600460006101000a81548160ff0219169083151502179055507fcf33babc496bb6dc2942b39cb7b75766bbbadf7da50d176ff8c513e991140239600354604051610a139190611e92565b60405180910390a1565b60065481565b60005481565b60606007805480602002602001604051908101604052809291908181526020018280548015610aad57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a63575b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905060003490506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015115610bbe57826040517fac7195c0000000000000000000000000000000000000000000000000000000008152600401610bb59190611db7565b60405180910390fd5b60015460078054905010610c12576007805490506001546040517fe3185778000000000000000000000000000000000000000000000000000000008152600401610c0992919061204c565b60405180910390fd5b600254821015610c5d57816002546040517f01672028000000000000000000000000000000000000000000000000000000008152600401610c5492919061204c565b60405180910390fd5b8160066000828254610c6f9190612018565b92505081905550604051806060016040528060011515815260200160078054905060ff16815260200183815250600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff160217905550604082015181600101559050506007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff167fc14c5e71ddef2aca3e9418524a979cb2131b9370676bdca8c03d345c7abb46c983604051610dd29190611e92565b60405180910390a2505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff168015610e9a575060096000600354815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050919050565b60025481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600460009054906101000a900460ff16610f47576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460006101000a81548160ff02191690831515021790555060008080600090505b6007805490508160ff16101561107157600060078260ff1681548110610f9457610f93612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a600060035481526020019081526020016000206000806001811115610fed57610fec611fba565b5b6001811115610fff57610ffe611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561105c578094508193505b50508080611069906120b1565b915050610f6b565b5060008080600090505b6007805490508160ff16101561118157600060078260ff16815481106110a4576110a3612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a6000600354815260200190815260200160002060006001808111156110fd576110fc611fba565b5b600181111561110f5761110e611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561116c578094508193505b50508080611179906120b1565b91505061107b565b50600073ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112df5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b815260040161123b93929190612177565b600060405180830381600087803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b50505050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb160036040516112d691906121ae565b60405180910390a25b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143c5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b815260040161139893929190612177565b600060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1600360405161143391906121ae565b60405180910390a25b61080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd384600260006040518463ffffffff1660e01b815260040161147d93929190612177565b600060405180830381600087803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960026040516114f691906121ae565b60405180910390a28073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115f45761080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd382600360006040518463ffffffff1660e01b815260040161157293929190612177565b600060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960036040516115eb91906121ae565b60405180910390a25b82600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6779bb375c13eedc94d78615cd3246f769b7e0e440f17078d2b0fd7cd6cbb87760035482856040516116ab939291906121c9565b60405180910390a150505050565b60035481565b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015161179a57816040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016117919190612255565b60405180910390fd5b6000600760016007805490506117b09190612270565b815481106117c1576117c0612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050806007836020015160ff168154811061180a57611809612075565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff021916908360ff160217905550600760016007805490506118c59190612270565b815481106118d6576118d5612075565b5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556000820160016101000a81549060ff021916905560018201600090555050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b135761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b8152600401611a2d93929190612177565b600060405180830381600087803b158015611a4757600080fd5b505af1158015611a5b573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16002604051611ac891906121ae565b60405180910390a26000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb15761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b8152600401611bcb93929190612177565b600060405180830381600087803b158015611be557600080fd5b505af1158015611bf9573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16003604051611c6691906121ae565b60405180910390a26000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8273ffffffffffffffffffffffffffffffffffffffff166108fc83604001519081150290604051600060405180830381858888f19350505050158015611cfb573d6000803e3d6000fd5b50816040015160066000828254611d129190612270565b925050819055508273ffffffffffffffffffffffffffffffffffffffff167f8271947fe3347a460cc3b967688953f8add3a506ecfc40ee6a998a82269565d88360400151604051611d639190611e92565b60405180910390a2505050565b60015481565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611da182611d76565b9050919050565b611db181611d96565b82525050565b6000602082019050611dcc6000830184611da8565b92915050565b600080fd5b611de081611d96565b8114611deb57600080fd5b50565b600081359050611dfd81611dd7565b92915050565b60008060408385031215611e1a57611e19611dd2565b5b6000611e2885828601611dee565b9250506020611e3985828601611dee565b9150509250929050565b60008115159050919050565b611e5881611e43565b82525050565b6000602082019050611e736000830184611e4f565b92915050565b6000819050919050565b611e8c81611e79565b82525050565b6000602082019050611ea76000830184611e83565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ee281611d96565b82525050565b6000611ef48383611ed9565b60208301905092915050565b6000602082019050919050565b6000611f1882611ead565b611f228185611eb8565b9350611f2d83611ec9565b8060005b83811015611f5e578151611f458882611ee8565b9750611f5083611f00565b925050600181019050611f31565b5085935050505092915050565b60006020820190508181036000830152611f858184611f0d565b905092915050565b600060208284031215611fa357611fa2611dd2565b5b6000611fb184828501611dee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202382611e79565b915061202e83611e79565b925082820190508082111561204657612045611fe9565b5b92915050565b60006040820190506120616000830185611e83565b61206e6020830184611e83565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff82169050919050565b60006120bc826120a4565b915060ff82036120cf576120ce611fe9565b5b600182019050919050565b600881106120eb576120ea611fba565b5b50565b60008190506120fc826120da565b919050565b600061210c826120ee565b9050919050565b61211c81612101565b82525050565b6000819050919050565b600063ffffffff82169050919050565b6000819050919050565b600061216161215c61215784612122565b61213c565b61212c565b9050919050565b61217181612146565b82525050565b600060608201905061218c6000830186611da8565b6121996020830185612113565b6121a66040830184612168565b949350505050565b60006020820190506121c36000830184612113565b92915050565b60006060820190506121de6000830186611e83565b6121eb6020830185611da8565b6121f86040830184611da8565b949350505050565b600061221b61221661221184611d76565b61213c565b611d76565b9050919050565b600061222d82612200565b9050919050565b600061223f82612222565b9050919050565b61224f81612234565b82525050565b600060208201905061226a6000830184612246565b92915050565b600061227b82611e79565b915061228683611e79565b925082820390508181111561229e5761229d611fe9565b5b9291505056fea264697066735822122081cf457f456b1dec86c8e645134712136c5a40976a5a2477304ad30efa0112db64736f6c63430008110033", "contract": { "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, @@ -420,7 +420,7 @@ "version": 1 }, "evm": { - "assembly": " /* \"main.sol\":195:12434 contract ProxyLeaderDemo {... */\n mstore(0x40, 0x80)\n /* \"main.sol\":3876:3877 3 */\n 0x03\n /* \"main.sol\":3842:3877 uint256 public MIN_PARTICIPANTS = 3 */\n 0x00\n sstore\n /* \"main.sol\":4083:4086 255 */\n 0xff\n /* \"main.sol\":4049:4086 uint256 public MAX_PARTICIPANTS = 255 */\n 0x01\n sstore\n /* \"main.sol\":4198:4205 1 ether */\n 0x0de0b6b3a7640000\n /* \"main.sol\":4159:4205 uint256 public MIN_PARTICIPATION_FEE = 1 ether */\n 0x02\n sstore\n /* \"main.sol\":5448:5608 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"main.sol\":5480:5490 msg.sender */\n caller\n /* \"main.sol\":5472:5477 owner */\n 0x0b\n 0x00\n /* \"main.sol\":5472:5490 owner = msg.sender */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":5517:5518 0 */\n 0x00\n /* \"main.sol\":5500:5506 staker */\n 0x05\n 0x00\n /* \"main.sol\":5500:5519 staker = address(0) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":5548:5549 0 */\n 0x00\n /* \"main.sol\":5529:5537 governor */\n 0x04\n 0x01\n /* \"main.sol\":5529:5550 governor = address(0) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":5574:5575 0 */\n 0x00\n /* \"main.sol\":5560:5571 votingRound */\n 0x03\n /* \"main.sol\":5560:5575 votingRound = 0 */\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":5596:5601 false */\n 0x00\n /* \"main.sol\":5585:5593 isVoting */\n 0x04\n 0x00\n /* \"main.sol\":5585:5601 isVoting = false */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":195:12434 contract ProxyLeaderDemo {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"main.sol\":195:12434 contract ProxyLeaderDemo {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x5ebaf1db\n gt\n tag_17\n jumpi\n dup1\n 0xc3403ddf\n gt\n tag_18\n jumpi\n dup1\n 0xc3403ddf\n eq\n tag_13\n jumpi\n dup1\n 0xc535c733\n eq\n tag_14\n jumpi\n dup1\n 0xf19e9d81\n eq\n tag_15\n jumpi\n dup1\n 0xf3baf070\n eq\n tag_16\n jumpi\n jump(tag_1)\n tag_18:\n dup1\n 0x5ebaf1db\n eq\n tag_9\n jumpi\n dup1\n 0x8371e6b4\n eq\n tag_10\n jumpi\n dup1\n 0xadfaa72e\n eq\n tag_11\n jumpi\n dup1\n 0xbb725440\n eq\n tag_12\n jumpi\n jump(tag_1)\n tag_17:\n dup1\n 0x1ec6b60a\n gt\n tag_19\n jumpi\n dup1\n 0x1ec6b60a\n eq\n tag_5\n jumpi\n dup1\n 0x3706dd4e\n eq\n tag_6\n jumpi\n dup1\n 0x3a984bc5\n eq\n tag_7\n jumpi\n dup1\n 0x5aa68ac0\n eq\n tag_8\n jumpi\n jump(tag_1)\n tag_19:\n dup1\n 0x0c340a24\n eq\n tag_2\n jumpi\n dup1\n 0x1afa74e5\n eq\n tag_3\n jumpi\n dup1\n 0x1bbef399\n eq\n tag_4\n jumpi\n tag_1:\n 0x00\n dup1\n revert\n /* \"main.sol\":4495:4518 address public governor */\n tag_2:\n callvalue\n dup1\n iszero\n tag_20\n jumpi\n 0x00\n dup1\n revert\n tag_20:\n pop\n tag_21\n tag_22\n jump\t// in\n tag_21:\n mload(0x40)\n tag_23\n swap2\n swap1\n tag_24\n jump\t// in\n tag_23:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":11285:12349 function vote(address governorCandidate, address stakerCandidate) external {... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_25\n jumpi\n 0x00\n dup1\n revert\n tag_25:\n pop\n tag_26\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\n tag_27:\n tag_29\n jump\t// in\n tag_26:\n stop\n /* \"main.sol\":4431:4451 bool public isVoting */\n tag_4:\n callvalue\n dup1\n iszero\n tag_30\n jumpi\n 0x00\n dup1\n revert\n tag_30:\n pop\n tag_31\n tag_32\n jump\t// in\n tag_31:\n mload(0x40)\n tag_33\n swap2\n swap1\n tag_34\n jump\t// in\n tag_33:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":8299:8719 function startVoting() external onlyOwner {... */\n tag_5:\n callvalue\n dup1\n iszero\n tag_35\n jumpi\n 0x00\n dup1\n revert\n tag_35:\n pop\n tag_36\n tag_37\n jump\t// in\n tag_36:\n stop\n /* \"main.sol\":4628:4655 uint256 public pooledAmount */\n tag_6:\n callvalue\n dup1\n iszero\n tag_38\n jumpi\n 0x00\n dup1\n revert\n tag_38:\n pop\n tag_39\n tag_40\n jump\t// in\n tag_39:\n mload(0x40)\n tag_41\n swap2\n swap1\n tag_42\n jump\t// in\n tag_41:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":3842:3877 uint256 public MIN_PARTICIPANTS = 3 */\n tag_7:\n callvalue\n dup1\n iszero\n tag_43\n jumpi\n 0x00\n dup1\n revert\n tag_43:\n pop\n tag_44\n tag_45\n jump\t// in\n tag_44:\n mload(0x40)\n tag_46\n swap2\n swap1\n tag_42\n jump\t// in\n tag_46:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":5614:5719 function getParticipants() public view returns (address[] memory) {... */\n tag_8:\n callvalue\n dup1\n iszero\n tag_47\n jumpi\n 0x00\n dup1\n revert\n tag_47:\n pop\n tag_48\n tag_49\n jump\t// in\n tag_48:\n mload(0x40)\n tag_50\n swap2\n swap1\n tag_51\n jump\t// in\n tag_50:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":4560:4581 address public staker */\n tag_9:\n callvalue\n dup1\n iszero\n tag_52\n jumpi\n 0x00\n dup1\n revert\n tag_52:\n pop\n tag_53\n tag_54\n jump\t// in\n tag_53:\n mload(0x40)\n tag_55\n swap2\n swap1\n tag_24\n jump\t// in\n tag_55:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":6049:6880 function joinPool() external payable {... */\n tag_10:\n tag_56\n tag_57\n jump\t// in\n tag_56:\n stop\n /* \"main.sol\":5725:5864 function canVote(address who) public view returns (bool) {... */\n tag_11:\n callvalue\n dup1\n iszero\n tag_58\n jumpi\n 0x00\n dup1\n revert\n tag_58:\n pop\n tag_59\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_60\n swap2\n swap1\n tag_61\n jump\t// in\n tag_60:\n tag_62\n jump\t// in\n tag_59:\n mload(0x40)\n tag_63\n swap2\n swap1\n tag_34\n jump\t// in\n tag_63:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":4159:4205 uint256 public MIN_PARTICIPATION_FEE = 1 ether */\n tag_12:\n callvalue\n dup1\n iszero\n tag_64\n jumpi\n 0x00\n dup1\n revert\n tag_64:\n pop\n tag_65\n tag_66\n jump\t// in\n tag_65:\n mload(0x40)\n tag_67\n swap2\n swap1\n tag_42\n jump\t// in\n tag_67:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":8950:11096 function endVoting() external onlyOwner {... */\n tag_13:\n callvalue\n dup1\n iszero\n tag_68\n jumpi\n 0x00\n dup1\n revert\n tag_68:\n pop\n tag_69\n tag_70\n jump\t// in\n tag_69:\n stop\n /* \"main.sol\":4334:4360 uint256 public votingRound */\n tag_14:\n callvalue\n dup1\n iszero\n tag_71\n jumpi\n 0x00\n dup1\n revert\n tag_71:\n pop\n tag_72\n tag_73\n jump\t// in\n tag_72:\n mload(0x40)\n tag_74\n swap2\n swap1\n tag_42\n jump\t// in\n tag_74:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":7015:8148 function leavePool() external {... */\n tag_15:\n callvalue\n dup1\n iszero\n tag_75\n jumpi\n 0x00\n dup1\n revert\n tag_75:\n pop\n tag_76\n tag_77\n jump\t// in\n tag_76:\n stop\n /* \"main.sol\":4049:4086 uint256 public MAX_PARTICIPANTS = 255 */\n tag_16:\n callvalue\n dup1\n iszero\n tag_78\n jumpi\n 0x00\n dup1\n revert\n tag_78:\n pop\n tag_79\n tag_80\n jump\t// in\n tag_79:\n mload(0x40)\n tag_81\n swap2\n swap1\n tag_42\n jump\t// in\n tag_81:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":4495:4518 address public governor */\n tag_22:\n 0x04\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n jump\t// out\n /* \"main.sol\":11285:12349 function vote(address governorCandidate, address stakerCandidate) external {... */\n tag_29:\n /* \"main.sol\":11375:11383 isVoting */\n 0x04\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":11370:11438 if (!isVoting) {... */\n tag_83\n jumpi\n /* \"main.sol\":11406:11427 VotingNotInProgress() */\n mload(0x40)\n 0xf2d3b0f300000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":11370:11438 if (!isVoting) {... */\n tag_83:\n /* \"main.sol\":11448:11462 address sender */\n 0x00\n /* \"main.sol\":11465:11475 msg.sender */\n caller\n /* \"main.sol\":11448:11475 address sender = msg.sender */\n swap1\n pop\n /* \"main.sol\":11485:11515 Participant memory participant */\n 0x00\n /* \"main.sol\":11518:11530 participants */\n 0x08\n /* \"main.sol\":11518:11538 participants[sender] */\n 0x00\n /* \"main.sol\":11531:11537 sender */\n dup4\n /* \"main.sol\":11518:11538 participants[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":11485:11538 Participant memory participant = participants[sender] */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n swap1\n dup2\n 0x00\n dup3\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n 0x00\n dup3\n add\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n 0xff\n and\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n 0x01\n dup3\n add\n sload\n dup2\n mstore\n pop\n pop\n swap1\n pop\n /* \"main.sol\":11548:11586 Participant memory governorParticipant */\n 0x00\n /* \"main.sol\":11589:11601 participants */\n 0x08\n /* \"main.sol\":11589:11642 participants[... */\n 0x00\n /* \"main.sol\":11615:11632 governorCandidate */\n dup7\n /* \"main.sol\":11589:11642 participants[... */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":11548:11642 Participant memory governorParticipant = participants[... */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n swap1\n dup2\n 0x00\n dup3\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n 0x00\n dup3\n add\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n 0xff\n and\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n 0x01\n dup3\n add\n sload\n dup2\n mstore\n pop\n pop\n swap1\n pop\n /* \"main.sol\":11652:11688 Participant memory stakerParticipant */\n 0x00\n /* \"main.sol\":11691:11703 participants */\n 0x08\n /* \"main.sol\":11691:11720 participants[stakerCandidate] */\n 0x00\n /* \"main.sol\":11704:11719 stakerCandidate */\n dup7\n /* \"main.sol\":11691:11720 participants[stakerCandidate] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":11652:11720 Participant memory stakerParticipant = participants[stakerCandidate] */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n swap1\n dup2\n 0x00\n dup3\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n 0x00\n dup3\n add\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n 0xff\n and\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n 0x01\n dup3\n add\n sload\n dup2\n mstore\n pop\n pop\n swap1\n pop\n /* \"main.sol\":11735:11745 votesGiven */\n 0x09\n /* \"main.sol\":11735:11758 votesGiven[votingRound] */\n 0x00\n /* \"main.sol\":11746:11757 votingRound */\n sload(0x03)\n /* \"main.sol\":11735:11758 votesGiven[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":11735:11766 votesGiven[votingRound][sender] */\n 0x00\n /* \"main.sol\":11759:11765 sender */\n dup6\n /* \"main.sol\":11735:11766 votesGiven[votingRound][sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":11731:11825 if (votesGiven[votingRound][sender]) {... */\n iszero\n tag_84\n jumpi\n /* \"main.sol\":11802:11813 votingRound */\n sload(0x03)\n /* \"main.sol\":11789:11814 AlreadyVoted(votingRound) */\n mload(0x40)\n 0xc0afe58d00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_85\n swap2\n swap1\n tag_42\n jump\t// in\n tag_85:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":11731:11825 if (votesGiven[votingRound][sender]) {... */\n tag_84:\n /* \"main.sol\":11839:11850 participant */\n dup3\n /* \"main.sol\":11839:11858 participant.isValid */\n 0x00\n add\n mload\n /* \"main.sol\":11834:11909 if (!participant.isValid) {... */\n tag_86\n jumpi\n /* \"main.sol\":11891:11897 sender */\n dup4\n /* \"main.sol\":11881:11898 NotInPool(sender) */\n mload(0x40)\n 0x76a1be0500000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_87\n swap2\n swap1\n tag_24\n jump\t// in\n tag_87:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":11834:11909 if (!participant.isValid) {... */\n tag_86:\n /* \"main.sol\":11923:11942 governorParticipant */\n dup2\n /* \"main.sol\":11923:11950 governorParticipant.isValid */\n 0x00\n add\n mload\n /* \"main.sol\":11918:12012 if (!governorParticipant.isValid) {... */\n tag_88\n jumpi\n /* \"main.sol\":11983:12000 governorCandidate */\n dup6\n /* \"main.sol\":11973:12001 NotInPool(governorCandidate) */\n mload(0x40)\n 0x76a1be0500000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_89\n swap2\n swap1\n tag_24\n jump\t// in\n tag_89:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":11918:12012 if (!governorParticipant.isValid) {... */\n tag_88:\n /* \"main.sol\":12026:12043 stakerParticipant */\n dup1\n /* \"main.sol\":12026:12051 stakerParticipant.isValid */\n 0x00\n add\n mload\n /* \"main.sol\":12021:12111 if (!stakerParticipant.isValid) {... */\n tag_90\n jumpi\n /* \"main.sol\":12084:12099 stakerCandidate */\n dup5\n /* \"main.sol\":12074:12100 NotInPool(stakerCandidate) */\n mload(0x40)\n 0x76a1be0500000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_91\n swap2\n swap1\n tag_24\n jump\t// in\n tag_91:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":12021:12111 if (!stakerParticipant.isValid) {... */\n tag_90:\n /* \"main.sol\":12155:12159 true */\n 0x01\n /* \"main.sol\":12121:12131 votesGiven */\n 0x09\n /* \"main.sol\":12121:12144 votesGiven[votingRound] */\n 0x00\n /* \"main.sol\":12132:12143 votingRound */\n sload(0x03)\n /* \"main.sol\":12121:12144 votesGiven[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":12121:12152 votesGiven[votingRound][sender] */\n 0x00\n /* \"main.sol\":12145:12151 sender */\n dup7\n /* \"main.sol\":12121:12152 votesGiven[votingRound][sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"main.sol\":12121:12159 votesGiven[votingRound][sender] = true */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":12237:12238 1 */\n 0x01\n /* \"main.sol\":12169:12182 votesReceived */\n 0x0a\n /* \"main.sol\":12169:12195 votesReceived[votingRound] */\n 0x00\n /* \"main.sol\":12183:12194 votingRound */\n sload(0x03)\n /* \"main.sol\":12169:12195 votesReceived[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":12169:12214 votesReceived[votingRound][RoleType.Governor] */\n 0x00\n /* \"main.sol\":12196:12213 RoleType.Governor */\n dup1\n /* \"main.sol\":12169:12214 votesReceived[votingRound][RoleType.Governor] */\n 0x01\n dup2\n gt\n iszero\n tag_92\n jumpi\n tag_93\n tag_94\n jump\t// in\n tag_93:\n tag_92:\n 0x01\n dup2\n gt\n iszero\n tag_95\n jumpi\n tag_96\n tag_94\n jump\t// in\n tag_96:\n tag_95:\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":12169:12233 votesReceived[votingRound][RoleType.Governor][governorCandidate] */\n 0x00\n /* \"main.sol\":12215:12232 governorCandidate */\n dup9\n /* \"main.sol\":12169:12233 votesReceived[votingRound][RoleType.Governor][governorCandidate] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"main.sol\":12169:12238 votesReceived[votingRound][RoleType.Governor][governorCandidate] += 1 */\n dup3\n dup3\n sload\n tag_97\n swap2\n swap1\n tag_98\n jump\t// in\n tag_97:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":12312:12313 1 */\n 0x01\n /* \"main.sol\":12248:12261 votesReceived */\n 0x0a\n /* \"main.sol\":12248:12274 votesReceived[votingRound] */\n 0x00\n /* \"main.sol\":12262:12273 votingRound */\n sload(0x03)\n /* \"main.sol\":12248:12274 votesReceived[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":12248:12291 votesReceived[votingRound][RoleType.Staker] */\n 0x00\n /* \"main.sol\":12275:12290 RoleType.Staker */\n 0x01\n /* \"main.sol\":12248:12291 votesReceived[votingRound][RoleType.Staker] */\n dup1\n dup2\n gt\n iszero\n tag_99\n jumpi\n tag_100\n tag_94\n jump\t// in\n tag_100:\n tag_99:\n 0x01\n dup2\n gt\n iszero\n tag_101\n jumpi\n tag_102\n tag_94\n jump\t// in\n tag_102:\n tag_101:\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":12248:12308 votesReceived[votingRound][RoleType.Staker][stakerCandidate] */\n 0x00\n /* \"main.sol\":12292:12307 stakerCandidate */\n dup8\n /* \"main.sol\":12248:12308 votesReceived[votingRound][RoleType.Staker][stakerCandidate] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"main.sol\":12248:12313 votesReceived[votingRound][RoleType.Staker][stakerCandidate] += 1 */\n dup3\n dup3\n sload\n tag_103\n swap2\n swap1\n tag_98\n jump\t// in\n tag_103:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":12329:12342 Voted(sender) */\n 0x16a9aa39af49f169911e977347975198c503525f7240d6892a626f0227642fce\n /* \"main.sol\":12335:12341 sender */\n dup5\n /* \"main.sol\":12329:12342 Voted(sender) */\n mload(0x40)\n tag_104\n swap2\n swap1\n tag_24\n jump\t// in\n tag_104:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"main.sol\":11360:12349 {... */\n pop\n pop\n pop\n pop\n /* \"main.sol\":11285:12349 function vote(address governorCandidate, address stakerCandidate) external {... */\n pop\n pop\n jump\t// out\n /* \"main.sol\":4431:4451 bool public isVoting */\n tag_32:\n 0x04\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n dup2\n jump\t// out\n /* \"main.sol\":8299:8719 function startVoting() external onlyOwner {... */\n tag_37:\n /* \"main.sol\":12408:12413 owner */\n 0x0b\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":12394:12413 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":12394:12404 msg.sender */\n caller\n /* \"main.sol\":12394:12413 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"main.sol\":12386:12414 require(msg.sender == owner) */\n tag_106\n jumpi\n 0x00\n dup1\n revert\n tag_106:\n /* \"main.sol\":8355:8363 isVoting */\n 0x04\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":8351:8422 if (isVoting) {... */\n iszero\n tag_108\n jumpi\n /* \"main.sol\":8386:8411 VotingAlreadyInProgress() */\n mload(0x40)\n 0x79bde80600000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":8351:8422 if (isVoting) {... */\n tag_108:\n /* \"main.sol\":8461:8477 MIN_PARTICIPANTS */\n sload(0x00)\n /* \"main.sol\":8436:8451 participantKeys */\n 0x07\n /* \"main.sol\":8436:8458 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":8436:8477 participantKeys.length < MIN_PARTICIPANTS */\n lt\n /* \"main.sol\":8432:8620 if (participantKeys.length < MIN_PARTICIPANTS) {... */\n iszero\n tag_109\n jumpi\n /* \"main.sol\":8539:8554 participantKeys */\n 0x07\n /* \"main.sol\":8539:8561 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":8579:8595 MIN_PARTICIPANTS */\n sload(0x00)\n /* \"main.sol\":8500:8609 NotEnoughParticipants(... */\n mload(0x40)\n 0x5fdd6f4900000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_110\n swap3\n swap2\n swap1\n tag_111\n jump\t// in\n tag_110:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":8432:8620 if (participantKeys.length < MIN_PARTICIPANTS) {... */\n tag_109:\n /* \"main.sol\":8645:8646 1 */\n 0x01\n /* \"main.sol\":8630:8641 votingRound */\n 0x03\n 0x00\n /* \"main.sol\":8630:8646 votingRound += 1 */\n dup3\n dup3\n sload\n tag_112\n swap2\n swap1\n tag_98\n jump\t// in\n tag_112:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":8667:8671 true */\n 0x01\n /* \"main.sol\":8656:8664 isVoting */\n 0x04\n 0x00\n /* \"main.sol\":8656:8671 isVoting = true */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":8686:8712 VotingStarted(votingRound) */\n 0xcf33babc496bb6dc2942b39cb7b75766bbbadf7da50d176ff8c513e991140239\n /* \"main.sol\":8700:8711 votingRound */\n sload(0x03)\n /* \"main.sol\":8686:8712 VotingStarted(votingRound) */\n mload(0x40)\n tag_113\n swap2\n swap1\n tag_42\n jump\t// in\n tag_113:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"main.sol\":8299:8719 function startVoting() external onlyOwner {... */\n jump\t// out\n /* \"main.sol\":4628:4655 uint256 public pooledAmount */\n tag_40:\n sload(0x06)\n dup2\n jump\t// out\n /* \"main.sol\":3842:3877 uint256 public MIN_PARTICIPANTS = 3 */\n tag_45:\n sload(0x00)\n dup2\n jump\t// out\n /* \"main.sol\":5614:5719 function getParticipants() public view returns (address[] memory) {... */\n tag_49:\n /* \"main.sol\":5662:5678 address[] memory */\n 0x60\n /* \"main.sol\":5697:5712 participantKeys */\n 0x07\n /* \"main.sol\":5690:5712 return participantKeys */\n dup1\n sload\n dup1\n 0x20\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n dup1\n iszero\n tag_115\n jumpi\n 0x20\n mul\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_116:\n dup2\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n 0x01\n add\n swap1\n dup1\n dup4\n gt\n tag_116\n jumpi\n tag_115:\n pop\n pop\n pop\n pop\n pop\n swap1\n pop\n /* \"main.sol\":5614:5719 function getParticipants() public view returns (address[] memory) {... */\n swap1\n jump\t// out\n /* \"main.sol\":4560:4581 address public staker */\n tag_54:\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n jump\t// out\n /* \"main.sol\":6049:6880 function joinPool() external payable {... */\n tag_57:\n /* \"main.sol\":6096:6110 address sender */\n 0x00\n /* \"main.sol\":6113:6123 msg.sender */\n caller\n /* \"main.sol\":6096:6123 address sender = msg.sender */\n swap1\n pop\n /* \"main.sol\":6133:6147 uint256 amount */\n 0x00\n /* \"main.sol\":6150:6159 msg.value */\n callvalue\n /* \"main.sol\":6133:6159 uint256 amount = msg.value */\n swap1\n pop\n /* \"main.sol\":6169:6199 Participant memory participant */\n 0x00\n /* \"main.sol\":6202:6214 participants */\n 0x08\n /* \"main.sol\":6202:6222 participants[sender] */\n 0x00\n /* \"main.sol\":6215:6221 sender */\n dup5\n /* \"main.sol\":6202:6222 participants[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":6169:6222 Participant memory participant = participants[sender] */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n swap1\n dup2\n 0x00\n dup3\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n 0x00\n dup3\n add\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n 0xff\n and\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n 0x01\n dup3\n add\n sload\n dup2\n mstore\n pop\n pop\n swap1\n pop\n /* \"main.sol\":6236:6247 participant */\n dup1\n /* \"main.sol\":6236:6255 participant.isValid */\n 0x00\n add\n mload\n /* \"main.sol\":6232:6310 if (participant.isValid) {... */\n iszero\n tag_118\n jumpi\n /* \"main.sol\":6292:6298 sender */\n dup3\n /* \"main.sol\":6278:6299 AlreadyInPool(sender) */\n mload(0x40)\n 0xac7195c000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_119\n swap2\n swap1\n tag_24\n jump\t// in\n tag_119:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":6232:6310 if (participant.isValid) {... */\n tag_118:\n /* \"main.sol\":6349:6365 MAX_PARTICIPANTS */\n sload(0x01)\n /* \"main.sol\":6323:6338 participantKeys */\n 0x07\n /* \"main.sol\":6323:6345 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":6323:6365 participantKeys.length >= MAX_PARTICIPANTS */\n lt\n /* \"main.sol\":6319:6506 if (participantKeys.length >= MAX_PARTICIPANTS) {... */\n tag_120\n jumpi\n /* \"main.sol\":6425:6440 participantKeys */\n 0x07\n /* \"main.sol\":6425:6447 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":6465:6481 MAX_PARTICIPANTS */\n sload(0x01)\n /* \"main.sol\":6388:6495 TooManyParticipants(... */\n mload(0x40)\n 0xe318577800000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_121\n swap3\n swap2\n swap1\n tag_111\n jump\t// in\n tag_121:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":6319:6506 if (participantKeys.length >= MAX_PARTICIPANTS) {... */\n tag_120:\n /* \"main.sol\":6528:6549 MIN_PARTICIPATION_FEE */\n sload(0x02)\n /* \"main.sol\":6519:6525 amount */\n dup3\n /* \"main.sol\":6519:6549 amount < MIN_PARTICIPATION_FEE */\n lt\n /* \"main.sol\":6515:6626 if (amount < MIN_PARTICIPATION_FEE) {... */\n iszero\n tag_122\n jumpi\n /* \"main.sol\":6585:6591 amount */\n dup2\n /* \"main.sol\":6593:6614 MIN_PARTICIPATION_FEE */\n sload(0x02)\n /* \"main.sol\":6572:6615 NotEnoughFee(amount, MIN_PARTICIPATION_FEE) */\n mload(0x40)\n 0x0167202800000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_123\n swap3\n swap2\n swap1\n tag_111\n jump\t// in\n tag_123:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":6515:6626 if (amount < MIN_PARTICIPATION_FEE) {... */\n tag_122:\n /* \"main.sol\":6652:6658 amount */\n dup2\n /* \"main.sol\":6636:6648 pooledAmount */\n 0x06\n 0x00\n /* \"main.sol\":6636:6658 pooledAmount += amount */\n dup3\n dup3\n sload\n tag_124\n swap2\n swap1\n tag_98\n jump\t// in\n tag_124:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":6691:6793 Participant(... */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n dup1\n /* \"main.sol\":6716:6720 true */\n 0x01\n /* \"main.sol\":6691:6793 Participant(... */\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n /* \"main.sol\":6740:6755 participantKeys */\n 0x07\n /* \"main.sol\":6740:6762 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":6691:6793 Participant(... */\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n /* \"main.sol\":6777:6783 amount */\n dup4\n /* \"main.sol\":6691:6793 Participant(... */\n dup2\n mstore\n pop\n /* \"main.sol\":6668:6680 participants */\n 0x08\n /* \"main.sol\":6668:6688 participants[sender] */\n 0x00\n /* \"main.sol\":6681:6687 sender */\n dup6\n /* \"main.sol\":6668:6688 participants[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":6668:6793 participants[sender] = Participant(... */\n 0x00\n dup3\n add\n mload\n dup2\n 0x00\n add\n exp(0x0100, 0x00)\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n 0x20\n dup3\n add\n mload\n dup2\n 0x00\n add\n exp(0x0100, 0x01)\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n 0x40\n dup3\n add\n mload\n dup2\n 0x01\n add\n sstore\n swap1\n pop\n pop\n /* \"main.sol\":6803:6818 participantKeys */\n 0x07\n /* \"main.sol\":6824:6830 sender */\n dup4\n /* \"main.sol\":6803:6831 participantKeys.push(sender) */\n swap1\n dup1\n 0x01\n dup2\n sload\n add\n dup1\n dup3\n sstore\n dup1\n swap2\n pop\n pop\n 0x01\n swap1\n sub\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n swap1\n swap2\n swap1\n swap2\n swap1\n swap2\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":6858:6864 sender */\n dup3\n /* \"main.sol\":6847:6873 JoinedPool(sender, amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xc14c5e71ddef2aca3e9418524a979cb2131b9370676bdca8c03d345c7abb46c9\n /* \"main.sol\":6866:6872 amount */\n dup4\n /* \"main.sol\":6847:6873 JoinedPool(sender, amount) */\n mload(0x40)\n tag_126\n swap2\n swap1\n tag_42\n jump\t// in\n tag_126:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":6086:6880 {... */\n pop\n pop\n pop\n /* \"main.sol\":6049:6880 function joinPool() external payable {... */\n jump\t// out\n /* \"main.sol\":5725:5864 function canVote(address who) public view returns (bool) {... */\n tag_62:\n /* \"main.sol\":5776:5780 bool */\n 0x00\n /* \"main.sol\":5799:5811 participants */\n 0x08\n /* \"main.sol\":5799:5816 participants[who] */\n 0x00\n /* \"main.sol\":5812:5815 who */\n dup4\n /* \"main.sol\":5799:5816 participants[who] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":5799:5824 participants[who].isValid */\n 0x00\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":5799:5857 participants[who].isValid && !votesGiven[votingRound][who] */\n dup1\n iszero\n tag_128\n jumpi\n pop\n /* \"main.sol\":5829:5839 votesGiven */\n 0x09\n /* \"main.sol\":5829:5852 votesGiven[votingRound] */\n 0x00\n /* \"main.sol\":5840:5851 votingRound */\n sload(0x03)\n /* \"main.sol\":5829:5852 votesGiven[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":5829:5857 votesGiven[votingRound][who] */\n 0x00\n /* \"main.sol\":5853:5856 who */\n dup4\n /* \"main.sol\":5829:5857 votesGiven[votingRound][who] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":5828:5857 !votesGiven[votingRound][who] */\n iszero\n /* \"main.sol\":5799:5857 participants[who].isValid && !votesGiven[votingRound][who] */\n tag_128:\n /* \"main.sol\":5792:5857 return participants[who].isValid && !votesGiven[votingRound][who] */\n swap1\n pop\n /* \"main.sol\":5725:5864 function canVote(address who) public view returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"main.sol\":4159:4205 uint256 public MIN_PARTICIPATION_FEE = 1 ether */\n tag_66:\n sload(0x02)\n dup2\n jump\t// out\n /* \"main.sol\":8950:11096 function endVoting() external onlyOwner {... */\n tag_70:\n /* \"main.sol\":12408:12413 owner */\n 0x0b\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":12394:12413 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":12394:12404 msg.sender */\n caller\n /* \"main.sol\":12394:12413 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"main.sol\":12386:12414 require(msg.sender == owner) */\n tag_130\n jumpi\n 0x00\n dup1\n revert\n tag_130:\n /* \"main.sol\":9005:9013 isVoting */\n 0x04\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":9000:9068 if (!isVoting) {... */\n tag_132\n jumpi\n /* \"main.sol\":9036:9057 VotingNotInProgress() */\n mload(0x40)\n 0xf2d3b0f300000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":9000:9068 if (!isVoting) {... */\n tag_132:\n /* \"main.sol\":9089:9094 false */\n 0x00\n /* \"main.sol\":9078:9086 isVoting */\n 0x04\n 0x00\n /* \"main.sol\":9078:9094 isVoting = false */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":9105:9134 uint256 maxGovernorVotesSoFar */\n 0x00\n /* \"main.sol\":9148:9170 address winnerGovernor */\n dup1\n /* \"main.sol\":9185:9192 uint8 i */\n dup1\n /* \"main.sol\":9195:9196 0 */\n 0x00\n /* \"main.sol\":9185:9196 uint8 i = 0 */\n swap1\n pop\n /* \"main.sol\":9180:9564 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n tag_133:\n /* \"main.sol\":9202:9217 participantKeys */\n 0x07\n /* \"main.sol\":9202:9224 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":9198:9199 i */\n dup2\n /* \"main.sol\":9198:9224 i < participantKeys.length */\n 0xff\n and\n lt\n /* \"main.sol\":9180:9564 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n iszero\n tag_134\n jumpi\n /* \"main.sol\":9245:9262 address candidate */\n 0x00\n /* \"main.sol\":9265:9280 participantKeys */\n 0x07\n /* \"main.sol\":9281:9282 i */\n dup3\n /* \"main.sol\":9265:9283 participantKeys[i] */\n 0xff\n and\n dup2\n sload\n dup2\n lt\n tag_136\n jumpi\n tag_137\n tag_138\n jump\t// in\n tag_137:\n tag_136:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":9245:9283 address candidate = participantKeys[i] */\n swap1\n pop\n /* \"main.sol\":9297:9310 uint256 votes */\n 0x00\n /* \"main.sol\":9313:9326 votesReceived */\n 0x0a\n /* \"main.sol\":9313:9339 votesReceived[votingRound] */\n 0x00\n /* \"main.sol\":9327:9338 votingRound */\n sload(0x03)\n /* \"main.sol\":9313:9339 votesReceived[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":9313:9358 votesReceived[votingRound][RoleType.Governor] */\n 0x00\n /* \"main.sol\":9340:9357 RoleType.Governor */\n dup1\n /* \"main.sol\":9313:9358 votesReceived[votingRound][RoleType.Governor] */\n 0x01\n dup2\n gt\n iszero\n tag_140\n jumpi\n tag_141\n tag_94\n jump\t// in\n tag_141:\n tag_140:\n 0x01\n dup2\n gt\n iszero\n tag_142\n jumpi\n tag_143\n tag_94\n jump\t// in\n tag_143:\n tag_142:\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":9313:9399 votesReceived[votingRound][RoleType.Governor][... */\n 0x00\n /* \"main.sol\":9376:9385 candidate */\n dup4\n /* \"main.sol\":9313:9399 votesReceived[votingRound][RoleType.Governor][... */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"main.sol\":9297:9399 uint256 votes = votesReceived[votingRound][RoleType.Governor][... */\n swap1\n pop\n /* \"main.sol\":9425:9446 maxGovernorVotesSoFar */\n dup5\n /* \"main.sol\":9417:9422 votes */\n dup2\n /* \"main.sol\":9417:9446 votes > maxGovernorVotesSoFar */\n gt\n /* \"main.sol\":9413:9554 if (votes > maxGovernorVotesSoFar) {... */\n iszero\n tag_144\n jumpi\n /* \"main.sol\":9490:9495 votes */\n dup1\n /* \"main.sol\":9466:9495 maxGovernorVotesSoFar = votes */\n swap5\n pop\n /* \"main.sol\":9530:9539 candidate */\n dup2\n /* \"main.sol\":9513:9539 winnerGovernor = candidate */\n swap4\n pop\n /* \"main.sol\":9413:9554 if (votes > maxGovernorVotesSoFar) {... */\n tag_144:\n /* \"main.sol\":9231:9564 {... */\n pop\n pop\n /* \"main.sol\":9226:9229 i++ */\n dup1\n dup1\n tag_145\n swap1\n tag_146\n jump\t// in\n tag_145:\n swap2\n pop\n pop\n /* \"main.sol\":9180:9564 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n jump(tag_133)\n tag_134:\n pop\n /* \"main.sol\":9574:9601 uint256 maxStakerVotesSoFar */\n 0x00\n /* \"main.sol\":9615:9635 address winnerStaker */\n dup1\n /* \"main.sol\":9650:9657 uint8 i */\n dup1\n /* \"main.sol\":9660:9661 0 */\n 0x00\n /* \"main.sol\":9650:9661 uint8 i = 0 */\n swap1\n pop\n /* \"main.sol\":9645:10021 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n tag_147:\n /* \"main.sol\":9667:9682 participantKeys */\n 0x07\n /* \"main.sol\":9667:9689 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":9663:9664 i */\n dup2\n /* \"main.sol\":9663:9689 i < participantKeys.length */\n 0xff\n and\n lt\n /* \"main.sol\":9645:10021 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n iszero\n tag_148\n jumpi\n /* \"main.sol\":9710:9727 address candidate */\n 0x00\n /* \"main.sol\":9730:9745 participantKeys */\n 0x07\n /* \"main.sol\":9746:9747 i */\n dup3\n /* \"main.sol\":9730:9748 participantKeys[i] */\n 0xff\n and\n dup2\n sload\n dup2\n lt\n tag_150\n jumpi\n tag_151\n tag_138\n jump\t// in\n tag_151:\n tag_150:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":9710:9748 address candidate = participantKeys[i] */\n swap1\n pop\n /* \"main.sol\":9762:9775 uint256 votes */\n 0x00\n /* \"main.sol\":9778:9791 votesReceived */\n 0x0a\n /* \"main.sol\":9778:9804 votesReceived[votingRound] */\n 0x00\n /* \"main.sol\":9792:9803 votingRound */\n sload(0x03)\n /* \"main.sol\":9778:9804 votesReceived[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":9778:9821 votesReceived[votingRound][RoleType.Staker] */\n 0x00\n /* \"main.sol\":9805:9820 RoleType.Staker */\n 0x01\n /* \"main.sol\":9778:9821 votesReceived[votingRound][RoleType.Staker] */\n dup1\n dup2\n gt\n iszero\n tag_153\n jumpi\n tag_154\n tag_94\n jump\t// in\n tag_154:\n tag_153:\n 0x01\n dup2\n gt\n iszero\n tag_155\n jumpi\n tag_156\n tag_94\n jump\t// in\n tag_156:\n tag_155:\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":9778:9862 votesReceived[votingRound][RoleType.Staker][... */\n 0x00\n /* \"main.sol\":9839:9848 candidate */\n dup4\n /* \"main.sol\":9778:9862 votesReceived[votingRound][RoleType.Staker][... */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"main.sol\":9762:9862 uint256 votes = votesReceived[votingRound][RoleType.Staker][... */\n swap1\n pop\n /* \"main.sol\":9888:9907 maxStakerVotesSoFar */\n dup5\n /* \"main.sol\":9880:9885 votes */\n dup2\n /* \"main.sol\":9880:9907 votes > maxStakerVotesSoFar */\n gt\n /* \"main.sol\":9876:10011 if (votes > maxStakerVotesSoFar) {... */\n iszero\n tag_157\n jumpi\n /* \"main.sol\":9949:9954 votes */\n dup1\n /* \"main.sol\":9927:9954 maxStakerVotesSoFar = votes */\n swap5\n pop\n /* \"main.sol\":9987:9996 candidate */\n dup2\n /* \"main.sol\":9972:9996 winnerStaker = candidate */\n swap4\n pop\n /* \"main.sol\":9876:10011 if (votes > maxStakerVotesSoFar) {... */\n tag_157:\n /* \"main.sol\":9696:10021 {... */\n pop\n pop\n /* \"main.sol\":9691:9694 i++ */\n dup1\n dup1\n tag_158\n swap1\n tag_146\n jump\t// in\n tag_158:\n swap2\n pop\n pop\n /* \"main.sol\":9645:10021 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n jump(tag_147)\n tag_148:\n pop\n /* \"main.sol\":10091:10092 0 */\n 0x00\n /* \"main.sol\":10071:10093 governor != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10071:10079 governor */\n 0x04\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10071:10093 governor != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"main.sol\":10067:10253 if (governor != address(0)) {... */\n tag_159\n jumpi\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":10109:10135 PROXY_CONTRACT.removeProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xfef3f708\n /* \"main.sol\":10136:10144 governor */\n 0x04\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10146:10172 Proxy.ProxyType.Governance */\n 0x02\n /* \"main.sol\":10174:10175 0 */\n 0x00\n /* \"main.sol\":10109:10176 PROXY_CONTRACT.removeProxy(governor, Proxy.ProxyType.Governance, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_160\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_160:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_162\n jumpi\n 0x00\n dup1\n revert\n tag_162:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_164\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_164:\n pop\n pop\n pop\n pop\n /* \"main.sol\":10208:10216 governor */\n 0x04\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10195:10242 ProxyRemoved(governor, Proxy.ProxyType.Staking) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1\n /* \"main.sol\":10218:10241 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":10195:10242 ProxyRemoved(governor, Proxy.ProxyType.Staking) */\n mload(0x40)\n tag_165\n swap2\n swap1\n tag_166\n jump\t// in\n tag_165:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":10067:10253 if (governor != address(0)) {... */\n tag_159:\n /* \"main.sol\":10319:10320 0 */\n 0x00\n /* \"main.sol\":10301:10321 staker != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10301:10307 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10301:10321 staker != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"main.sol\":10297:10474 if (staker != address(0)) {... */\n tag_167\n jumpi\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":10337:10363 PROXY_CONTRACT.removeProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xfef3f708\n /* \"main.sol\":10364:10370 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10372:10395 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":10397:10398 0 */\n 0x00\n /* \"main.sol\":10337:10399 PROXY_CONTRACT.removeProxy(staker, Proxy.ProxyType.Staking, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_168\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_168:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_169\n jumpi\n 0x00\n dup1\n revert\n tag_169:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_171\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_171:\n pop\n pop\n pop\n pop\n /* \"main.sol\":10431:10437 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10418:10463 ProxyRemoved(staker, Proxy.ProxyType.Staking) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1\n /* \"main.sol\":10439:10462 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":10418:10463 ProxyRemoved(staker, Proxy.ProxyType.Staking) */\n mload(0x40)\n tag_172\n swap2\n swap1\n tag_166\n jump\t// in\n tag_172:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":10297:10474 if (staker != address(0)) {... */\n tag_167:\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":10484:10507 PROXY_CONTRACT.addProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x74a34dd3\n /* \"main.sol\":10508:10522 winnerGovernor */\n dup5\n /* \"main.sol\":10524:10550 Proxy.ProxyType.Governance */\n 0x02\n /* \"main.sol\":10552:10553 0 */\n 0x00\n /* \"main.sol\":10484:10554 PROXY_CONTRACT.addProxy(winnerGovernor, Proxy.ProxyType.Governance, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_173\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_173:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_174\n jumpi\n 0x00\n dup1\n revert\n tag_174:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_176\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_176:\n pop\n pop\n pop\n pop\n /* \"main.sol\":10580:10594 winnerGovernor */\n dup3\n /* \"main.sol\":10569:10623 ProxyAdded(winnerGovernor, Proxy.ProxyType.Governance) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da29\n /* \"main.sol\":10596:10622 Proxy.ProxyType.Governance */\n 0x02\n /* \"main.sol\":10569:10623 ProxyAdded(winnerGovernor, Proxy.ProxyType.Governance) */\n mload(0x40)\n tag_177\n swap2\n swap1\n tag_166\n jump\t// in\n tag_177:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":10781:10793 winnerStaker */\n dup1\n /* \"main.sol\":10763:10793 winnerGovernor != winnerStaker */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10763:10777 winnerGovernor */\n dup4\n /* \"main.sol\":10763:10793 winnerGovernor != winnerStaker */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"main.sol\":10759:10953 if (winnerGovernor != winnerStaker) {... */\n tag_178\n jumpi\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":10809:10832 PROXY_CONTRACT.addProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x74a34dd3\n /* \"main.sol\":10833:10845 winnerStaker */\n dup3\n /* \"main.sol\":10847:10870 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":10872:10873 0 */\n 0x00\n /* \"main.sol\":10809:10874 PROXY_CONTRACT.addProxy(winnerStaker, Proxy.ProxyType.Staking, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_179\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_179:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_180\n jumpi\n 0x00\n dup1\n revert\n tag_180:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_182\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_182:\n pop\n pop\n pop\n pop\n /* \"main.sol\":10904:10916 winnerStaker */\n dup1\n /* \"main.sol\":10893:10942 ProxyAdded(winnerStaker, Proxy.ProxyType.Staking) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da29\n /* \"main.sol\":10918:10941 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":10893:10942 ProxyAdded(winnerStaker, Proxy.ProxyType.Staking) */\n mload(0x40)\n tag_183\n swap2\n swap1\n tag_166\n jump\t// in\n tag_183:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":10759:10953 if (winnerGovernor != winnerStaker) {... */\n tag_178:\n /* \"main.sol\":10974:10988 winnerGovernor */\n dup3\n /* \"main.sol\":10963:10971 governor */\n 0x04\n 0x01\n /* \"main.sol\":10963:10988 governor = winnerGovernor */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":11007:11019 winnerStaker */\n dup1\n /* \"main.sol\":10998:11004 staker */\n 0x05\n 0x00\n /* \"main.sol\":10998:11019 staker = winnerStaker */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":11035:11089 VotingEnded(votingRound, winnerStaker, winnerGovernor) */\n 0x6779bb375c13eedc94d78615cd3246f769b7e0e440f17078d2b0fd7cd6cbb877\n /* \"main.sol\":11047:11058 votingRound */\n sload(0x03)\n /* \"main.sol\":11060:11072 winnerStaker */\n dup3\n /* \"main.sol\":11074:11088 winnerGovernor */\n dup6\n /* \"main.sol\":11035:11089 VotingEnded(votingRound, winnerStaker, winnerGovernor) */\n mload(0x40)\n tag_184\n swap4\n swap3\n swap2\n swap1\n tag_185\n jump\t// in\n tag_184:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"main.sol\":8990:11096 {... */\n pop\n pop\n pop\n pop\n /* \"main.sol\":8950:11096 function endVoting() external onlyOwner {... */\n jump\t// out\n /* \"main.sol\":4334:4360 uint256 public votingRound */\n tag_73:\n sload(0x03)\n dup2\n jump\t// out\n /* \"main.sol\":7015:8148 function leavePool() external {... */\n tag_77:\n /* \"main.sol\":7055:7077 address payable sender */\n 0x00\n /* \"main.sol\":7088:7098 msg.sender */\n caller\n /* \"main.sol\":7055:7099 address payable sender = payable(msg.sender) */\n swap1\n pop\n /* \"main.sol\":7109:7139 Participant memory participant */\n 0x00\n /* \"main.sol\":7142:7154 participants */\n 0x08\n /* \"main.sol\":7142:7162 participants[sender] */\n 0x00\n /* \"main.sol\":7155:7161 sender */\n dup4\n /* \"main.sol\":7142:7162 participants[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":7109:7162 Participant memory participant = participants[sender] */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n swap1\n dup2\n 0x00\n dup3\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n 0x00\n dup3\n add\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n 0xff\n and\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n 0x01\n dup3\n add\n sload\n dup2\n mstore\n pop\n pop\n swap1\n pop\n /* \"main.sol\":7178:7189 participant */\n dup1\n /* \"main.sol\":7178:7197 participant.isValid */\n 0x00\n add\n mload\n /* \"main.sol\":7173:7248 if (!participant.isValid) {... */\n tag_187\n jumpi\n /* \"main.sol\":7230:7236 sender */\n dup2\n /* \"main.sol\":7220:7237 NotInPool(sender) */\n mload(0x40)\n 0x76a1be0500000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_188\n swap2\n swap1\n tag_189\n jump\t// in\n tag_188:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":7173:7248 if (!participant.isValid) {... */\n tag_187:\n /* \"main.sol\":7258:7273 address lastKey */\n 0x00\n /* \"main.sol\":7276:7291 participantKeys */\n 0x07\n /* \"main.sol\":7317:7318 1 */\n 0x01\n /* \"main.sol\":7292:7307 participantKeys */\n 0x07\n /* \"main.sol\":7292:7314 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":7292:7318 participantKeys.length - 1 */\n tag_190\n swap2\n swap1\n tag_191\n jump\t// in\n tag_190:\n /* \"main.sol\":7276:7319 participantKeys[participantKeys.length - 1] */\n dup2\n sload\n dup2\n lt\n tag_192\n jumpi\n tag_193\n tag_138\n jump\t// in\n tag_193:\n tag_192:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7258:7319 address lastKey = participantKeys[participantKeys.length - 1] */\n swap1\n pop\n /* \"main.sol\":7369:7376 lastKey */\n dup1\n /* \"main.sol\":7329:7344 participantKeys */\n 0x07\n /* \"main.sol\":7345:7356 participant */\n dup4\n /* \"main.sol\":7345:7365 participant.keyIndex */\n 0x20\n add\n mload\n /* \"main.sol\":7329:7366 participantKeys[participant.keyIndex] */\n 0xff\n and\n dup2\n sload\n dup2\n lt\n tag_195\n jumpi\n tag_196\n tag_138\n jump\t// in\n tag_196:\n tag_195:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n /* \"main.sol\":7329:7376 participantKeys[participant.keyIndex] = lastKey */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":7419:7430 participant */\n dup2\n /* \"main.sol\":7419:7439 participant.keyIndex */\n 0x20\n add\n mload\n /* \"main.sol\":7386:7398 participants */\n 0x08\n /* \"main.sol\":7386:7407 participants[lastKey] */\n 0x00\n /* \"main.sol\":7399:7406 lastKey */\n dup4\n /* \"main.sol\":7386:7407 participants[lastKey] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":7386:7416 participants[lastKey].keyIndex */\n 0x00\n add\n 0x01\n /* \"main.sol\":7386:7439 participants[lastKey].keyIndex = participant.keyIndex */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":7456:7471 participantKeys */\n 0x07\n /* \"main.sol\":7497:7498 1 */\n 0x01\n /* \"main.sol\":7472:7487 participantKeys */\n 0x07\n /* \"main.sol\":7472:7494 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":7472:7498 participantKeys.length - 1 */\n tag_198\n swap2\n swap1\n tag_191\n jump\t// in\n tag_198:\n /* \"main.sol\":7456:7499 participantKeys[participantKeys.length - 1] */\n dup2\n sload\n dup2\n lt\n tag_199\n jumpi\n tag_200\n tag_138\n jump\t// in\n tag_200:\n tag_199:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n /* \"main.sol\":7449:7499 delete participantKeys[participantKeys.length - 1] */\n 0x0100\n exp\n dup2\n sload\n swap1\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n sstore\n /* \"main.sol\":7516:7528 participants */\n 0x08\n /* \"main.sol\":7516:7536 participants[sender] */\n 0x00\n /* \"main.sol\":7529:7535 sender */\n dup5\n /* \"main.sol\":7516:7536 participants[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"main.sol\":7509:7536 delete participants[sender] */\n dup1\n dup3\n add\n exp(0x0100, 0x00)\n dup2\n sload\n swap1\n 0xff\n mul\n not\n and\n swap1\n sstore\n 0x00\n dup3\n add\n exp(0x0100, 0x01)\n dup2\n sload\n swap1\n 0xff\n mul\n not\n and\n swap1\n sstore\n 0x01\n dup3\n add\n 0x00\n swap1\n sstore\n pop\n pop\n /* \"main.sol\":7561:7569 governor */\n 0x04\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7551:7569 sender == governor */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7551:7557 sender */\n dup4\n /* \"main.sol\":7551:7569 sender == governor */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"main.sol\":7547:7763 if (sender == governor) {... */\n tag_202\n jumpi\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":7585:7611 PROXY_CONTRACT.removeProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xfef3f708\n /* \"main.sol\":7612:7618 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7620:7646 Proxy.ProxyType.Governance */\n 0x02\n /* \"main.sol\":7648:7649 0 */\n 0x00\n /* \"main.sol\":7585:7650 PROXY_CONTRACT.removeProxy(staker, Proxy.ProxyType.Governance, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_203\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_203:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_204\n jumpi\n 0x00\n dup1\n revert\n tag_204:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_206\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_206:\n pop\n pop\n pop\n pop\n /* \"main.sol\":7682:7688 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7669:7717 ProxyRemoved(staker, Proxy.ProxyType.Governance) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1\n /* \"main.sol\":7690:7716 Proxy.ProxyType.Governance */\n 0x02\n /* \"main.sol\":7669:7717 ProxyRemoved(staker, Proxy.ProxyType.Governance) */\n mload(0x40)\n tag_207\n swap2\n swap1\n tag_166\n jump\t// in\n tag_207:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":7750:7751 0 */\n 0x00\n /* \"main.sol\":7731:7739 governor */\n 0x04\n 0x01\n /* \"main.sol\":7731:7752 governor = address(0) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":7547:7763 if (sender == governor) {... */\n tag_202:\n /* \"main.sol\":7787:7793 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7777:7793 sender == staker */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7777:7783 sender */\n dup4\n /* \"main.sol\":7777:7793 sender == staker */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"main.sol\":7773:7979 if (sender == staker) {... */\n tag_208\n jumpi\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":7809:7835 PROXY_CONTRACT.removeProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xfef3f708\n /* \"main.sol\":7836:7842 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7844:7867 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":7869:7870 0 */\n 0x00\n /* \"main.sol\":7809:7871 PROXY_CONTRACT.removeProxy(staker, Proxy.ProxyType.Staking, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_209\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_209:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_210\n jumpi\n 0x00\n dup1\n revert\n tag_210:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_212\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_212:\n pop\n pop\n pop\n pop\n /* \"main.sol\":7903:7909 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7890:7935 ProxyRemoved(staker, Proxy.ProxyType.Staking) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1\n /* \"main.sol\":7911:7934 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":7890:7935 ProxyRemoved(staker, Proxy.ProxyType.Staking) */\n mload(0x40)\n tag_213\n swap2\n swap1\n tag_166\n jump\t// in\n tag_213:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":7966:7967 0 */\n 0x00\n /* \"main.sol\":7949:7955 staker */\n 0x05\n 0x00\n /* \"main.sol\":7949:7968 staker = address(0) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":7773:7979 if (sender == staker) {... */\n tag_208:\n /* \"main.sol\":7989:7995 sender */\n dup3\n /* \"main.sol\":7989:8004 sender.transfer */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7989:8031 sender.transfer(participant.pledgedAmount) */\n 0x08fc\n /* \"main.sol\":8005:8016 participant */\n dup4\n /* \"main.sol\":8005:8030 participant.pledgedAmount */\n 0x40\n add\n mload\n /* \"main.sol\":7989:8031 sender.transfer(participant.pledgedAmount) */\n swap1\n dup2\n iszero\n mul\n swap1\n mload(0x40)\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup9\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_215\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_215:\n pop\n /* \"main.sol\":8057:8068 participant */\n dup2\n /* \"main.sol\":8057:8082 participant.pledgedAmount */\n 0x40\n add\n mload\n /* \"main.sol\":8041:8053 pooledAmount */\n 0x06\n 0x00\n /* \"main.sol\":8041:8082 pooledAmount -= participant.pledgedAmount */\n dup3\n dup3\n sload\n tag_216\n swap2\n swap1\n tag_191\n jump\t// in\n tag_216:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":8107:8113 sender */\n dup3\n /* \"main.sol\":8098:8141 LeftPool(sender, participant.pledgedAmount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x8271947fe3347a460cc3b967688953f8add3a506ecfc40ee6a998a82269565d8\n /* \"main.sol\":8115:8126 participant */\n dup4\n /* \"main.sol\":8115:8140 participant.pledgedAmount */\n 0x40\n add\n mload\n /* \"main.sol\":8098:8141 LeftPool(sender, participant.pledgedAmount) */\n mload(0x40)\n tag_217\n swap2\n swap1\n tag_42\n jump\t// in\n tag_217:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":7045:8148 {... */\n pop\n pop\n pop\n /* \"main.sol\":7015:8148 function leavePool() external {... */\n jump\t// out\n /* \"main.sol\":4049:4086 uint256 public MAX_PARTICIPANTS = 255 */\n tag_80:\n sload(0x01)\n dup2\n jump\t// out\n /* \"#utility.yul\":7:133 */\n tag_218:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":84:126 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":77:82 */\n dup3\n /* \"#utility.yul\":73:127 */\n and\n /* \"#utility.yul\":62:127 */\n swap1\n pop\n /* \"#utility.yul\":7:133 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":139:235 */\n tag_219:\n /* \"#utility.yul\":176:183 */\n 0x00\n /* \"#utility.yul\":205:229 */\n tag_255\n /* \"#utility.yul\":223:228 */\n dup3\n /* \"#utility.yul\":205:229 */\n tag_218\n jump\t// in\n tag_255:\n /* \"#utility.yul\":194:229 */\n swap1\n pop\n /* \"#utility.yul\":139:235 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":241:359 */\n tag_220:\n /* \"#utility.yul\":328:352 */\n tag_257\n /* \"#utility.yul\":346:351 */\n dup2\n /* \"#utility.yul\":328:352 */\n tag_219\n jump\t// in\n tag_257:\n /* \"#utility.yul\":323:326 */\n dup3\n /* \"#utility.yul\":316:353 */\n mstore\n /* \"#utility.yul\":241:359 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":365:587 */\n tag_24:\n /* \"#utility.yul\":458:462 */\n 0x00\n /* \"#utility.yul\":496:498 */\n 0x20\n /* \"#utility.yul\":485:494 */\n dup3\n /* \"#utility.yul\":481:499 */\n add\n /* \"#utility.yul\":473:499 */\n swap1\n pop\n /* \"#utility.yul\":509:580 */\n tag_259\n /* \"#utility.yul\":577:578 */\n 0x00\n /* \"#utility.yul\":566:575 */\n dup4\n /* \"#utility.yul\":562:579 */\n add\n /* \"#utility.yul\":553:559 */\n dup5\n /* \"#utility.yul\":509:580 */\n tag_220\n jump\t// in\n tag_259:\n /* \"#utility.yul\":365:587 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":674:791 */\n tag_222:\n /* \"#utility.yul\":783:784 */\n 0x00\n /* \"#utility.yul\":780:781 */\n dup1\n /* \"#utility.yul\":773:785 */\n revert\n /* \"#utility.yul\":920:1042 */\n tag_224:\n /* \"#utility.yul\":993:1017 */\n tag_264\n /* \"#utility.yul\":1011:1016 */\n dup2\n /* \"#utility.yul\":993:1017 */\n tag_219\n jump\t// in\n tag_264:\n /* \"#utility.yul\":986:991 */\n dup2\n /* \"#utility.yul\":983:1018 */\n eq\n /* \"#utility.yul\":973:1036 */\n tag_265\n jumpi\n /* \"#utility.yul\":1032:1033 */\n 0x00\n /* \"#utility.yul\":1029:1030 */\n dup1\n /* \"#utility.yul\":1022:1034 */\n revert\n /* \"#utility.yul\":973:1036 */\n tag_265:\n /* \"#utility.yul\":920:1042 */\n pop\n jump\t// out\n /* \"#utility.yul\":1048:1187 */\n tag_225:\n /* \"#utility.yul\":1094:1099 */\n 0x00\n /* \"#utility.yul\":1132:1138 */\n dup2\n /* \"#utility.yul\":1119:1139 */\n calldataload\n /* \"#utility.yul\":1110:1139 */\n swap1\n pop\n /* \"#utility.yul\":1148:1181 */\n tag_267\n /* \"#utility.yul\":1175:1180 */\n dup2\n /* \"#utility.yul\":1148:1181 */\n tag_224\n jump\t// in\n tag_267:\n /* \"#utility.yul\":1048:1187 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1193:1667 */\n tag_28:\n /* \"#utility.yul\":1261:1267 */\n 0x00\n /* \"#utility.yul\":1269:1275 */\n dup1\n /* \"#utility.yul\":1318:1320 */\n 0x40\n /* \"#utility.yul\":1306:1315 */\n dup4\n /* \"#utility.yul\":1297:1304 */\n dup6\n /* \"#utility.yul\":1293:1316 */\n sub\n /* \"#utility.yul\":1289:1321 */\n slt\n /* \"#utility.yul\":1286:1405 */\n iszero\n tag_269\n jumpi\n /* \"#utility.yul\":1324:1403 */\n tag_270\n tag_222\n jump\t// in\n tag_270:\n /* \"#utility.yul\":1286:1405 */\n tag_269:\n /* \"#utility.yul\":1444:1445 */\n 0x00\n /* \"#utility.yul\":1469:1522 */\n tag_271\n /* \"#utility.yul\":1514:1521 */\n dup6\n /* \"#utility.yul\":1505:1511 */\n dup3\n /* \"#utility.yul\":1494:1503 */\n dup7\n /* \"#utility.yul\":1490:1512 */\n add\n /* \"#utility.yul\":1469:1522 */\n tag_225\n jump\t// in\n tag_271:\n /* \"#utility.yul\":1459:1522 */\n swap3\n pop\n /* \"#utility.yul\":1415:1532 */\n pop\n /* \"#utility.yul\":1571:1573 */\n 0x20\n /* \"#utility.yul\":1597:1650 */\n tag_272\n /* \"#utility.yul\":1642:1649 */\n dup6\n /* \"#utility.yul\":1633:1639 */\n dup3\n /* \"#utility.yul\":1622:1631 */\n dup7\n /* \"#utility.yul\":1618:1640 */\n add\n /* \"#utility.yul\":1597:1650 */\n tag_225\n jump\t// in\n tag_272:\n /* \"#utility.yul\":1587:1650 */\n swap2\n pop\n /* \"#utility.yul\":1542:1660 */\n pop\n /* \"#utility.yul\":1193:1667 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1673:1763 */\n tag_226:\n /* \"#utility.yul\":1707:1714 */\n 0x00\n /* \"#utility.yul\":1750:1755 */\n dup2\n /* \"#utility.yul\":1743:1756 */\n iszero\n /* \"#utility.yul\":1736:1757 */\n iszero\n /* \"#utility.yul\":1725:1757 */\n swap1\n pop\n /* \"#utility.yul\":1673:1763 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1769:1878 */\n tag_227:\n /* \"#utility.yul\":1850:1871 */\n tag_275\n /* \"#utility.yul\":1865:1870 */\n dup2\n /* \"#utility.yul\":1850:1871 */\n tag_226\n jump\t// in\n tag_275:\n /* \"#utility.yul\":1845:1848 */\n dup3\n /* \"#utility.yul\":1838:1872 */\n mstore\n /* \"#utility.yul\":1769:1878 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1884:2094 */\n tag_34:\n /* \"#utility.yul\":1971:1975 */\n 0x00\n /* \"#utility.yul\":2009:2011 */\n 0x20\n /* \"#utility.yul\":1998:2007 */\n dup3\n /* \"#utility.yul\":1994:2012 */\n add\n /* \"#utility.yul\":1986:2012 */\n swap1\n pop\n /* \"#utility.yul\":2022:2087 */\n tag_277\n /* \"#utility.yul\":2084:2085 */\n 0x00\n /* \"#utility.yul\":2073:2082 */\n dup4\n /* \"#utility.yul\":2069:2086 */\n add\n /* \"#utility.yul\":2060:2066 */\n dup5\n /* \"#utility.yul\":2022:2087 */\n tag_227\n jump\t// in\n tag_277:\n /* \"#utility.yul\":1884:2094 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2100:2177 */\n tag_228:\n /* \"#utility.yul\":2137:2144 */\n 0x00\n /* \"#utility.yul\":2166:2171 */\n dup2\n /* \"#utility.yul\":2155:2171 */\n swap1\n pop\n /* \"#utility.yul\":2100:2177 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2183:2301 */\n tag_229:\n /* \"#utility.yul\":2270:2294 */\n tag_280\n /* \"#utility.yul\":2288:2293 */\n dup2\n /* \"#utility.yul\":2270:2294 */\n tag_228\n jump\t// in\n tag_280:\n /* \"#utility.yul\":2265:2268 */\n dup3\n /* \"#utility.yul\":2258:2295 */\n mstore\n /* \"#utility.yul\":2183:2301 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2307:2529 */\n tag_42:\n /* \"#utility.yul\":2400:2404 */\n 0x00\n /* \"#utility.yul\":2438:2440 */\n 0x20\n /* \"#utility.yul\":2427:2436 */\n dup3\n /* \"#utility.yul\":2423:2441 */\n add\n /* \"#utility.yul\":2415:2441 */\n swap1\n pop\n /* \"#utility.yul\":2451:2522 */\n tag_282\n /* \"#utility.yul\":2519:2520 */\n 0x00\n /* \"#utility.yul\":2508:2517 */\n dup4\n /* \"#utility.yul\":2504:2521 */\n add\n /* \"#utility.yul\":2495:2501 */\n dup5\n /* \"#utility.yul\":2451:2522 */\n tag_229\n jump\t// in\n tag_282:\n /* \"#utility.yul\":2307:2529 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2535:2649 */\n tag_230:\n /* \"#utility.yul\":2602:2608 */\n 0x00\n /* \"#utility.yul\":2636:2641 */\n dup2\n /* \"#utility.yul\":2630:2642 */\n mload\n /* \"#utility.yul\":2620:2642 */\n swap1\n pop\n /* \"#utility.yul\":2535:2649 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2655:2839 */\n tag_231:\n /* \"#utility.yul\":2754:2765 */\n 0x00\n /* \"#utility.yul\":2788:2794 */\n dup3\n /* \"#utility.yul\":2783:2786 */\n dup3\n /* \"#utility.yul\":2776:2795 */\n mstore\n /* \"#utility.yul\":2828:2832 */\n 0x20\n /* \"#utility.yul\":2823:2826 */\n dup3\n /* \"#utility.yul\":2819:2833 */\n add\n /* \"#utility.yul\":2804:2833 */\n swap1\n pop\n /* \"#utility.yul\":2655:2839 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2845:2977 */\n tag_232:\n /* \"#utility.yul\":2912:2916 */\n 0x00\n /* \"#utility.yul\":2935:2938 */\n dup2\n /* \"#utility.yul\":2927:2938 */\n swap1\n pop\n /* \"#utility.yul\":2965:2969 */\n 0x20\n /* \"#utility.yul\":2960:2963 */\n dup3\n /* \"#utility.yul\":2956:2970 */\n add\n /* \"#utility.yul\":2948:2970 */\n swap1\n pop\n /* \"#utility.yul\":2845:2977 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2983:3091 */\n tag_233:\n /* \"#utility.yul\":3060:3084 */\n tag_287\n /* \"#utility.yul\":3078:3083 */\n dup2\n /* \"#utility.yul\":3060:3084 */\n tag_219\n jump\t// in\n tag_287:\n /* \"#utility.yul\":3055:3058 */\n dup3\n /* \"#utility.yul\":3048:3085 */\n mstore\n /* \"#utility.yul\":2983:3091 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3097:3276 */\n tag_234:\n /* \"#utility.yul\":3166:3176 */\n 0x00\n /* \"#utility.yul\":3187:3233 */\n tag_289\n /* \"#utility.yul\":3229:3232 */\n dup4\n /* \"#utility.yul\":3221:3227 */\n dup4\n /* \"#utility.yul\":3187:3233 */\n tag_233\n jump\t// in\n tag_289:\n /* \"#utility.yul\":3265:3269 */\n 0x20\n /* \"#utility.yul\":3260:3263 */\n dup4\n /* \"#utility.yul\":3256:3270 */\n add\n /* \"#utility.yul\":3242:3270 */\n swap1\n pop\n /* \"#utility.yul\":3097:3276 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3282:3395 */\n tag_235:\n /* \"#utility.yul\":3352:3356 */\n 0x00\n /* \"#utility.yul\":3384:3388 */\n 0x20\n /* \"#utility.yul\":3379:3382 */\n dup3\n /* \"#utility.yul\":3375:3389 */\n add\n /* \"#utility.yul\":3367:3389 */\n swap1\n pop\n /* \"#utility.yul\":3282:3395 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3431:4163 */\n tag_236:\n /* \"#utility.yul\":3550:3553 */\n 0x00\n /* \"#utility.yul\":3579:3633 */\n tag_292\n /* \"#utility.yul\":3627:3632 */\n dup3\n /* \"#utility.yul\":3579:3633 */\n tag_230\n jump\t// in\n tag_292:\n /* \"#utility.yul\":3649:3735 */\n tag_293\n /* \"#utility.yul\":3728:3734 */\n dup2\n /* \"#utility.yul\":3723:3726 */\n dup6\n /* \"#utility.yul\":3649:3735 */\n tag_231\n jump\t// in\n tag_293:\n /* \"#utility.yul\":3642:3735 */\n swap4\n pop\n /* \"#utility.yul\":3759:3815 */\n tag_294\n /* \"#utility.yul\":3809:3814 */\n dup4\n /* \"#utility.yul\":3759:3815 */\n tag_232\n jump\t// in\n tag_294:\n /* \"#utility.yul\":3838:3845 */\n dup1\n /* \"#utility.yul\":3869:3870 */\n 0x00\n /* \"#utility.yul\":3854:4138 */\n tag_295:\n /* \"#utility.yul\":3879:3885 */\n dup4\n /* \"#utility.yul\":3876:3877 */\n dup2\n /* \"#utility.yul\":3873:3886 */\n lt\n /* \"#utility.yul\":3854:4138 */\n iszero\n tag_297\n jumpi\n /* \"#utility.yul\":3955:3961 */\n dup2\n /* \"#utility.yul\":3949:3962 */\n mload\n /* \"#utility.yul\":3982:4045 */\n tag_298\n /* \"#utility.yul\":4041:4044 */\n dup9\n /* \"#utility.yul\":4026:4039 */\n dup3\n /* \"#utility.yul\":3982:4045 */\n tag_234\n jump\t// in\n tag_298:\n /* \"#utility.yul\":3975:4045 */\n swap8\n pop\n /* \"#utility.yul\":4068:4128 */\n tag_299\n /* \"#utility.yul\":4121:4127 */\n dup4\n /* \"#utility.yul\":4068:4128 */\n tag_235\n jump\t// in\n tag_299:\n /* \"#utility.yul\":4058:4128 */\n swap3\n pop\n /* \"#utility.yul\":3914:4138 */\n pop\n /* \"#utility.yul\":3901:3902 */\n 0x01\n /* \"#utility.yul\":3898:3899 */\n dup2\n /* \"#utility.yul\":3894:3903 */\n add\n /* \"#utility.yul\":3889:3903 */\n swap1\n pop\n /* \"#utility.yul\":3854:4138 */\n jump(tag_295)\n tag_297:\n /* \"#utility.yul\":3858:3872 */\n pop\n /* \"#utility.yul\":4154:4157 */\n dup6\n /* \"#utility.yul\":4147:4157 */\n swap4\n pop\n /* \"#utility.yul\":3555:4163 */\n pop\n pop\n pop\n /* \"#utility.yul\":3431:4163 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4169:4542 */\n tag_51:\n /* \"#utility.yul\":4312:4316 */\n 0x00\n /* \"#utility.yul\":4350:4352 */\n 0x20\n /* \"#utility.yul\":4339:4348 */\n dup3\n /* \"#utility.yul\":4335:4353 */\n add\n /* \"#utility.yul\":4327:4353 */\n swap1\n pop\n /* \"#utility.yul\":4399:4408 */\n dup2\n /* \"#utility.yul\":4393:4397 */\n dup2\n /* \"#utility.yul\":4389:4409 */\n sub\n /* \"#utility.yul\":4385:4386 */\n 0x00\n /* \"#utility.yul\":4374:4383 */\n dup4\n /* \"#utility.yul\":4370:4387 */\n add\n /* \"#utility.yul\":4363:4410 */\n mstore\n /* \"#utility.yul\":4427:4535 */\n tag_301\n /* \"#utility.yul\":4530:4534 */\n dup2\n /* \"#utility.yul\":4521:4527 */\n dup5\n /* \"#utility.yul\":4427:4535 */\n tag_236\n jump\t// in\n tag_301:\n /* \"#utility.yul\":4419:4535 */\n swap1\n pop\n /* \"#utility.yul\":4169:4542 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4548:4877 */\n tag_61:\n /* \"#utility.yul\":4607:4613 */\n 0x00\n /* \"#utility.yul\":4656:4658 */\n 0x20\n /* \"#utility.yul\":4644:4653 */\n dup3\n /* \"#utility.yul\":4635:4642 */\n dup5\n /* \"#utility.yul\":4631:4654 */\n sub\n /* \"#utility.yul\":4627:4659 */\n slt\n /* \"#utility.yul\":4624:4743 */\n iszero\n tag_303\n jumpi\n /* \"#utility.yul\":4662:4741 */\n tag_304\n tag_222\n jump\t// in\n tag_304:\n /* \"#utility.yul\":4624:4743 */\n tag_303:\n /* \"#utility.yul\":4782:4783 */\n 0x00\n /* \"#utility.yul\":4807:4860 */\n tag_305\n /* \"#utility.yul\":4852:4859 */\n dup5\n /* \"#utility.yul\":4843:4849 */\n dup3\n /* \"#utility.yul\":4832:4841 */\n dup6\n /* \"#utility.yul\":4828:4850 */\n add\n /* \"#utility.yul\":4807:4860 */\n tag_225\n jump\t// in\n tag_305:\n /* \"#utility.yul\":4797:4860 */\n swap2\n pop\n /* \"#utility.yul\":4753:4870 */\n pop\n /* \"#utility.yul\":4548:4877 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4883:5063 */\n tag_94:\n /* \"#utility.yul\":4931:5008 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":4928:4929 */\n 0x00\n /* \"#utility.yul\":4921:5009 */\n mstore\n /* \"#utility.yul\":5028:5032 */\n 0x21\n /* \"#utility.yul\":5025:5026 */\n 0x04\n /* \"#utility.yul\":5018:5033 */\n mstore\n /* \"#utility.yul\":5052:5056 */\n 0x24\n /* \"#utility.yul\":5049:5050 */\n 0x00\n /* \"#utility.yul\":5042:5057 */\n revert\n /* \"#utility.yul\":5069:5249 */\n tag_237:\n /* \"#utility.yul\":5117:5194 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":5114:5115 */\n 0x00\n /* \"#utility.yul\":5107:5195 */\n mstore\n /* \"#utility.yul\":5214:5218 */\n 0x11\n /* \"#utility.yul\":5211:5212 */\n 0x04\n /* \"#utility.yul\":5204:5219 */\n mstore\n /* \"#utility.yul\":5238:5242 */\n 0x24\n /* \"#utility.yul\":5235:5236 */\n 0x00\n /* \"#utility.yul\":5228:5243 */\n revert\n /* \"#utility.yul\":5255:5446 */\n tag_98:\n /* \"#utility.yul\":5295:5298 */\n 0x00\n /* \"#utility.yul\":5314:5334 */\n tag_309\n /* \"#utility.yul\":5332:5333 */\n dup3\n /* \"#utility.yul\":5314:5334 */\n tag_228\n jump\t// in\n tag_309:\n /* \"#utility.yul\":5309:5334 */\n swap2\n pop\n /* \"#utility.yul\":5348:5368 */\n tag_310\n /* \"#utility.yul\":5366:5367 */\n dup4\n /* \"#utility.yul\":5348:5368 */\n tag_228\n jump\t// in\n tag_310:\n /* \"#utility.yul\":5343:5368 */\n swap3\n pop\n /* \"#utility.yul\":5391:5392 */\n dup3\n /* \"#utility.yul\":5388:5389 */\n dup3\n /* \"#utility.yul\":5384:5393 */\n add\n /* \"#utility.yul\":5377:5393 */\n swap1\n pop\n /* \"#utility.yul\":5412:5415 */\n dup1\n /* \"#utility.yul\":5409:5410 */\n dup3\n /* \"#utility.yul\":5406:5416 */\n gt\n /* \"#utility.yul\":5403:5439 */\n iszero\n tag_311\n jumpi\n /* \"#utility.yul\":5419:5437 */\n tag_312\n tag_237\n jump\t// in\n tag_312:\n /* \"#utility.yul\":5403:5439 */\n tag_311:\n /* \"#utility.yul\":5255:5446 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5452:5784 */\n tag_111:\n /* \"#utility.yul\":5573:5577 */\n 0x00\n /* \"#utility.yul\":5611:5613 */\n 0x40\n /* \"#utility.yul\":5600:5609 */\n dup3\n /* \"#utility.yul\":5596:5614 */\n add\n /* \"#utility.yul\":5588:5614 */\n swap1\n pop\n /* \"#utility.yul\":5624:5695 */\n tag_314\n /* \"#utility.yul\":5692:5693 */\n 0x00\n /* \"#utility.yul\":5681:5690 */\n dup4\n /* \"#utility.yul\":5677:5694 */\n add\n /* \"#utility.yul\":5668:5674 */\n dup6\n /* \"#utility.yul\":5624:5695 */\n tag_229\n jump\t// in\n tag_314:\n /* \"#utility.yul\":5705:5777 */\n tag_315\n /* \"#utility.yul\":5773:5775 */\n 0x20\n /* \"#utility.yul\":5762:5771 */\n dup4\n /* \"#utility.yul\":5758:5776 */\n add\n /* \"#utility.yul\":5749:5755 */\n dup5\n /* \"#utility.yul\":5705:5777 */\n tag_229\n jump\t// in\n tag_315:\n /* \"#utility.yul\":5452:5784 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5790:5970 */\n tag_138:\n /* \"#utility.yul\":5838:5915 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":5835:5836 */\n 0x00\n /* \"#utility.yul\":5828:5916 */\n mstore\n /* \"#utility.yul\":5935:5939 */\n 0x32\n /* \"#utility.yul\":5932:5933 */\n 0x04\n /* \"#utility.yul\":5925:5940 */\n mstore\n /* \"#utility.yul\":5959:5963 */\n 0x24\n /* \"#utility.yul\":5956:5957 */\n 0x00\n /* \"#utility.yul\":5949:5964 */\n revert\n /* \"#utility.yul\":5976:6062 */\n tag_238:\n /* \"#utility.yul\":6011:6018 */\n 0x00\n /* \"#utility.yul\":6051:6055 */\n 0xff\n /* \"#utility.yul\":6044:6049 */\n dup3\n /* \"#utility.yul\":6040:6056 */\n and\n /* \"#utility.yul\":6029:6056 */\n swap1\n pop\n /* \"#utility.yul\":5976:6062 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6068:6235 */\n tag_146:\n /* \"#utility.yul\":6105:6108 */\n 0x00\n /* \"#utility.yul\":6128:6150 */\n tag_319\n /* \"#utility.yul\":6144:6149 */\n dup3\n /* \"#utility.yul\":6128:6150 */\n tag_238\n jump\t// in\n tag_319:\n /* \"#utility.yul\":6119:6150 */\n swap2\n pop\n /* \"#utility.yul\":6172:6176 */\n 0xff\n /* \"#utility.yul\":6165:6170 */\n dup3\n /* \"#utility.yul\":6162:6177 */\n sub\n /* \"#utility.yul\":6159:6200 */\n tag_320\n jumpi\n /* \"#utility.yul\":6180:6198 */\n tag_321\n tag_237\n jump\t// in\n tag_321:\n /* \"#utility.yul\":6159:6200 */\n tag_320:\n /* \"#utility.yul\":6227:6228 */\n 0x01\n /* \"#utility.yul\":6220:6225 */\n dup3\n /* \"#utility.yul\":6216:6229 */\n add\n /* \"#utility.yul\":6209:6229 */\n swap1\n pop\n /* \"#utility.yul\":6068:6235 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6241:6359 */\n tag_239:\n /* \"#utility.yul\":6327:6328 */\n 0x08\n /* \"#utility.yul\":6320:6325 */\n dup2\n /* \"#utility.yul\":6317:6329 */\n lt\n /* \"#utility.yul\":6307:6353 */\n tag_323\n jumpi\n /* \"#utility.yul\":6333:6351 */\n tag_324\n tag_94\n jump\t// in\n tag_324:\n /* \"#utility.yul\":6307:6353 */\n tag_323:\n /* \"#utility.yul\":6241:6359 */\n pop\n jump\t// out\n /* \"#utility.yul\":6365:6502 */\n tag_240:\n /* \"#utility.yul\":6415:6422 */\n 0x00\n /* \"#utility.yul\":6444:6449 */\n dup2\n /* \"#utility.yul\":6433:6449 */\n swap1\n pop\n /* \"#utility.yul\":6450:6496 */\n tag_326\n /* \"#utility.yul\":6490:6495 */\n dup3\n /* \"#utility.yul\":6450:6496 */\n tag_239\n jump\t// in\n tag_326:\n /* \"#utility.yul\":6365:6502 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6508:6645 */\n tag_241:\n /* \"#utility.yul\":6569:6578 */\n 0x00\n /* \"#utility.yul\":6602:6639 */\n tag_328\n /* \"#utility.yul\":6633:6638 */\n dup3\n /* \"#utility.yul\":6602:6639 */\n tag_240\n jump\t// in\n tag_328:\n /* \"#utility.yul\":6589:6639 */\n swap1\n pop\n /* \"#utility.yul\":6508:6645 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6651:6804 */\n tag_242:\n /* \"#utility.yul\":6749:6797 */\n tag_330\n /* \"#utility.yul\":6791:6796 */\n dup2\n /* \"#utility.yul\":6749:6797 */\n tag_241\n jump\t// in\n tag_330:\n /* \"#utility.yul\":6744:6747 */\n dup3\n /* \"#utility.yul\":6737:6798 */\n mstore\n /* \"#utility.yul\":6651:6804 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6810:6895 */\n tag_243:\n /* \"#utility.yul\":6855:6862 */\n 0x00\n /* \"#utility.yul\":6884:6889 */\n dup2\n /* \"#utility.yul\":6873:6889 */\n swap1\n pop\n /* \"#utility.yul\":6810:6895 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6901:6994 */\n tag_244:\n /* \"#utility.yul\":6937:6944 */\n 0x00\n /* \"#utility.yul\":6977:6987 */\n 0xffffffff\n /* \"#utility.yul\":6970:6975 */\n dup3\n /* \"#utility.yul\":6966:6988 */\n and\n /* \"#utility.yul\":6955:6988 */\n swap1\n pop\n /* \"#utility.yul\":6901:6994 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7000:7060 */\n tag_245:\n /* \"#utility.yul\":7028:7031 */\n 0x00\n /* \"#utility.yul\":7049:7054 */\n dup2\n /* \"#utility.yul\":7042:7054 */\n swap1\n pop\n /* \"#utility.yul\":7000:7060 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7066:7222 */\n tag_246:\n /* \"#utility.yul\":7123:7132 */\n 0x00\n /* \"#utility.yul\":7156:7216 */\n tag_335\n /* \"#utility.yul\":7173:7215 */\n tag_336\n /* \"#utility.yul\":7182:7214 */\n tag_337\n /* \"#utility.yul\":7208:7213 */\n dup5\n /* \"#utility.yul\":7182:7214 */\n tag_243\n jump\t// in\n tag_337:\n /* \"#utility.yul\":7173:7215 */\n tag_245\n jump\t// in\n tag_336:\n /* \"#utility.yul\":7156:7216 */\n tag_244\n jump\t// in\n tag_335:\n /* \"#utility.yul\":7143:7216 */\n swap1\n pop\n /* \"#utility.yul\":7066:7222 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7228:7373 */\n tag_247:\n /* \"#utility.yul\":7322:7366 */\n tag_339\n /* \"#utility.yul\":7360:7365 */\n dup2\n /* \"#utility.yul\":7322:7366 */\n tag_246\n jump\t// in\n tag_339:\n /* \"#utility.yul\":7317:7320 */\n dup3\n /* \"#utility.yul\":7310:7367 */\n mstore\n /* \"#utility.yul\":7228:7373 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7379:7857 */\n tag_161:\n /* \"#utility.yul\":7546:7550 */\n 0x00\n /* \"#utility.yul\":7584:7586 */\n 0x60\n /* \"#utility.yul\":7573:7582 */\n dup3\n /* \"#utility.yul\":7569:7587 */\n add\n /* \"#utility.yul\":7561:7587 */\n swap1\n pop\n /* \"#utility.yul\":7597:7668 */\n tag_341\n /* \"#utility.yul\":7665:7666 */\n 0x00\n /* \"#utility.yul\":7654:7663 */\n dup4\n /* \"#utility.yul\":7650:7667 */\n add\n /* \"#utility.yul\":7641:7647 */\n dup7\n /* \"#utility.yul\":7597:7668 */\n tag_220\n jump\t// in\n tag_341:\n /* \"#utility.yul\":7678:7761 */\n tag_342\n /* \"#utility.yul\":7757:7759 */\n 0x20\n /* \"#utility.yul\":7746:7755 */\n dup4\n /* \"#utility.yul\":7742:7760 */\n add\n /* \"#utility.yul\":7733:7739 */\n dup6\n /* \"#utility.yul\":7678:7761 */\n tag_242\n jump\t// in\n tag_342:\n /* \"#utility.yul\":7771:7850 */\n tag_343\n /* \"#utility.yul\":7846:7848 */\n 0x40\n /* \"#utility.yul\":7835:7844 */\n dup4\n /* \"#utility.yul\":7831:7849 */\n add\n /* \"#utility.yul\":7822:7828 */\n dup5\n /* \"#utility.yul\":7771:7850 */\n tag_247\n jump\t// in\n tag_343:\n /* \"#utility.yul\":7379:7857 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7863:8107 */\n tag_166:\n /* \"#utility.yul\":7967:7971 */\n 0x00\n /* \"#utility.yul\":8005:8007 */\n 0x20\n /* \"#utility.yul\":7994:8003 */\n dup3\n /* \"#utility.yul\":7990:8008 */\n add\n /* \"#utility.yul\":7982:8008 */\n swap1\n pop\n /* \"#utility.yul\":8018:8100 */\n tag_345\n /* \"#utility.yul\":8097:8098 */\n 0x00\n /* \"#utility.yul\":8086:8095 */\n dup4\n /* \"#utility.yul\":8082:8099 */\n add\n /* \"#utility.yul\":8073:8079 */\n dup5\n /* \"#utility.yul\":8018:8100 */\n tag_242\n jump\t// in\n tag_345:\n /* \"#utility.yul\":7863:8107 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8113:8555 */\n tag_185:\n /* \"#utility.yul\":8262:8266 */\n 0x00\n /* \"#utility.yul\":8300:8302 */\n 0x60\n /* \"#utility.yul\":8289:8298 */\n dup3\n /* \"#utility.yul\":8285:8303 */\n add\n /* \"#utility.yul\":8277:8303 */\n swap1\n pop\n /* \"#utility.yul\":8313:8384 */\n tag_347\n /* \"#utility.yul\":8381:8382 */\n 0x00\n /* \"#utility.yul\":8370:8379 */\n dup4\n /* \"#utility.yul\":8366:8383 */\n add\n /* \"#utility.yul\":8357:8363 */\n dup7\n /* \"#utility.yul\":8313:8384 */\n tag_229\n jump\t// in\n tag_347:\n /* \"#utility.yul\":8394:8466 */\n tag_348\n /* \"#utility.yul\":8462:8464 */\n 0x20\n /* \"#utility.yul\":8451:8460 */\n dup4\n /* \"#utility.yul\":8447:8465 */\n add\n /* \"#utility.yul\":8438:8444 */\n dup6\n /* \"#utility.yul\":8394:8466 */\n tag_220\n jump\t// in\n tag_348:\n /* \"#utility.yul\":8476:8548 */\n tag_349\n /* \"#utility.yul\":8544:8546 */\n 0x40\n /* \"#utility.yul\":8533:8542 */\n dup4\n /* \"#utility.yul\":8529:8547 */\n add\n /* \"#utility.yul\":8520:8526 */\n dup5\n /* \"#utility.yul\":8476:8548 */\n tag_220\n jump\t// in\n tag_349:\n /* \"#utility.yul\":8113:8555 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8561:8703 */\n tag_248:\n /* \"#utility.yul\":8611:8620 */\n 0x00\n /* \"#utility.yul\":8644:8697 */\n tag_351\n /* \"#utility.yul\":8662:8696 */\n tag_352\n /* \"#utility.yul\":8671:8695 */\n tag_353\n /* \"#utility.yul\":8689:8694 */\n dup5\n /* \"#utility.yul\":8671:8695 */\n tag_218\n jump\t// in\n tag_353:\n /* \"#utility.yul\":8662:8696 */\n tag_245\n jump\t// in\n tag_352:\n /* \"#utility.yul\":8644:8697 */\n tag_218\n jump\t// in\n tag_351:\n /* \"#utility.yul\":8631:8697 */\n swap1\n pop\n /* \"#utility.yul\":8561:8703 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8709:8835 */\n tag_249:\n /* \"#utility.yul\":8759:8768 */\n 0x00\n /* \"#utility.yul\":8792:8829 */\n tag_355\n /* \"#utility.yul\":8823:8828 */\n dup3\n /* \"#utility.yul\":8792:8829 */\n tag_248\n jump\t// in\n tag_355:\n /* \"#utility.yul\":8779:8829 */\n swap1\n pop\n /* \"#utility.yul\":8709:8835 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8841:8975 */\n tag_250:\n /* \"#utility.yul\":8899:8908 */\n 0x00\n /* \"#utility.yul\":8932:8969 */\n tag_357\n /* \"#utility.yul\":8963:8968 */\n dup3\n /* \"#utility.yul\":8932:8969 */\n tag_249\n jump\t// in\n tag_357:\n /* \"#utility.yul\":8919:8969 */\n swap1\n pop\n /* \"#utility.yul\":8841:8975 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8981:9128 */\n tag_251:\n /* \"#utility.yul\":9076:9121 */\n tag_359\n /* \"#utility.yul\":9115:9120 */\n dup2\n /* \"#utility.yul\":9076:9121 */\n tag_250\n jump\t// in\n tag_359:\n /* \"#utility.yul\":9071:9074 */\n dup3\n /* \"#utility.yul\":9064:9122 */\n mstore\n /* \"#utility.yul\":8981:9128 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9134:9372 */\n tag_189:\n /* \"#utility.yul\":9235:9239 */\n 0x00\n /* \"#utility.yul\":9273:9275 */\n 0x20\n /* \"#utility.yul\":9262:9271 */\n dup3\n /* \"#utility.yul\":9258:9276 */\n add\n /* \"#utility.yul\":9250:9276 */\n swap1\n pop\n /* \"#utility.yul\":9286:9365 */\n tag_361\n /* \"#utility.yul\":9362:9363 */\n 0x00\n /* \"#utility.yul\":9351:9360 */\n dup4\n /* \"#utility.yul\":9347:9364 */\n add\n /* \"#utility.yul\":9338:9344 */\n dup5\n /* \"#utility.yul\":9286:9365 */\n tag_251\n jump\t// in\n tag_361:\n /* \"#utility.yul\":9134:9372 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9378:9572 */\n tag_191:\n /* \"#utility.yul\":9418:9422 */\n 0x00\n /* \"#utility.yul\":9438:9458 */\n tag_363\n /* \"#utility.yul\":9456:9457 */\n dup3\n /* \"#utility.yul\":9438:9458 */\n tag_228\n jump\t// in\n tag_363:\n /* \"#utility.yul\":9433:9458 */\n swap2\n pop\n /* \"#utility.yul\":9472:9492 */\n tag_364\n /* \"#utility.yul\":9490:9491 */\n dup4\n /* \"#utility.yul\":9472:9492 */\n tag_228\n jump\t// in\n tag_364:\n /* \"#utility.yul\":9467:9492 */\n swap3\n pop\n /* \"#utility.yul\":9516:9517 */\n dup3\n /* \"#utility.yul\":9513:9514 */\n dup3\n /* \"#utility.yul\":9509:9518 */\n sub\n /* \"#utility.yul\":9501:9518 */\n swap1\n pop\n /* \"#utility.yul\":9540:9541 */\n dup2\n /* \"#utility.yul\":9534:9538 */\n dup2\n /* \"#utility.yul\":9531:9542 */\n gt\n /* \"#utility.yul\":9528:9565 */\n iszero\n tag_365\n jumpi\n /* \"#utility.yul\":9545:9563 */\n tag_366\n tag_237\n jump\t// in\n tag_366:\n /* \"#utility.yul\":9528:9565 */\n tag_365:\n /* \"#utility.yul\":9378:9572 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220810898531e66f6cf90c6d05f8e4e250906cafe30107d480c70bebd232eca9d6b64736f6c63430008110033\n}\n", + "assembly": " /* \"main.sol\":195:12434 contract ProxyLeaderDemo {... */\n mstore(0x40, 0x80)\n /* \"main.sol\":3876:3877 3 */\n 0x03\n /* \"main.sol\":3842:3877 uint256 public MIN_PARTICIPANTS = 3 */\n 0x00\n sstore\n /* \"main.sol\":4083:4086 255 */\n 0xff\n /* \"main.sol\":4049:4086 uint256 public MAX_PARTICIPANTS = 255 */\n 0x01\n sstore\n /* \"main.sol\":4198:4205 1 ether */\n 0x0de0b6b3a7640000\n /* \"main.sol\":4159:4205 uint256 public MIN_PARTICIPATION_FEE = 1 ether */\n 0x02\n sstore\n /* \"main.sol\":5448:5608 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"main.sol\":5480:5490 msg.sender */\n caller\n /* \"main.sol\":5472:5477 owner */\n 0x0b\n 0x00\n /* \"main.sol\":5472:5490 owner = msg.sender */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":5517:5518 0 */\n 0x00\n /* \"main.sol\":5500:5506 staker */\n 0x05\n 0x00\n /* \"main.sol\":5500:5519 staker = address(0) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":5548:5549 0 */\n 0x00\n /* \"main.sol\":5529:5537 governor */\n 0x04\n 0x01\n /* \"main.sol\":5529:5550 governor = address(0) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":5574:5575 0 */\n 0x00\n /* \"main.sol\":5560:5571 votingRound */\n 0x03\n /* \"main.sol\":5560:5575 votingRound = 0 */\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":5596:5601 false */\n 0x00\n /* \"main.sol\":5585:5593 isVoting */\n 0x04\n 0x00\n /* \"main.sol\":5585:5601 isVoting = false */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":195:12434 contract ProxyLeaderDemo {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"main.sol\":195:12434 contract ProxyLeaderDemo {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x5ebaf1db\n gt\n tag_17\n jumpi\n dup1\n 0xc3403ddf\n gt\n tag_18\n jumpi\n dup1\n 0xc3403ddf\n eq\n tag_13\n jumpi\n dup1\n 0xc535c733\n eq\n tag_14\n jumpi\n dup1\n 0xf19e9d81\n eq\n tag_15\n jumpi\n dup1\n 0xf3baf070\n eq\n tag_16\n jumpi\n jump(tag_1)\n tag_18:\n dup1\n 0x5ebaf1db\n eq\n tag_9\n jumpi\n dup1\n 0x8371e6b4\n eq\n tag_10\n jumpi\n dup1\n 0xadfaa72e\n eq\n tag_11\n jumpi\n dup1\n 0xbb725440\n eq\n tag_12\n jumpi\n jump(tag_1)\n tag_17:\n dup1\n 0x1ec6b60a\n gt\n tag_19\n jumpi\n dup1\n 0x1ec6b60a\n eq\n tag_5\n jumpi\n dup1\n 0x3706dd4e\n eq\n tag_6\n jumpi\n dup1\n 0x3a984bc5\n eq\n tag_7\n jumpi\n dup1\n 0x5aa68ac0\n eq\n tag_8\n jumpi\n jump(tag_1)\n tag_19:\n dup1\n 0x0c340a24\n eq\n tag_2\n jumpi\n dup1\n 0x1afa74e5\n eq\n tag_3\n jumpi\n dup1\n 0x1bbef399\n eq\n tag_4\n jumpi\n tag_1:\n 0x00\n dup1\n revert\n /* \"main.sol\":4495:4518 address public governor */\n tag_2:\n callvalue\n dup1\n iszero\n tag_20\n jumpi\n 0x00\n dup1\n revert\n tag_20:\n pop\n tag_21\n tag_22\n jump\t// in\n tag_21:\n mload(0x40)\n tag_23\n swap2\n swap1\n tag_24\n jump\t// in\n tag_23:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":11285:12349 function vote(address governorCandidate, address stakerCandidate) external {... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_25\n jumpi\n 0x00\n dup1\n revert\n tag_25:\n pop\n tag_26\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\n tag_27:\n tag_29\n jump\t// in\n tag_26:\n stop\n /* \"main.sol\":4431:4451 bool public isVoting */\n tag_4:\n callvalue\n dup1\n iszero\n tag_30\n jumpi\n 0x00\n dup1\n revert\n tag_30:\n pop\n tag_31\n tag_32\n jump\t// in\n tag_31:\n mload(0x40)\n tag_33\n swap2\n swap1\n tag_34\n jump\t// in\n tag_33:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":8299:8719 function startVoting() external onlyOwner {... */\n tag_5:\n callvalue\n dup1\n iszero\n tag_35\n jumpi\n 0x00\n dup1\n revert\n tag_35:\n pop\n tag_36\n tag_37\n jump\t// in\n tag_36:\n stop\n /* \"main.sol\":4628:4655 uint256 public pooledAmount */\n tag_6:\n callvalue\n dup1\n iszero\n tag_38\n jumpi\n 0x00\n dup1\n revert\n tag_38:\n pop\n tag_39\n tag_40\n jump\t// in\n tag_39:\n mload(0x40)\n tag_41\n swap2\n swap1\n tag_42\n jump\t// in\n tag_41:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":3842:3877 uint256 public MIN_PARTICIPANTS = 3 */\n tag_7:\n callvalue\n dup1\n iszero\n tag_43\n jumpi\n 0x00\n dup1\n revert\n tag_43:\n pop\n tag_44\n tag_45\n jump\t// in\n tag_44:\n mload(0x40)\n tag_46\n swap2\n swap1\n tag_42\n jump\t// in\n tag_46:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":5614:5719 function getParticipants() public view returns (address[] memory) {... */\n tag_8:\n callvalue\n dup1\n iszero\n tag_47\n jumpi\n 0x00\n dup1\n revert\n tag_47:\n pop\n tag_48\n tag_49\n jump\t// in\n tag_48:\n mload(0x40)\n tag_50\n swap2\n swap1\n tag_51\n jump\t// in\n tag_50:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":4560:4581 address public staker */\n tag_9:\n callvalue\n dup1\n iszero\n tag_52\n jumpi\n 0x00\n dup1\n revert\n tag_52:\n pop\n tag_53\n tag_54\n jump\t// in\n tag_53:\n mload(0x40)\n tag_55\n swap2\n swap1\n tag_24\n jump\t// in\n tag_55:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":6049:6880 function joinPool() external payable {... */\n tag_10:\n tag_56\n tag_57\n jump\t// in\n tag_56:\n stop\n /* \"main.sol\":5725:5864 function canVote(address who) public view returns (bool) {... */\n tag_11:\n callvalue\n dup1\n iszero\n tag_58\n jumpi\n 0x00\n dup1\n revert\n tag_58:\n pop\n tag_59\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_60\n swap2\n swap1\n tag_61\n jump\t// in\n tag_60:\n tag_62\n jump\t// in\n tag_59:\n mload(0x40)\n tag_63\n swap2\n swap1\n tag_34\n jump\t// in\n tag_63:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":4159:4205 uint256 public MIN_PARTICIPATION_FEE = 1 ether */\n tag_12:\n callvalue\n dup1\n iszero\n tag_64\n jumpi\n 0x00\n dup1\n revert\n tag_64:\n pop\n tag_65\n tag_66\n jump\t// in\n tag_65:\n mload(0x40)\n tag_67\n swap2\n swap1\n tag_42\n jump\t// in\n tag_67:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":8950:11096 function endVoting() external onlyOwner {... */\n tag_13:\n callvalue\n dup1\n iszero\n tag_68\n jumpi\n 0x00\n dup1\n revert\n tag_68:\n pop\n tag_69\n tag_70\n jump\t// in\n tag_69:\n stop\n /* \"main.sol\":4334:4360 uint256 public votingRound */\n tag_14:\n callvalue\n dup1\n iszero\n tag_71\n jumpi\n 0x00\n dup1\n revert\n tag_71:\n pop\n tag_72\n tag_73\n jump\t// in\n tag_72:\n mload(0x40)\n tag_74\n swap2\n swap1\n tag_42\n jump\t// in\n tag_74:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":7015:8148 function leavePool() external {... */\n tag_15:\n callvalue\n dup1\n iszero\n tag_75\n jumpi\n 0x00\n dup1\n revert\n tag_75:\n pop\n tag_76\n tag_77\n jump\t// in\n tag_76:\n stop\n /* \"main.sol\":4049:4086 uint256 public MAX_PARTICIPANTS = 255 */\n tag_16:\n callvalue\n dup1\n iszero\n tag_78\n jumpi\n 0x00\n dup1\n revert\n tag_78:\n pop\n tag_79\n tag_80\n jump\t// in\n tag_79:\n mload(0x40)\n tag_81\n swap2\n swap1\n tag_42\n jump\t// in\n tag_81:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":4495:4518 address public governor */\n tag_22:\n 0x04\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n jump\t// out\n /* \"main.sol\":11285:12349 function vote(address governorCandidate, address stakerCandidate) external {... */\n tag_29:\n /* \"main.sol\":11375:11383 isVoting */\n 0x04\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":11370:11438 if (!isVoting) {... */\n tag_83\n jumpi\n /* \"main.sol\":11406:11427 VotingNotInProgress() */\n mload(0x40)\n 0xf2d3b0f300000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":11370:11438 if (!isVoting) {... */\n tag_83:\n /* \"main.sol\":11448:11462 address sender */\n 0x00\n /* \"main.sol\":11465:11475 msg.sender */\n caller\n /* \"main.sol\":11448:11475 address sender = msg.sender */\n swap1\n pop\n /* \"main.sol\":11485:11515 Participant memory participant */\n 0x00\n /* \"main.sol\":11518:11530 participants */\n 0x08\n /* \"main.sol\":11518:11538 participants[sender] */\n 0x00\n /* \"main.sol\":11531:11537 sender */\n dup4\n /* \"main.sol\":11518:11538 participants[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":11485:11538 Participant memory participant = participants[sender] */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n swap1\n dup2\n 0x00\n dup3\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n 0x00\n dup3\n add\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n 0xff\n and\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n 0x01\n dup3\n add\n sload\n dup2\n mstore\n pop\n pop\n swap1\n pop\n /* \"main.sol\":11548:11586 Participant memory governorParticipant */\n 0x00\n /* \"main.sol\":11589:11601 participants */\n 0x08\n /* \"main.sol\":11589:11642 participants[... */\n 0x00\n /* \"main.sol\":11615:11632 governorCandidate */\n dup7\n /* \"main.sol\":11589:11642 participants[... */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":11548:11642 Participant memory governorParticipant = participants[... */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n swap1\n dup2\n 0x00\n dup3\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n 0x00\n dup3\n add\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n 0xff\n and\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n 0x01\n dup3\n add\n sload\n dup2\n mstore\n pop\n pop\n swap1\n pop\n /* \"main.sol\":11652:11688 Participant memory stakerParticipant */\n 0x00\n /* \"main.sol\":11691:11703 participants */\n 0x08\n /* \"main.sol\":11691:11720 participants[stakerCandidate] */\n 0x00\n /* \"main.sol\":11704:11719 stakerCandidate */\n dup7\n /* \"main.sol\":11691:11720 participants[stakerCandidate] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":11652:11720 Participant memory stakerParticipant = participants[stakerCandidate] */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n swap1\n dup2\n 0x00\n dup3\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n 0x00\n dup3\n add\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n 0xff\n and\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n 0x01\n dup3\n add\n sload\n dup2\n mstore\n pop\n pop\n swap1\n pop\n /* \"main.sol\":11735:11745 votesGiven */\n 0x09\n /* \"main.sol\":11735:11758 votesGiven[votingRound] */\n 0x00\n /* \"main.sol\":11746:11757 votingRound */\n sload(0x03)\n /* \"main.sol\":11735:11758 votesGiven[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":11735:11766 votesGiven[votingRound][sender] */\n 0x00\n /* \"main.sol\":11759:11765 sender */\n dup6\n /* \"main.sol\":11735:11766 votesGiven[votingRound][sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":11731:11825 if (votesGiven[votingRound][sender]) {... */\n iszero\n tag_84\n jumpi\n /* \"main.sol\":11802:11813 votingRound */\n sload(0x03)\n /* \"main.sol\":11789:11814 AlreadyVoted(votingRound) */\n mload(0x40)\n 0xc0afe58d00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_85\n swap2\n swap1\n tag_42\n jump\t// in\n tag_85:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":11731:11825 if (votesGiven[votingRound][sender]) {... */\n tag_84:\n /* \"main.sol\":11839:11850 participant */\n dup3\n /* \"main.sol\":11839:11858 participant.isValid */\n 0x00\n add\n mload\n /* \"main.sol\":11834:11909 if (!participant.isValid) {... */\n tag_86\n jumpi\n /* \"main.sol\":11891:11897 sender */\n dup4\n /* \"main.sol\":11881:11898 NotInPool(sender) */\n mload(0x40)\n 0x76a1be0500000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_87\n swap2\n swap1\n tag_24\n jump\t// in\n tag_87:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":11834:11909 if (!participant.isValid) {... */\n tag_86:\n /* \"main.sol\":11923:11942 governorParticipant */\n dup2\n /* \"main.sol\":11923:11950 governorParticipant.isValid */\n 0x00\n add\n mload\n /* \"main.sol\":11918:12012 if (!governorParticipant.isValid) {... */\n tag_88\n jumpi\n /* \"main.sol\":11983:12000 governorCandidate */\n dup6\n /* \"main.sol\":11973:12001 NotInPool(governorCandidate) */\n mload(0x40)\n 0x76a1be0500000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_89\n swap2\n swap1\n tag_24\n jump\t// in\n tag_89:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":11918:12012 if (!governorParticipant.isValid) {... */\n tag_88:\n /* \"main.sol\":12026:12043 stakerParticipant */\n dup1\n /* \"main.sol\":12026:12051 stakerParticipant.isValid */\n 0x00\n add\n mload\n /* \"main.sol\":12021:12111 if (!stakerParticipant.isValid) {... */\n tag_90\n jumpi\n /* \"main.sol\":12084:12099 stakerCandidate */\n dup5\n /* \"main.sol\":12074:12100 NotInPool(stakerCandidate) */\n mload(0x40)\n 0x76a1be0500000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_91\n swap2\n swap1\n tag_24\n jump\t// in\n tag_91:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":12021:12111 if (!stakerParticipant.isValid) {... */\n tag_90:\n /* \"main.sol\":12155:12159 true */\n 0x01\n /* \"main.sol\":12121:12131 votesGiven */\n 0x09\n /* \"main.sol\":12121:12144 votesGiven[votingRound] */\n 0x00\n /* \"main.sol\":12132:12143 votingRound */\n sload(0x03)\n /* \"main.sol\":12121:12144 votesGiven[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":12121:12152 votesGiven[votingRound][sender] */\n 0x00\n /* \"main.sol\":12145:12151 sender */\n dup7\n /* \"main.sol\":12121:12152 votesGiven[votingRound][sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"main.sol\":12121:12159 votesGiven[votingRound][sender] = true */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":12237:12238 1 */\n 0x01\n /* \"main.sol\":12169:12182 votesReceived */\n 0x0a\n /* \"main.sol\":12169:12195 votesReceived[votingRound] */\n 0x00\n /* \"main.sol\":12183:12194 votingRound */\n sload(0x03)\n /* \"main.sol\":12169:12195 votesReceived[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":12169:12214 votesReceived[votingRound][RoleType.Governor] */\n 0x00\n /* \"main.sol\":12196:12213 RoleType.Governor */\n dup1\n /* \"main.sol\":12169:12214 votesReceived[votingRound][RoleType.Governor] */\n 0x01\n dup2\n gt\n iszero\n tag_92\n jumpi\n tag_93\n tag_94\n jump\t// in\n tag_93:\n tag_92:\n 0x01\n dup2\n gt\n iszero\n tag_95\n jumpi\n tag_96\n tag_94\n jump\t// in\n tag_96:\n tag_95:\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":12169:12233 votesReceived[votingRound][RoleType.Governor][governorCandidate] */\n 0x00\n /* \"main.sol\":12215:12232 governorCandidate */\n dup9\n /* \"main.sol\":12169:12233 votesReceived[votingRound][RoleType.Governor][governorCandidate] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"main.sol\":12169:12238 votesReceived[votingRound][RoleType.Governor][governorCandidate] += 1 */\n dup3\n dup3\n sload\n tag_97\n swap2\n swap1\n tag_98\n jump\t// in\n tag_97:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":12312:12313 1 */\n 0x01\n /* \"main.sol\":12248:12261 votesReceived */\n 0x0a\n /* \"main.sol\":12248:12274 votesReceived[votingRound] */\n 0x00\n /* \"main.sol\":12262:12273 votingRound */\n sload(0x03)\n /* \"main.sol\":12248:12274 votesReceived[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":12248:12291 votesReceived[votingRound][RoleType.Staker] */\n 0x00\n /* \"main.sol\":12275:12290 RoleType.Staker */\n 0x01\n /* \"main.sol\":12248:12291 votesReceived[votingRound][RoleType.Staker] */\n dup1\n dup2\n gt\n iszero\n tag_99\n jumpi\n tag_100\n tag_94\n jump\t// in\n tag_100:\n tag_99:\n 0x01\n dup2\n gt\n iszero\n tag_101\n jumpi\n tag_102\n tag_94\n jump\t// in\n tag_102:\n tag_101:\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":12248:12308 votesReceived[votingRound][RoleType.Staker][stakerCandidate] */\n 0x00\n /* \"main.sol\":12292:12307 stakerCandidate */\n dup8\n /* \"main.sol\":12248:12308 votesReceived[votingRound][RoleType.Staker][stakerCandidate] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"main.sol\":12248:12313 votesReceived[votingRound][RoleType.Staker][stakerCandidate] += 1 */\n dup3\n dup3\n sload\n tag_103\n swap2\n swap1\n tag_98\n jump\t// in\n tag_103:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":12329:12342 Voted(sender) */\n 0x16a9aa39af49f169911e977347975198c503525f7240d6892a626f0227642fce\n /* \"main.sol\":12335:12341 sender */\n dup5\n /* \"main.sol\":12329:12342 Voted(sender) */\n mload(0x40)\n tag_104\n swap2\n swap1\n tag_24\n jump\t// in\n tag_104:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"main.sol\":11360:12349 {... */\n pop\n pop\n pop\n pop\n /* \"main.sol\":11285:12349 function vote(address governorCandidate, address stakerCandidate) external {... */\n pop\n pop\n jump\t// out\n /* \"main.sol\":4431:4451 bool public isVoting */\n tag_32:\n 0x04\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n dup2\n jump\t// out\n /* \"main.sol\":8299:8719 function startVoting() external onlyOwner {... */\n tag_37:\n /* \"main.sol\":12408:12413 owner */\n 0x0b\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":12394:12413 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":12394:12404 msg.sender */\n caller\n /* \"main.sol\":12394:12413 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"main.sol\":12386:12414 require(msg.sender == owner) */\n tag_106\n jumpi\n 0x00\n dup1\n revert\n tag_106:\n /* \"main.sol\":8355:8363 isVoting */\n 0x04\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":8351:8422 if (isVoting) {... */\n iszero\n tag_108\n jumpi\n /* \"main.sol\":8386:8411 VotingAlreadyInProgress() */\n mload(0x40)\n 0x79bde80600000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":8351:8422 if (isVoting) {... */\n tag_108:\n /* \"main.sol\":8461:8477 MIN_PARTICIPANTS */\n sload(0x00)\n /* \"main.sol\":8436:8451 participantKeys */\n 0x07\n /* \"main.sol\":8436:8458 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":8436:8477 participantKeys.length < MIN_PARTICIPANTS */\n lt\n /* \"main.sol\":8432:8620 if (participantKeys.length < MIN_PARTICIPANTS) {... */\n iszero\n tag_109\n jumpi\n /* \"main.sol\":8539:8554 participantKeys */\n 0x07\n /* \"main.sol\":8539:8561 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":8579:8595 MIN_PARTICIPANTS */\n sload(0x00)\n /* \"main.sol\":8500:8609 NotEnoughParticipants(... */\n mload(0x40)\n 0x5fdd6f4900000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_110\n swap3\n swap2\n swap1\n tag_111\n jump\t// in\n tag_110:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":8432:8620 if (participantKeys.length < MIN_PARTICIPANTS) {... */\n tag_109:\n /* \"main.sol\":8645:8646 1 */\n 0x01\n /* \"main.sol\":8630:8641 votingRound */\n 0x03\n 0x00\n /* \"main.sol\":8630:8646 votingRound += 1 */\n dup3\n dup3\n sload\n tag_112\n swap2\n swap1\n tag_98\n jump\t// in\n tag_112:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":8667:8671 true */\n 0x01\n /* \"main.sol\":8656:8664 isVoting */\n 0x04\n 0x00\n /* \"main.sol\":8656:8671 isVoting = true */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":8686:8712 VotingStarted(votingRound) */\n 0xcf33babc496bb6dc2942b39cb7b75766bbbadf7da50d176ff8c513e991140239\n /* \"main.sol\":8700:8711 votingRound */\n sload(0x03)\n /* \"main.sol\":8686:8712 VotingStarted(votingRound) */\n mload(0x40)\n tag_113\n swap2\n swap1\n tag_42\n jump\t// in\n tag_113:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"main.sol\":8299:8719 function startVoting() external onlyOwner {... */\n jump\t// out\n /* \"main.sol\":4628:4655 uint256 public pooledAmount */\n tag_40:\n sload(0x06)\n dup2\n jump\t// out\n /* \"main.sol\":3842:3877 uint256 public MIN_PARTICIPANTS = 3 */\n tag_45:\n sload(0x00)\n dup2\n jump\t// out\n /* \"main.sol\":5614:5719 function getParticipants() public view returns (address[] memory) {... */\n tag_49:\n /* \"main.sol\":5662:5678 address[] memory */\n 0x60\n /* \"main.sol\":5697:5712 participantKeys */\n 0x07\n /* \"main.sol\":5690:5712 return participantKeys */\n dup1\n sload\n dup1\n 0x20\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n dup1\n iszero\n tag_115\n jumpi\n 0x20\n mul\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_116:\n dup2\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n 0x01\n add\n swap1\n dup1\n dup4\n gt\n tag_116\n jumpi\n tag_115:\n pop\n pop\n pop\n pop\n pop\n swap1\n pop\n /* \"main.sol\":5614:5719 function getParticipants() public view returns (address[] memory) {... */\n swap1\n jump\t// out\n /* \"main.sol\":4560:4581 address public staker */\n tag_54:\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n jump\t// out\n /* \"main.sol\":6049:6880 function joinPool() external payable {... */\n tag_57:\n /* \"main.sol\":6096:6110 address sender */\n 0x00\n /* \"main.sol\":6113:6123 msg.sender */\n caller\n /* \"main.sol\":6096:6123 address sender = msg.sender */\n swap1\n pop\n /* \"main.sol\":6133:6147 uint256 amount */\n 0x00\n /* \"main.sol\":6150:6159 msg.value */\n callvalue\n /* \"main.sol\":6133:6159 uint256 amount = msg.value */\n swap1\n pop\n /* \"main.sol\":6169:6199 Participant memory participant */\n 0x00\n /* \"main.sol\":6202:6214 participants */\n 0x08\n /* \"main.sol\":6202:6222 participants[sender] */\n 0x00\n /* \"main.sol\":6215:6221 sender */\n dup5\n /* \"main.sol\":6202:6222 participants[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":6169:6222 Participant memory participant = participants[sender] */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n swap1\n dup2\n 0x00\n dup3\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n 0x00\n dup3\n add\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n 0xff\n and\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n 0x01\n dup3\n add\n sload\n dup2\n mstore\n pop\n pop\n swap1\n pop\n /* \"main.sol\":6236:6247 participant */\n dup1\n /* \"main.sol\":6236:6255 participant.isValid */\n 0x00\n add\n mload\n /* \"main.sol\":6232:6310 if (participant.isValid) {... */\n iszero\n tag_118\n jumpi\n /* \"main.sol\":6292:6298 sender */\n dup3\n /* \"main.sol\":6278:6299 AlreadyInPool(sender) */\n mload(0x40)\n 0xac7195c000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_119\n swap2\n swap1\n tag_24\n jump\t// in\n tag_119:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":6232:6310 if (participant.isValid) {... */\n tag_118:\n /* \"main.sol\":6349:6365 MAX_PARTICIPANTS */\n sload(0x01)\n /* \"main.sol\":6323:6338 participantKeys */\n 0x07\n /* \"main.sol\":6323:6345 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":6323:6365 participantKeys.length >= MAX_PARTICIPANTS */\n lt\n /* \"main.sol\":6319:6506 if (participantKeys.length >= MAX_PARTICIPANTS) {... */\n tag_120\n jumpi\n /* \"main.sol\":6425:6440 participantKeys */\n 0x07\n /* \"main.sol\":6425:6447 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":6465:6481 MAX_PARTICIPANTS */\n sload(0x01)\n /* \"main.sol\":6388:6495 TooManyParticipants(... */\n mload(0x40)\n 0xe318577800000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_121\n swap3\n swap2\n swap1\n tag_111\n jump\t// in\n tag_121:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":6319:6506 if (participantKeys.length >= MAX_PARTICIPANTS) {... */\n tag_120:\n /* \"main.sol\":6528:6549 MIN_PARTICIPATION_FEE */\n sload(0x02)\n /* \"main.sol\":6519:6525 amount */\n dup3\n /* \"main.sol\":6519:6549 amount < MIN_PARTICIPATION_FEE */\n lt\n /* \"main.sol\":6515:6626 if (amount < MIN_PARTICIPATION_FEE) {... */\n iszero\n tag_122\n jumpi\n /* \"main.sol\":6585:6591 amount */\n dup2\n /* \"main.sol\":6593:6614 MIN_PARTICIPATION_FEE */\n sload(0x02)\n /* \"main.sol\":6572:6615 NotEnoughFee(amount, MIN_PARTICIPATION_FEE) */\n mload(0x40)\n 0x0167202800000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_123\n swap3\n swap2\n swap1\n tag_111\n jump\t// in\n tag_123:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":6515:6626 if (amount < MIN_PARTICIPATION_FEE) {... */\n tag_122:\n /* \"main.sol\":6652:6658 amount */\n dup2\n /* \"main.sol\":6636:6648 pooledAmount */\n 0x06\n 0x00\n /* \"main.sol\":6636:6658 pooledAmount += amount */\n dup3\n dup3\n sload\n tag_124\n swap2\n swap1\n tag_98\n jump\t// in\n tag_124:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":6691:6793 Participant(... */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n dup1\n /* \"main.sol\":6716:6720 true */\n 0x01\n /* \"main.sol\":6691:6793 Participant(... */\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n /* \"main.sol\":6740:6755 participantKeys */\n 0x07\n /* \"main.sol\":6740:6762 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":6691:6793 Participant(... */\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n /* \"main.sol\":6777:6783 amount */\n dup4\n /* \"main.sol\":6691:6793 Participant(... */\n dup2\n mstore\n pop\n /* \"main.sol\":6668:6680 participants */\n 0x08\n /* \"main.sol\":6668:6688 participants[sender] */\n 0x00\n /* \"main.sol\":6681:6687 sender */\n dup6\n /* \"main.sol\":6668:6688 participants[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":6668:6793 participants[sender] = Participant(... */\n 0x00\n dup3\n add\n mload\n dup2\n 0x00\n add\n exp(0x0100, 0x00)\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n 0x20\n dup3\n add\n mload\n dup2\n 0x00\n add\n exp(0x0100, 0x01)\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n 0x40\n dup3\n add\n mload\n dup2\n 0x01\n add\n sstore\n swap1\n pop\n pop\n /* \"main.sol\":6803:6818 participantKeys */\n 0x07\n /* \"main.sol\":6824:6830 sender */\n dup4\n /* \"main.sol\":6803:6831 participantKeys.push(sender) */\n swap1\n dup1\n 0x01\n dup2\n sload\n add\n dup1\n dup3\n sstore\n dup1\n swap2\n pop\n pop\n 0x01\n swap1\n sub\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n swap1\n swap2\n swap1\n swap2\n swap1\n swap2\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":6858:6864 sender */\n dup3\n /* \"main.sol\":6847:6873 JoinedPool(sender, amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xc14c5e71ddef2aca3e9418524a979cb2131b9370676bdca8c03d345c7abb46c9\n /* \"main.sol\":6866:6872 amount */\n dup4\n /* \"main.sol\":6847:6873 JoinedPool(sender, amount) */\n mload(0x40)\n tag_126\n swap2\n swap1\n tag_42\n jump\t// in\n tag_126:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":6086:6880 {... */\n pop\n pop\n pop\n /* \"main.sol\":6049:6880 function joinPool() external payable {... */\n jump\t// out\n /* \"main.sol\":5725:5864 function canVote(address who) public view returns (bool) {... */\n tag_62:\n /* \"main.sol\":5776:5780 bool */\n 0x00\n /* \"main.sol\":5799:5811 participants */\n 0x08\n /* \"main.sol\":5799:5816 participants[who] */\n 0x00\n /* \"main.sol\":5812:5815 who */\n dup4\n /* \"main.sol\":5799:5816 participants[who] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":5799:5824 participants[who].isValid */\n 0x00\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":5799:5857 participants[who].isValid && !votesGiven[votingRound][who] */\n dup1\n iszero\n tag_128\n jumpi\n pop\n /* \"main.sol\":5829:5839 votesGiven */\n 0x09\n /* \"main.sol\":5829:5852 votesGiven[votingRound] */\n 0x00\n /* \"main.sol\":5840:5851 votingRound */\n sload(0x03)\n /* \"main.sol\":5829:5852 votesGiven[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":5829:5857 votesGiven[votingRound][who] */\n 0x00\n /* \"main.sol\":5853:5856 who */\n dup4\n /* \"main.sol\":5829:5857 votesGiven[votingRound][who] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":5828:5857 !votesGiven[votingRound][who] */\n iszero\n /* \"main.sol\":5799:5857 participants[who].isValid && !votesGiven[votingRound][who] */\n tag_128:\n /* \"main.sol\":5792:5857 return participants[who].isValid && !votesGiven[votingRound][who] */\n swap1\n pop\n /* \"main.sol\":5725:5864 function canVote(address who) public view returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"main.sol\":4159:4205 uint256 public MIN_PARTICIPATION_FEE = 1 ether */\n tag_66:\n sload(0x02)\n dup2\n jump\t// out\n /* \"main.sol\":8950:11096 function endVoting() external onlyOwner {... */\n tag_70:\n /* \"main.sol\":12408:12413 owner */\n 0x0b\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":12394:12413 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":12394:12404 msg.sender */\n caller\n /* \"main.sol\":12394:12413 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"main.sol\":12386:12414 require(msg.sender == owner) */\n tag_130\n jumpi\n 0x00\n dup1\n revert\n tag_130:\n /* \"main.sol\":9005:9013 isVoting */\n 0x04\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"main.sol\":9000:9068 if (!isVoting) {... */\n tag_132\n jumpi\n /* \"main.sol\":9036:9057 VotingNotInProgress() */\n mload(0x40)\n 0xf2d3b0f300000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":9000:9068 if (!isVoting) {... */\n tag_132:\n /* \"main.sol\":9089:9094 false */\n 0x00\n /* \"main.sol\":9078:9086 isVoting */\n 0x04\n 0x00\n /* \"main.sol\":9078:9094 isVoting = false */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":9105:9134 uint256 maxGovernorVotesSoFar */\n 0x00\n /* \"main.sol\":9148:9170 address winnerGovernor */\n dup1\n /* \"main.sol\":9185:9192 uint8 i */\n dup1\n /* \"main.sol\":9195:9196 0 */\n 0x00\n /* \"main.sol\":9185:9196 uint8 i = 0 */\n swap1\n pop\n /* \"main.sol\":9180:9564 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n tag_133:\n /* \"main.sol\":9202:9217 participantKeys */\n 0x07\n /* \"main.sol\":9202:9224 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":9198:9199 i */\n dup2\n /* \"main.sol\":9198:9224 i < participantKeys.length */\n 0xff\n and\n lt\n /* \"main.sol\":9180:9564 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n iszero\n tag_134\n jumpi\n /* \"main.sol\":9245:9262 address candidate */\n 0x00\n /* \"main.sol\":9265:9280 participantKeys */\n 0x07\n /* \"main.sol\":9281:9282 i */\n dup3\n /* \"main.sol\":9265:9283 participantKeys[i] */\n 0xff\n and\n dup2\n sload\n dup2\n lt\n tag_136\n jumpi\n tag_137\n tag_138\n jump\t// in\n tag_137:\n tag_136:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":9245:9283 address candidate = participantKeys[i] */\n swap1\n pop\n /* \"main.sol\":9297:9310 uint256 votes */\n 0x00\n /* \"main.sol\":9313:9326 votesReceived */\n 0x0a\n /* \"main.sol\":9313:9339 votesReceived[votingRound] */\n 0x00\n /* \"main.sol\":9327:9338 votingRound */\n sload(0x03)\n /* \"main.sol\":9313:9339 votesReceived[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":9313:9358 votesReceived[votingRound][RoleType.Governor] */\n 0x00\n /* \"main.sol\":9340:9357 RoleType.Governor */\n dup1\n /* \"main.sol\":9313:9358 votesReceived[votingRound][RoleType.Governor] */\n 0x01\n dup2\n gt\n iszero\n tag_140\n jumpi\n tag_141\n tag_94\n jump\t// in\n tag_141:\n tag_140:\n 0x01\n dup2\n gt\n iszero\n tag_142\n jumpi\n tag_143\n tag_94\n jump\t// in\n tag_143:\n tag_142:\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":9313:9399 votesReceived[votingRound][RoleType.Governor][... */\n 0x00\n /* \"main.sol\":9376:9385 candidate */\n dup4\n /* \"main.sol\":9313:9399 votesReceived[votingRound][RoleType.Governor][... */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"main.sol\":9297:9399 uint256 votes = votesReceived[votingRound][RoleType.Governor][... */\n swap1\n pop\n /* \"main.sol\":9425:9446 maxGovernorVotesSoFar */\n dup5\n /* \"main.sol\":9417:9422 votes */\n dup2\n /* \"main.sol\":9417:9446 votes > maxGovernorVotesSoFar */\n gt\n /* \"main.sol\":9413:9554 if (votes > maxGovernorVotesSoFar) {... */\n iszero\n tag_144\n jumpi\n /* \"main.sol\":9490:9495 votes */\n dup1\n /* \"main.sol\":9466:9495 maxGovernorVotesSoFar = votes */\n swap5\n pop\n /* \"main.sol\":9530:9539 candidate */\n dup2\n /* \"main.sol\":9513:9539 winnerGovernor = candidate */\n swap4\n pop\n /* \"main.sol\":9413:9554 if (votes > maxGovernorVotesSoFar) {... */\n tag_144:\n /* \"main.sol\":9231:9564 {... */\n pop\n pop\n /* \"main.sol\":9226:9229 i++ */\n dup1\n dup1\n tag_145\n swap1\n tag_146\n jump\t// in\n tag_145:\n swap2\n pop\n pop\n /* \"main.sol\":9180:9564 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n jump(tag_133)\n tag_134:\n pop\n /* \"main.sol\":9574:9601 uint256 maxStakerVotesSoFar */\n 0x00\n /* \"main.sol\":9615:9635 address winnerStaker */\n dup1\n /* \"main.sol\":9650:9657 uint8 i */\n dup1\n /* \"main.sol\":9660:9661 0 */\n 0x00\n /* \"main.sol\":9650:9661 uint8 i = 0 */\n swap1\n pop\n /* \"main.sol\":9645:10021 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n tag_147:\n /* \"main.sol\":9667:9682 participantKeys */\n 0x07\n /* \"main.sol\":9667:9689 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":9663:9664 i */\n dup2\n /* \"main.sol\":9663:9689 i < participantKeys.length */\n 0xff\n and\n lt\n /* \"main.sol\":9645:10021 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n iszero\n tag_148\n jumpi\n /* \"main.sol\":9710:9727 address candidate */\n 0x00\n /* \"main.sol\":9730:9745 participantKeys */\n 0x07\n /* \"main.sol\":9746:9747 i */\n dup3\n /* \"main.sol\":9730:9748 participantKeys[i] */\n 0xff\n and\n dup2\n sload\n dup2\n lt\n tag_150\n jumpi\n tag_151\n tag_138\n jump\t// in\n tag_151:\n tag_150:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":9710:9748 address candidate = participantKeys[i] */\n swap1\n pop\n /* \"main.sol\":9762:9775 uint256 votes */\n 0x00\n /* \"main.sol\":9778:9791 votesReceived */\n 0x0a\n /* \"main.sol\":9778:9804 votesReceived[votingRound] */\n 0x00\n /* \"main.sol\":9792:9803 votingRound */\n sload(0x03)\n /* \"main.sol\":9778:9804 votesReceived[votingRound] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":9778:9821 votesReceived[votingRound][RoleType.Staker] */\n 0x00\n /* \"main.sol\":9805:9820 RoleType.Staker */\n 0x01\n /* \"main.sol\":9778:9821 votesReceived[votingRound][RoleType.Staker] */\n dup1\n dup2\n gt\n iszero\n tag_153\n jumpi\n tag_154\n tag_94\n jump\t// in\n tag_154:\n tag_153:\n 0x01\n dup2\n gt\n iszero\n tag_155\n jumpi\n tag_156\n tag_94\n jump\t// in\n tag_156:\n tag_155:\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":9778:9862 votesReceived[votingRound][RoleType.Staker][... */\n 0x00\n /* \"main.sol\":9839:9848 candidate */\n dup4\n /* \"main.sol\":9778:9862 votesReceived[votingRound][RoleType.Staker][... */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"main.sol\":9762:9862 uint256 votes = votesReceived[votingRound][RoleType.Staker][... */\n swap1\n pop\n /* \"main.sol\":9888:9907 maxStakerVotesSoFar */\n dup5\n /* \"main.sol\":9880:9885 votes */\n dup2\n /* \"main.sol\":9880:9907 votes > maxStakerVotesSoFar */\n gt\n /* \"main.sol\":9876:10011 if (votes > maxStakerVotesSoFar) {... */\n iszero\n tag_157\n jumpi\n /* \"main.sol\":9949:9954 votes */\n dup1\n /* \"main.sol\":9927:9954 maxStakerVotesSoFar = votes */\n swap5\n pop\n /* \"main.sol\":9987:9996 candidate */\n dup2\n /* \"main.sol\":9972:9996 winnerStaker = candidate */\n swap4\n pop\n /* \"main.sol\":9876:10011 if (votes > maxStakerVotesSoFar) {... */\n tag_157:\n /* \"main.sol\":9696:10021 {... */\n pop\n pop\n /* \"main.sol\":9691:9694 i++ */\n dup1\n dup1\n tag_158\n swap1\n tag_146\n jump\t// in\n tag_158:\n swap2\n pop\n pop\n /* \"main.sol\":9645:10021 for (uint8 i = 0; i < participantKeys.length; i++) {... */\n jump(tag_147)\n tag_148:\n pop\n /* \"main.sol\":10091:10092 0 */\n 0x00\n /* \"main.sol\":10071:10093 governor != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10071:10079 governor */\n 0x04\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10071:10093 governor != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"main.sol\":10067:10253 if (governor != address(0)) {... */\n tag_159\n jumpi\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":10109:10135 PROXY_CONTRACT.removeProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xfef3f708\n /* \"main.sol\":10136:10144 governor */\n 0x04\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10146:10172 Proxy.ProxyType.Governance */\n 0x02\n /* \"main.sol\":10174:10175 0 */\n 0x00\n /* \"main.sol\":10109:10176 PROXY_CONTRACT.removeProxy(governor, Proxy.ProxyType.Governance, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_160\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_160:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_162\n jumpi\n 0x00\n dup1\n revert\n tag_162:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_164\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_164:\n pop\n pop\n pop\n pop\n /* \"main.sol\":10208:10216 governor */\n 0x04\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10195:10242 ProxyRemoved(governor, Proxy.ProxyType.Staking) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1\n /* \"main.sol\":10218:10241 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":10195:10242 ProxyRemoved(governor, Proxy.ProxyType.Staking) */\n mload(0x40)\n tag_165\n swap2\n swap1\n tag_166\n jump\t// in\n tag_165:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":10067:10253 if (governor != address(0)) {... */\n tag_159:\n /* \"main.sol\":10319:10320 0 */\n 0x00\n /* \"main.sol\":10301:10321 staker != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10301:10307 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10301:10321 staker != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"main.sol\":10297:10474 if (staker != address(0)) {... */\n tag_167\n jumpi\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":10337:10363 PROXY_CONTRACT.removeProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xfef3f708\n /* \"main.sol\":10364:10370 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10372:10395 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":10397:10398 0 */\n 0x00\n /* \"main.sol\":10337:10399 PROXY_CONTRACT.removeProxy(staker, Proxy.ProxyType.Staking, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_168\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_168:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_169\n jumpi\n 0x00\n dup1\n revert\n tag_169:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_171\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_171:\n pop\n pop\n pop\n pop\n /* \"main.sol\":10431:10437 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10418:10463 ProxyRemoved(staker, Proxy.ProxyType.Staking) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1\n /* \"main.sol\":10439:10462 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":10418:10463 ProxyRemoved(staker, Proxy.ProxyType.Staking) */\n mload(0x40)\n tag_172\n swap2\n swap1\n tag_166\n jump\t// in\n tag_172:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":10297:10474 if (staker != address(0)) {... */\n tag_167:\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":10484:10507 PROXY_CONTRACT.addProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x74a34dd3\n /* \"main.sol\":10508:10522 winnerGovernor */\n dup5\n /* \"main.sol\":10524:10550 Proxy.ProxyType.Governance */\n 0x02\n /* \"main.sol\":10552:10553 0 */\n 0x00\n /* \"main.sol\":10484:10554 PROXY_CONTRACT.addProxy(winnerGovernor, Proxy.ProxyType.Governance, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_173\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_173:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_174\n jumpi\n 0x00\n dup1\n revert\n tag_174:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_176\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_176:\n pop\n pop\n pop\n pop\n /* \"main.sol\":10580:10594 winnerGovernor */\n dup3\n /* \"main.sol\":10569:10623 ProxyAdded(winnerGovernor, Proxy.ProxyType.Governance) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da29\n /* \"main.sol\":10596:10622 Proxy.ProxyType.Governance */\n 0x02\n /* \"main.sol\":10569:10623 ProxyAdded(winnerGovernor, Proxy.ProxyType.Governance) */\n mload(0x40)\n tag_177\n swap2\n swap1\n tag_166\n jump\t// in\n tag_177:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":10781:10793 winnerStaker */\n dup1\n /* \"main.sol\":10763:10793 winnerGovernor != winnerStaker */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":10763:10777 winnerGovernor */\n dup4\n /* \"main.sol\":10763:10793 winnerGovernor != winnerStaker */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"main.sol\":10759:10953 if (winnerGovernor != winnerStaker) {... */\n tag_178\n jumpi\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":10809:10832 PROXY_CONTRACT.addProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x74a34dd3\n /* \"main.sol\":10833:10845 winnerStaker */\n dup3\n /* \"main.sol\":10847:10870 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":10872:10873 0 */\n 0x00\n /* \"main.sol\":10809:10874 PROXY_CONTRACT.addProxy(winnerStaker, Proxy.ProxyType.Staking, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_179\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_179:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_180\n jumpi\n 0x00\n dup1\n revert\n tag_180:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_182\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_182:\n pop\n pop\n pop\n pop\n /* \"main.sol\":10904:10916 winnerStaker */\n dup1\n /* \"main.sol\":10893:10942 ProxyAdded(winnerStaker, Proxy.ProxyType.Staking) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da29\n /* \"main.sol\":10918:10941 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":10893:10942 ProxyAdded(winnerStaker, Proxy.ProxyType.Staking) */\n mload(0x40)\n tag_183\n swap2\n swap1\n tag_166\n jump\t// in\n tag_183:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":10759:10953 if (winnerGovernor != winnerStaker) {... */\n tag_178:\n /* \"main.sol\":10974:10988 winnerGovernor */\n dup3\n /* \"main.sol\":10963:10971 governor */\n 0x04\n 0x01\n /* \"main.sol\":10963:10988 governor = winnerGovernor */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":11007:11019 winnerStaker */\n dup1\n /* \"main.sol\":10998:11004 staker */\n 0x05\n 0x00\n /* \"main.sol\":10998:11019 staker = winnerStaker */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":11035:11089 VotingEnded(votingRound, winnerStaker, winnerGovernor) */\n 0x6779bb375c13eedc94d78615cd3246f769b7e0e440f17078d2b0fd7cd6cbb877\n /* \"main.sol\":11047:11058 votingRound */\n sload(0x03)\n /* \"main.sol\":11060:11072 winnerStaker */\n dup3\n /* \"main.sol\":11074:11088 winnerGovernor */\n dup6\n /* \"main.sol\":11035:11089 VotingEnded(votingRound, winnerStaker, winnerGovernor) */\n mload(0x40)\n tag_184\n swap4\n swap3\n swap2\n swap1\n tag_185\n jump\t// in\n tag_184:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"main.sol\":8990:11096 {... */\n pop\n pop\n pop\n pop\n /* \"main.sol\":8950:11096 function endVoting() external onlyOwner {... */\n jump\t// out\n /* \"main.sol\":4334:4360 uint256 public votingRound */\n tag_73:\n sload(0x03)\n dup2\n jump\t// out\n /* \"main.sol\":7015:8148 function leavePool() external {... */\n tag_77:\n /* \"main.sol\":7055:7077 address payable sender */\n 0x00\n /* \"main.sol\":7088:7098 msg.sender */\n caller\n /* \"main.sol\":7055:7099 address payable sender = payable(msg.sender) */\n swap1\n pop\n /* \"main.sol\":7109:7139 Participant memory participant */\n 0x00\n /* \"main.sol\":7142:7154 participants */\n 0x08\n /* \"main.sol\":7142:7162 participants[sender] */\n 0x00\n /* \"main.sol\":7155:7161 sender */\n dup4\n /* \"main.sol\":7142:7162 participants[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":7109:7162 Participant memory participant = participants[sender] */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n swap1\n dup2\n 0x00\n dup3\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n 0x00\n dup3\n add\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n 0xff\n and\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n 0x01\n dup3\n add\n sload\n dup2\n mstore\n pop\n pop\n swap1\n pop\n /* \"main.sol\":7178:7189 participant */\n dup1\n /* \"main.sol\":7178:7197 participant.isValid */\n 0x00\n add\n mload\n /* \"main.sol\":7173:7248 if (!participant.isValid) {... */\n tag_187\n jumpi\n /* \"main.sol\":7230:7236 sender */\n dup2\n /* \"main.sol\":7220:7237 NotInPool(sender) */\n mload(0x40)\n 0x76a1be0500000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_188\n swap2\n swap1\n tag_189\n jump\t// in\n tag_188:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":7173:7248 if (!participant.isValid) {... */\n tag_187:\n /* \"main.sol\":7258:7273 address lastKey */\n 0x00\n /* \"main.sol\":7276:7291 participantKeys */\n 0x07\n /* \"main.sol\":7317:7318 1 */\n 0x01\n /* \"main.sol\":7292:7307 participantKeys */\n 0x07\n /* \"main.sol\":7292:7314 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":7292:7318 participantKeys.length - 1 */\n tag_190\n swap2\n swap1\n tag_191\n jump\t// in\n tag_190:\n /* \"main.sol\":7276:7319 participantKeys[participantKeys.length - 1] */\n dup2\n sload\n dup2\n lt\n tag_192\n jumpi\n tag_193\n tag_138\n jump\t// in\n tag_193:\n tag_192:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7258:7319 address lastKey = participantKeys[participantKeys.length - 1] */\n swap1\n pop\n /* \"main.sol\":7369:7376 lastKey */\n dup1\n /* \"main.sol\":7329:7344 participantKeys */\n 0x07\n /* \"main.sol\":7345:7356 participant */\n dup4\n /* \"main.sol\":7345:7365 participant.keyIndex */\n 0x20\n add\n mload\n /* \"main.sol\":7329:7366 participantKeys[participant.keyIndex] */\n 0xff\n and\n dup2\n sload\n dup2\n lt\n tag_195\n jumpi\n tag_196\n tag_138\n jump\t// in\n tag_196:\n tag_195:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n /* \"main.sol\":7329:7376 participantKeys[participant.keyIndex] = lastKey */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":7419:7430 participant */\n dup2\n /* \"main.sol\":7419:7439 participant.keyIndex */\n 0x20\n add\n mload\n /* \"main.sol\":7386:7398 participants */\n 0x08\n /* \"main.sol\":7386:7407 participants[lastKey] */\n 0x00\n /* \"main.sol\":7399:7406 lastKey */\n dup4\n /* \"main.sol\":7386:7407 participants[lastKey] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"main.sol\":7386:7416 participants[lastKey].keyIndex */\n 0x00\n add\n 0x01\n /* \"main.sol\":7386:7439 participants[lastKey].keyIndex = participant.keyIndex */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":7456:7471 participantKeys */\n 0x07\n /* \"main.sol\":7497:7498 1 */\n 0x01\n /* \"main.sol\":7472:7487 participantKeys */\n 0x07\n /* \"main.sol\":7472:7494 participantKeys.length */\n dup1\n sload\n swap1\n pop\n /* \"main.sol\":7472:7498 participantKeys.length - 1 */\n tag_198\n swap2\n swap1\n tag_191\n jump\t// in\n tag_198:\n /* \"main.sol\":7456:7499 participantKeys[participantKeys.length - 1] */\n dup2\n sload\n dup2\n lt\n tag_199\n jumpi\n tag_200\n tag_138\n jump\t// in\n tag_200:\n tag_199:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n 0x00\n /* \"main.sol\":7449:7499 delete participantKeys[participantKeys.length - 1] */\n 0x0100\n exp\n dup2\n sload\n swap1\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n sstore\n /* \"main.sol\":7516:7528 participants */\n 0x08\n /* \"main.sol\":7516:7536 participants[sender] */\n 0x00\n /* \"main.sol\":7529:7535 sender */\n dup5\n /* \"main.sol\":7516:7536 participants[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"main.sol\":7509:7536 delete participants[sender] */\n dup1\n dup3\n add\n exp(0x0100, 0x00)\n dup2\n sload\n swap1\n 0xff\n mul\n not\n and\n swap1\n sstore\n 0x00\n dup3\n add\n exp(0x0100, 0x01)\n dup2\n sload\n swap1\n 0xff\n mul\n not\n and\n swap1\n sstore\n 0x01\n dup3\n add\n 0x00\n swap1\n sstore\n pop\n pop\n /* \"main.sol\":7561:7569 governor */\n 0x04\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7551:7569 sender == governor */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7551:7557 sender */\n dup4\n /* \"main.sol\":7551:7569 sender == governor */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"main.sol\":7547:7763 if (sender == governor) {... */\n tag_202\n jumpi\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":7585:7611 PROXY_CONTRACT.removeProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xfef3f708\n /* \"main.sol\":7612:7618 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7620:7646 Proxy.ProxyType.Governance */\n 0x02\n /* \"main.sol\":7648:7649 0 */\n 0x00\n /* \"main.sol\":7585:7650 PROXY_CONTRACT.removeProxy(staker, Proxy.ProxyType.Governance, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_203\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_203:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_204\n jumpi\n 0x00\n dup1\n revert\n tag_204:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_206\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_206:\n pop\n pop\n pop\n pop\n /* \"main.sol\":7682:7688 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7669:7717 ProxyRemoved(staker, Proxy.ProxyType.Governance) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1\n /* \"main.sol\":7690:7716 Proxy.ProxyType.Governance */\n 0x02\n /* \"main.sol\":7669:7717 ProxyRemoved(staker, Proxy.ProxyType.Governance) */\n mload(0x40)\n tag_207\n swap2\n swap1\n tag_166\n jump\t// in\n tag_207:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":7750:7751 0 */\n 0x00\n /* \"main.sol\":7731:7739 governor */\n 0x04\n 0x01\n /* \"main.sol\":7731:7752 governor = address(0) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":7547:7763 if (sender == governor) {... */\n tag_202:\n /* \"main.sol\":7787:7793 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7777:7793 sender == staker */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7777:7783 sender */\n dup4\n /* \"main.sol\":7777:7793 sender == staker */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"main.sol\":7773:7979 if (sender == staker) {... */\n tag_208\n jumpi\n /* \"precompiles/proxy/Proxy.sol\":139:181 */\n 0x080b\n /* \"main.sol\":7809:7835 PROXY_CONTRACT.removeProxy */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xfef3f708\n /* \"main.sol\":7836:7842 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7844:7867 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":7869:7870 0 */\n 0x00\n /* \"main.sol\":7809:7871 PROXY_CONTRACT.removeProxy(staker, Proxy.ProxyType.Staking, 0) */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_209\n swap4\n swap3\n swap2\n swap1\n tag_161\n jump\t// in\n tag_209:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_210\n jumpi\n 0x00\n dup1\n revert\n tag_210:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_212\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_212:\n pop\n pop\n pop\n pop\n /* \"main.sol\":7903:7909 staker */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7890:7935 ProxyRemoved(staker, Proxy.ProxyType.Staking) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1\n /* \"main.sol\":7911:7934 Proxy.ProxyType.Staking */\n 0x03\n /* \"main.sol\":7890:7935 ProxyRemoved(staker, Proxy.ProxyType.Staking) */\n mload(0x40)\n tag_213\n swap2\n swap1\n tag_166\n jump\t// in\n tag_213:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":7966:7967 0 */\n 0x00\n /* \"main.sol\":7949:7955 staker */\n 0x05\n 0x00\n /* \"main.sol\":7949:7968 staker = address(0) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":7773:7979 if (sender == staker) {... */\n tag_208:\n /* \"main.sol\":7989:7995 sender */\n dup3\n /* \"main.sol\":7989:8004 sender.transfer */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"main.sol\":7989:8031 sender.transfer(participant.pledgedAmount) */\n 0x08fc\n /* \"main.sol\":8005:8016 participant */\n dup4\n /* \"main.sol\":8005:8030 participant.pledgedAmount */\n 0x40\n add\n mload\n /* \"main.sol\":7989:8031 sender.transfer(participant.pledgedAmount) */\n swap1\n dup2\n iszero\n mul\n swap1\n mload(0x40)\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup9\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_215\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_215:\n pop\n /* \"main.sol\":8057:8068 participant */\n dup2\n /* \"main.sol\":8057:8082 participant.pledgedAmount */\n 0x40\n add\n mload\n /* \"main.sol\":8041:8053 pooledAmount */\n 0x06\n 0x00\n /* \"main.sol\":8041:8082 pooledAmount -= participant.pledgedAmount */\n dup3\n dup3\n sload\n tag_216\n swap2\n swap1\n tag_191\n jump\t// in\n tag_216:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"main.sol\":8107:8113 sender */\n dup3\n /* \"main.sol\":8098:8141 LeftPool(sender, participant.pledgedAmount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x8271947fe3347a460cc3b967688953f8add3a506ecfc40ee6a998a82269565d8\n /* \"main.sol\":8115:8126 participant */\n dup4\n /* \"main.sol\":8115:8140 participant.pledgedAmount */\n 0x40\n add\n mload\n /* \"main.sol\":8098:8141 LeftPool(sender, participant.pledgedAmount) */\n mload(0x40)\n tag_217\n swap2\n swap1\n tag_42\n jump\t// in\n tag_217:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"main.sol\":7045:8148 {... */\n pop\n pop\n pop\n /* \"main.sol\":7015:8148 function leavePool() external {... */\n jump\t// out\n /* \"main.sol\":4049:4086 uint256 public MAX_PARTICIPANTS = 255 */\n tag_80:\n sload(0x01)\n dup2\n jump\t// out\n /* \"#utility.yul\":7:133 */\n tag_218:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":84:126 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":77:82 */\n dup3\n /* \"#utility.yul\":73:127 */\n and\n /* \"#utility.yul\":62:127 */\n swap1\n pop\n /* \"#utility.yul\":7:133 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":139:235 */\n tag_219:\n /* \"#utility.yul\":176:183 */\n 0x00\n /* \"#utility.yul\":205:229 */\n tag_255\n /* \"#utility.yul\":223:228 */\n dup3\n /* \"#utility.yul\":205:229 */\n tag_218\n jump\t// in\n tag_255:\n /* \"#utility.yul\":194:229 */\n swap1\n pop\n /* \"#utility.yul\":139:235 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":241:359 */\n tag_220:\n /* \"#utility.yul\":328:352 */\n tag_257\n /* \"#utility.yul\":346:351 */\n dup2\n /* \"#utility.yul\":328:352 */\n tag_219\n jump\t// in\n tag_257:\n /* \"#utility.yul\":323:326 */\n dup3\n /* \"#utility.yul\":316:353 */\n mstore\n /* \"#utility.yul\":241:359 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":365:587 */\n tag_24:\n /* \"#utility.yul\":458:462 */\n 0x00\n /* \"#utility.yul\":496:498 */\n 0x20\n /* \"#utility.yul\":485:494 */\n dup3\n /* \"#utility.yul\":481:499 */\n add\n /* \"#utility.yul\":473:499 */\n swap1\n pop\n /* \"#utility.yul\":509:580 */\n tag_259\n /* \"#utility.yul\":577:578 */\n 0x00\n /* \"#utility.yul\":566:575 */\n dup4\n /* \"#utility.yul\":562:579 */\n add\n /* \"#utility.yul\":553:559 */\n dup5\n /* \"#utility.yul\":509:580 */\n tag_220\n jump\t// in\n tag_259:\n /* \"#utility.yul\":365:587 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":674:791 */\n tag_222:\n /* \"#utility.yul\":783:784 */\n 0x00\n /* \"#utility.yul\":780:781 */\n dup1\n /* \"#utility.yul\":773:785 */\n revert\n /* \"#utility.yul\":920:1042 */\n tag_224:\n /* \"#utility.yul\":993:1017 */\n tag_264\n /* \"#utility.yul\":1011:1016 */\n dup2\n /* \"#utility.yul\":993:1017 */\n tag_219\n jump\t// in\n tag_264:\n /* \"#utility.yul\":986:991 */\n dup2\n /* \"#utility.yul\":983:1018 */\n eq\n /* \"#utility.yul\":973:1036 */\n tag_265\n jumpi\n /* \"#utility.yul\":1032:1033 */\n 0x00\n /* \"#utility.yul\":1029:1030 */\n dup1\n /* \"#utility.yul\":1022:1034 */\n revert\n /* \"#utility.yul\":973:1036 */\n tag_265:\n /* \"#utility.yul\":920:1042 */\n pop\n jump\t// out\n /* \"#utility.yul\":1048:1187 */\n tag_225:\n /* \"#utility.yul\":1094:1099 */\n 0x00\n /* \"#utility.yul\":1132:1138 */\n dup2\n /* \"#utility.yul\":1119:1139 */\n calldataload\n /* \"#utility.yul\":1110:1139 */\n swap1\n pop\n /* \"#utility.yul\":1148:1181 */\n tag_267\n /* \"#utility.yul\":1175:1180 */\n dup2\n /* \"#utility.yul\":1148:1181 */\n tag_224\n jump\t// in\n tag_267:\n /* \"#utility.yul\":1048:1187 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1193:1667 */\n tag_28:\n /* \"#utility.yul\":1261:1267 */\n 0x00\n /* \"#utility.yul\":1269:1275 */\n dup1\n /* \"#utility.yul\":1318:1320 */\n 0x40\n /* \"#utility.yul\":1306:1315 */\n dup4\n /* \"#utility.yul\":1297:1304 */\n dup6\n /* \"#utility.yul\":1293:1316 */\n sub\n /* \"#utility.yul\":1289:1321 */\n slt\n /* \"#utility.yul\":1286:1405 */\n iszero\n tag_269\n jumpi\n /* \"#utility.yul\":1324:1403 */\n tag_270\n tag_222\n jump\t// in\n tag_270:\n /* \"#utility.yul\":1286:1405 */\n tag_269:\n /* \"#utility.yul\":1444:1445 */\n 0x00\n /* \"#utility.yul\":1469:1522 */\n tag_271\n /* \"#utility.yul\":1514:1521 */\n dup6\n /* \"#utility.yul\":1505:1511 */\n dup3\n /* \"#utility.yul\":1494:1503 */\n dup7\n /* \"#utility.yul\":1490:1512 */\n add\n /* \"#utility.yul\":1469:1522 */\n tag_225\n jump\t// in\n tag_271:\n /* \"#utility.yul\":1459:1522 */\n swap3\n pop\n /* \"#utility.yul\":1415:1532 */\n pop\n /* \"#utility.yul\":1571:1573 */\n 0x20\n /* \"#utility.yul\":1597:1650 */\n tag_272\n /* \"#utility.yul\":1642:1649 */\n dup6\n /* \"#utility.yul\":1633:1639 */\n dup3\n /* \"#utility.yul\":1622:1631 */\n dup7\n /* \"#utility.yul\":1618:1640 */\n add\n /* \"#utility.yul\":1597:1650 */\n tag_225\n jump\t// in\n tag_272:\n /* \"#utility.yul\":1587:1650 */\n swap2\n pop\n /* \"#utility.yul\":1542:1660 */\n pop\n /* \"#utility.yul\":1193:1667 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1673:1763 */\n tag_226:\n /* \"#utility.yul\":1707:1714 */\n 0x00\n /* \"#utility.yul\":1750:1755 */\n dup2\n /* \"#utility.yul\":1743:1756 */\n iszero\n /* \"#utility.yul\":1736:1757 */\n iszero\n /* \"#utility.yul\":1725:1757 */\n swap1\n pop\n /* \"#utility.yul\":1673:1763 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1769:1878 */\n tag_227:\n /* \"#utility.yul\":1850:1871 */\n tag_275\n /* \"#utility.yul\":1865:1870 */\n dup2\n /* \"#utility.yul\":1850:1871 */\n tag_226\n jump\t// in\n tag_275:\n /* \"#utility.yul\":1845:1848 */\n dup3\n /* \"#utility.yul\":1838:1872 */\n mstore\n /* \"#utility.yul\":1769:1878 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1884:2094 */\n tag_34:\n /* \"#utility.yul\":1971:1975 */\n 0x00\n /* \"#utility.yul\":2009:2011 */\n 0x20\n /* \"#utility.yul\":1998:2007 */\n dup3\n /* \"#utility.yul\":1994:2012 */\n add\n /* \"#utility.yul\":1986:2012 */\n swap1\n pop\n /* \"#utility.yul\":2022:2087 */\n tag_277\n /* \"#utility.yul\":2084:2085 */\n 0x00\n /* \"#utility.yul\":2073:2082 */\n dup4\n /* \"#utility.yul\":2069:2086 */\n add\n /* \"#utility.yul\":2060:2066 */\n dup5\n /* \"#utility.yul\":2022:2087 */\n tag_227\n jump\t// in\n tag_277:\n /* \"#utility.yul\":1884:2094 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2100:2177 */\n tag_228:\n /* \"#utility.yul\":2137:2144 */\n 0x00\n /* \"#utility.yul\":2166:2171 */\n dup2\n /* \"#utility.yul\":2155:2171 */\n swap1\n pop\n /* \"#utility.yul\":2100:2177 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2183:2301 */\n tag_229:\n /* \"#utility.yul\":2270:2294 */\n tag_280\n /* \"#utility.yul\":2288:2293 */\n dup2\n /* \"#utility.yul\":2270:2294 */\n tag_228\n jump\t// in\n tag_280:\n /* \"#utility.yul\":2265:2268 */\n dup3\n /* \"#utility.yul\":2258:2295 */\n mstore\n /* \"#utility.yul\":2183:2301 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2307:2529 */\n tag_42:\n /* \"#utility.yul\":2400:2404 */\n 0x00\n /* \"#utility.yul\":2438:2440 */\n 0x20\n /* \"#utility.yul\":2427:2436 */\n dup3\n /* \"#utility.yul\":2423:2441 */\n add\n /* \"#utility.yul\":2415:2441 */\n swap1\n pop\n /* \"#utility.yul\":2451:2522 */\n tag_282\n /* \"#utility.yul\":2519:2520 */\n 0x00\n /* \"#utility.yul\":2508:2517 */\n dup4\n /* \"#utility.yul\":2504:2521 */\n add\n /* \"#utility.yul\":2495:2501 */\n dup5\n /* \"#utility.yul\":2451:2522 */\n tag_229\n jump\t// in\n tag_282:\n /* \"#utility.yul\":2307:2529 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2535:2649 */\n tag_230:\n /* \"#utility.yul\":2602:2608 */\n 0x00\n /* \"#utility.yul\":2636:2641 */\n dup2\n /* \"#utility.yul\":2630:2642 */\n mload\n /* \"#utility.yul\":2620:2642 */\n swap1\n pop\n /* \"#utility.yul\":2535:2649 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2655:2839 */\n tag_231:\n /* \"#utility.yul\":2754:2765 */\n 0x00\n /* \"#utility.yul\":2788:2794 */\n dup3\n /* \"#utility.yul\":2783:2786 */\n dup3\n /* \"#utility.yul\":2776:2795 */\n mstore\n /* \"#utility.yul\":2828:2832 */\n 0x20\n /* \"#utility.yul\":2823:2826 */\n dup3\n /* \"#utility.yul\":2819:2833 */\n add\n /* \"#utility.yul\":2804:2833 */\n swap1\n pop\n /* \"#utility.yul\":2655:2839 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2845:2977 */\n tag_232:\n /* \"#utility.yul\":2912:2916 */\n 0x00\n /* \"#utility.yul\":2935:2938 */\n dup2\n /* \"#utility.yul\":2927:2938 */\n swap1\n pop\n /* \"#utility.yul\":2965:2969 */\n 0x20\n /* \"#utility.yul\":2960:2963 */\n dup3\n /* \"#utility.yul\":2956:2970 */\n add\n /* \"#utility.yul\":2948:2970 */\n swap1\n pop\n /* \"#utility.yul\":2845:2977 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2983:3091 */\n tag_233:\n /* \"#utility.yul\":3060:3084 */\n tag_287\n /* \"#utility.yul\":3078:3083 */\n dup2\n /* \"#utility.yul\":3060:3084 */\n tag_219\n jump\t// in\n tag_287:\n /* \"#utility.yul\":3055:3058 */\n dup3\n /* \"#utility.yul\":3048:3085 */\n mstore\n /* \"#utility.yul\":2983:3091 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3097:3276 */\n tag_234:\n /* \"#utility.yul\":3166:3176 */\n 0x00\n /* \"#utility.yul\":3187:3233 */\n tag_289\n /* \"#utility.yul\":3229:3232 */\n dup4\n /* \"#utility.yul\":3221:3227 */\n dup4\n /* \"#utility.yul\":3187:3233 */\n tag_233\n jump\t// in\n tag_289:\n /* \"#utility.yul\":3265:3269 */\n 0x20\n /* \"#utility.yul\":3260:3263 */\n dup4\n /* \"#utility.yul\":3256:3270 */\n add\n /* \"#utility.yul\":3242:3270 */\n swap1\n pop\n /* \"#utility.yul\":3097:3276 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3282:3395 */\n tag_235:\n /* \"#utility.yul\":3352:3356 */\n 0x00\n /* \"#utility.yul\":3384:3388 */\n 0x20\n /* \"#utility.yul\":3379:3382 */\n dup3\n /* \"#utility.yul\":3375:3389 */\n add\n /* \"#utility.yul\":3367:3389 */\n swap1\n pop\n /* \"#utility.yul\":3282:3395 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3431:4163 */\n tag_236:\n /* \"#utility.yul\":3550:3553 */\n 0x00\n /* \"#utility.yul\":3579:3633 */\n tag_292\n /* \"#utility.yul\":3627:3632 */\n dup3\n /* \"#utility.yul\":3579:3633 */\n tag_230\n jump\t// in\n tag_292:\n /* \"#utility.yul\":3649:3735 */\n tag_293\n /* \"#utility.yul\":3728:3734 */\n dup2\n /* \"#utility.yul\":3723:3726 */\n dup6\n /* \"#utility.yul\":3649:3735 */\n tag_231\n jump\t// in\n tag_293:\n /* \"#utility.yul\":3642:3735 */\n swap4\n pop\n /* \"#utility.yul\":3759:3815 */\n tag_294\n /* \"#utility.yul\":3809:3814 */\n dup4\n /* \"#utility.yul\":3759:3815 */\n tag_232\n jump\t// in\n tag_294:\n /* \"#utility.yul\":3838:3845 */\n dup1\n /* \"#utility.yul\":3869:3870 */\n 0x00\n /* \"#utility.yul\":3854:4138 */\n tag_295:\n /* \"#utility.yul\":3879:3885 */\n dup4\n /* \"#utility.yul\":3876:3877 */\n dup2\n /* \"#utility.yul\":3873:3886 */\n lt\n /* \"#utility.yul\":3854:4138 */\n iszero\n tag_297\n jumpi\n /* \"#utility.yul\":3955:3961 */\n dup2\n /* \"#utility.yul\":3949:3962 */\n mload\n /* \"#utility.yul\":3982:4045 */\n tag_298\n /* \"#utility.yul\":4041:4044 */\n dup9\n /* \"#utility.yul\":4026:4039 */\n dup3\n /* \"#utility.yul\":3982:4045 */\n tag_234\n jump\t// in\n tag_298:\n /* \"#utility.yul\":3975:4045 */\n swap8\n pop\n /* \"#utility.yul\":4068:4128 */\n tag_299\n /* \"#utility.yul\":4121:4127 */\n dup4\n /* \"#utility.yul\":4068:4128 */\n tag_235\n jump\t// in\n tag_299:\n /* \"#utility.yul\":4058:4128 */\n swap3\n pop\n /* \"#utility.yul\":3914:4138 */\n pop\n /* \"#utility.yul\":3901:3902 */\n 0x01\n /* \"#utility.yul\":3898:3899 */\n dup2\n /* \"#utility.yul\":3894:3903 */\n add\n /* \"#utility.yul\":3889:3903 */\n swap1\n pop\n /* \"#utility.yul\":3854:4138 */\n jump(tag_295)\n tag_297:\n /* \"#utility.yul\":3858:3872 */\n pop\n /* \"#utility.yul\":4154:4157 */\n dup6\n /* \"#utility.yul\":4147:4157 */\n swap4\n pop\n /* \"#utility.yul\":3555:4163 */\n pop\n pop\n pop\n /* \"#utility.yul\":3431:4163 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4169:4542 */\n tag_51:\n /* \"#utility.yul\":4312:4316 */\n 0x00\n /* \"#utility.yul\":4350:4352 */\n 0x20\n /* \"#utility.yul\":4339:4348 */\n dup3\n /* \"#utility.yul\":4335:4353 */\n add\n /* \"#utility.yul\":4327:4353 */\n swap1\n pop\n /* \"#utility.yul\":4399:4408 */\n dup2\n /* \"#utility.yul\":4393:4397 */\n dup2\n /* \"#utility.yul\":4389:4409 */\n sub\n /* \"#utility.yul\":4385:4386 */\n 0x00\n /* \"#utility.yul\":4374:4383 */\n dup4\n /* \"#utility.yul\":4370:4387 */\n add\n /* \"#utility.yul\":4363:4410 */\n mstore\n /* \"#utility.yul\":4427:4535 */\n tag_301\n /* \"#utility.yul\":4530:4534 */\n dup2\n /* \"#utility.yul\":4521:4527 */\n dup5\n /* \"#utility.yul\":4427:4535 */\n tag_236\n jump\t// in\n tag_301:\n /* \"#utility.yul\":4419:4535 */\n swap1\n pop\n /* \"#utility.yul\":4169:4542 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4548:4877 */\n tag_61:\n /* \"#utility.yul\":4607:4613 */\n 0x00\n /* \"#utility.yul\":4656:4658 */\n 0x20\n /* \"#utility.yul\":4644:4653 */\n dup3\n /* \"#utility.yul\":4635:4642 */\n dup5\n /* \"#utility.yul\":4631:4654 */\n sub\n /* \"#utility.yul\":4627:4659 */\n slt\n /* \"#utility.yul\":4624:4743 */\n iszero\n tag_303\n jumpi\n /* \"#utility.yul\":4662:4741 */\n tag_304\n tag_222\n jump\t// in\n tag_304:\n /* \"#utility.yul\":4624:4743 */\n tag_303:\n /* \"#utility.yul\":4782:4783 */\n 0x00\n /* \"#utility.yul\":4807:4860 */\n tag_305\n /* \"#utility.yul\":4852:4859 */\n dup5\n /* \"#utility.yul\":4843:4849 */\n dup3\n /* \"#utility.yul\":4832:4841 */\n dup6\n /* \"#utility.yul\":4828:4850 */\n add\n /* \"#utility.yul\":4807:4860 */\n tag_225\n jump\t// in\n tag_305:\n /* \"#utility.yul\":4797:4860 */\n swap2\n pop\n /* \"#utility.yul\":4753:4870 */\n pop\n /* \"#utility.yul\":4548:4877 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4883:5063 */\n tag_94:\n /* \"#utility.yul\":4931:5008 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":4928:4929 */\n 0x00\n /* \"#utility.yul\":4921:5009 */\n mstore\n /* \"#utility.yul\":5028:5032 */\n 0x21\n /* \"#utility.yul\":5025:5026 */\n 0x04\n /* \"#utility.yul\":5018:5033 */\n mstore\n /* \"#utility.yul\":5052:5056 */\n 0x24\n /* \"#utility.yul\":5049:5050 */\n 0x00\n /* \"#utility.yul\":5042:5057 */\n revert\n /* \"#utility.yul\":5069:5249 */\n tag_237:\n /* \"#utility.yul\":5117:5194 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":5114:5115 */\n 0x00\n /* \"#utility.yul\":5107:5195 */\n mstore\n /* \"#utility.yul\":5214:5218 */\n 0x11\n /* \"#utility.yul\":5211:5212 */\n 0x04\n /* \"#utility.yul\":5204:5219 */\n mstore\n /* \"#utility.yul\":5238:5242 */\n 0x24\n /* \"#utility.yul\":5235:5236 */\n 0x00\n /* \"#utility.yul\":5228:5243 */\n revert\n /* \"#utility.yul\":5255:5446 */\n tag_98:\n /* \"#utility.yul\":5295:5298 */\n 0x00\n /* \"#utility.yul\":5314:5334 */\n tag_309\n /* \"#utility.yul\":5332:5333 */\n dup3\n /* \"#utility.yul\":5314:5334 */\n tag_228\n jump\t// in\n tag_309:\n /* \"#utility.yul\":5309:5334 */\n swap2\n pop\n /* \"#utility.yul\":5348:5368 */\n tag_310\n /* \"#utility.yul\":5366:5367 */\n dup4\n /* \"#utility.yul\":5348:5368 */\n tag_228\n jump\t// in\n tag_310:\n /* \"#utility.yul\":5343:5368 */\n swap3\n pop\n /* \"#utility.yul\":5391:5392 */\n dup3\n /* \"#utility.yul\":5388:5389 */\n dup3\n /* \"#utility.yul\":5384:5393 */\n add\n /* \"#utility.yul\":5377:5393 */\n swap1\n pop\n /* \"#utility.yul\":5412:5415 */\n dup1\n /* \"#utility.yul\":5409:5410 */\n dup3\n /* \"#utility.yul\":5406:5416 */\n gt\n /* \"#utility.yul\":5403:5439 */\n iszero\n tag_311\n jumpi\n /* \"#utility.yul\":5419:5437 */\n tag_312\n tag_237\n jump\t// in\n tag_312:\n /* \"#utility.yul\":5403:5439 */\n tag_311:\n /* \"#utility.yul\":5255:5446 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5452:5784 */\n tag_111:\n /* \"#utility.yul\":5573:5577 */\n 0x00\n /* \"#utility.yul\":5611:5613 */\n 0x40\n /* \"#utility.yul\":5600:5609 */\n dup3\n /* \"#utility.yul\":5596:5614 */\n add\n /* \"#utility.yul\":5588:5614 */\n swap1\n pop\n /* \"#utility.yul\":5624:5695 */\n tag_314\n /* \"#utility.yul\":5692:5693 */\n 0x00\n /* \"#utility.yul\":5681:5690 */\n dup4\n /* \"#utility.yul\":5677:5694 */\n add\n /* \"#utility.yul\":5668:5674 */\n dup6\n /* \"#utility.yul\":5624:5695 */\n tag_229\n jump\t// in\n tag_314:\n /* \"#utility.yul\":5705:5777 */\n tag_315\n /* \"#utility.yul\":5773:5775 */\n 0x20\n /* \"#utility.yul\":5762:5771 */\n dup4\n /* \"#utility.yul\":5758:5776 */\n add\n /* \"#utility.yul\":5749:5755 */\n dup5\n /* \"#utility.yul\":5705:5777 */\n tag_229\n jump\t// in\n tag_315:\n /* \"#utility.yul\":5452:5784 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5790:5970 */\n tag_138:\n /* \"#utility.yul\":5838:5915 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":5835:5836 */\n 0x00\n /* \"#utility.yul\":5828:5916 */\n mstore\n /* \"#utility.yul\":5935:5939 */\n 0x32\n /* \"#utility.yul\":5932:5933 */\n 0x04\n /* \"#utility.yul\":5925:5940 */\n mstore\n /* \"#utility.yul\":5959:5963 */\n 0x24\n /* \"#utility.yul\":5956:5957 */\n 0x00\n /* \"#utility.yul\":5949:5964 */\n revert\n /* \"#utility.yul\":5976:6062 */\n tag_238:\n /* \"#utility.yul\":6011:6018 */\n 0x00\n /* \"#utility.yul\":6051:6055 */\n 0xff\n /* \"#utility.yul\":6044:6049 */\n dup3\n /* \"#utility.yul\":6040:6056 */\n and\n /* \"#utility.yul\":6029:6056 */\n swap1\n pop\n /* \"#utility.yul\":5976:6062 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6068:6235 */\n tag_146:\n /* \"#utility.yul\":6105:6108 */\n 0x00\n /* \"#utility.yul\":6128:6150 */\n tag_319\n /* \"#utility.yul\":6144:6149 */\n dup3\n /* \"#utility.yul\":6128:6150 */\n tag_238\n jump\t// in\n tag_319:\n /* \"#utility.yul\":6119:6150 */\n swap2\n pop\n /* \"#utility.yul\":6172:6176 */\n 0xff\n /* \"#utility.yul\":6165:6170 */\n dup3\n /* \"#utility.yul\":6162:6177 */\n sub\n /* \"#utility.yul\":6159:6200 */\n tag_320\n jumpi\n /* \"#utility.yul\":6180:6198 */\n tag_321\n tag_237\n jump\t// in\n tag_321:\n /* \"#utility.yul\":6159:6200 */\n tag_320:\n /* \"#utility.yul\":6227:6228 */\n 0x01\n /* \"#utility.yul\":6220:6225 */\n dup3\n /* \"#utility.yul\":6216:6229 */\n add\n /* \"#utility.yul\":6209:6229 */\n swap1\n pop\n /* \"#utility.yul\":6068:6235 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6241:6359 */\n tag_239:\n /* \"#utility.yul\":6327:6328 */\n 0x08\n /* \"#utility.yul\":6320:6325 */\n dup2\n /* \"#utility.yul\":6317:6329 */\n lt\n /* \"#utility.yul\":6307:6353 */\n tag_323\n jumpi\n /* \"#utility.yul\":6333:6351 */\n tag_324\n tag_94\n jump\t// in\n tag_324:\n /* \"#utility.yul\":6307:6353 */\n tag_323:\n /* \"#utility.yul\":6241:6359 */\n pop\n jump\t// out\n /* \"#utility.yul\":6365:6502 */\n tag_240:\n /* \"#utility.yul\":6415:6422 */\n 0x00\n /* \"#utility.yul\":6444:6449 */\n dup2\n /* \"#utility.yul\":6433:6449 */\n swap1\n pop\n /* \"#utility.yul\":6450:6496 */\n tag_326\n /* \"#utility.yul\":6490:6495 */\n dup3\n /* \"#utility.yul\":6450:6496 */\n tag_239\n jump\t// in\n tag_326:\n /* \"#utility.yul\":6365:6502 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6508:6645 */\n tag_241:\n /* \"#utility.yul\":6569:6578 */\n 0x00\n /* \"#utility.yul\":6602:6639 */\n tag_328\n /* \"#utility.yul\":6633:6638 */\n dup3\n /* \"#utility.yul\":6602:6639 */\n tag_240\n jump\t// in\n tag_328:\n /* \"#utility.yul\":6589:6639 */\n swap1\n pop\n /* \"#utility.yul\":6508:6645 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6651:6804 */\n tag_242:\n /* \"#utility.yul\":6749:6797 */\n tag_330\n /* \"#utility.yul\":6791:6796 */\n dup2\n /* \"#utility.yul\":6749:6797 */\n tag_241\n jump\t// in\n tag_330:\n /* \"#utility.yul\":6744:6747 */\n dup3\n /* \"#utility.yul\":6737:6798 */\n mstore\n /* \"#utility.yul\":6651:6804 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6810:6895 */\n tag_243:\n /* \"#utility.yul\":6855:6862 */\n 0x00\n /* \"#utility.yul\":6884:6889 */\n dup2\n /* \"#utility.yul\":6873:6889 */\n swap1\n pop\n /* \"#utility.yul\":6810:6895 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6901:6994 */\n tag_244:\n /* \"#utility.yul\":6937:6944 */\n 0x00\n /* \"#utility.yul\":6977:6987 */\n 0xffffffff\n /* \"#utility.yul\":6970:6975 */\n dup3\n /* \"#utility.yul\":6966:6988 */\n and\n /* \"#utility.yul\":6955:6988 */\n swap1\n pop\n /* \"#utility.yul\":6901:6994 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7000:7060 */\n tag_245:\n /* \"#utility.yul\":7028:7031 */\n 0x00\n /* \"#utility.yul\":7049:7054 */\n dup2\n /* \"#utility.yul\":7042:7054 */\n swap1\n pop\n /* \"#utility.yul\":7000:7060 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7066:7222 */\n tag_246:\n /* \"#utility.yul\":7123:7132 */\n 0x00\n /* \"#utility.yul\":7156:7216 */\n tag_335\n /* \"#utility.yul\":7173:7215 */\n tag_336\n /* \"#utility.yul\":7182:7214 */\n tag_337\n /* \"#utility.yul\":7208:7213 */\n dup5\n /* \"#utility.yul\":7182:7214 */\n tag_243\n jump\t// in\n tag_337:\n /* \"#utility.yul\":7173:7215 */\n tag_245\n jump\t// in\n tag_336:\n /* \"#utility.yul\":7156:7216 */\n tag_244\n jump\t// in\n tag_335:\n /* \"#utility.yul\":7143:7216 */\n swap1\n pop\n /* \"#utility.yul\":7066:7222 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7228:7373 */\n tag_247:\n /* \"#utility.yul\":7322:7366 */\n tag_339\n /* \"#utility.yul\":7360:7365 */\n dup2\n /* \"#utility.yul\":7322:7366 */\n tag_246\n jump\t// in\n tag_339:\n /* \"#utility.yul\":7317:7320 */\n dup3\n /* \"#utility.yul\":7310:7367 */\n mstore\n /* \"#utility.yul\":7228:7373 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7379:7857 */\n tag_161:\n /* \"#utility.yul\":7546:7550 */\n 0x00\n /* \"#utility.yul\":7584:7586 */\n 0x60\n /* \"#utility.yul\":7573:7582 */\n dup3\n /* \"#utility.yul\":7569:7587 */\n add\n /* \"#utility.yul\":7561:7587 */\n swap1\n pop\n /* \"#utility.yul\":7597:7668 */\n tag_341\n /* \"#utility.yul\":7665:7666 */\n 0x00\n /* \"#utility.yul\":7654:7663 */\n dup4\n /* \"#utility.yul\":7650:7667 */\n add\n /* \"#utility.yul\":7641:7647 */\n dup7\n /* \"#utility.yul\":7597:7668 */\n tag_220\n jump\t// in\n tag_341:\n /* \"#utility.yul\":7678:7761 */\n tag_342\n /* \"#utility.yul\":7757:7759 */\n 0x20\n /* \"#utility.yul\":7746:7755 */\n dup4\n /* \"#utility.yul\":7742:7760 */\n add\n /* \"#utility.yul\":7733:7739 */\n dup6\n /* \"#utility.yul\":7678:7761 */\n tag_242\n jump\t// in\n tag_342:\n /* \"#utility.yul\":7771:7850 */\n tag_343\n /* \"#utility.yul\":7846:7848 */\n 0x40\n /* \"#utility.yul\":7835:7844 */\n dup4\n /* \"#utility.yul\":7831:7849 */\n add\n /* \"#utility.yul\":7822:7828 */\n dup5\n /* \"#utility.yul\":7771:7850 */\n tag_247\n jump\t// in\n tag_343:\n /* \"#utility.yul\":7379:7857 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7863:8107 */\n tag_166:\n /* \"#utility.yul\":7967:7971 */\n 0x00\n /* \"#utility.yul\":8005:8007 */\n 0x20\n /* \"#utility.yul\":7994:8003 */\n dup3\n /* \"#utility.yul\":7990:8008 */\n add\n /* \"#utility.yul\":7982:8008 */\n swap1\n pop\n /* \"#utility.yul\":8018:8100 */\n tag_345\n /* \"#utility.yul\":8097:8098 */\n 0x00\n /* \"#utility.yul\":8086:8095 */\n dup4\n /* \"#utility.yul\":8082:8099 */\n add\n /* \"#utility.yul\":8073:8079 */\n dup5\n /* \"#utility.yul\":8018:8100 */\n tag_242\n jump\t// in\n tag_345:\n /* \"#utility.yul\":7863:8107 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8113:8555 */\n tag_185:\n /* \"#utility.yul\":8262:8266 */\n 0x00\n /* \"#utility.yul\":8300:8302 */\n 0x60\n /* \"#utility.yul\":8289:8298 */\n dup3\n /* \"#utility.yul\":8285:8303 */\n add\n /* \"#utility.yul\":8277:8303 */\n swap1\n pop\n /* \"#utility.yul\":8313:8384 */\n tag_347\n /* \"#utility.yul\":8381:8382 */\n 0x00\n /* \"#utility.yul\":8370:8379 */\n dup4\n /* \"#utility.yul\":8366:8383 */\n add\n /* \"#utility.yul\":8357:8363 */\n dup7\n /* \"#utility.yul\":8313:8384 */\n tag_229\n jump\t// in\n tag_347:\n /* \"#utility.yul\":8394:8466 */\n tag_348\n /* \"#utility.yul\":8462:8464 */\n 0x20\n /* \"#utility.yul\":8451:8460 */\n dup4\n /* \"#utility.yul\":8447:8465 */\n add\n /* \"#utility.yul\":8438:8444 */\n dup6\n /* \"#utility.yul\":8394:8466 */\n tag_220\n jump\t// in\n tag_348:\n /* \"#utility.yul\":8476:8548 */\n tag_349\n /* \"#utility.yul\":8544:8546 */\n 0x40\n /* \"#utility.yul\":8533:8542 */\n dup4\n /* \"#utility.yul\":8529:8547 */\n add\n /* \"#utility.yul\":8520:8526 */\n dup5\n /* \"#utility.yul\":8476:8548 */\n tag_220\n jump\t// in\n tag_349:\n /* \"#utility.yul\":8113:8555 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8561:8703 */\n tag_248:\n /* \"#utility.yul\":8611:8620 */\n 0x00\n /* \"#utility.yul\":8644:8697 */\n tag_351\n /* \"#utility.yul\":8662:8696 */\n tag_352\n /* \"#utility.yul\":8671:8695 */\n tag_353\n /* \"#utility.yul\":8689:8694 */\n dup5\n /* \"#utility.yul\":8671:8695 */\n tag_218\n jump\t// in\n tag_353:\n /* \"#utility.yul\":8662:8696 */\n tag_245\n jump\t// in\n tag_352:\n /* \"#utility.yul\":8644:8697 */\n tag_218\n jump\t// in\n tag_351:\n /* \"#utility.yul\":8631:8697 */\n swap1\n pop\n /* \"#utility.yul\":8561:8703 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8709:8835 */\n tag_249:\n /* \"#utility.yul\":8759:8768 */\n 0x00\n /* \"#utility.yul\":8792:8829 */\n tag_355\n /* \"#utility.yul\":8823:8828 */\n dup3\n /* \"#utility.yul\":8792:8829 */\n tag_248\n jump\t// in\n tag_355:\n /* \"#utility.yul\":8779:8829 */\n swap1\n pop\n /* \"#utility.yul\":8709:8835 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8841:8975 */\n tag_250:\n /* \"#utility.yul\":8899:8908 */\n 0x00\n /* \"#utility.yul\":8932:8969 */\n tag_357\n /* \"#utility.yul\":8963:8968 */\n dup3\n /* \"#utility.yul\":8932:8969 */\n tag_249\n jump\t// in\n tag_357:\n /* \"#utility.yul\":8919:8969 */\n swap1\n pop\n /* \"#utility.yul\":8841:8975 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8981:9128 */\n tag_251:\n /* \"#utility.yul\":9076:9121 */\n tag_359\n /* \"#utility.yul\":9115:9120 */\n dup2\n /* \"#utility.yul\":9076:9121 */\n tag_250\n jump\t// in\n tag_359:\n /* \"#utility.yul\":9071:9074 */\n dup3\n /* \"#utility.yul\":9064:9122 */\n mstore\n /* \"#utility.yul\":8981:9128 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9134:9372 */\n tag_189:\n /* \"#utility.yul\":9235:9239 */\n 0x00\n /* \"#utility.yul\":9273:9275 */\n 0x20\n /* \"#utility.yul\":9262:9271 */\n dup3\n /* \"#utility.yul\":9258:9276 */\n add\n /* \"#utility.yul\":9250:9276 */\n swap1\n pop\n /* \"#utility.yul\":9286:9365 */\n tag_361\n /* \"#utility.yul\":9362:9363 */\n 0x00\n /* \"#utility.yul\":9351:9360 */\n dup4\n /* \"#utility.yul\":9347:9364 */\n add\n /* \"#utility.yul\":9338:9344 */\n dup5\n /* \"#utility.yul\":9286:9365 */\n tag_251\n jump\t// in\n tag_361:\n /* \"#utility.yul\":9134:9372 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9378:9572 */\n tag_191:\n /* \"#utility.yul\":9418:9422 */\n 0x00\n /* \"#utility.yul\":9438:9458 */\n tag_363\n /* \"#utility.yul\":9456:9457 */\n dup3\n /* \"#utility.yul\":9438:9458 */\n tag_228\n jump\t// in\n tag_363:\n /* \"#utility.yul\":9433:9458 */\n swap2\n pop\n /* \"#utility.yul\":9472:9492 */\n tag_364\n /* \"#utility.yul\":9490:9491 */\n dup4\n /* \"#utility.yul\":9472:9492 */\n tag_228\n jump\t// in\n tag_364:\n /* \"#utility.yul\":9467:9492 */\n swap3\n pop\n /* \"#utility.yul\":9516:9517 */\n dup3\n /* \"#utility.yul\":9513:9514 */\n dup3\n /* \"#utility.yul\":9509:9518 */\n sub\n /* \"#utility.yul\":9501:9518 */\n swap1\n pop\n /* \"#utility.yul\":9540:9541 */\n dup2\n /* \"#utility.yul\":9534:9538 */\n dup2\n /* \"#utility.yul\":9531:9542 */\n gt\n /* \"#utility.yul\":9528:9565 */\n iszero\n tag_365\n jumpi\n /* \"#utility.yul\":9545:9563 */\n tag_366\n tag_237\n jump\t// in\n tag_366:\n /* \"#utility.yul\":9528:9565 */\n tag_365:\n /* \"#utility.yul\":9378:9572 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa264697066735822122081cf457f456b1dec86c8e645134712136c5a40976a5a2477304ad30efa0112db64736f6c63430008110033\n}\n", "bytecode": { "functionDebugData": { "@_192": { @@ -432,8 +432,8 @@ }, "generatedSources": [], "linkReferences": {}, - "object": "6080604052600360005560ff600155670de0b6b3a764000060025534801561002657600080fd5b5033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006003819055506000600460006101000a81548160ff0219169083151502179055506122da8061011e6000396000f3fe6080604052600436106100e85760003560e01c80635ebaf1db1161008a578063c3403ddf11610059578063c3403ddf146102a1578063c535c733146102b8578063f19e9d81146102e3578063f3baf070146102fa576100e8565b80635ebaf1db146102045780638371e6b41461022f578063adfaa72e14610239578063bb72544014610276576100e8565b80631ec6b60a116100c65780631ec6b60a1461016c5780633706dd4e146101835780633a984bc5146101ae5780635aa68ac0146101d9576100e8565b80630c340a24146100ed5780631afa74e5146101185780631bbef39914610141575b600080fd5b3480156100f957600080fd5b50610102610325565b60405161010f9190611db7565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a9190611e03565b61034b565b005b34801561014d57600080fd5b506101566108a4565b6040516101639190611e5e565b60405180910390f35b34801561017857600080fd5b506101816108b7565b005b34801561018f57600080fd5b50610198610a1d565b6040516101a59190611e92565b60405180910390f35b3480156101ba57600080fd5b506101c3610a23565b6040516101d09190611e92565b60405180910390f35b3480156101e557600080fd5b506101ee610a29565b6040516101fb9190611f6b565b60405180910390f35b34801561021057600080fd5b50610219610ab7565b6040516102269190611db7565b60405180910390f35b610237610add565b005b34801561024557600080fd5b50610260600480360381019061025b9190611f8d565b610ddf565b60405161026d9190611e5e565b60405180910390f35b34801561028257600080fd5b5061028b610ea1565b6040516102989190611e92565b60405180910390f35b3480156102ad57600080fd5b506102b6610ea7565b005b3480156102c457600080fd5b506102cd6116b9565b6040516102da9190611e92565b60405180910390f35b3480156102ef57600080fd5b506102f86116bf565b005b34801561030657600080fd5b5061030f611d70565b60405161031c9190611e92565b60405180910390f35b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900460ff16610391576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff168152602001600182015481525050905060096000600354815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105ea576003546040517fc0afe58d0000000000000000000000000000000000000000000000000000000081526004016105e19190611e92565b60405180910390fd5b826000015161063057836040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106279190611db7565b60405180910390fd5b816000015161067657856040517f76a1be0500000000000000000000000000000000000000000000000000000000815260040161066d9190611db7565b60405180910390fd5b80600001516106bc57846040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106b39190611db7565b60405180910390fd5b600160096000600354815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006003548152602001908152602001600020600080600181111561075357610752611fba565b5b600181111561076557610764611fba565b5b815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107bf9190612018565b925050819055506001600a6000600354815260200190815260200160002060006001808111156107f2576107f1611fba565b5b600181111561080457610803611fba565b5b815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461085e9190612018565b925050819055507f16a9aa39af49f169911e977347975198c503525f7240d6892a626f0227642fce846040516108949190611db7565b60405180910390a1505050505050565b600460009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091157600080fd5b600460009054906101000a900460ff1615610958576040517f79bde80600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005460078054905010156109ad576007805490506000546040517f5fdd6f490000000000000000000000000000000000000000000000000000000081526004016109a492919061204c565b60405180910390fd5b6001600360008282546109c09190612018565b925050819055506001600460006101000a81548160ff0219169083151502179055507fcf33babc496bb6dc2942b39cb7b75766bbbadf7da50d176ff8c513e991140239600354604051610a139190611e92565b60405180910390a1565b60065481565b60005481565b60606007805480602002602001604051908101604052809291908181526020018280548015610aad57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a63575b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905060003490506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015115610bbe57826040517fac7195c0000000000000000000000000000000000000000000000000000000008152600401610bb59190611db7565b60405180910390fd5b60015460078054905010610c12576007805490506001546040517fe3185778000000000000000000000000000000000000000000000000000000008152600401610c0992919061204c565b60405180910390fd5b600254821015610c5d57816002546040517f01672028000000000000000000000000000000000000000000000000000000008152600401610c5492919061204c565b60405180910390fd5b8160066000828254610c6f9190612018565b92505081905550604051806060016040528060011515815260200160078054905060ff16815260200183815250600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff160217905550604082015181600101559050506007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff167fc14c5e71ddef2aca3e9418524a979cb2131b9370676bdca8c03d345c7abb46c983604051610dd29190611e92565b60405180910390a2505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff168015610e9a575060096000600354815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050919050565b60025481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600460009054906101000a900460ff16610f47576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460006101000a81548160ff02191690831515021790555060008080600090505b6007805490508160ff16101561107157600060078260ff1681548110610f9457610f93612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a600060035481526020019081526020016000206000806001811115610fed57610fec611fba565b5b6001811115610fff57610ffe611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561105c578094508193505b50508080611069906120b1565b915050610f6b565b5060008080600090505b6007805490508160ff16101561118157600060078260ff16815481106110a4576110a3612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a6000600354815260200190815260200160002060006001808111156110fd576110fc611fba565b5b600181111561110f5761110e611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561116c578094508193505b50508080611179906120b1565b91505061107b565b50600073ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112df5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b815260040161123b93929190612177565b600060405180830381600087803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b50505050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb160036040516112d691906121ae565b60405180910390a25b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143c5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b815260040161139893929190612177565b600060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1600360405161143391906121ae565b60405180910390a25b61080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd384600260006040518463ffffffff1660e01b815260040161147d93929190612177565b600060405180830381600087803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960026040516114f691906121ae565b60405180910390a28073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115f45761080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd382600360006040518463ffffffff1660e01b815260040161157293929190612177565b600060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960036040516115eb91906121ae565b60405180910390a25b82600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6779bb375c13eedc94d78615cd3246f769b7e0e440f17078d2b0fd7cd6cbb87760035482856040516116ab939291906121c9565b60405180910390a150505050565b60035481565b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015161179a57816040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016117919190612255565b60405180910390fd5b6000600760016007805490506117b09190612270565b815481106117c1576117c0612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050806007836020015160ff168154811061180a57611809612075565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff021916908360ff160217905550600760016007805490506118c59190612270565b815481106118d6576118d5612075565b5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556000820160016101000a81549060ff021916905560018201600090555050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b135761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b8152600401611a2d93929190612177565b600060405180830381600087803b158015611a4757600080fd5b505af1158015611a5b573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16002604051611ac891906121ae565b60405180910390a26000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb15761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b8152600401611bcb93929190612177565b600060405180830381600087803b158015611be557600080fd5b505af1158015611bf9573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16003604051611c6691906121ae565b60405180910390a26000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8273ffffffffffffffffffffffffffffffffffffffff166108fc83604001519081150290604051600060405180830381858888f19350505050158015611cfb573d6000803e3d6000fd5b50816040015160066000828254611d129190612270565b925050819055508273ffffffffffffffffffffffffffffffffffffffff167f8271947fe3347a460cc3b967688953f8add3a506ecfc40ee6a998a82269565d88360400151604051611d639190611e92565b60405180910390a2505050565b60015481565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611da182611d76565b9050919050565b611db181611d96565b82525050565b6000602082019050611dcc6000830184611da8565b92915050565b600080fd5b611de081611d96565b8114611deb57600080fd5b50565b600081359050611dfd81611dd7565b92915050565b60008060408385031215611e1a57611e19611dd2565b5b6000611e2885828601611dee565b9250506020611e3985828601611dee565b9150509250929050565b60008115159050919050565b611e5881611e43565b82525050565b6000602082019050611e736000830184611e4f565b92915050565b6000819050919050565b611e8c81611e79565b82525050565b6000602082019050611ea76000830184611e83565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ee281611d96565b82525050565b6000611ef48383611ed9565b60208301905092915050565b6000602082019050919050565b6000611f1882611ead565b611f228185611eb8565b9350611f2d83611ec9565b8060005b83811015611f5e578151611f458882611ee8565b9750611f5083611f00565b925050600181019050611f31565b5085935050505092915050565b60006020820190508181036000830152611f858184611f0d565b905092915050565b600060208284031215611fa357611fa2611dd2565b5b6000611fb184828501611dee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202382611e79565b915061202e83611e79565b925082820190508082111561204657612045611fe9565b5b92915050565b60006040820190506120616000830185611e83565b61206e6020830184611e83565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff82169050919050565b60006120bc826120a4565b915060ff82036120cf576120ce611fe9565b5b600182019050919050565b600881106120eb576120ea611fba565b5b50565b60008190506120fc826120da565b919050565b600061210c826120ee565b9050919050565b61211c81612101565b82525050565b6000819050919050565b600063ffffffff82169050919050565b6000819050919050565b600061216161215c61215784612122565b61213c565b61212c565b9050919050565b61217181612146565b82525050565b600060608201905061218c6000830186611da8565b6121996020830185612113565b6121a66040830184612168565b949350505050565b60006020820190506121c36000830184612113565b92915050565b60006060820190506121de6000830186611e83565b6121eb6020830185611da8565b6121f86040830184611da8565b949350505050565b600061221b61221661221184611d76565b61213c565b611d76565b9050919050565b600061222d82612200565b9050919050565b600061223f82612222565b9050919050565b61224f81612234565b82525050565b600060208201905061226a6000830184612246565b92915050565b600061227b82611e79565b915061228683611e79565b925082820390508181111561229e5761229d611fe9565b5b9291505056fea2646970667358221220810898531e66f6cf90c6d05f8e4e250906cafe30107d480c70bebd232eca9d6b64736f6c63430008110033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x3 PUSH1 0x0 SSTORE PUSH1 0xFF PUSH1 0x1 SSTORE PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0xB PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x22DA DUP1 PUSH2 0x11E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5EBAF1DB GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xC3403DDF GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xC3403DDF EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0xC535C733 EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0xF19E9D81 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0xF3BAF070 EQ PUSH2 0x2FA JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0x5EBAF1DB EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0x8371E6B4 EQ PUSH2 0x22F JUMPI DUP1 PUSH4 0xADFAA72E EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0xBB725440 EQ PUSH2 0x276 JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0x1EC6B60A GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x1EC6B60A EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x3706DD4E EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x3A984BC5 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x5AA68AC0 EQ PUSH2 0x1D9 JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0xC340A24 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x1AFA74E5 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x1BBEF399 EQ PUSH2 0x141 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x102 PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1E03 JUMP JUMPDEST PUSH2 0x34B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x156 PUSH2 0x8A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH2 0x8B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x198 PUSH2 0xA1D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C3 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EE PUSH2 0xA29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0x1F6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x219 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x226 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x237 PUSH2 0xADD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0xDDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0xEA7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH2 0x16B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x16BF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30F PUSH2 0x1D70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31C SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x391 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2D3B0F300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x5EA JUMPI PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0xC0AFE58D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E1 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD MLOAD PUSH2 0x630 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x627 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 ADD MLOAD PUSH2 0x676 JUMPI DUP6 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x66D SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 ADD MLOAD PUSH2 0x6BC JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6B3 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x753 JUMPI PUSH2 0x752 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x765 JUMPI PUSH2 0x764 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x7BF SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x7F2 JUMPI PUSH2 0x7F1 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x804 JUMPI PUSH2 0x803 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x85E SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x16A9AA39AF49F169911E977347975198C503525F7240D6892A626F0227642FCE DUP5 PUSH1 0x40 MLOAD PUSH2 0x894 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x911 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x958 JUMPI PUSH1 0x40 MLOAD PUSH32 0x79BDE80600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 POP LT ISZERO PUSH2 0x9AD JUMPI PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x5FDD6F4900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A4 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9C0 SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xCF33BABC496BB6DC2942B39CB7B75766BBBADF7DA50D176FF8C513E991140239 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH2 0xA13 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xAAD JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xA63 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 CALLVALUE SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD ISZERO PUSH2 0xBBE JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xAC7195C000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBB5 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 POP LT PUSH2 0xC12 JUMPI PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xE318577800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC09 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD DUP3 LT ISZERO PUSH2 0xC5D JUMPI DUP2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH32 0x167202800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC54 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xC6F SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE POP PUSH1 0x8 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE SWAP1 POP POP PUSH1 0x7 DUP4 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC14C5E71DDEF2ACA3E9418524A979CB2131B9370676BDCA8C03D345C7ABB46C9 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDD2 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0xE9A JUMPI POP PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2D3B0F300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1071 JUMPI PUSH1 0x0 PUSH1 0x7 DUP3 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0xF94 JUMPI PUSH2 0xF93 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xFED JUMPI PUSH2 0xFEC PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xFFF JUMPI PUSH2 0xFFE PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP5 DUP2 GT ISZERO PUSH2 0x105C JUMPI DUP1 SWAP5 POP DUP2 SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1069 SWAP1 PUSH2 0x20B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF6B JUMP JUMPDEST POP PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1181 JUMPI PUSH1 0x0 PUSH1 0x7 DUP3 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x10A4 JUMPI PUSH2 0x10A3 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x10FD JUMPI PUSH2 0x10FC PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x110F JUMPI PUSH2 0x110E PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP5 DUP2 GT ISZERO PUSH2 0x116C JUMPI DUP1 SWAP5 POP DUP2 SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1179 SWAP1 PUSH2 0x20B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x107B JUMP JUMPDEST POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12DF JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1269 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x12D6 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x143C JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1398 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x1433 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x74A34DD3 DUP5 PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x147D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAF1B1C5940EFA6F57E5B18106C0CF9F7A23938150563E08D88B9E1500C9DA29 PUSH1 0x2 PUSH1 0x40 MLOAD PUSH2 0x14F6 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x15F4 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x74A34DD3 DUP3 PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1572 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x158C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAF1B1C5940EFA6F57E5B18106C0CF9F7A23938150563E08D88B9E1500C9DA29 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x15EB SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST DUP3 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x6779BB375C13EEDC94D78615CD3246F769B7E0E440F17078D2B0FD7CD6CBB877 PUSH1 0x3 SLOAD DUP3 DUP6 PUSH1 0x40 MLOAD PUSH2 0x16AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x21C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH2 0x179A JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1791 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x1 PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH2 0x17B0 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x17C1 JUMPI PUSH2 0x17C0 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH1 0x7 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x180A JUMPI PUSH2 0x1809 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x7 PUSH1 0x1 PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH2 0x18C5 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x18D6 JUMPI PUSH2 0x18D5 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x8 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 DUP3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x0 DUP3 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SSTORE POP POP PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B13 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A2D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x2 PUSH1 0x40 MLOAD PUSH2 0x1AC8 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CB1 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BCB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x1C66 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 PUSH1 0x40 ADD MLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1CFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D12 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8271947FE3347A460CC3B967688953F8ADD3A506ECFC40EE6A998A82269565D8 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1D63 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA1 DUP3 PUSH2 0x1D76 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DB1 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DCC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DA8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DE0 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP2 EQ PUSH2 0x1DEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1DFD DUP2 PUSH2 0x1DD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E1A JUMPI PUSH2 0x1E19 PUSH2 0x1DD2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E28 DUP6 DUP3 DUP7 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E39 DUP6 DUP3 DUP7 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E58 DUP2 PUSH2 0x1E43 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1E73 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E8C DUP2 PUSH2 0x1E79 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EA7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EE2 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF4 DUP4 DUP4 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F18 DUP3 PUSH2 0x1EAD JUMP JUMPDEST PUSH2 0x1F22 DUP2 DUP6 PUSH2 0x1EB8 JUMP JUMPDEST SWAP4 POP PUSH2 0x1F2D DUP4 PUSH2 0x1EC9 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1F5E JUMPI DUP2 MLOAD PUSH2 0x1F45 DUP9 DUP3 PUSH2 0x1EE8 JUMP JUMPDEST SWAP8 POP PUSH2 0x1F50 DUP4 PUSH2 0x1F00 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1F31 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F85 DUP2 DUP5 PUSH2 0x1F0D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FA3 JUMPI PUSH2 0x1FA2 PUSH2 0x1DD2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FB1 DUP5 DUP3 DUP6 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2023 DUP3 PUSH2 0x1E79 JUMP JUMPDEST SWAP2 POP PUSH2 0x202E DUP4 PUSH2 0x1E79 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2046 JUMPI PUSH2 0x2045 PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2061 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x206E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E83 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20BC DUP3 PUSH2 0x20A4 JUMP JUMPDEST SWAP2 POP PUSH1 0xFF DUP3 SUB PUSH2 0x20CF JUMPI PUSH2 0x20CE PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 DUP2 LT PUSH2 0x20EB JUMPI PUSH2 0x20EA PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x20FC DUP3 PUSH2 0x20DA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x210C DUP3 PUSH2 0x20EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x211C DUP2 PUSH2 0x2101 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2161 PUSH2 0x215C PUSH2 0x2157 DUP5 PUSH2 0x2122 JUMP JUMPDEST PUSH2 0x213C JUMP JUMPDEST PUSH2 0x212C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2171 DUP2 PUSH2 0x2146 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x218C PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1DA8 JUMP JUMPDEST PUSH2 0x2199 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2113 JUMP JUMPDEST PUSH2 0x21A6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2168 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x21C3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2113 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x21DE PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x21EB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1DA8 JUMP JUMPDEST PUSH2 0x21F8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1DA8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x221B PUSH2 0x2216 PUSH2 0x2211 DUP5 PUSH2 0x1D76 JUMP JUMPDEST PUSH2 0x213C JUMP JUMPDEST PUSH2 0x1D76 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x222D DUP3 PUSH2 0x2200 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x223F DUP3 PUSH2 0x2222 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224F DUP2 PUSH2 0x2234 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x226A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2246 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x227B DUP3 PUSH2 0x1E79 JUMP JUMPDEST SWAP2 POP PUSH2 0x2286 DUP4 PUSH2 0x1E79 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x229E JUMPI PUSH2 0x229D PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP2 ADDMOD SWAP9 MSTORE8 0x1E PUSH7 0xF6CF90C6D05F8E 0x4E 0x25 MULMOD MOD 0xCA INVALID ADDRESS LT PUSH30 0x480C70BEBD232ECA9D6B64736F6C63430008110033000000000000000000 ", + "object": "6080604052600360005560ff600155670de0b6b3a764000060025534801561002657600080fd5b5033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006003819055506000600460006101000a81548160ff0219169083151502179055506122da8061011e6000396000f3fe6080604052600436106100e85760003560e01c80635ebaf1db1161008a578063c3403ddf11610059578063c3403ddf146102a1578063c535c733146102b8578063f19e9d81146102e3578063f3baf070146102fa576100e8565b80635ebaf1db146102045780638371e6b41461022f578063adfaa72e14610239578063bb72544014610276576100e8565b80631ec6b60a116100c65780631ec6b60a1461016c5780633706dd4e146101835780633a984bc5146101ae5780635aa68ac0146101d9576100e8565b80630c340a24146100ed5780631afa74e5146101185780631bbef39914610141575b600080fd5b3480156100f957600080fd5b50610102610325565b60405161010f9190611db7565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a9190611e03565b61034b565b005b34801561014d57600080fd5b506101566108a4565b6040516101639190611e5e565b60405180910390f35b34801561017857600080fd5b506101816108b7565b005b34801561018f57600080fd5b50610198610a1d565b6040516101a59190611e92565b60405180910390f35b3480156101ba57600080fd5b506101c3610a23565b6040516101d09190611e92565b60405180910390f35b3480156101e557600080fd5b506101ee610a29565b6040516101fb9190611f6b565b60405180910390f35b34801561021057600080fd5b50610219610ab7565b6040516102269190611db7565b60405180910390f35b610237610add565b005b34801561024557600080fd5b50610260600480360381019061025b9190611f8d565b610ddf565b60405161026d9190611e5e565b60405180910390f35b34801561028257600080fd5b5061028b610ea1565b6040516102989190611e92565b60405180910390f35b3480156102ad57600080fd5b506102b6610ea7565b005b3480156102c457600080fd5b506102cd6116b9565b6040516102da9190611e92565b60405180910390f35b3480156102ef57600080fd5b506102f86116bf565b005b34801561030657600080fd5b5061030f611d70565b60405161031c9190611e92565b60405180910390f35b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900460ff16610391576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff168152602001600182015481525050905060096000600354815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105ea576003546040517fc0afe58d0000000000000000000000000000000000000000000000000000000081526004016105e19190611e92565b60405180910390fd5b826000015161063057836040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106279190611db7565b60405180910390fd5b816000015161067657856040517f76a1be0500000000000000000000000000000000000000000000000000000000815260040161066d9190611db7565b60405180910390fd5b80600001516106bc57846040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106b39190611db7565b60405180910390fd5b600160096000600354815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006003548152602001908152602001600020600080600181111561075357610752611fba565b5b600181111561076557610764611fba565b5b815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107bf9190612018565b925050819055506001600a6000600354815260200190815260200160002060006001808111156107f2576107f1611fba565b5b600181111561080457610803611fba565b5b815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461085e9190612018565b925050819055507f16a9aa39af49f169911e977347975198c503525f7240d6892a626f0227642fce846040516108949190611db7565b60405180910390a1505050505050565b600460009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091157600080fd5b600460009054906101000a900460ff1615610958576040517f79bde80600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005460078054905010156109ad576007805490506000546040517f5fdd6f490000000000000000000000000000000000000000000000000000000081526004016109a492919061204c565b60405180910390fd5b6001600360008282546109c09190612018565b925050819055506001600460006101000a81548160ff0219169083151502179055507fcf33babc496bb6dc2942b39cb7b75766bbbadf7da50d176ff8c513e991140239600354604051610a139190611e92565b60405180910390a1565b60065481565b60005481565b60606007805480602002602001604051908101604052809291908181526020018280548015610aad57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a63575b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905060003490506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015115610bbe57826040517fac7195c0000000000000000000000000000000000000000000000000000000008152600401610bb59190611db7565b60405180910390fd5b60015460078054905010610c12576007805490506001546040517fe3185778000000000000000000000000000000000000000000000000000000008152600401610c0992919061204c565b60405180910390fd5b600254821015610c5d57816002546040517f01672028000000000000000000000000000000000000000000000000000000008152600401610c5492919061204c565b60405180910390fd5b8160066000828254610c6f9190612018565b92505081905550604051806060016040528060011515815260200160078054905060ff16815260200183815250600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff160217905550604082015181600101559050506007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff167fc14c5e71ddef2aca3e9418524a979cb2131b9370676bdca8c03d345c7abb46c983604051610dd29190611e92565b60405180910390a2505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff168015610e9a575060096000600354815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050919050565b60025481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600460009054906101000a900460ff16610f47576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460006101000a81548160ff02191690831515021790555060008080600090505b6007805490508160ff16101561107157600060078260ff1681548110610f9457610f93612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a600060035481526020019081526020016000206000806001811115610fed57610fec611fba565b5b6001811115610fff57610ffe611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561105c578094508193505b50508080611069906120b1565b915050610f6b565b5060008080600090505b6007805490508160ff16101561118157600060078260ff16815481106110a4576110a3612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a6000600354815260200190815260200160002060006001808111156110fd576110fc611fba565b5b600181111561110f5761110e611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561116c578094508193505b50508080611179906120b1565b91505061107b565b50600073ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112df5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b815260040161123b93929190612177565b600060405180830381600087803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b50505050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb160036040516112d691906121ae565b60405180910390a25b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143c5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b815260040161139893929190612177565b600060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1600360405161143391906121ae565b60405180910390a25b61080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd384600260006040518463ffffffff1660e01b815260040161147d93929190612177565b600060405180830381600087803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960026040516114f691906121ae565b60405180910390a28073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115f45761080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd382600360006040518463ffffffff1660e01b815260040161157293929190612177565b600060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960036040516115eb91906121ae565b60405180910390a25b82600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6779bb375c13eedc94d78615cd3246f769b7e0e440f17078d2b0fd7cd6cbb87760035482856040516116ab939291906121c9565b60405180910390a150505050565b60035481565b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015161179a57816040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016117919190612255565b60405180910390fd5b6000600760016007805490506117b09190612270565b815481106117c1576117c0612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050806007836020015160ff168154811061180a57611809612075565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff021916908360ff160217905550600760016007805490506118c59190612270565b815481106118d6576118d5612075565b5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556000820160016101000a81549060ff021916905560018201600090555050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b135761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b8152600401611a2d93929190612177565b600060405180830381600087803b158015611a4757600080fd5b505af1158015611a5b573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16002604051611ac891906121ae565b60405180910390a26000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb15761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b8152600401611bcb93929190612177565b600060405180830381600087803b158015611be557600080fd5b505af1158015611bf9573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16003604051611c6691906121ae565b60405180910390a26000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8273ffffffffffffffffffffffffffffffffffffffff166108fc83604001519081150290604051600060405180830381858888f19350505050158015611cfb573d6000803e3d6000fd5b50816040015160066000828254611d129190612270565b925050819055508273ffffffffffffffffffffffffffffffffffffffff167f8271947fe3347a460cc3b967688953f8add3a506ecfc40ee6a998a82269565d88360400151604051611d639190611e92565b60405180910390a2505050565b60015481565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611da182611d76565b9050919050565b611db181611d96565b82525050565b6000602082019050611dcc6000830184611da8565b92915050565b600080fd5b611de081611d96565b8114611deb57600080fd5b50565b600081359050611dfd81611dd7565b92915050565b60008060408385031215611e1a57611e19611dd2565b5b6000611e2885828601611dee565b9250506020611e3985828601611dee565b9150509250929050565b60008115159050919050565b611e5881611e43565b82525050565b6000602082019050611e736000830184611e4f565b92915050565b6000819050919050565b611e8c81611e79565b82525050565b6000602082019050611ea76000830184611e83565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ee281611d96565b82525050565b6000611ef48383611ed9565b60208301905092915050565b6000602082019050919050565b6000611f1882611ead565b611f228185611eb8565b9350611f2d83611ec9565b8060005b83811015611f5e578151611f458882611ee8565b9750611f5083611f00565b925050600181019050611f31565b5085935050505092915050565b60006020820190508181036000830152611f858184611f0d565b905092915050565b600060208284031215611fa357611fa2611dd2565b5b6000611fb184828501611dee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202382611e79565b915061202e83611e79565b925082820190508082111561204657612045611fe9565b5b92915050565b60006040820190506120616000830185611e83565b61206e6020830184611e83565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff82169050919050565b60006120bc826120a4565b915060ff82036120cf576120ce611fe9565b5b600182019050919050565b600881106120eb576120ea611fba565b5b50565b60008190506120fc826120da565b919050565b600061210c826120ee565b9050919050565b61211c81612101565b82525050565b6000819050919050565b600063ffffffff82169050919050565b6000819050919050565b600061216161215c61215784612122565b61213c565b61212c565b9050919050565b61217181612146565b82525050565b600060608201905061218c6000830186611da8565b6121996020830185612113565b6121a66040830184612168565b949350505050565b60006020820190506121c36000830184612113565b92915050565b60006060820190506121de6000830186611e83565b6121eb6020830185611da8565b6121f86040830184611da8565b949350505050565b600061221b61221661221184611d76565b61213c565b611d76565b9050919050565b600061222d82612200565b9050919050565b600061223f82612222565b9050919050565b61224f81612234565b82525050565b600060208201905061226a6000830184612246565b92915050565b600061227b82611e79565b915061228683611e79565b925082820390508181111561229e5761229d611fe9565b5b9291505056fea264697066735822122081cf457f456b1dec86c8e645134712136c5a40976a5a2477304ad30efa0112db64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x3 PUSH1 0x0 SSTORE PUSH1 0xFF PUSH1 0x1 SSTORE PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0xB PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x22DA DUP1 PUSH2 0x11E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5EBAF1DB GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xC3403DDF GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xC3403DDF EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0xC535C733 EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0xF19E9D81 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0xF3BAF070 EQ PUSH2 0x2FA JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0x5EBAF1DB EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0x8371E6B4 EQ PUSH2 0x22F JUMPI DUP1 PUSH4 0xADFAA72E EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0xBB725440 EQ PUSH2 0x276 JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0x1EC6B60A GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x1EC6B60A EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x3706DD4E EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x3A984BC5 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x5AA68AC0 EQ PUSH2 0x1D9 JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0xC340A24 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x1AFA74E5 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x1BBEF399 EQ PUSH2 0x141 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x102 PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1E03 JUMP JUMPDEST PUSH2 0x34B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x156 PUSH2 0x8A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH2 0x8B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x198 PUSH2 0xA1D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C3 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EE PUSH2 0xA29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0x1F6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x219 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x226 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x237 PUSH2 0xADD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0xDDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0xEA7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH2 0x16B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x16BF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30F PUSH2 0x1D70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31C SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x391 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2D3B0F300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x5EA JUMPI PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0xC0AFE58D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E1 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD MLOAD PUSH2 0x630 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x627 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 ADD MLOAD PUSH2 0x676 JUMPI DUP6 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x66D SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 ADD MLOAD PUSH2 0x6BC JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6B3 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x753 JUMPI PUSH2 0x752 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x765 JUMPI PUSH2 0x764 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x7BF SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x7F2 JUMPI PUSH2 0x7F1 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x804 JUMPI PUSH2 0x803 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x85E SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x16A9AA39AF49F169911E977347975198C503525F7240D6892A626F0227642FCE DUP5 PUSH1 0x40 MLOAD PUSH2 0x894 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x911 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x958 JUMPI PUSH1 0x40 MLOAD PUSH32 0x79BDE80600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 POP LT ISZERO PUSH2 0x9AD JUMPI PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x5FDD6F4900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A4 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9C0 SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xCF33BABC496BB6DC2942B39CB7B75766BBBADF7DA50D176FF8C513E991140239 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH2 0xA13 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xAAD JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xA63 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 CALLVALUE SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD ISZERO PUSH2 0xBBE JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xAC7195C000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBB5 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 POP LT PUSH2 0xC12 JUMPI PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xE318577800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC09 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD DUP3 LT ISZERO PUSH2 0xC5D JUMPI DUP2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH32 0x167202800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC54 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xC6F SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE POP PUSH1 0x8 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE SWAP1 POP POP PUSH1 0x7 DUP4 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC14C5E71DDEF2ACA3E9418524A979CB2131B9370676BDCA8C03D345C7ABB46C9 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDD2 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0xE9A JUMPI POP PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2D3B0F300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1071 JUMPI PUSH1 0x0 PUSH1 0x7 DUP3 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0xF94 JUMPI PUSH2 0xF93 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xFED JUMPI PUSH2 0xFEC PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xFFF JUMPI PUSH2 0xFFE PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP5 DUP2 GT ISZERO PUSH2 0x105C JUMPI DUP1 SWAP5 POP DUP2 SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1069 SWAP1 PUSH2 0x20B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF6B JUMP JUMPDEST POP PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1181 JUMPI PUSH1 0x0 PUSH1 0x7 DUP3 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x10A4 JUMPI PUSH2 0x10A3 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x10FD JUMPI PUSH2 0x10FC PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x110F JUMPI PUSH2 0x110E PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP5 DUP2 GT ISZERO PUSH2 0x116C JUMPI DUP1 SWAP5 POP DUP2 SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1179 SWAP1 PUSH2 0x20B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x107B JUMP JUMPDEST POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12DF JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1269 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x12D6 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x143C JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1398 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x1433 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x74A34DD3 DUP5 PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x147D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAF1B1C5940EFA6F57E5B18106C0CF9F7A23938150563E08D88B9E1500C9DA29 PUSH1 0x2 PUSH1 0x40 MLOAD PUSH2 0x14F6 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x15F4 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x74A34DD3 DUP3 PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1572 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x158C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAF1B1C5940EFA6F57E5B18106C0CF9F7A23938150563E08D88B9E1500C9DA29 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x15EB SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST DUP3 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x6779BB375C13EEDC94D78615CD3246F769B7E0E440F17078D2B0FD7CD6CBB877 PUSH1 0x3 SLOAD DUP3 DUP6 PUSH1 0x40 MLOAD PUSH2 0x16AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x21C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH2 0x179A JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1791 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x1 PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH2 0x17B0 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x17C1 JUMPI PUSH2 0x17C0 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH1 0x7 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x180A JUMPI PUSH2 0x1809 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x7 PUSH1 0x1 PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH2 0x18C5 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x18D6 JUMPI PUSH2 0x18D5 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x8 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 DUP3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x0 DUP3 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SSTORE POP POP PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B13 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A2D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x2 PUSH1 0x40 MLOAD PUSH2 0x1AC8 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CB1 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BCB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x1C66 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 PUSH1 0x40 ADD MLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1CFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D12 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8271947FE3347A460CC3B967688953F8ADD3A506ECFC40EE6A998A82269565D8 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1D63 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA1 DUP3 PUSH2 0x1D76 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DB1 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DCC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DA8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DE0 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP2 EQ PUSH2 0x1DEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1DFD DUP2 PUSH2 0x1DD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E1A JUMPI PUSH2 0x1E19 PUSH2 0x1DD2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E28 DUP6 DUP3 DUP7 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E39 DUP6 DUP3 DUP7 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E58 DUP2 PUSH2 0x1E43 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1E73 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E8C DUP2 PUSH2 0x1E79 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EA7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EE2 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF4 DUP4 DUP4 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F18 DUP3 PUSH2 0x1EAD JUMP JUMPDEST PUSH2 0x1F22 DUP2 DUP6 PUSH2 0x1EB8 JUMP JUMPDEST SWAP4 POP PUSH2 0x1F2D DUP4 PUSH2 0x1EC9 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1F5E JUMPI DUP2 MLOAD PUSH2 0x1F45 DUP9 DUP3 PUSH2 0x1EE8 JUMP JUMPDEST SWAP8 POP PUSH2 0x1F50 DUP4 PUSH2 0x1F00 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1F31 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F85 DUP2 DUP5 PUSH2 0x1F0D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FA3 JUMPI PUSH2 0x1FA2 PUSH2 0x1DD2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FB1 DUP5 DUP3 DUP6 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2023 DUP3 PUSH2 0x1E79 JUMP JUMPDEST SWAP2 POP PUSH2 0x202E DUP4 PUSH2 0x1E79 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2046 JUMPI PUSH2 0x2045 PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2061 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x206E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E83 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20BC DUP3 PUSH2 0x20A4 JUMP JUMPDEST SWAP2 POP PUSH1 0xFF DUP3 SUB PUSH2 0x20CF JUMPI PUSH2 0x20CE PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 DUP2 LT PUSH2 0x20EB JUMPI PUSH2 0x20EA PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x20FC DUP3 PUSH2 0x20DA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x210C DUP3 PUSH2 0x20EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x211C DUP2 PUSH2 0x2101 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2161 PUSH2 0x215C PUSH2 0x2157 DUP5 PUSH2 0x2122 JUMP JUMPDEST PUSH2 0x213C JUMP JUMPDEST PUSH2 0x212C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2171 DUP2 PUSH2 0x2146 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x218C PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1DA8 JUMP JUMPDEST PUSH2 0x2199 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2113 JUMP JUMPDEST PUSH2 0x21A6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2168 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x21C3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2113 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x21DE PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x21EB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1DA8 JUMP JUMPDEST PUSH2 0x21F8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1DA8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x221B PUSH2 0x2216 PUSH2 0x2211 DUP5 PUSH2 0x1D76 JUMP JUMPDEST PUSH2 0x213C JUMP JUMPDEST PUSH2 0x1D76 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x222D DUP3 PUSH2 0x2200 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x223F DUP3 PUSH2 0x2222 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224F DUP2 PUSH2 0x2234 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x226A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2246 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x227B DUP3 PUSH2 0x1E79 JUMP JUMPDEST SWAP2 POP PUSH2 0x2286 DUP4 PUSH2 0x1E79 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x229E JUMPI PUSH2 0x229D PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP2 0xCF GASLIMIT PUSH32 0x456B1DEC86C8E645134712136C5A40976A5A2477304AD30EFA0112DB64736F6C PUSH4 0x43000811 STOP CALLER ", "sourceMap": "195:12239:0:-:0;;;3876:1;3842:35;;4083:3;4049:37;;4198:7;4159:46;;5448:160;;;;;;;;;;5480:10;5472:5;;:18;;;;;;;;;;;;;;;;;;5517:1;5500:6;;:19;;;;;;;;;;;;;;;;;;5548:1;5529:8;;:21;;;;;;;;;;;;;;;;;;5574:1;5560:11;:15;;;;5596:5;5585:8;;:16;;;;;;;;;;;;;;;;;;195:12239;;;;;;" }, "deployedBytecode": { @@ -5636,8 +5636,8 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "6080604052600436106100e85760003560e01c80635ebaf1db1161008a578063c3403ddf11610059578063c3403ddf146102a1578063c535c733146102b8578063f19e9d81146102e3578063f3baf070146102fa576100e8565b80635ebaf1db146102045780638371e6b41461022f578063adfaa72e14610239578063bb72544014610276576100e8565b80631ec6b60a116100c65780631ec6b60a1461016c5780633706dd4e146101835780633a984bc5146101ae5780635aa68ac0146101d9576100e8565b80630c340a24146100ed5780631afa74e5146101185780631bbef39914610141575b600080fd5b3480156100f957600080fd5b50610102610325565b60405161010f9190611db7565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a9190611e03565b61034b565b005b34801561014d57600080fd5b506101566108a4565b6040516101639190611e5e565b60405180910390f35b34801561017857600080fd5b506101816108b7565b005b34801561018f57600080fd5b50610198610a1d565b6040516101a59190611e92565b60405180910390f35b3480156101ba57600080fd5b506101c3610a23565b6040516101d09190611e92565b60405180910390f35b3480156101e557600080fd5b506101ee610a29565b6040516101fb9190611f6b565b60405180910390f35b34801561021057600080fd5b50610219610ab7565b6040516102269190611db7565b60405180910390f35b610237610add565b005b34801561024557600080fd5b50610260600480360381019061025b9190611f8d565b610ddf565b60405161026d9190611e5e565b60405180910390f35b34801561028257600080fd5b5061028b610ea1565b6040516102989190611e92565b60405180910390f35b3480156102ad57600080fd5b506102b6610ea7565b005b3480156102c457600080fd5b506102cd6116b9565b6040516102da9190611e92565b60405180910390f35b3480156102ef57600080fd5b506102f86116bf565b005b34801561030657600080fd5b5061030f611d70565b60405161031c9190611e92565b60405180910390f35b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900460ff16610391576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff168152602001600182015481525050905060096000600354815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105ea576003546040517fc0afe58d0000000000000000000000000000000000000000000000000000000081526004016105e19190611e92565b60405180910390fd5b826000015161063057836040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106279190611db7565b60405180910390fd5b816000015161067657856040517f76a1be0500000000000000000000000000000000000000000000000000000000815260040161066d9190611db7565b60405180910390fd5b80600001516106bc57846040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106b39190611db7565b60405180910390fd5b600160096000600354815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006003548152602001908152602001600020600080600181111561075357610752611fba565b5b600181111561076557610764611fba565b5b815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107bf9190612018565b925050819055506001600a6000600354815260200190815260200160002060006001808111156107f2576107f1611fba565b5b600181111561080457610803611fba565b5b815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461085e9190612018565b925050819055507f16a9aa39af49f169911e977347975198c503525f7240d6892a626f0227642fce846040516108949190611db7565b60405180910390a1505050505050565b600460009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091157600080fd5b600460009054906101000a900460ff1615610958576040517f79bde80600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005460078054905010156109ad576007805490506000546040517f5fdd6f490000000000000000000000000000000000000000000000000000000081526004016109a492919061204c565b60405180910390fd5b6001600360008282546109c09190612018565b925050819055506001600460006101000a81548160ff0219169083151502179055507fcf33babc496bb6dc2942b39cb7b75766bbbadf7da50d176ff8c513e991140239600354604051610a139190611e92565b60405180910390a1565b60065481565b60005481565b60606007805480602002602001604051908101604052809291908181526020018280548015610aad57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a63575b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905060003490506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015115610bbe57826040517fac7195c0000000000000000000000000000000000000000000000000000000008152600401610bb59190611db7565b60405180910390fd5b60015460078054905010610c12576007805490506001546040517fe3185778000000000000000000000000000000000000000000000000000000008152600401610c0992919061204c565b60405180910390fd5b600254821015610c5d57816002546040517f01672028000000000000000000000000000000000000000000000000000000008152600401610c5492919061204c565b60405180910390fd5b8160066000828254610c6f9190612018565b92505081905550604051806060016040528060011515815260200160078054905060ff16815260200183815250600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff160217905550604082015181600101559050506007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff167fc14c5e71ddef2aca3e9418524a979cb2131b9370676bdca8c03d345c7abb46c983604051610dd29190611e92565b60405180910390a2505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff168015610e9a575060096000600354815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050919050565b60025481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600460009054906101000a900460ff16610f47576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460006101000a81548160ff02191690831515021790555060008080600090505b6007805490508160ff16101561107157600060078260ff1681548110610f9457610f93612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a600060035481526020019081526020016000206000806001811115610fed57610fec611fba565b5b6001811115610fff57610ffe611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561105c578094508193505b50508080611069906120b1565b915050610f6b565b5060008080600090505b6007805490508160ff16101561118157600060078260ff16815481106110a4576110a3612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a6000600354815260200190815260200160002060006001808111156110fd576110fc611fba565b5b600181111561110f5761110e611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561116c578094508193505b50508080611179906120b1565b91505061107b565b50600073ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112df5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b815260040161123b93929190612177565b600060405180830381600087803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b50505050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb160036040516112d691906121ae565b60405180910390a25b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143c5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b815260040161139893929190612177565b600060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1600360405161143391906121ae565b60405180910390a25b61080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd384600260006040518463ffffffff1660e01b815260040161147d93929190612177565b600060405180830381600087803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960026040516114f691906121ae565b60405180910390a28073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115f45761080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd382600360006040518463ffffffff1660e01b815260040161157293929190612177565b600060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960036040516115eb91906121ae565b60405180910390a25b82600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6779bb375c13eedc94d78615cd3246f769b7e0e440f17078d2b0fd7cd6cbb87760035482856040516116ab939291906121c9565b60405180910390a150505050565b60035481565b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015161179a57816040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016117919190612255565b60405180910390fd5b6000600760016007805490506117b09190612270565b815481106117c1576117c0612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050806007836020015160ff168154811061180a57611809612075565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff021916908360ff160217905550600760016007805490506118c59190612270565b815481106118d6576118d5612075565b5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556000820160016101000a81549060ff021916905560018201600090555050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b135761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b8152600401611a2d93929190612177565b600060405180830381600087803b158015611a4757600080fd5b505af1158015611a5b573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16002604051611ac891906121ae565b60405180910390a26000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb15761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b8152600401611bcb93929190612177565b600060405180830381600087803b158015611be557600080fd5b505af1158015611bf9573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16003604051611c6691906121ae565b60405180910390a26000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8273ffffffffffffffffffffffffffffffffffffffff166108fc83604001519081150290604051600060405180830381858888f19350505050158015611cfb573d6000803e3d6000fd5b50816040015160066000828254611d129190612270565b925050819055508273ffffffffffffffffffffffffffffffffffffffff167f8271947fe3347a460cc3b967688953f8add3a506ecfc40ee6a998a82269565d88360400151604051611d639190611e92565b60405180910390a2505050565b60015481565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611da182611d76565b9050919050565b611db181611d96565b82525050565b6000602082019050611dcc6000830184611da8565b92915050565b600080fd5b611de081611d96565b8114611deb57600080fd5b50565b600081359050611dfd81611dd7565b92915050565b60008060408385031215611e1a57611e19611dd2565b5b6000611e2885828601611dee565b9250506020611e3985828601611dee565b9150509250929050565b60008115159050919050565b611e5881611e43565b82525050565b6000602082019050611e736000830184611e4f565b92915050565b6000819050919050565b611e8c81611e79565b82525050565b6000602082019050611ea76000830184611e83565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ee281611d96565b82525050565b6000611ef48383611ed9565b60208301905092915050565b6000602082019050919050565b6000611f1882611ead565b611f228185611eb8565b9350611f2d83611ec9565b8060005b83811015611f5e578151611f458882611ee8565b9750611f5083611f00565b925050600181019050611f31565b5085935050505092915050565b60006020820190508181036000830152611f858184611f0d565b905092915050565b600060208284031215611fa357611fa2611dd2565b5b6000611fb184828501611dee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202382611e79565b915061202e83611e79565b925082820190508082111561204657612045611fe9565b5b92915050565b60006040820190506120616000830185611e83565b61206e6020830184611e83565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff82169050919050565b60006120bc826120a4565b915060ff82036120cf576120ce611fe9565b5b600182019050919050565b600881106120eb576120ea611fba565b5b50565b60008190506120fc826120da565b919050565b600061210c826120ee565b9050919050565b61211c81612101565b82525050565b6000819050919050565b600063ffffffff82169050919050565b6000819050919050565b600061216161215c61215784612122565b61213c565b61212c565b9050919050565b61217181612146565b82525050565b600060608201905061218c6000830186611da8565b6121996020830185612113565b6121a66040830184612168565b949350505050565b60006020820190506121c36000830184612113565b92915050565b60006060820190506121de6000830186611e83565b6121eb6020830185611da8565b6121f86040830184611da8565b949350505050565b600061221b61221661221184611d76565b61213c565b611d76565b9050919050565b600061222d82612200565b9050919050565b600061223f82612222565b9050919050565b61224f81612234565b82525050565b600060208201905061226a6000830184612246565b92915050565b600061227b82611e79565b915061228683611e79565b925082820390508181111561229e5761229d611fe9565b5b9291505056fea2646970667358221220810898531e66f6cf90c6d05f8e4e250906cafe30107d480c70bebd232eca9d6b64736f6c63430008110033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5EBAF1DB GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xC3403DDF GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xC3403DDF EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0xC535C733 EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0xF19E9D81 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0xF3BAF070 EQ PUSH2 0x2FA JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0x5EBAF1DB EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0x8371E6B4 EQ PUSH2 0x22F JUMPI DUP1 PUSH4 0xADFAA72E EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0xBB725440 EQ PUSH2 0x276 JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0x1EC6B60A GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x1EC6B60A EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x3706DD4E EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x3A984BC5 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x5AA68AC0 EQ PUSH2 0x1D9 JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0xC340A24 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x1AFA74E5 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x1BBEF399 EQ PUSH2 0x141 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x102 PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1E03 JUMP JUMPDEST PUSH2 0x34B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x156 PUSH2 0x8A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH2 0x8B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x198 PUSH2 0xA1D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C3 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EE PUSH2 0xA29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0x1F6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x219 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x226 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x237 PUSH2 0xADD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0xDDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0xEA7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH2 0x16B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x16BF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30F PUSH2 0x1D70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31C SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x391 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2D3B0F300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x5EA JUMPI PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0xC0AFE58D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E1 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD MLOAD PUSH2 0x630 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x627 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 ADD MLOAD PUSH2 0x676 JUMPI DUP6 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x66D SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 ADD MLOAD PUSH2 0x6BC JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6B3 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x753 JUMPI PUSH2 0x752 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x765 JUMPI PUSH2 0x764 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x7BF SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x7F2 JUMPI PUSH2 0x7F1 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x804 JUMPI PUSH2 0x803 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x85E SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x16A9AA39AF49F169911E977347975198C503525F7240D6892A626F0227642FCE DUP5 PUSH1 0x40 MLOAD PUSH2 0x894 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x911 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x958 JUMPI PUSH1 0x40 MLOAD PUSH32 0x79BDE80600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 POP LT ISZERO PUSH2 0x9AD JUMPI PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x5FDD6F4900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A4 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9C0 SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xCF33BABC496BB6DC2942B39CB7B75766BBBADF7DA50D176FF8C513E991140239 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH2 0xA13 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xAAD JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xA63 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 CALLVALUE SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD ISZERO PUSH2 0xBBE JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xAC7195C000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBB5 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 POP LT PUSH2 0xC12 JUMPI PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xE318577800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC09 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD DUP3 LT ISZERO PUSH2 0xC5D JUMPI DUP2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH32 0x167202800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC54 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xC6F SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE POP PUSH1 0x8 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE SWAP1 POP POP PUSH1 0x7 DUP4 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC14C5E71DDEF2ACA3E9418524A979CB2131B9370676BDCA8C03D345C7ABB46C9 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDD2 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0xE9A JUMPI POP PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2D3B0F300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1071 JUMPI PUSH1 0x0 PUSH1 0x7 DUP3 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0xF94 JUMPI PUSH2 0xF93 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xFED JUMPI PUSH2 0xFEC PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xFFF JUMPI PUSH2 0xFFE PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP5 DUP2 GT ISZERO PUSH2 0x105C JUMPI DUP1 SWAP5 POP DUP2 SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1069 SWAP1 PUSH2 0x20B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF6B JUMP JUMPDEST POP PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1181 JUMPI PUSH1 0x0 PUSH1 0x7 DUP3 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x10A4 JUMPI PUSH2 0x10A3 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x10FD JUMPI PUSH2 0x10FC PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x110F JUMPI PUSH2 0x110E PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP5 DUP2 GT ISZERO PUSH2 0x116C JUMPI DUP1 SWAP5 POP DUP2 SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1179 SWAP1 PUSH2 0x20B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x107B JUMP JUMPDEST POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12DF JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1269 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x12D6 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x143C JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1398 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x1433 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x74A34DD3 DUP5 PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x147D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAF1B1C5940EFA6F57E5B18106C0CF9F7A23938150563E08D88B9E1500C9DA29 PUSH1 0x2 PUSH1 0x40 MLOAD PUSH2 0x14F6 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x15F4 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x74A34DD3 DUP3 PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1572 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x158C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAF1B1C5940EFA6F57E5B18106C0CF9F7A23938150563E08D88B9E1500C9DA29 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x15EB SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST DUP3 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x6779BB375C13EEDC94D78615CD3246F769B7E0E440F17078D2B0FD7CD6CBB877 PUSH1 0x3 SLOAD DUP3 DUP6 PUSH1 0x40 MLOAD PUSH2 0x16AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x21C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH2 0x179A JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1791 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x1 PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH2 0x17B0 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x17C1 JUMPI PUSH2 0x17C0 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH1 0x7 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x180A JUMPI PUSH2 0x1809 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x7 PUSH1 0x1 PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH2 0x18C5 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x18D6 JUMPI PUSH2 0x18D5 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x8 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 DUP3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x0 DUP3 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SSTORE POP POP PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B13 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A2D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x2 PUSH1 0x40 MLOAD PUSH2 0x1AC8 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CB1 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BCB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x1C66 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 PUSH1 0x40 ADD MLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1CFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D12 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8271947FE3347A460CC3B967688953F8ADD3A506ECFC40EE6A998A82269565D8 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1D63 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA1 DUP3 PUSH2 0x1D76 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DB1 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DCC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DA8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DE0 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP2 EQ PUSH2 0x1DEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1DFD DUP2 PUSH2 0x1DD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E1A JUMPI PUSH2 0x1E19 PUSH2 0x1DD2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E28 DUP6 DUP3 DUP7 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E39 DUP6 DUP3 DUP7 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E58 DUP2 PUSH2 0x1E43 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1E73 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E8C DUP2 PUSH2 0x1E79 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EA7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EE2 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF4 DUP4 DUP4 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F18 DUP3 PUSH2 0x1EAD JUMP JUMPDEST PUSH2 0x1F22 DUP2 DUP6 PUSH2 0x1EB8 JUMP JUMPDEST SWAP4 POP PUSH2 0x1F2D DUP4 PUSH2 0x1EC9 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1F5E JUMPI DUP2 MLOAD PUSH2 0x1F45 DUP9 DUP3 PUSH2 0x1EE8 JUMP JUMPDEST SWAP8 POP PUSH2 0x1F50 DUP4 PUSH2 0x1F00 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1F31 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F85 DUP2 DUP5 PUSH2 0x1F0D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FA3 JUMPI PUSH2 0x1FA2 PUSH2 0x1DD2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FB1 DUP5 DUP3 DUP6 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2023 DUP3 PUSH2 0x1E79 JUMP JUMPDEST SWAP2 POP PUSH2 0x202E DUP4 PUSH2 0x1E79 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2046 JUMPI PUSH2 0x2045 PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2061 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x206E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E83 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20BC DUP3 PUSH2 0x20A4 JUMP JUMPDEST SWAP2 POP PUSH1 0xFF DUP3 SUB PUSH2 0x20CF JUMPI PUSH2 0x20CE PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 DUP2 LT PUSH2 0x20EB JUMPI PUSH2 0x20EA PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x20FC DUP3 PUSH2 0x20DA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x210C DUP3 PUSH2 0x20EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x211C DUP2 PUSH2 0x2101 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2161 PUSH2 0x215C PUSH2 0x2157 DUP5 PUSH2 0x2122 JUMP JUMPDEST PUSH2 0x213C JUMP JUMPDEST PUSH2 0x212C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2171 DUP2 PUSH2 0x2146 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x218C PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1DA8 JUMP JUMPDEST PUSH2 0x2199 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2113 JUMP JUMPDEST PUSH2 0x21A6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2168 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x21C3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2113 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x21DE PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x21EB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1DA8 JUMP JUMPDEST PUSH2 0x21F8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1DA8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x221B PUSH2 0x2216 PUSH2 0x2211 DUP5 PUSH2 0x1D76 JUMP JUMPDEST PUSH2 0x213C JUMP JUMPDEST PUSH2 0x1D76 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x222D DUP3 PUSH2 0x2200 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x223F DUP3 PUSH2 0x2222 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224F DUP2 PUSH2 0x2234 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x226A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2246 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x227B DUP3 PUSH2 0x1E79 JUMP JUMPDEST SWAP2 POP PUSH2 0x2286 DUP4 PUSH2 0x1E79 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x229E JUMPI PUSH2 0x229D PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP2 ADDMOD SWAP9 MSTORE8 0x1E PUSH7 0xF6CF90C6D05F8E 0x4E 0x25 MULMOD MOD 0xCA INVALID ADDRESS LT PUSH30 0x480C70BEBD232ECA9D6B64736F6C63430008110033000000000000000000 ", + "object": "6080604052600436106100e85760003560e01c80635ebaf1db1161008a578063c3403ddf11610059578063c3403ddf146102a1578063c535c733146102b8578063f19e9d81146102e3578063f3baf070146102fa576100e8565b80635ebaf1db146102045780638371e6b41461022f578063adfaa72e14610239578063bb72544014610276576100e8565b80631ec6b60a116100c65780631ec6b60a1461016c5780633706dd4e146101835780633a984bc5146101ae5780635aa68ac0146101d9576100e8565b80630c340a24146100ed5780631afa74e5146101185780631bbef39914610141575b600080fd5b3480156100f957600080fd5b50610102610325565b60405161010f9190611db7565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a9190611e03565b61034b565b005b34801561014d57600080fd5b506101566108a4565b6040516101639190611e5e565b60405180910390f35b34801561017857600080fd5b506101816108b7565b005b34801561018f57600080fd5b50610198610a1d565b6040516101a59190611e92565b60405180910390f35b3480156101ba57600080fd5b506101c3610a23565b6040516101d09190611e92565b60405180910390f35b3480156101e557600080fd5b506101ee610a29565b6040516101fb9190611f6b565b60405180910390f35b34801561021057600080fd5b50610219610ab7565b6040516102269190611db7565b60405180910390f35b610237610add565b005b34801561024557600080fd5b50610260600480360381019061025b9190611f8d565b610ddf565b60405161026d9190611e5e565b60405180910390f35b34801561028257600080fd5b5061028b610ea1565b6040516102989190611e92565b60405180910390f35b3480156102ad57600080fd5b506102b6610ea7565b005b3480156102c457600080fd5b506102cd6116b9565b6040516102da9190611e92565b60405180910390f35b3480156102ef57600080fd5b506102f86116bf565b005b34801561030657600080fd5b5061030f611d70565b60405161031c9190611e92565b60405180910390f35b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900460ff16610391576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff16815260200160018201548152505090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff168152602001600182015481525050905060096000600354815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105ea576003546040517fc0afe58d0000000000000000000000000000000000000000000000000000000081526004016105e19190611e92565b60405180910390fd5b826000015161063057836040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106279190611db7565b60405180910390fd5b816000015161067657856040517f76a1be0500000000000000000000000000000000000000000000000000000000815260040161066d9190611db7565b60405180910390fd5b80600001516106bc57846040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016106b39190611db7565b60405180910390fd5b600160096000600354815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006003548152602001908152602001600020600080600181111561075357610752611fba565b5b600181111561076557610764611fba565b5b815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107bf9190612018565b925050819055506001600a6000600354815260200190815260200160002060006001808111156107f2576107f1611fba565b5b600181111561080457610803611fba565b5b815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461085e9190612018565b925050819055507f16a9aa39af49f169911e977347975198c503525f7240d6892a626f0227642fce846040516108949190611db7565b60405180910390a1505050505050565b600460009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091157600080fd5b600460009054906101000a900460ff1615610958576040517f79bde80600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005460078054905010156109ad576007805490506000546040517f5fdd6f490000000000000000000000000000000000000000000000000000000081526004016109a492919061204c565b60405180910390fd5b6001600360008282546109c09190612018565b925050819055506001600460006101000a81548160ff0219169083151502179055507fcf33babc496bb6dc2942b39cb7b75766bbbadf7da50d176ff8c513e991140239600354604051610a139190611e92565b60405180910390a1565b60065481565b60005481565b60606007805480602002602001604051908101604052809291908181526020018280548015610aad57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a63575b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905060003490506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015115610bbe57826040517fac7195c0000000000000000000000000000000000000000000000000000000008152600401610bb59190611db7565b60405180910390fd5b60015460078054905010610c12576007805490506001546040517fe3185778000000000000000000000000000000000000000000000000000000008152600401610c0992919061204c565b60405180910390fd5b600254821015610c5d57816002546040517f01672028000000000000000000000000000000000000000000000000000000008152600401610c5492919061204c565b60405180910390fd5b8160066000828254610c6f9190612018565b92505081905550604051806060016040528060011515815260200160078054905060ff16815260200183815250600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff160217905550604082015181600101559050506007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff167fc14c5e71ddef2aca3e9418524a979cb2131b9370676bdca8c03d345c7abb46c983604051610dd29190611e92565b60405180910390a2505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff168015610e9a575060096000600354815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050919050565b60025481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f0157600080fd5b600460009054906101000a900460ff16610f47576040517ff2d3b0f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460006101000a81548160ff02191690831515021790555060008080600090505b6007805490508160ff16101561107157600060078260ff1681548110610f9457610f93612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a600060035481526020019081526020016000206000806001811115610fed57610fec611fba565b5b6001811115610fff57610ffe611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561105c578094508193505b50508080611069906120b1565b915050610f6b565b5060008080600090505b6007805490508160ff16101561118157600060078260ff16815481106110a4576110a3612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600a6000600354815260200190815260200160002060006001808111156110fd576110fc611fba565b5b600181111561110f5761110e611fba565b5b815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481111561116c578094508193505b50508080611179906120b1565b91505061107b565b50600073ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112df5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b815260040161123b93929190612177565b600060405180830381600087803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b50505050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb160036040516112d691906121ae565b60405180910390a25b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143c5761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b815260040161139893929190612177565b600060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb1600360405161143391906121ae565b60405180910390a25b61080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd384600260006040518463ffffffff1660e01b815260040161147d93929190612177565b600060405180830381600087803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960026040516114f691906121ae565b60405180910390a28073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115f45761080b73ffffffffffffffffffffffffffffffffffffffff166374a34dd382600360006040518463ffffffff1660e01b815260040161157293929190612177565b600060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167f0af1b1c5940efa6f57e5b18106c0cf9f7a23938150563e08d88b9e1500c9da2960036040516115eb91906121ae565b60405180910390a25b82600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6779bb375c13eedc94d78615cd3246f769b7e0e440f17078d2b0fd7cd6cbb87760035482856040516116ab939291906121c9565b60405180910390a150505050565b60035481565b60003390506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815250509050806000015161179a57816040517f76a1be050000000000000000000000000000000000000000000000000000000081526004016117919190612255565b60405180910390fd5b6000600760016007805490506117b09190612270565b815481106117c1576117c0612075565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050806007836020015160ff168154811061180a57611809612075565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff021916908360ff160217905550600760016007805490506118c59190612270565b815481106118d6576118d5612075565b5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556000820160016101000a81549060ff021916905560018201600090555050600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b135761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006040518463ffffffff1660e01b8152600401611a2d93929190612177565b600060405180830381600087803b158015611a4757600080fd5b505af1158015611a5b573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16002604051611ac891906121ae565b60405180910390a26000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb15761080b73ffffffffffffffffffffffffffffffffffffffff1663fef3f708600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006040518463ffffffff1660e01b8152600401611bcb93929190612177565b600060405180830381600087803b158015611be557600080fd5b505af1158015611bf9573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4eb0ca6fa3ffddde13b3f5c744a969ebedd4460bd405e80f4a07cc4082990bb16003604051611c6691906121ae565b60405180910390a26000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8273ffffffffffffffffffffffffffffffffffffffff166108fc83604001519081150290604051600060405180830381858888f19350505050158015611cfb573d6000803e3d6000fd5b50816040015160066000828254611d129190612270565b925050819055508273ffffffffffffffffffffffffffffffffffffffff167f8271947fe3347a460cc3b967688953f8add3a506ecfc40ee6a998a82269565d88360400151604051611d639190611e92565b60405180910390a2505050565b60015481565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611da182611d76565b9050919050565b611db181611d96565b82525050565b6000602082019050611dcc6000830184611da8565b92915050565b600080fd5b611de081611d96565b8114611deb57600080fd5b50565b600081359050611dfd81611dd7565b92915050565b60008060408385031215611e1a57611e19611dd2565b5b6000611e2885828601611dee565b9250506020611e3985828601611dee565b9150509250929050565b60008115159050919050565b611e5881611e43565b82525050565b6000602082019050611e736000830184611e4f565b92915050565b6000819050919050565b611e8c81611e79565b82525050565b6000602082019050611ea76000830184611e83565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ee281611d96565b82525050565b6000611ef48383611ed9565b60208301905092915050565b6000602082019050919050565b6000611f1882611ead565b611f228185611eb8565b9350611f2d83611ec9565b8060005b83811015611f5e578151611f458882611ee8565b9750611f5083611f00565b925050600181019050611f31565b5085935050505092915050565b60006020820190508181036000830152611f858184611f0d565b905092915050565b600060208284031215611fa357611fa2611dd2565b5b6000611fb184828501611dee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202382611e79565b915061202e83611e79565b925082820190508082111561204657612045611fe9565b5b92915050565b60006040820190506120616000830185611e83565b61206e6020830184611e83565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff82169050919050565b60006120bc826120a4565b915060ff82036120cf576120ce611fe9565b5b600182019050919050565b600881106120eb576120ea611fba565b5b50565b60008190506120fc826120da565b919050565b600061210c826120ee565b9050919050565b61211c81612101565b82525050565b6000819050919050565b600063ffffffff82169050919050565b6000819050919050565b600061216161215c61215784612122565b61213c565b61212c565b9050919050565b61217181612146565b82525050565b600060608201905061218c6000830186611da8565b6121996020830185612113565b6121a66040830184612168565b949350505050565b60006020820190506121c36000830184612113565b92915050565b60006060820190506121de6000830186611e83565b6121eb6020830185611da8565b6121f86040830184611da8565b949350505050565b600061221b61221661221184611d76565b61213c565b611d76565b9050919050565b600061222d82612200565b9050919050565b600061223f82612222565b9050919050565b61224f81612234565b82525050565b600060208201905061226a6000830184612246565b92915050565b600061227b82611e79565b915061228683611e79565b925082820390508181111561229e5761229d611fe9565b5b9291505056fea264697066735822122081cf457f456b1dec86c8e645134712136c5a40976a5a2477304ad30efa0112db64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5EBAF1DB GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xC3403DDF GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xC3403DDF EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0xC535C733 EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0xF19E9D81 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0xF3BAF070 EQ PUSH2 0x2FA JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0x5EBAF1DB EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0x8371E6B4 EQ PUSH2 0x22F JUMPI DUP1 PUSH4 0xADFAA72E EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0xBB725440 EQ PUSH2 0x276 JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0x1EC6B60A GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x1EC6B60A EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x3706DD4E EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x3A984BC5 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x5AA68AC0 EQ PUSH2 0x1D9 JUMPI PUSH2 0xE8 JUMP JUMPDEST DUP1 PUSH4 0xC340A24 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x1AFA74E5 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x1BBEF399 EQ PUSH2 0x141 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x102 PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1E03 JUMP JUMPDEST PUSH2 0x34B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x156 PUSH2 0x8A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH2 0x8B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x198 PUSH2 0xA1D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C3 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EE PUSH2 0xA29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0x1F6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x219 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x226 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x237 PUSH2 0xADD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0xDDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0xEA7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH2 0x16B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x16BF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30F PUSH2 0x1D70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31C SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x391 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2D3B0F300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x5EA JUMPI PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0xC0AFE58D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E1 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD MLOAD PUSH2 0x630 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x627 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 ADD MLOAD PUSH2 0x676 JUMPI DUP6 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x66D SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 ADD MLOAD PUSH2 0x6BC JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6B3 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x753 JUMPI PUSH2 0x752 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x765 JUMPI PUSH2 0x764 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x7BF SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x7F2 JUMPI PUSH2 0x7F1 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x804 JUMPI PUSH2 0x803 PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x85E SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x16A9AA39AF49F169911E977347975198C503525F7240D6892A626F0227642FCE DUP5 PUSH1 0x40 MLOAD PUSH2 0x894 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x911 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x958 JUMPI PUSH1 0x40 MLOAD PUSH32 0x79BDE80600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 POP LT ISZERO PUSH2 0x9AD JUMPI PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x5FDD6F4900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A4 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9C0 SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xCF33BABC496BB6DC2942B39CB7B75766BBBADF7DA50D176FF8C513E991140239 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH2 0xA13 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xAAD JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xA63 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 CALLVALUE SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD ISZERO PUSH2 0xBBE JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xAC7195C000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBB5 SWAP2 SWAP1 PUSH2 0x1DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x7 DUP1 SLOAD SWAP1 POP LT PUSH2 0xC12 JUMPI PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xE318577800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC09 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD DUP3 LT ISZERO PUSH2 0xC5D JUMPI DUP2 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH32 0x167202800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC54 SWAP3 SWAP2 SWAP1 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xC6F SWAP2 SWAP1 PUSH2 0x2018 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE POP PUSH1 0x8 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE SWAP1 POP POP PUSH1 0x7 DUP4 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC14C5E71DDEF2ACA3E9418524A979CB2131B9370676BDCA8C03D345C7ABB46C9 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDD2 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0xE9A JUMPI POP PUSH1 0x9 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2D3B0F300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1071 JUMPI PUSH1 0x0 PUSH1 0x7 DUP3 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0xF94 JUMPI PUSH2 0xF93 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xFED JUMPI PUSH2 0xFEC PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xFFF JUMPI PUSH2 0xFFE PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP5 DUP2 GT ISZERO PUSH2 0x105C JUMPI DUP1 SWAP5 POP DUP2 SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1069 SWAP1 PUSH2 0x20B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF6B JUMP JUMPDEST POP PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1181 JUMPI PUSH1 0x0 PUSH1 0x7 DUP3 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x10A4 JUMPI PUSH2 0x10A3 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0xA PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x10FD JUMPI PUSH2 0x10FC PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x110F JUMPI PUSH2 0x110E PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP5 DUP2 GT ISZERO PUSH2 0x116C JUMPI DUP1 SWAP5 POP DUP2 SWAP4 POP JUMPDEST POP POP DUP1 DUP1 PUSH2 0x1179 SWAP1 PUSH2 0x20B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x107B JUMP JUMPDEST POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12DF JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1269 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x12D6 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x143C JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1398 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x1433 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x74A34DD3 DUP5 PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x147D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAF1B1C5940EFA6F57E5B18106C0CF9F7A23938150563E08D88B9E1500C9DA29 PUSH1 0x2 PUSH1 0x40 MLOAD PUSH2 0x14F6 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x15F4 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x74A34DD3 DUP3 PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1572 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x158C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAF1B1C5940EFA6F57E5B18106C0CF9F7A23938150563E08D88B9E1500C9DA29 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x15EB SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST DUP3 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x6779BB375C13EEDC94D78615CD3246F769B7E0E440F17078D2B0FD7CD6CBB877 PUSH1 0x3 SLOAD DUP3 DUP6 PUSH1 0x40 MLOAD PUSH2 0x16AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x21C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH2 0x179A JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x76A1BE0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1791 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x1 PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH2 0x17B0 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x17C1 JUMPI PUSH2 0x17C0 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH1 0x7 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x180A JUMPI PUSH2 0x1809 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x7 PUSH1 0x1 PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH2 0x18C5 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x18D6 JUMPI PUSH2 0x18D5 PUSH2 0x2075 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x8 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 DUP3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x0 DUP3 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SSTORE POP POP PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B13 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A2D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x2 PUSH1 0x40 MLOAD PUSH2 0x1AC8 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CB1 JUMPI PUSH2 0x80B PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEF3F708 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BCB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2177 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4EB0CA6FA3FFDDDE13B3F5C744A969EBEDD4460BD405E80F4A07CC4082990BB1 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x1C66 SWAP2 SWAP1 PUSH2 0x21AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 PUSH1 0x40 ADD MLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1CFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x6 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D12 SWAP2 SWAP1 PUSH2 0x2270 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8271947FE3347A460CC3B967688953F8ADD3A506ECFC40EE6A998A82269565D8 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1D63 SWAP2 SWAP1 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA1 DUP3 PUSH2 0x1D76 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DB1 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DCC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DA8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DE0 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP2 EQ PUSH2 0x1DEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1DFD DUP2 PUSH2 0x1DD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E1A JUMPI PUSH2 0x1E19 PUSH2 0x1DD2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E28 DUP6 DUP3 DUP7 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E39 DUP6 DUP3 DUP7 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E58 DUP2 PUSH2 0x1E43 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1E73 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E8C DUP2 PUSH2 0x1E79 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EA7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EE2 DUP2 PUSH2 0x1D96 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF4 DUP4 DUP4 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F18 DUP3 PUSH2 0x1EAD JUMP JUMPDEST PUSH2 0x1F22 DUP2 DUP6 PUSH2 0x1EB8 JUMP JUMPDEST SWAP4 POP PUSH2 0x1F2D DUP4 PUSH2 0x1EC9 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1F5E JUMPI DUP2 MLOAD PUSH2 0x1F45 DUP9 DUP3 PUSH2 0x1EE8 JUMP JUMPDEST SWAP8 POP PUSH2 0x1F50 DUP4 PUSH2 0x1F00 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1F31 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F85 DUP2 DUP5 PUSH2 0x1F0D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FA3 JUMPI PUSH2 0x1FA2 PUSH2 0x1DD2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FB1 DUP5 DUP3 DUP6 ADD PUSH2 0x1DEE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2023 DUP3 PUSH2 0x1E79 JUMP JUMPDEST SWAP2 POP PUSH2 0x202E DUP4 PUSH2 0x1E79 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2046 JUMPI PUSH2 0x2045 PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2061 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x206E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E83 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20BC DUP3 PUSH2 0x20A4 JUMP JUMPDEST SWAP2 POP PUSH1 0xFF DUP3 SUB PUSH2 0x20CF JUMPI PUSH2 0x20CE PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 DUP2 LT PUSH2 0x20EB JUMPI PUSH2 0x20EA PUSH2 0x1FBA JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x20FC DUP3 PUSH2 0x20DA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x210C DUP3 PUSH2 0x20EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x211C DUP2 PUSH2 0x2101 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2161 PUSH2 0x215C PUSH2 0x2157 DUP5 PUSH2 0x2122 JUMP JUMPDEST PUSH2 0x213C JUMP JUMPDEST PUSH2 0x212C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2171 DUP2 PUSH2 0x2146 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x218C PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1DA8 JUMP JUMPDEST PUSH2 0x2199 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2113 JUMP JUMPDEST PUSH2 0x21A6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2168 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x21C3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2113 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x21DE PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x21EB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1DA8 JUMP JUMPDEST PUSH2 0x21F8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1DA8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x221B PUSH2 0x2216 PUSH2 0x2211 DUP5 PUSH2 0x1D76 JUMP JUMPDEST PUSH2 0x213C JUMP JUMPDEST PUSH2 0x1D76 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x222D DUP3 PUSH2 0x2200 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x223F DUP3 PUSH2 0x2222 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224F DUP2 PUSH2 0x2234 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x226A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2246 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x227B DUP3 PUSH2 0x1E79 JUMP JUMPDEST SWAP2 POP PUSH2 0x2286 DUP4 PUSH2 0x1E79 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x229E JUMPI PUSH2 0x229D PUSH2 0x1FE9 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP2 0xCF GASLIMIT PUSH32 0x456B1DEC86C8E645134712136C5A40976A5A2477304AD30EFA0112DB64736F6C PUSH4 0x43000811 STOP CALLER ", "sourceMap": "195:12239:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4495:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11285:1064;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4431:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8299:420;;;;;;;;;;;;;:::i;:::-;;4628:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3842:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5614:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4560:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6049:831;;;:::i;:::-;;5725:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4159:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8950:2146;;;;;;;;;;;;;:::i;:::-;;4334:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7015:1133;;;;;;;;;;;;;:::i;:::-;;4049:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4495:23;;;;;;;;;;;;;:::o;11285:1064::-;11375:8;;;;;;;;;;;11370:68;;11406:21;;;;;;;;;;;;;;11370:68;11448:14;11465:10;11448:27;;11485:30;11518:12;:20;11531:6;11518:20;;;;;;;;;;;;;;;11485:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11548:38;11589:12;:53;11615:17;11589:53;;;;;;;;;;;;;;;11548:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11652:36;11691:12;:29;11704:15;11691:29;;;;;;;;;;;;;;;11652:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11735:10;:23;11746:11;;11735:23;;;;;;;;;;;:31;11759:6;11735:31;;;;;;;;;;;;;;;;;;;;;;;;;11731:94;;;11802:11;;11789:25;;;;;;;;;;;:::i;:::-;;;;;;;;11731:94;11839:11;:19;;;11834:75;;11891:6;11881:17;;;;;;;;;;;:::i;:::-;;;;;;;;11834:75;11923:19;:27;;;11918:94;;11983:17;11973:28;;;;;;;;;;;:::i;:::-;;;;;;;;11918:94;12026:17;:25;;;12021:90;;12084:15;12074:26;;;;;;;;;;;:::i;:::-;;;;;;;;12021:90;12155:4;12121:10;:23;12132:11;;12121:23;;;;;;;;;;;:31;12145:6;12121:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;12237:1;12169:13;:26;12183:11;;12169:26;;;;;;;;;;;:45;12196:17;12169:45;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:64;12215:17;12169:64;;;;;;;;;;;;;;;;:69;;;;;;;:::i;:::-;;;;;;;;12312:1;12248:13;:26;12262:11;;12248:26;;;;;;;;;;;:43;12275:15;12248:43;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:60;12292:15;12248:60;;;;;;;;;;;;;;;;:65;;;;;;;:::i;:::-;;;;;;;;12329:13;12335:6;12329:13;;;;;;:::i;:::-;;;;;;;;11360:989;;;;11285:1064;;:::o;4431:20::-;;;;;;;;;;;;;:::o;8299:420::-;12408:5;;;;;;;;;;;12394:19;;:10;:19;;;12386:28;;;;;;8355:8:::1;;;;;;;;;;;8351:71;;;8386:25;;;;;;;;;;;;;;8351:71;8461:16;;8436:15;:22;;;;:41;8432:188;;;8539:15;:22;;;;8579:16;;8500:109;;;;;;;;;;;;:::i;:::-;;;;;;;;8432:188;8645:1;8630:11;;:16;;;;;;;:::i;:::-;;;;;;;;8667:4;8656:8;;:15;;;;;;;;;;;;;;;;;;8686:26;8700:11;;8686:26;;;;;;:::i;:::-;;;;;;;;8299:420::o:0;4628:27::-;;;;:::o;3842:35::-;;;;:::o;5614:105::-;5662:16;5697:15;5690:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5614:105;:::o;4560:21::-;;;;;;;;;;;;;:::o;6049:831::-;6096:14;6113:10;6096:27;;6133:14;6150:9;6133:26;;6169:30;6202:12;:20;6215:6;6202:20;;;;;;;;;;;;;;;6169:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6236:11;:19;;;6232:78;;;6292:6;6278:21;;;;;;;;;;;:::i;:::-;;;;;;;;6232:78;6349:16;;6323:15;:22;;;;:42;6319:187;;6425:15;:22;;;;6465:16;;6388:107;;;;;;;;;;;;:::i;:::-;;;;;;;;6319:187;6528:21;;6519:6;:30;6515:111;;;6585:6;6593:21;;6572:43;;;;;;;;;;;;:::i;:::-;;;;;;;;6515:111;6652:6;6636:12;;:22;;;;;;;:::i;:::-;;;;;;;;6691:102;;;;;;;;6716:4;6691:102;;;;;;6740:15;:22;;;;6691:102;;;;;;6777:6;6691:102;;;6668:12;:20;6681:6;6668:20;;;;;;;;;;;;;;;:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6803:15;6824:6;6803:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6858:6;6847:26;;;6866:6;6847:26;;;;;;:::i;:::-;;;;;;;;6086:794;;;6049:831::o;5725:139::-;5776:4;5799:12;:17;5812:3;5799:17;;;;;;;;;;;;;;;:25;;;;;;;;;;;;:58;;;;;5829:10;:23;5840:11;;5829:23;;;;;;;;;;;:28;5853:3;5829:28;;;;;;;;;;;;;;;;;;;;;;;;;5828:29;5799:58;5792:65;;5725:139;;;:::o;4159:46::-;;;;:::o;8950:2146::-;12408:5;;;;;;;;;;;12394:19;;:10;:19;;;12386:28;;;;;;9005:8:::1;;;;;;;;;;;9000:68;;9036:21;;;;;;;;;;;;;;9000:68;9089:5;9078:8;;:16;;;;;;;;;;;;;;;;;;9105:29;9148:22:::0;9185:7;9195:1:::1;9185:11;;9180:384;9202:15;:22;;;;9198:1;:26;;;9180:384;;;9245:17;9265:15;9281:1;9265:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9245:38;;9297:13;9313;:26;9327:11;;9313:26;;;;;;;;;;;:45;9340:17:::0;9313:45:::1;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:86;9376:9;9313:86;;;;;;;;;;;;;;;;9297:102;;9425:21;9417:5;:29;9413:141;;;9490:5;9466:29;;9530:9;9513:26;;9413:141;9231:333;;9226:3;;;;;:::i;:::-;;;;9180:384;;;;9574:27;9615:20:::0;9650:7;9660:1:::1;9650:11;;9645:376;9667:15;:22;;;;9663:1;:26;;;9645:376;;;9710:17;9730:15;9746:1;9730:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9710:38;;9762:13;9778;:26;9792:11;;9778:26;;;;;;;;;;;:43;9805:15;9778:43:::0;::::1;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:84;9839:9;9778:84;;;;;;;;;;;;;;;;9762:100;;9888:19;9880:5;:27;9876:135;;;9949:5;9927:27;;9987:9;9972:24;;9876:135;9696:325;;9691:3;;;;;:::i;:::-;;;;9645:376;;;;10091:1;10071:22;;:8;;;;;;;;;;;:22;;;10067:186;;139:42:1;10109:26:0;;;10136:8;;;;;;;;;;;10146:26;10174:1;10109:67;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10208:8;;;;;;;;;;;10195:47;;;10218:23;10195:47;;;;;;:::i;:::-;;;;;;;;10067:186;10319:1;10301:20;;:6;;;;;;;;;;;:20;;;10297:177;;139:42:1;10337:26:0;;;10364:6;;;;;;;;;;;10372:23;10397:1;10337:62;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10431:6;;;;;;;;;;;10418:45;;;10439:23;10418:45;;;;;;:::i;:::-;;;;;;;;10297:177;139:42:1;10484:23:0;;;10508:14;10524:26;10552:1;10484:70;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10580:14;10569:54;;;10596:26;10569:54;;;;;;:::i;:::-;;;;;;;;10781:12;10763:30;;:14;:30;;;10759:194;;139:42:1;10809:23:0;;;10833:12;10847:23;10872:1;10809:65;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10904:12;10893:49;;;10918:23;10893:49;;;;;;:::i;:::-;;;;;;;;10759:194;10974:14;10963:8;;:25;;;;;;;;;;;;;;;;;;11007:12;10998:6;;:21;;;;;;;;;;;;;;;;;;11035:54;11047:11;;11060:12;11074:14;11035:54;;;;;;;;:::i;:::-;;;;;;;;8990:2106;;;;8950:2146::o:0;4334:26::-;;;;:::o;7015:1133::-;7055:22;7088:10;7055:44;;7109:30;7142:12;:20;7155:6;7142:20;;;;;;;;;;;;;;;7109:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7178:11;:19;;;7173:75;;7230:6;7220:17;;;;;;;;;;;:::i;:::-;;;;;;;;7173:75;7258:15;7276;7317:1;7292:15;:22;;;;:26;;;;:::i;:::-;7276:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7258:61;;7369:7;7329:15;7345:11;:20;;;7329:37;;;;;;;;;;:::i;:::-;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;7419:11;:20;;;7386:12;:21;7399:7;7386:21;;;;;;;;;;;;;;;:30;;;:53;;;;;;;;;;;;;;;;;;7456:15;7497:1;7472:15;:22;;;;:26;;;;:::i;:::-;7456:43;;;;;;;;:::i;:::-;;;;;;;;;;7449:50;;;;;;;;;;;7516:12;:20;7529:6;7516:20;;;;;;;;;;;;;;;;7509:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7561:8;;;;;;;;;;;7551:18;;:6;:18;;;7547:216;;139:42:1;7585:26:0;;;7612:6;;;;;;;;;;;7620:26;7648:1;7585:65;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7682:6;;;;;;;;;;;7669:48;;;7690:26;7669:48;;;;;;:::i;:::-;;;;;;;;7750:1;7731:8;;:21;;;;;;;;;;;;;;;;;;7547:216;7787:6;;;;;;;;;;;7777:16;;:6;:16;;;7773:206;;139:42:1;7809:26:0;;;7836:6;;;;;;;;;;;7844:23;7869:1;7809:62;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7903:6;;;;;;;;;;;7890:45;;;7911:23;7890:45;;;;;;:::i;:::-;;;;;;;;7966:1;7949:6;;:19;;;;;;;;;;;;;;;;;;7773:206;7989:6;:15;;:42;8005:11;:25;;;7989:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8057:11;:25;;;8041:12;;:41;;;;;;;:::i;:::-;;;;;;;;8107:6;8098:43;;;8115:11;:25;;;8098:43;;;;;;:::i;:::-;;;;;;;;7045:1103;;;7015:1133::o;4049:37::-;;;;:::o;7:126:2:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:474::-;1261:6;1269;1318:2;1306:9;1297:7;1293:23;1289:32;1286:119;;;1324:79;;:::i;:::-;1286:119;1444:1;1469:53;1514:7;1505:6;1494:9;1490:22;1469:53;:::i;:::-;1459:63;;1415:117;1571:2;1597:53;1642:7;1633:6;1622:9;1618:22;1597:53;:::i;:::-;1587:63;;1542:118;1193:474;;;;;:::o;1673:90::-;1707:7;1750:5;1743:13;1736:21;1725:32;;1673:90;;;:::o;1769:109::-;1850:21;1865:5;1850:21;:::i;:::-;1845:3;1838:34;1769:109;;:::o;1884:210::-;1971:4;2009:2;1998:9;1994:18;1986:26;;2022:65;2084:1;2073:9;2069:17;2060:6;2022:65;:::i;:::-;1884:210;;;;:::o;2100:77::-;2137:7;2166:5;2155:16;;2100:77;;;:::o;2183:118::-;2270:24;2288:5;2270:24;:::i;:::-;2265:3;2258:37;2183:118;;:::o;2307:222::-;2400:4;2438:2;2427:9;2423:18;2415:26;;2451:71;2519:1;2508:9;2504:17;2495:6;2451:71;:::i;:::-;2307:222;;;;:::o;2535:114::-;2602:6;2636:5;2630:12;2620:22;;2535:114;;;:::o;2655:184::-;2754:11;2788:6;2783:3;2776:19;2828:4;2823:3;2819:14;2804:29;;2655:184;;;;:::o;2845:132::-;2912:4;2935:3;2927:11;;2965:4;2960:3;2956:14;2948:22;;2845:132;;;:::o;2983:108::-;3060:24;3078:5;3060:24;:::i;:::-;3055:3;3048:37;2983:108;;:::o;3097:179::-;3166:10;3187:46;3229:3;3221:6;3187:46;:::i;:::-;3265:4;3260:3;3256:14;3242:28;;3097:179;;;;:::o;3282:113::-;3352:4;3384;3379:3;3375:14;3367:22;;3282:113;;;:::o;3431:732::-;3550:3;3579:54;3627:5;3579:54;:::i;:::-;3649:86;3728:6;3723:3;3649:86;:::i;:::-;3642:93;;3759:56;3809:5;3759:56;:::i;:::-;3838:7;3869:1;3854:284;3879:6;3876:1;3873:13;3854:284;;;3955:6;3949:13;3982:63;4041:3;4026:13;3982:63;:::i;:::-;3975:70;;4068:60;4121:6;4068:60;:::i;:::-;4058:70;;3914:224;3901:1;3898;3894:9;3889:14;;3854:284;;;3858:14;4154:3;4147:10;;3555:608;;;3431:732;;;;:::o;4169:373::-;4312:4;4350:2;4339:9;4335:18;4327:26;;4399:9;4393:4;4389:20;4385:1;4374:9;4370:17;4363:47;4427:108;4530:4;4521:6;4427:108;:::i;:::-;4419:116;;4169:373;;;;:::o;4548:329::-;4607:6;4656:2;4644:9;4635:7;4631:23;4627:32;4624:119;;;4662:79;;:::i;:::-;4624:119;4782:1;4807:53;4852:7;4843:6;4832:9;4828:22;4807:53;:::i;:::-;4797:63;;4753:117;4548:329;;;;:::o;4883:180::-;4931:77;4928:1;4921:88;5028:4;5025:1;5018:15;5052:4;5049:1;5042:15;5069:180;5117:77;5114:1;5107:88;5214:4;5211:1;5204:15;5238:4;5235:1;5228:15;5255:191;5295:3;5314:20;5332:1;5314:20;:::i;:::-;5309:25;;5348:20;5366:1;5348:20;:::i;:::-;5343:25;;5391:1;5388;5384:9;5377:16;;5412:3;5409:1;5406:10;5403:36;;;5419:18;;:::i;:::-;5403:36;5255:191;;;;:::o;5452:332::-;5573:4;5611:2;5600:9;5596:18;5588:26;;5624:71;5692:1;5681:9;5677:17;5668:6;5624:71;:::i;:::-;5705:72;5773:2;5762:9;5758:18;5749:6;5705:72;:::i;:::-;5452:332;;;;;:::o;5790:180::-;5838:77;5835:1;5828:88;5935:4;5932:1;5925:15;5959:4;5956:1;5949:15;5976:86;6011:7;6051:4;6044:5;6040:16;6029:27;;5976:86;;;:::o;6068:167::-;6105:3;6128:22;6144:5;6128:22;:::i;:::-;6119:31;;6172:4;6165:5;6162:15;6159:41;;6180:18;;:::i;:::-;6159:41;6227:1;6220:5;6216:13;6209:20;;6068:167;;;:::o;6241:118::-;6327:1;6320:5;6317:12;6307:46;;6333:18;;:::i;:::-;6307:46;6241:118;:::o;6365:137::-;6415:7;6444:5;6433:16;;6450:46;6490:5;6450:46;:::i;:::-;6365:137;;;:::o;6508:::-;6569:9;6602:37;6633:5;6602:37;:::i;:::-;6589:50;;6508:137;;;:::o;6651:153::-;6749:48;6791:5;6749:48;:::i;:::-;6744:3;6737:61;6651:153;;:::o;6810:85::-;6855:7;6884:5;6873:16;;6810:85;;;:::o;6901:93::-;6937:7;6977:10;6970:5;6966:22;6955:33;;6901:93;;;:::o;7000:60::-;7028:3;7049:5;7042:12;;7000:60;;;:::o;7066:156::-;7123:9;7156:60;7173:42;7182:32;7208:5;7182:32;:::i;:::-;7173:42;:::i;:::-;7156:60;:::i;:::-;7143:73;;7066:156;;;:::o;7228:145::-;7322:44;7360:5;7322:44;:::i;:::-;7317:3;7310:57;7228:145;;:::o;7379:478::-;7546:4;7584:2;7573:9;7569:18;7561:26;;7597:71;7665:1;7654:9;7650:17;7641:6;7597:71;:::i;:::-;7678:83;7757:2;7746:9;7742:18;7733:6;7678:83;:::i;:::-;7771:79;7846:2;7835:9;7831:18;7822:6;7771:79;:::i;:::-;7379:478;;;;;;:::o;7863:244::-;7967:4;8005:2;7994:9;7990:18;7982:26;;8018:82;8097:1;8086:9;8082:17;8073:6;8018:82;:::i;:::-;7863:244;;;;:::o;8113:442::-;8262:4;8300:2;8289:9;8285:18;8277:26;;8313:71;8381:1;8370:9;8366:17;8357:6;8313:71;:::i;:::-;8394:72;8462:2;8451:9;8447:18;8438:6;8394:72;:::i;:::-;8476;8544:2;8533:9;8529:18;8520:6;8476:72;:::i;:::-;8113:442;;;;;;:::o;8561:142::-;8611:9;8644:53;8662:34;8671:24;8689:5;8671:24;:::i;:::-;8662:34;:::i;:::-;8644:53;:::i;:::-;8631:66;;8561:142;;;:::o;8709:126::-;8759:9;8792:37;8823:5;8792:37;:::i;:::-;8779:50;;8709:126;;;:::o;8841:134::-;8899:9;8932:37;8963:5;8932:37;:::i;:::-;8919:50;;8841:134;;;:::o;8981:147::-;9076:45;9115:5;9076:45;:::i;:::-;9071:3;9064:58;8981:147;;:::o;9134:238::-;9235:4;9273:2;9262:9;9258:18;9250:26;;9286:79;9362:1;9351:9;9347:17;9338:6;9286:79;:::i;:::-;9134:238;;;;:::o;9378:194::-;9418:4;9438:20;9456:1;9438:20;:::i;:::-;9433:25;;9472:20;9490:1;9472:20;:::i;:::-;9467:25;;9516:1;9513;9509:9;9501:17;;9540:1;9534:4;9531:11;9528:37;;;9545:18;;:::i;:::-;9528:37;9378:194;;;;:::o" }, "gasEstimates": { @@ -6023,7 +6023,7 @@ ], ".data": { "0": { - ".auxdata": "a2646970667358221220810898531e66f6cf90c6d05f8e4e250906cafe30107d480c70bebd232eca9d6b64736f6c63430008110033", + ".auxdata": "a264697066735822122081cf457f456b1dec86c8e645134712136c5a40976a5a2477304ad30efa0112db64736f6c63430008110033", ".code": [ { "begin": 195, @@ -25704,7 +25704,7 @@ } }, "ewasm": { "wasm": "" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"AlreadyInPool\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"votingRound\",\"type\":\"uint256\"}],\"name\":\"AlreadyVoted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"NotEnoughParticipants\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"NotInPool\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"TooManyParticipants\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VotingAlreadyInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VotingNotInProgress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pledgedAmount\",\"type\":\"uint256\"}],\"name\":\"JoinedPool\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pledgedAmount\",\"type\":\"uint256\"}],\"name\":\"LeftPool\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"proxyType\",\"type\":\"uint8\"}],\"name\":\"ProxyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"proxyType\",\"type\":\"uint8\"}],\"name\":\"ProxyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"Voted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingRound\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"winnerStaker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"winnerGovernor\",\"type\":\"address\"}],\"name\":\"VotingEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingRound\",\"type\":\"uint256\"}],\"name\":\"VotingStarted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_PARTICIPANTS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_PARTICIPANTS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_PARTICIPATION_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"canVote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endVoting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParticipants\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isVoting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"joinPool\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leavePool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pooledAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"staker\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startVoting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"governorCandidate\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerCandidate\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInPool(address)\":[{\"params\":{\"who\":\"The account address already in pool\"}}],\"AlreadyVoted(uint256)\":[{\"params\":{\"votingRound\":\"The current voting round\"}}],\"NotEnoughFee(uint256,uint256)\":[{\"params\":{\"required\":\"The value that was expected\",\"value\":\"The value that was given\"}}],\"NotEnoughParticipants(uint256,uint256)\":[{\"params\":{\"required\":\"The value that was expected\",\"value\":\"The value that was given\"}}],\"NotInPool(address)\":[{\"params\":{\"who\":\"The account address not in pool\"}}],\"TooManyParticipants(uint256,uint256)\":[{\"params\":{\"required\":\"The value that was expected\",\"value\":\"The value that was given\"}}]},\"events\":{\"JoinedPool(address,uint256)\":{\"params\":{\"pledgedAmount\":\"The amount pledged\",\"who\":\"The account that joined the pool\"}},\"LeftPool(address,uint256)\":{\"params\":{\"pledgedAmount\":\"The amount that was previously pledged\",\"who\":\"The account that left the pool\"}},\"ProxyAdded(address,uint8)\":{\"params\":{\"delegate\":\"The account that is now a proxy account\",\"proxyType\":\"The proxy type that was added\"}},\"ProxyRemoved(address,uint8)\":{\"params\":{\"delegate\":\"The account that is now no longer a proxy account\",\"proxyType\":\"The proxy type that was removed\"}},\"Voted(address)\":{\"params\":{\"who\":\"The account that voted\"}},\"VotingEnded(uint256,address,address)\":{\"params\":{\"votingRound\":\"The current voting round\"}},\"VotingStarted(uint256)\":{\"params\":{\"votingRound\":\"The current voting round\"}}},\"kind\":\"dev\",\"methods\":{\"endVoting()\":{\"details\":\"The participant receiving maximum votes in each role category is made the Governor andthe Staker, respectively. A single participant is allowed posses both roles\"},\"joinPool()\":{\"details\":\"Each participant stakes a minimum of MIN_PARTICIPATION_FEEThe pool can have a maximum of MAX_PARTICIPANTS\"},\"leavePool()\":{\"details\":\"When a participant leaves the pool any associated proxis are removed\"},\"startVoting()\":{\"details\":\"Requires MIN_PARTICIPANTS before voting can begin\"},\"vote(address,address)\":{\"details\":\"Each participant may vote only once and once cast the vote may not be changed\"}},\"stateVariables\":{\"MAX_PARTICIPANTS\":{\"details\":\"This is merely to limit the size of the participants array under a single uint8\"},\"participantKeys\":{\"details\":\"Used to iterate over all participants and compute the winner\"},\"participants\":{\"details\":\"The key index is used to quickly remove the address from the `participantKeys` array\"},\"votingRound\":{\"details\":\"This is used to keep track of votes given/received per voting round\"}},\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyInPool(address)\":[{\"notice\":\"The participant is already in pool\"}],\"AlreadyVoted(uint256)\":[{\"notice\":\"Event sent when a voting session ends\"}],\"NotEnoughFee(uint256,uint256)\":[{\"notice\":\"There is not enough fee to join the pool\"}],\"NotEnoughParticipants(uint256,uint256)\":[{\"notice\":\"The pool doesn't have enough participants to start\"}],\"NotInPool(address)\":[{\"notice\":\"The participant is not in pool\"}],\"TooManyParticipants(uint256,uint256)\":[{\"notice\":\"The pool doesn't accept additional participants\"}],\"VotingAlreadyInProgress()\":[{\"notice\":\"The voting has already been started\"}],\"VotingNotInProgress()\":[{\"notice\":\"The voting has not been started\"}]},\"events\":{\"JoinedPool(address,uint256)\":{\"notice\":\"Event sent when an address joins the pool\"},\"LeftPool(address,uint256)\":{\"notice\":\"Event sent when an address leaves the pool\"},\"ProxyAdded(address,uint8)\":{\"notice\":\"Event sent when a proxy is added\"},\"ProxyRemoved(address,uint8)\":{\"notice\":\"Event sent when a proxy is removed\"},\"Voted(address)\":{\"notice\":\"Event sent when a vote is registered\"},\"VotingEnded(uint256,address,address)\":{\"notice\":\"Event sent when a voting session ends\"},\"VotingStarted(uint256)\":{\"notice\":\"Event sent when a voting session starts\"}},\"kind\":\"user\",\"methods\":{\"MAX_PARTICIPANTS()\":{\"notice\":\"The maximum number of participants allowed in thge pool\"},\"MIN_PARTICIPANTS()\":{\"notice\":\"The minimum number of participants required in pool\"},\"MIN_PARTICIPATION_FEE()\":{\"notice\":\"The minimum fee needed to participate in the pool\"},\"endVoting()\":{\"notice\":\"Ends a voting round\"},\"governor()\":{\"notice\":\"The current governor\"},\"isVoting()\":{\"notice\":\"true, if voting is in progress, false otherwise\"},\"joinPool()\":{\"notice\":\"Join the pool of participants\"},\"leavePool()\":{\"notice\":\"Leave the pool of participants\"},\"pooledAmount()\":{\"notice\":\"The total pooled amount\"},\"staker()\":{\"notice\":\"The current staker\"},\"startVoting()\":{\"notice\":\"Starts the next round of voting for the Staker and Governor roles\"},\"vote(address,address)\":{\"notice\":\"Vote for the Governor and the Staker candidate for the current voting round\"},\"votingRound()\":{\"notice\":\"The current voting round\"}},\"notice\":\"Smart contract to demonstrate how to use requestLocalVRFRandomWords\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"ProxyLeaderDemo\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"main.sol\":{\"keccak256\":\"0x1999a822d8801f691c4424b204687892411973066e8dc34cbb0a90a98910abac\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://3ae55b9ec84c0c5011987c87998e365efd7c4c231076f806ea46fe1da1bad6c1\",\"dweb:/ipfs/QmefZanwiURM35A1XHXbxJhVdF3mxY1p6p1ZTg38X7Q4Gk\"]},\"precompiles/proxy/Proxy.sol\":{\"keccak256\":\"0x653d089c7d40e00fbd4ec8a81839b97817f1e871edf2fec96c7bf0d8406bd3dd\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://171af4a17ab9d74910fe42184b586f3badf7038cdd991c9d27d1e4400a29b12e\",\"dweb:/ipfs/QmS4qWtDGjHh8wD4jEogaPoLFjfp2UqT9q3zF89kimMALx\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"AlreadyInPool\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"votingRound\",\"type\":\"uint256\"}],\"name\":\"AlreadyVoted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"NotEnoughParticipants\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"NotInPool\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"TooManyParticipants\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VotingAlreadyInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VotingNotInProgress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pledgedAmount\",\"type\":\"uint256\"}],\"name\":\"JoinedPool\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pledgedAmount\",\"type\":\"uint256\"}],\"name\":\"LeftPool\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"proxyType\",\"type\":\"uint8\"}],\"name\":\"ProxyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Proxy.ProxyType\",\"name\":\"proxyType\",\"type\":\"uint8\"}],\"name\":\"ProxyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"Voted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingRound\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"winnerStaker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"winnerGovernor\",\"type\":\"address\"}],\"name\":\"VotingEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingRound\",\"type\":\"uint256\"}],\"name\":\"VotingStarted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_PARTICIPANTS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_PARTICIPANTS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_PARTICIPATION_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"canVote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endVoting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParticipants\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isVoting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"joinPool\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leavePool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pooledAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"staker\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startVoting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"governorCandidate\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerCandidate\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInPool(address)\":[{\"params\":{\"who\":\"The account address already in pool\"}}],\"AlreadyVoted(uint256)\":[{\"params\":{\"votingRound\":\"The current voting round\"}}],\"NotEnoughFee(uint256,uint256)\":[{\"params\":{\"required\":\"The value that was expected\",\"value\":\"The value that was given\"}}],\"NotEnoughParticipants(uint256,uint256)\":[{\"params\":{\"required\":\"The value that was expected\",\"value\":\"The value that was given\"}}],\"NotInPool(address)\":[{\"params\":{\"who\":\"The account address not in pool\"}}],\"TooManyParticipants(uint256,uint256)\":[{\"params\":{\"required\":\"The value that was expected\",\"value\":\"The value that was given\"}}]},\"events\":{\"JoinedPool(address,uint256)\":{\"params\":{\"pledgedAmount\":\"The amount pledged\",\"who\":\"The account that joined the pool\"}},\"LeftPool(address,uint256)\":{\"params\":{\"pledgedAmount\":\"The amount that was previously pledged\",\"who\":\"The account that left the pool\"}},\"ProxyAdded(address,uint8)\":{\"params\":{\"delegate\":\"The account that is now a proxy account\",\"proxyType\":\"The proxy type that was added\"}},\"ProxyRemoved(address,uint8)\":{\"params\":{\"delegate\":\"The account that is now no longer a proxy account\",\"proxyType\":\"The proxy type that was removed\"}},\"Voted(address)\":{\"params\":{\"who\":\"The account that voted\"}},\"VotingEnded(uint256,address,address)\":{\"params\":{\"votingRound\":\"The current voting round\"}},\"VotingStarted(uint256)\":{\"params\":{\"votingRound\":\"The current voting round\"}}},\"kind\":\"dev\",\"methods\":{\"endVoting()\":{\"details\":\"The participant receiving maximum votes in each role category is made the Governor andthe Staker, respectively. A single participant is allowed posses both roles\"},\"joinPool()\":{\"details\":\"Each participant stakes a minimum of MIN_PARTICIPATION_FEEThe pool can have a maximum of MAX_PARTICIPANTS\"},\"leavePool()\":{\"details\":\"When a participant leaves the pool any associated proxis are removed\"},\"startVoting()\":{\"details\":\"Requires MIN_PARTICIPANTS before voting can begin\"},\"vote(address,address)\":{\"details\":\"Each participant may vote only once and once cast the vote may not be changed\"}},\"stateVariables\":{\"MAX_PARTICIPANTS\":{\"details\":\"This is merely to limit the size of the participants array under a single uint8\"},\"participantKeys\":{\"details\":\"Used to iterate over all participants and compute the winner\"},\"participants\":{\"details\":\"The key index is used to quickly remove the address from the `participantKeys` array\"},\"votingRound\":{\"details\":\"This is used to keep track of votes given/received per voting round\"}},\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyInPool(address)\":[{\"notice\":\"The participant is already in pool\"}],\"AlreadyVoted(uint256)\":[{\"notice\":\"Event sent when a voting session ends\"}],\"NotEnoughFee(uint256,uint256)\":[{\"notice\":\"There is not enough fee to join the pool\"}],\"NotEnoughParticipants(uint256,uint256)\":[{\"notice\":\"The pool doesn't have enough participants to start\"}],\"NotInPool(address)\":[{\"notice\":\"The participant is not in pool\"}],\"TooManyParticipants(uint256,uint256)\":[{\"notice\":\"The pool doesn't accept additional participants\"}],\"VotingAlreadyInProgress()\":[{\"notice\":\"The voting has already been started\"}],\"VotingNotInProgress()\":[{\"notice\":\"The voting has not been started\"}]},\"events\":{\"JoinedPool(address,uint256)\":{\"notice\":\"Event sent when an address joins the pool\"},\"LeftPool(address,uint256)\":{\"notice\":\"Event sent when an address leaves the pool\"},\"ProxyAdded(address,uint8)\":{\"notice\":\"Event sent when a proxy is added\"},\"ProxyRemoved(address,uint8)\":{\"notice\":\"Event sent when a proxy is removed\"},\"Voted(address)\":{\"notice\":\"Event sent when a vote is registered\"},\"VotingEnded(uint256,address,address)\":{\"notice\":\"Event sent when a voting session ends\"},\"VotingStarted(uint256)\":{\"notice\":\"Event sent when a voting session starts\"}},\"kind\":\"user\",\"methods\":{\"MAX_PARTICIPANTS()\":{\"notice\":\"The maximum number of participants allowed in thge pool\"},\"MIN_PARTICIPANTS()\":{\"notice\":\"The minimum number of participants required in pool\"},\"MIN_PARTICIPATION_FEE()\":{\"notice\":\"The minimum fee needed to participate in the pool\"},\"endVoting()\":{\"notice\":\"Ends a voting round\"},\"governor()\":{\"notice\":\"The current governor\"},\"isVoting()\":{\"notice\":\"true, if voting is in progress, false otherwise\"},\"joinPool()\":{\"notice\":\"Join the pool of participants\"},\"leavePool()\":{\"notice\":\"Leave the pool of participants\"},\"pooledAmount()\":{\"notice\":\"The total pooled amount\"},\"staker()\":{\"notice\":\"The current staker\"},\"startVoting()\":{\"notice\":\"Starts the next round of voting for the Staker and Governor roles\"},\"vote(address,address)\":{\"notice\":\"Vote for the Governor and the Staker candidate for the current voting round\"},\"votingRound()\":{\"notice\":\"The current voting round\"}},\"notice\":\"Smart contract to demonstrate how to use requestLocalVRFRandomWords\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"ProxyLeaderDemo\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"main.sol\":{\"keccak256\":\"0x1999a822d8801f691c4424b204687892411973066e8dc34cbb0a90a98910abac\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://3ae55b9ec84c0c5011987c87998e365efd7c4c231076f806ea46fe1da1bad6c1\",\"dweb:/ipfs/QmefZanwiURM35A1XHXbxJhVdF3mxY1p6p1ZTg38X7Q4Gk\"]},\"precompiles/proxy/Proxy.sol\":{\"keccak256\":\"0x9d59eb41ee8c11786124195dec7704e5776374087eda17d5189c111c68dd2ef3\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://f50cbf8a5441ad2becd6c378ef067bf9d5f3d6358e3793685f7826ac5d26e641\",\"dweb:/ipfs/QmQBJWoRois1ne2XFS6RgdU9cdjL2hiFkD6XtSTyCRghj8\"]}},\"version\":1}", "storageLayout": { "storage": [ { diff --git a/tests/contracts/compiled/Referenda.json b/tests/contracts/compiled/Referenda.json index e126fe30a2..a21318a2c8 100644 --- a/tests/contracts/compiled/Referenda.json +++ b/tests/contracts/compiled/Referenda.json @@ -127,6 +127,53 @@ "name": "SubmittedAt", "type": "event" }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "referendumIndex", + "type": "uint32" + } + ], + "name": "closedReferendumInfo", + "outputs": [ + { + "components": [ + { + "internalType": "enum Referenda.ReferendumStatus", + "name": "status", + "type": "uint8" + }, + { "internalType": "uint256", "name": "end", "type": "uint256" }, + { + "internalType": "address", + "name": "submissionDepositor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "submissionDeposit", + "type": "uint256" + }, + { + "internalType": "address", + "name": "decisionDepositor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "decisionDeposit", + "type": "uint256" + } + ], + "internalType": "struct Referenda.ClosedReferendumInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { "internalType": "uint16", "name": "trackId", "type": "uint16" } @@ -138,6 +185,108 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "referendumIndex", + "type": "uint32" + } + ], + "name": "killedReferendumBlock", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "referendumIndex", + "type": "uint32" + } + ], + "name": "ongoingReferendumInfo", + "outputs": [ + { + "components": [ + { "internalType": "uint16", "name": "trackId", "type": "uint16" }, + { "internalType": "bytes", "name": "origin", "type": "bytes" }, + { "internalType": "bytes", "name": "proposal", "type": "bytes" }, + { + "internalType": "bool", + "name": "enactmentType", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "enactmentTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "submissionTime", + "type": "uint256" + }, + { + "internalType": "address", + "name": "submissionDepositor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "submissionDeposit", + "type": "uint256" + }, + { + "internalType": "address", + "name": "decisionDepositor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "decisionDeposit", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decidingSince", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decidingConfirmingEnd", + "type": "uint256" + }, + { "internalType": "uint256", "name": "ayes", "type": "uint256" }, + { "internalType": "uint32", "name": "support", "type": "uint32" }, + { + "internalType": "uint32", + "name": "approval", + "type": "uint32" + }, + { "internalType": "bool", "name": "inQueue", "type": "bool" }, + { + "internalType": "uint256", + "name": "alarmTime", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "taskAddress", + "type": "bytes" + } + ], + "internalType": "struct Referenda.OngoingReferendumInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { "internalType": "uint32", "name": "index", "type": "uint32" } @@ -154,6 +303,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "referendumIndex", + "type": "uint32" + } + ], + "name": "referendumStatus", + "outputs": [ + { + "internalType": "enum Referenda.ReferendumStatus", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { "internalType": "uint32", "name": "index", "type": "uint32" } @@ -307,7 +475,7 @@ "details": "Decision Deposit for a closed referendum has been refunded", "params": { "caller": "address Address of the caller.", - "index": "uint32 The index of the ongoing referendum that is not yet deciding.", + "index": "uint32 The index of the closed referendum", "refundedAmount": "uint256 Amount being refunded." } }, @@ -341,10 +509,22 @@ }, "kind": "dev", "methods": { + "closedReferendumInfo(uint32)": { + "custom:selector": "14febfbf", + "params": { "referendumIndex": "The index of the referendum" } + }, "decidingCount(uint16)": { "custom:selector": "983d6425", "params": { "trackId": "The track identifier" } }, + "killedReferendumBlock(uint32)": { + "custom:selector": "6414ddc5", + "params": { "referendumIndex": "The index of the referendum" } + }, + "ongoingReferendumInfo(uint32)": { + "custom:selector": "f033b7cd", + "params": { "referendumIndex": "The index of the referendum" } + }, "placeDecisionDeposit(uint32)": { "custom:selector": "245ce18d", "details": "Post the Decision Deposit for a referendum", @@ -353,6 +533,10 @@ } }, "referendumCount()": { "custom:selector": "3a42ee31" }, + "referendumStatus(uint32)": { + "custom:selector": "8d407c0b", + "params": { "referendumIndex": "The index of the referendum" } + }, "refundDecisionDeposit(uint32)": { "custom:selector": "1325d528", "details": "Refund the Decision Deposit for a closed referendum back to the depositor", @@ -424,9 +608,13 @@ "gasEstimates": null, "legacyAssembly": null, "methodIdentifiers": { + "closedReferendumInfo(uint32)": "14febfbf", "decidingCount(uint16)": "983d6425", + "killedReferendumBlock(uint32)": "6414ddc5", + "ongoingReferendumInfo(uint32)": "f033b7cd", "placeDecisionDeposit(uint32)": "245ce18d", "referendumCount()": "3a42ee31", + "referendumStatus(uint32)": "8d407c0b", "refundDecisionDeposit(uint32)": "1325d528", "refundSubmissionDeposit(uint32)": "c28307ca", "submissionDeposit()": "aa14c39a", @@ -437,15 +625,27 @@ } }, "ewasm": { "wasm": "" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"}],\"name\":\"DecisionDepositPlaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"refundedAmount\",\"type\":\"uint256\"}],\"name\":\"DecisionDepositRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"refundedAmount\",\"type\":\"uint256\"}],\"name\":\"SubmissionDepositRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"SubmittedAfter\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"SubmittedAt\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"}],\"name\":\"decidingCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"placeDecisionDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"referendumCount\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"refundDecisionDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"refundSubmissionDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submissionDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"proposalHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"proposalLen\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"block\",\"type\":\"uint32\"}],\"name\":\"submitAfter\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"proposalHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"proposalLen\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"block\",\"type\":\"uint32\"}],\"name\":\"submitAt\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trackIds\",\"outputs\":[{\"internalType\":\"uint16[]\",\"name\":\"trackIds\",\"type\":\"uint16[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"}],\"name\":\"trackInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"maxDeciding\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decisionDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preparePeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decisionPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minEnactmentPeriod\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"minApproval\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"minSupport\",\"type\":\"bytes\"}],\"internalType\":\"struct Referenda.TrackInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Moonbeam Team\",\"custom:address\":\"0x0000000000000000000000000000000000000811\",\"events\":{\"DecisionDepositPlaced(uint32,address,uint256)\":{\"custom:selector\":\"222ac3cb2f2e974dcbd2ac3d35e9fefb77e57f5dc4b9243afa9a926b1ff57f75\",\"details\":\"Decision Deposit for a referendum has been placed\",\"params\":{\"caller\":\"address Address of the caller.\",\"depositedAmount\":\"uint256 Amount being deposited.\",\"index\":\"uint32 The index of the ongoing referendum that is not yet deciding.\"}},\"DecisionDepositRefunded(uint32,address,uint256)\":{\"custom:selector\":\"86801df04afc1aa4cd2d673df29c5951bbb0bae2c965bb9d233909894aab55be\",\"details\":\"Decision Deposit for a closed referendum has been refunded\",\"params\":{\"caller\":\"address Address of the caller.\",\"index\":\"uint32 The index of the ongoing referendum that is not yet deciding.\",\"refundedAmount\":\"uint256 Amount being refunded.\"}},\"SubmissionDepositRefunded(uint32,address,uint256)\":{\"custom:selector\":\"97a6d6297b296f1582fd202b983e51396e14aad8311725c1b61a4ede13242658\",\"details\":\"Submission Deposit for a valid referendum has been refunded\",\"params\":{\"caller\":\"address Address of the caller.\",\"index\":\"uint32 The index of the approved or cancelled referendum.\",\"refundedAmount\":\"uint256 Amount being refunded.\"}},\"SubmittedAfter(uint16,uint32,bytes32)\":{\"custom:selector\":\"a5117efbf0f4aa9e08dd135e69aa8ee4978f99fca86fc5154b5bd1b363eafdcf\",\"details\":\"A referenda has been submitted after a given block\",\"params\":{\"hash\":\"bytes32 The hash of the proposal preimage\",\"referendumIndex\":\"uint32 The index of the submitted referendum\",\"trackId\":\"uint16 The trackId\"}},\"SubmittedAt(uint16,uint32,bytes32)\":{\"custom:selector\":\"e02a819ecfc92874b5016c6a0e26f56a5cb08771f32ab818bf548d84ca3ae94d\",\"details\":\"A referenda has been submitted at a given block\",\"params\":{\"hash\":\"bytes32 The hash of the proposal preimage\",\"referendumIndex\":\"uint32 The index of the submitted referendum\",\"trackId\":\"uint16 The trackId\"}}},\"kind\":\"dev\",\"methods\":{\"decidingCount(uint16)\":{\"custom:selector\":\"983d6425\",\"params\":{\"trackId\":\"The track identifier\"}},\"placeDecisionDeposit(uint32)\":{\"custom:selector\":\"245ce18d\",\"details\":\"Post the Decision Deposit for a referendum\",\"params\":{\"index\":\"The index of the ongoing referendum that is not yet deciding\"}},\"referendumCount()\":{\"custom:selector\":\"3a42ee31\"},\"refundDecisionDeposit(uint32)\":{\"custom:selector\":\"1325d528\",\"details\":\"Refund the Decision Deposit for a closed referendum back to the depositor\",\"params\":{\"index\":\"The index of a closed referendum with decision deposit still locked\"}},\"refundSubmissionDeposit(uint32)\":{\"custom:selector\":\"c28307ca\",\"details\":\"Refund the Submission Deposit for a closed referendum back to the depositor\",\"params\":{\"index\":\"The index of a closed referendum with submission deposit still locked\"}},\"submissionDeposit()\":{\"custom:selector\":\"aa14c39a\"},\"submitAfter(uint16,bytes32,uint32,uint32)\":{\"custom:selector\":\"5b2479db\",\"details\":\"Submit a referenda\",\"params\":{\"block\":\"Block number after which this will be executed\",\"proposalHash\":\"The proposed runtime call hash stored in the preimage pallet\",\"proposalLen\":\"The proposed runtime call length\",\"trackId\":\"The trackId corresponding to the origin from which the proposal is to be dispatched. The trackId => origin mapping lives in `runtime/governance/tracks.rs`\"},\"returns\":{\"referendumIndex\":\"Index of submitted referenda\"}},\"submitAt(uint16,bytes32,uint32,uint32)\":{\"custom:selector\":\"131f3468\",\"details\":\"Submit a referenda\",\"params\":{\"block\":\"Block number at which this will be executed\",\"proposalHash\":\"The proposed runtime call hash stored in the preimage pallet\",\"proposalLen\":\"The proposed runtime call length\",\"trackId\":\"The trackId corresponding to the origin from which the proposal is to be dispatched. The trackId => origin mapping lives in `runtime/governance/tracks.rs`\"},\"returns\":{\"referendumIndex\":\"Index of submitted referenda\"}},\"trackIds()\":{\"custom:selector\":\"cc17da14\",\"returns\":{\"trackIds\":\"Identifiers for all tracks (and origins)\"}},\"trackInfo(uint16)\":{\"custom:selector\":\"34038146\",\"params\":{\"trackId\":\"The track identifier\"}}},\"title\":\"Pallet Referenda InterfaceThe interface through which solidity contracts will interact with the Referenda pallet\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"decidingCount(uint16)\":{\"notice\":\"Return the total count of deciding referenda per track\"},\"referendumCount()\":{\"notice\":\"Return the total referendum count\"},\"submissionDeposit()\":{\"notice\":\"Return the submission deposit for all referenda\"},\"trackIds()\":{\"notice\":\"Return the trackIds\"},\"trackInfo(uint16)\":{\"notice\":\"Return the governance parameters configured for the input TrackId\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"Referenda\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"main.sol\":{\"keccak256\":\"0x6d7b2c4c6e5f54ca4bbd935e37581c587b058b34145f6380a35c405bd9f981f4\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://27b062d76058c253b7534f6a3782599dd80cb533474290f557435d4a31e8de81\",\"dweb:/ipfs/QmRV57137PdX3JKE6Hi5BS7n3o624xT8GbjG3dVwod1Q5P\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"}],\"name\":\"DecisionDepositPlaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"refundedAmount\",\"type\":\"uint256\"}],\"name\":\"DecisionDepositRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"refundedAmount\",\"type\":\"uint256\"}],\"name\":\"SubmissionDepositRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"SubmittedAfter\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"SubmittedAt\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"}],\"name\":\"closedReferendumInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Referenda.ReferendumStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"submissionDepositor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"submissionDeposit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"decisionDepositor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decisionDeposit\",\"type\":\"uint256\"}],\"internalType\":\"struct Referenda.ClosedReferendumInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"}],\"name\":\"decidingCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"}],\"name\":\"killedReferendumBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"}],\"name\":\"ongoingReferendumInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"proposal\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"enactmentType\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"enactmentTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"submissionTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"submissionDepositor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"submissionDeposit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"decisionDepositor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decisionDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decidingSince\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decidingConfirmingEnd\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ayes\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"support\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"approval\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"inQueue\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"alarmTime\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"taskAddress\",\"type\":\"bytes\"}],\"internalType\":\"struct Referenda.OngoingReferendumInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"placeDecisionDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"referendumCount\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"}],\"name\":\"referendumStatus\",\"outputs\":[{\"internalType\":\"enum Referenda.ReferendumStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"refundDecisionDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"refundSubmissionDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submissionDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"proposalHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"proposalLen\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"block\",\"type\":\"uint32\"}],\"name\":\"submitAfter\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"proposalHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"proposalLen\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"block\",\"type\":\"uint32\"}],\"name\":\"submitAt\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"referendumIndex\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trackIds\",\"outputs\":[{\"internalType\":\"uint16[]\",\"name\":\"trackIds\",\"type\":\"uint16[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"trackId\",\"type\":\"uint16\"}],\"name\":\"trackInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"maxDeciding\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decisionDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preparePeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decisionPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minEnactmentPeriod\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"minApproval\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"minSupport\",\"type\":\"bytes\"}],\"internalType\":\"struct Referenda.TrackInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Moonbeam Team\",\"custom:address\":\"0x0000000000000000000000000000000000000811\",\"events\":{\"DecisionDepositPlaced(uint32,address,uint256)\":{\"custom:selector\":\"222ac3cb2f2e974dcbd2ac3d35e9fefb77e57f5dc4b9243afa9a926b1ff57f75\",\"details\":\"Decision Deposit for a referendum has been placed\",\"params\":{\"caller\":\"address Address of the caller.\",\"depositedAmount\":\"uint256 Amount being deposited.\",\"index\":\"uint32 The index of the ongoing referendum that is not yet deciding.\"}},\"DecisionDepositRefunded(uint32,address,uint256)\":{\"custom:selector\":\"86801df04afc1aa4cd2d673df29c5951bbb0bae2c965bb9d233909894aab55be\",\"details\":\"Decision Deposit for a closed referendum has been refunded\",\"params\":{\"caller\":\"address Address of the caller.\",\"index\":\"uint32 The index of the closed referendum\",\"refundedAmount\":\"uint256 Amount being refunded.\"}},\"SubmissionDepositRefunded(uint32,address,uint256)\":{\"custom:selector\":\"97a6d6297b296f1582fd202b983e51396e14aad8311725c1b61a4ede13242658\",\"details\":\"Submission Deposit for a valid referendum has been refunded\",\"params\":{\"caller\":\"address Address of the caller.\",\"index\":\"uint32 The index of the approved or cancelled referendum.\",\"refundedAmount\":\"uint256 Amount being refunded.\"}},\"SubmittedAfter(uint16,uint32,bytes32)\":{\"custom:selector\":\"a5117efbf0f4aa9e08dd135e69aa8ee4978f99fca86fc5154b5bd1b363eafdcf\",\"details\":\"A referenda has been submitted after a given block\",\"params\":{\"hash\":\"bytes32 The hash of the proposal preimage\",\"referendumIndex\":\"uint32 The index of the submitted referendum\",\"trackId\":\"uint16 The trackId\"}},\"SubmittedAt(uint16,uint32,bytes32)\":{\"custom:selector\":\"e02a819ecfc92874b5016c6a0e26f56a5cb08771f32ab818bf548d84ca3ae94d\",\"details\":\"A referenda has been submitted at a given block\",\"params\":{\"hash\":\"bytes32 The hash of the proposal preimage\",\"referendumIndex\":\"uint32 The index of the submitted referendum\",\"trackId\":\"uint16 The trackId\"}}},\"kind\":\"dev\",\"methods\":{\"closedReferendumInfo(uint32)\":{\"custom:selector\":\"14febfbf\",\"params\":{\"referendumIndex\":\"The index of the referendum\"}},\"decidingCount(uint16)\":{\"custom:selector\":\"983d6425\",\"params\":{\"trackId\":\"The track identifier\"}},\"killedReferendumBlock(uint32)\":{\"custom:selector\":\"6414ddc5\",\"params\":{\"referendumIndex\":\"The index of the referendum\"}},\"ongoingReferendumInfo(uint32)\":{\"custom:selector\":\"f033b7cd\",\"params\":{\"referendumIndex\":\"The index of the referendum\"}},\"placeDecisionDeposit(uint32)\":{\"custom:selector\":\"245ce18d\",\"details\":\"Post the Decision Deposit for a referendum\",\"params\":{\"index\":\"The index of the ongoing referendum that is not yet deciding\"}},\"referendumCount()\":{\"custom:selector\":\"3a42ee31\"},\"referendumStatus(uint32)\":{\"custom:selector\":\"8d407c0b\",\"params\":{\"referendumIndex\":\"The index of the referendum\"}},\"refundDecisionDeposit(uint32)\":{\"custom:selector\":\"1325d528\",\"details\":\"Refund the Decision Deposit for a closed referendum back to the depositor\",\"params\":{\"index\":\"The index of a closed referendum with decision deposit still locked\"}},\"refundSubmissionDeposit(uint32)\":{\"custom:selector\":\"c28307ca\",\"details\":\"Refund the Submission Deposit for a closed referendum back to the depositor\",\"params\":{\"index\":\"The index of a closed referendum with submission deposit still locked\"}},\"submissionDeposit()\":{\"custom:selector\":\"aa14c39a\"},\"submitAfter(uint16,bytes32,uint32,uint32)\":{\"custom:selector\":\"5b2479db\",\"details\":\"Submit a referenda\",\"params\":{\"block\":\"Block number after which this will be executed\",\"proposalHash\":\"The proposed runtime call hash stored in the preimage pallet\",\"proposalLen\":\"The proposed runtime call length\",\"trackId\":\"The trackId corresponding to the origin from which the proposal is to be dispatched. The trackId => origin mapping lives in `runtime/governance/tracks.rs`\"},\"returns\":{\"referendumIndex\":\"Index of submitted referenda\"}},\"submitAt(uint16,bytes32,uint32,uint32)\":{\"custom:selector\":\"131f3468\",\"details\":\"Submit a referenda\",\"params\":{\"block\":\"Block number at which this will be executed\",\"proposalHash\":\"The proposed runtime call hash stored in the preimage pallet\",\"proposalLen\":\"The proposed runtime call length\",\"trackId\":\"The trackId corresponding to the origin from which the proposal is to be dispatched. The trackId => origin mapping lives in `runtime/governance/tracks.rs`\"},\"returns\":{\"referendumIndex\":\"Index of submitted referenda\"}},\"trackIds()\":{\"custom:selector\":\"cc17da14\",\"returns\":{\"trackIds\":\"Identifiers for all tracks (and origins)\"}},\"trackInfo(uint16)\":{\"custom:selector\":\"34038146\",\"params\":{\"trackId\":\"The track identifier\"}}},\"title\":\"Pallet Referenda InterfaceThe interface through which solidity contracts will interact with the Referenda pallet\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"closedReferendumInfo(uint32)\":{\"notice\":\"Return the referendumInfo for a closed referendum\"},\"decidingCount(uint16)\":{\"notice\":\"Return the total count of deciding referenda per track\"},\"killedReferendumBlock(uint32)\":{\"notice\":\"Return the block the referendum was killed\"},\"ongoingReferendumInfo(uint32)\":{\"notice\":\"Return the referendumInfo for an ongoing referendum\"},\"referendumCount()\":{\"notice\":\"Return the total referendum count\"},\"referendumStatus(uint32)\":{\"notice\":\"Return the ReferendumStatus for the input referendumIndex\"},\"submissionDeposit()\":{\"notice\":\"Return the submission deposit for all referenda\"},\"trackIds()\":{\"notice\":\"Return the trackIds\"},\"trackInfo(uint16)\":{\"notice\":\"Return the governance parameters configured for the input TrackId\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"Referenda\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"main.sol\":{\"keccak256\":\"0x1775aed3f3772a4e943ee08c12f42ff5ce2bf528466f33efc36a6447cfbfb594\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://22c54fd60c34e50acf3554a32b11b7e5207f2ad2c16b37cd3c4e607d5ce7827a\",\"dweb:/ipfs/QmSmFZPJ7MH6PjfYKMoLbY2QzhhREvuQyNTztQQ683utC9\"]}},\"version\":1}", "storageLayout": { "storage": [], "types": null }, "userdoc": { "kind": "user", "methods": { + "closedReferendumInfo(uint32)": { + "notice": "Return the referendumInfo for a closed referendum" + }, "decidingCount(uint16)": { "notice": "Return the total count of deciding referenda per track" }, + "killedReferendumBlock(uint32)": { + "notice": "Return the block the referendum was killed" + }, + "ongoingReferendumInfo(uint32)": { + "notice": "Return the referendumInfo for an ongoing referendum" + }, "referendumCount()": { "notice": "Return the total referendum count" }, + "referendumStatus(uint32)": { + "notice": "Return the ReferendumStatus for the input referendumIndex" + }, "submissionDeposit()": { "notice": "Return the submission deposit for all referenda" }, @@ -457,5 +657,5 @@ "version": 1 } }, - "sourceCode": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity >=0.8.3;\n\n/// @dev The Referenda contract's address.\naddress constant REFERENDA_ADDRESS = 0x0000000000000000000000000000000000000811;\n\n/// @dev The Referenda contract's instance.\nReferenda constant REFERENDA_CONTRACT = Referenda(REFERENDA_ADDRESS);\n\n/// @author The Moonbeam Team\n/// @title Pallet Referenda Interface\n/// @title The interface through which solidity contracts will interact with the Referenda pallet\n/// @custom:address 0x0000000000000000000000000000000000000811\ninterface Referenda {\n struct TrackInfo {\n string name;\n uint256 maxDeciding;\n uint256 decisionDeposit;\n uint256 preparePeriod;\n uint256 decisionPeriod;\n uint256 confirmPeriod;\n uint256 minEnactmentPeriod;\n bytes minApproval;\n bytes minSupport;\n }\n\n /// Return the total referendum count\n /// @custom:selector 3a42ee31\n function referendumCount() external view returns (uint32);\n\n /// Return the submission deposit for all referenda\n /// @custom:selector aa14c39a\n function submissionDeposit() external view returns (uint256);\n\n /// Return the total count of deciding referenda per track\n /// @param trackId The track identifier\n /// @custom:selector 983d6425\n function decidingCount(uint16 trackId) external view returns (uint256);\n\n /// Return the trackIds\n /// @return trackIds Identifiers for all tracks (and origins)\n /// @custom:selector cc17da14\n function trackIds() external view returns (uint16[] memory trackIds);\n\n /// Return the governance parameters configured for the input TrackId\n /// @param trackId The track identifier\n /// @custom:selector 34038146\n function trackInfo(uint16 trackId) external view returns (TrackInfo memory);\n\n /// @dev Submit a referenda\n /// @custom:selector 131f3468\n /// @param trackId The trackId corresponding to the origin from which the proposal is to be\n /// dispatched. The trackId => origin mapping lives in `runtime/governance/tracks.rs`\n /// @param proposalHash The proposed runtime call hash stored in the preimage pallet\n /// @param proposalLen The proposed runtime call length\n /// @param block Block number at which this will be executed\n /// @return referendumIndex Index of submitted referenda\n function submitAt(\n uint16 trackId,\n bytes32 proposalHash,\n uint32 proposalLen,\n uint32 block\n ) external returns (uint32 referendumIndex);\n\n /// @dev Submit a referenda\n /// @custom:selector 5b2479db\n /// @param trackId The trackId corresponding to the origin from which the proposal is to be\n /// dispatched. The trackId => origin mapping lives in `runtime/governance/tracks.rs`\n /// @param proposalHash The proposed runtime call hash stored in the preimage pallet\n /// @param proposalLen The proposed runtime call length\n /// @param block Block number after which this will be executed\n /// @return referendumIndex Index of submitted referenda\n function submitAfter(\n uint16 trackId,\n bytes32 proposalHash,\n uint32 proposalLen,\n uint32 block\n ) external returns (uint32 referendumIndex);\n\n /// @dev Post the Decision Deposit for a referendum\n /// @custom:selector 245ce18d\n /// @param index The index of the ongoing referendum that is not yet deciding\n function placeDecisionDeposit(uint32 index) external;\n\n /// @dev Refund the Decision Deposit for a closed referendum back to the depositor\n /// @custom:selector 1325d528\n /// @param index The index of a closed referendum with decision deposit still locked\n function refundDecisionDeposit(uint32 index) external;\n\n /// @dev Refund the Submission Deposit for a closed referendum back to the depositor\n /// @custom:selector c28307ca\n /// @param index The index of a closed referendum with submission deposit still locked\n function refundSubmissionDeposit(uint32 index) external;\n\n /// @dev A referenda has been submitted at a given block\n /// @custom:selector e02a819ecfc92874b5016c6a0e26f56a5cb08771f32ab818bf548d84ca3ae94d\n /// @param trackId uint16 The trackId\n /// @param referendumIndex uint32 The index of the submitted referendum\n /// @param hash bytes32 The hash of the proposal preimage\n event SubmittedAt(uint16 indexed trackId, uint32 referendumIndex, bytes32 hash);\n\n /// @dev A referenda has been submitted after a given block\n /// @custom:selector a5117efbf0f4aa9e08dd135e69aa8ee4978f99fca86fc5154b5bd1b363eafdcf\n /// @param trackId uint16 The trackId\n /// @param referendumIndex uint32 The index of the submitted referendum\n /// @param hash bytes32 The hash of the proposal preimage\n event SubmittedAfter(\n uint16 indexed trackId,\n uint32 referendumIndex,\n bytes32 hash\n );\n\n /// @dev Decision Deposit for a referendum has been placed\n /// @custom:selector 222ac3cb2f2e974dcbd2ac3d35e9fefb77e57f5dc4b9243afa9a926b1ff57f75\n /// @param index uint32 The index of the ongoing referendum that is not yet deciding.\n /// @param caller address Address of the caller.\n /// @param depositedAmount uint256 Amount being deposited.\n event DecisionDepositPlaced(\n uint32 index,\n address caller,\n uint256 depositedAmount\n );\n\n /// @dev Decision Deposit for a closed referendum has been refunded\n /// @custom:selector 86801df04afc1aa4cd2d673df29c5951bbb0bae2c965bb9d233909894aab55be\n /// @param index uint32 The index of the ongoing referendum that is not yet deciding.\n /// @param caller address Address of the caller.\n /// @param refundedAmount uint256 Amount being refunded.\n event DecisionDepositRefunded(\n uint32 index,\n address caller,\n uint256 refundedAmount\n );\n\n /// @dev Submission Deposit for a valid referendum has been refunded\n /// @custom:selector 97a6d6297b296f1582fd202b983e51396e14aad8311725c1b61a4ede13242658\n /// @param index uint32 The index of the approved or cancelled referendum.\n /// @param caller address Address of the caller.\n /// @param refundedAmount uint256 Amount being refunded.\n event SubmissionDepositRefunded(\n uint32 index,\n address caller,\n uint256 refundedAmount\n );\n}\n" + "sourceCode": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity >=0.8.3;\n\n/// @dev The Referenda contract's address.\naddress constant REFERENDA_ADDRESS = 0x0000000000000000000000000000000000000811;\n\n/// @dev The Referenda contract's instance.\nReferenda constant REFERENDA_CONTRACT = Referenda(REFERENDA_ADDRESS);\n\n/// @author The Moonbeam Team\n/// @title Pallet Referenda Interface\n/// @title The interface through which solidity contracts will interact with the Referenda pallet\n/// @custom:address 0x0000000000000000000000000000000000000811\ninterface Referenda {\n enum ReferendumStatus {\n Ongoing,\n Approved,\n Rejected,\n Cancelled,\n TimedOut,\n Killed\n }\n struct TrackInfo {\n string name;\n uint256 maxDeciding;\n uint256 decisionDeposit;\n uint256 preparePeriod;\n uint256 decisionPeriod;\n uint256 confirmPeriod;\n uint256 minEnactmentPeriod;\n bytes minApproval;\n bytes minSupport;\n }\n struct OngoingReferendumInfo {\n /// The track of this referendum.\n uint16 trackId;\n /// The origin for this referendum.\n bytes origin;\n /// The hash of the proposal up for referendum.\n bytes proposal;\n /// Whether proposal is scheduled for enactment at or after `enactment_time`. True if\n /// DispatchTime::At and false if DispatchTime::After\n bool enactmentType;\n /// The time the proposal should be scheduled for enactment.\n uint256 enactmentTime;\n /// The time of submission. Once `UndecidingTimeout` passes, it may be closed by anyone if\n /// `deciding` is `None`.\n uint256 submissionTime;\n address submissionDepositor;\n uint256 submissionDeposit;\n address decisionDepositor;\n uint256 decisionDeposit;\n /// When this referendum began being \"decided\". If confirming, then the\n /// end will actually be delayed until the end of the confirmation period.\n uint256 decidingSince;\n /// If nonzero, then the referendum has entered confirmation stage and will end at\n /// the block number as long as it doesn't lose its approval in the meantime.\n uint256 decidingConfirmingEnd;\n /// The number of aye votes, expressed in terms of post-conviction lock-vote.\n uint256 ayes;\n /// Percent of aye votes, expressed pre-conviction, over total votes in the class.\n uint32 support;\n /// Percent of aye votes over aye + nay votes.\n uint32 approval;\n /// Whether we have been placed in the queue for being decided or not.\n bool inQueue;\n /// The next scheduled wake-up\n uint256 alarmTime;\n /// Scheduler task address if scheduled\n bytes taskAddress;\n }\n struct ClosedReferendumInfo {\n ReferendumStatus status;\n uint256 end;\n address submissionDepositor;\n uint256 submissionDeposit;\n address decisionDepositor;\n uint256 decisionDeposit;\n }\n\n /// Return the total referendum count\n /// @custom:selector 3a42ee31\n function referendumCount() external view returns (uint32);\n\n /// Return the submission deposit for all referenda\n /// @custom:selector aa14c39a\n function submissionDeposit() external view returns (uint256);\n\n /// Return the total count of deciding referenda per track\n /// @param trackId The track identifier\n /// @custom:selector 983d6425\n function decidingCount(uint16 trackId) external view returns (uint256);\n\n /// Return the trackIds\n /// @return trackIds Identifiers for all tracks (and origins)\n /// @custom:selector cc17da14\n function trackIds() external view returns (uint16[] memory trackIds);\n\n /// Return the governance parameters configured for the input TrackId\n /// @param trackId The track identifier\n /// @custom:selector 34038146\n function trackInfo(uint16 trackId) external view returns (TrackInfo memory);\n\n /// Return the ReferendumStatus for the input referendumIndex\n /// @param referendumIndex The index of the referendum\n /// @custom:selector 8d407c0b\n function referendumStatus(uint32 referendumIndex)\n external\n view\n returns (ReferendumStatus);\n\n /// Return the referendumInfo for an ongoing referendum\n /// @param referendumIndex The index of the referendum\n /// @custom:selector f033b7cd\n function ongoingReferendumInfo(uint32 referendumIndex)\n external\n view\n returns (OngoingReferendumInfo memory);\n\n /// Return the referendumInfo for a closed referendum\n /// @param referendumIndex The index of the referendum\n /// @custom:selector 14febfbf\n function closedReferendumInfo(uint32 referendumIndex)\n external\n view\n returns (ClosedReferendumInfo memory);\n\n /// Return the block the referendum was killed\n /// @param referendumIndex The index of the referendum\n /// @custom:selector 6414ddc5\n function killedReferendumBlock(uint32 referendumIndex)\n external\n view\n returns (uint256);\n\n /// @dev Submit a referenda\n /// @custom:selector 131f3468\n /// @param trackId The trackId corresponding to the origin from which the proposal is to be\n /// dispatched. The trackId => origin mapping lives in `runtime/governance/tracks.rs`\n /// @param proposalHash The proposed runtime call hash stored in the preimage pallet\n /// @param proposalLen The proposed runtime call length\n /// @param block Block number at which this will be executed\n /// @return referendumIndex Index of submitted referenda\n function submitAt(\n uint16 trackId,\n bytes32 proposalHash,\n uint32 proposalLen,\n uint32 block\n ) external returns (uint32 referendumIndex);\n\n /// @dev Submit a referenda\n /// @custom:selector 5b2479db\n /// @param trackId The trackId corresponding to the origin from which the proposal is to be\n /// dispatched. The trackId => origin mapping lives in `runtime/governance/tracks.rs`\n /// @param proposalHash The proposed runtime call hash stored in the preimage pallet\n /// @param proposalLen The proposed runtime call length\n /// @param block Block number after which this will be executed\n /// @return referendumIndex Index of submitted referenda\n function submitAfter(\n uint16 trackId,\n bytes32 proposalHash,\n uint32 proposalLen,\n uint32 block\n ) external returns (uint32 referendumIndex);\n\n /// @dev Post the Decision Deposit for a referendum\n /// @custom:selector 245ce18d\n /// @param index The index of the ongoing referendum that is not yet deciding\n function placeDecisionDeposit(uint32 index) external;\n\n /// @dev Refund the Decision Deposit for a closed referendum back to the depositor\n /// @custom:selector 1325d528\n /// @param index The index of a closed referendum with decision deposit still locked\n function refundDecisionDeposit(uint32 index) external;\n\n /// @dev Refund the Submission Deposit for a closed referendum back to the depositor\n /// @custom:selector c28307ca\n /// @param index The index of a closed referendum with submission deposit still locked\n function refundSubmissionDeposit(uint32 index) external;\n\n /// @dev A referenda has been submitted at a given block\n /// @custom:selector e02a819ecfc92874b5016c6a0e26f56a5cb08771f32ab818bf548d84ca3ae94d\n /// @param trackId uint16 The trackId\n /// @param referendumIndex uint32 The index of the submitted referendum\n /// @param hash bytes32 The hash of the proposal preimage\n event SubmittedAt(\n uint16 indexed trackId,\n uint32 referendumIndex,\n bytes32 hash\n );\n\n /// @dev A referenda has been submitted after a given block\n /// @custom:selector a5117efbf0f4aa9e08dd135e69aa8ee4978f99fca86fc5154b5bd1b363eafdcf\n /// @param trackId uint16 The trackId\n /// @param referendumIndex uint32 The index of the submitted referendum\n /// @param hash bytes32 The hash of the proposal preimage\n event SubmittedAfter(\n uint16 indexed trackId,\n uint32 referendumIndex,\n bytes32 hash\n );\n\n /// @dev Decision Deposit for a referendum has been placed\n /// @custom:selector 222ac3cb2f2e974dcbd2ac3d35e9fefb77e57f5dc4b9243afa9a926b1ff57f75\n /// @param index uint32 The index of the ongoing referendum that is not yet deciding.\n /// @param caller address Address of the caller.\n /// @param depositedAmount uint256 Amount being deposited.\n event DecisionDepositPlaced(\n uint32 index,\n address caller,\n uint256 depositedAmount\n );\n\n /// @dev Decision Deposit for a closed referendum has been refunded\n /// @custom:selector 86801df04afc1aa4cd2d673df29c5951bbb0bae2c965bb9d233909894aab55be\n /// @param index uint32 The index of the closed referendum\n /// @param caller address Address of the caller.\n /// @param refundedAmount uint256 Amount being refunded.\n event DecisionDepositRefunded(\n uint32 index,\n address caller,\n uint256 refundedAmount\n );\n\n /// @dev Submission Deposit for a valid referendum has been refunded\n /// @custom:selector 97a6d6297b296f1582fd202b983e51396e14aad8311725c1b61a4ede13242658\n /// @param index uint32 The index of the approved or cancelled referendum.\n /// @param caller address Address of the caller.\n /// @param refundedAmount uint256 Amount being refunded.\n event SubmissionDepositRefunded(\n uint32 index,\n address caller,\n uint256 refundedAmount\n );\n}\n" } diff --git a/tests/contracts/compiled/ReferendaAutoUpgradeDemo.json b/tests/contracts/compiled/ReferendaAutoUpgradeDemo.json index 7f141b617f..edc11ca687 100644 --- a/tests/contracts/compiled/ReferendaAutoUpgradeDemo.json +++ b/tests/contracts/compiled/ReferendaAutoUpgradeDemo.json @@ -71,7 +71,7 @@ } }, "ewasm": { "wasm": "" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"contractStorageKey\",\"type\":\"bytes\"}],\"name\":\"autoUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootTrackId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setStorageCallIndex\",\"outputs\":[{\"internalType\":\"bytes2\",\"name\":\"\",\"type\":\"bytes2\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"params\":{\"contractCode\":\"The code as deployed of the new contract\",\"contractStorageKey\":\"The storage key associated with the current smart contract\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"notice\":\"submits to upgrade contract for given storage key\"},\"constructor\":{\"notice\":\"construct the smart contract with the track id to send the proposal to\"},\"rootTrackId()\":{\"notice\":\"The id of the track used for root execution\"},\"setStorageCallIndex()\":{\"notice\":\"SetStorageCall index (pallet Index concatenated with call index, usually \\\"\\\\x00\\\\x04\\\")\"}},\"notice\":\"Smart contract to demonstrate how to use Referenda Precompile to self-upgrade\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"ReferendaAutoUpgradeDemo\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"SubstrateTools.sol\":{\"keccak256\":\"0xb79c6a9b3a694dfa362268f87e5598b95c048c5e8f1a053a5c5e9dd81e6345a1\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://ecbf04ed9eaca008ec155d5041ce28cab434f8f15368a4db7a5d3ad653f12e1b\",\"dweb:/ipfs/QmPuCTURp9BwkyR6otvbs2mQhiToSheANZiTpw7AvXAdnR\"]},\"main.sol\":{\"keccak256\":\"0x952cd5c14bbd014c37b67fda6f4b52dae7aaf888fe3476d9575fd5ea76fa15a0\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://550273857d8f5f99a118fe8686cb69e92d16a03f9209ff8b841b0fb9a341ccba\",\"dweb:/ipfs/QmRWX8vaQjKhcgrHP2YcpJV7fGqnDmLP2Roj8ehYHYXD4T\"]},\"precompiles/conviction-voting/ConvictionVoting.sol\":{\"keccak256\":\"0x2ee018e2de05f175dc13f1eada66c145ee9b86c79eabcea8475681d840e2374d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://9f57de4887b65be5bb52e848513bd3471c4275ff6df34d2a647dc421054122b3\",\"dweb:/ipfs/QmYt2F5e6VHUc5MdhsaSsTcZbctSNeUH9ncgCihSx37uc3\"]},\"precompiles/preimage/Preimage.sol\":{\"keccak256\":\"0x8b0a12d239d2226ae5d5d79761b0e66c3aa9bdbe2fb41d512478bbd8b5d516ec\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://8405c679cdc5ecc4725e1869c620910ed303dfdab74a617af60e6b4c6df6ca3e\",\"dweb:/ipfs/QmPsXz13YLPKX2FjaLTZTW1cEBeVL1cKt4GoJewtiHjv2P\"]},\"precompiles/referenda/Referenda.sol\":{\"keccak256\":\"0x6d7b2c4c6e5f54ca4bbd935e37581c587b058b34145f6380a35c405bd9f981f4\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://27b062d76058c253b7534f6a3782599dd80cb533474290f557435d4a31e8de81\",\"dweb:/ipfs/QmRV57137PdX3JKE6Hi5BS7n3o624xT8GbjG3dVwod1Q5P\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"contractStorageKey\",\"type\":\"bytes\"}],\"name\":\"autoUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootTrackId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setStorageCallIndex\",\"outputs\":[{\"internalType\":\"bytes2\",\"name\":\"\",\"type\":\"bytes2\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"params\":{\"contractCode\":\"The code as deployed of the new contract\",\"contractStorageKey\":\"The storage key associated with the current smart contract\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"notice\":\"submits to upgrade contract for given storage key\"},\"constructor\":{\"notice\":\"construct the smart contract with the track id to send the proposal to\"},\"rootTrackId()\":{\"notice\":\"The id of the track used for root execution\"},\"setStorageCallIndex()\":{\"notice\":\"SetStorageCall index (pallet Index concatenated with call index, usually \\\"\\\\x00\\\\x04\\\")\"}},\"notice\":\"Smart contract to demonstrate how to use Referenda Precompile to self-upgrade\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"ReferendaAutoUpgradeDemo\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"SubstrateTools.sol\":{\"keccak256\":\"0xb79c6a9b3a694dfa362268f87e5598b95c048c5e8f1a053a5c5e9dd81e6345a1\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://ecbf04ed9eaca008ec155d5041ce28cab434f8f15368a4db7a5d3ad653f12e1b\",\"dweb:/ipfs/QmPuCTURp9BwkyR6otvbs2mQhiToSheANZiTpw7AvXAdnR\"]},\"main.sol\":{\"keccak256\":\"0x952cd5c14bbd014c37b67fda6f4b52dae7aaf888fe3476d9575fd5ea76fa15a0\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://550273857d8f5f99a118fe8686cb69e92d16a03f9209ff8b841b0fb9a341ccba\",\"dweb:/ipfs/QmRWX8vaQjKhcgrHP2YcpJV7fGqnDmLP2Roj8ehYHYXD4T\"]},\"precompiles/conviction-voting/ConvictionVoting.sol\":{\"keccak256\":\"0x2ee018e2de05f175dc13f1eada66c145ee9b86c79eabcea8475681d840e2374d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://9f57de4887b65be5bb52e848513bd3471c4275ff6df34d2a647dc421054122b3\",\"dweb:/ipfs/QmYt2F5e6VHUc5MdhsaSsTcZbctSNeUH9ncgCihSx37uc3\"]},\"precompiles/preimage/Preimage.sol\":{\"keccak256\":\"0x8b0a12d239d2226ae5d5d79761b0e66c3aa9bdbe2fb41d512478bbd8b5d516ec\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://8405c679cdc5ecc4725e1869c620910ed303dfdab74a617af60e6b4c6df6ca3e\",\"dweb:/ipfs/QmPsXz13YLPKX2FjaLTZTW1cEBeVL1cKt4GoJewtiHjv2P\"]},\"precompiles/referenda/Referenda.sol\":{\"keccak256\":\"0x1775aed3f3772a4e943ee08c12f42ff5ce2bf528466f33efc36a6447cfbfb594\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://22c54fd60c34e50acf3554a32b11b7e5207f2ad2c16b37cd3c4e607d5ce7827a\",\"dweb:/ipfs/QmSmFZPJ7MH6PjfYKMoLbY2QzhhREvuQyNTztQQ683utC9\"]}},\"version\":1}", "storageLayout": { "storage": [ { diff --git a/tests/contracts/compiled/ReferendaAutoUpgradeDemoV1.json b/tests/contracts/compiled/ReferendaAutoUpgradeDemoV1.json index a045a91cc8..dc22bfae8c 100644 --- a/tests/contracts/compiled/ReferendaAutoUpgradeDemoV1.json +++ b/tests/contracts/compiled/ReferendaAutoUpgradeDemoV1.json @@ -1,5 +1,5 @@ { - "byteCode": "0x60806040523480156200001157600080fd5b506040516200160a3803806200160a83398181016040528101906200003791906200048c565b818180600060026101000a81548161ffff021916908360f01c021790555062000066826200008b60201b60201c565b6000806101000a81548161ffff021916908361ffff1602179055505050505062000abd565b60008061081173ffffffffffffffffffffffffffffffffffffffff1663cc17da146040518163ffffffff1660e01b8152600401600060405180830381865afa158015620000dc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906200010791906200060c565b905060005b81518110156200025957600061081173ffffffffffffffffffffffffffffffffffffffff1663340381468484815181106200014c576200014b6200065d565b5b60200260200101516040518263ffffffff1660e01b81526004016200017291906200069d565b600060405180830381865afa15801562000190573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620001bb919062000907565b905084604051602001620001d09190620009a5565b604051602081830303815290604052805190602001208160000151604051602001620001fd9190620009a5565b604051602081830303815290604052805190602001200362000242578282815181106200022f576200022e6200065d565b5b6020026020010151935050505062000297565b5080806200025090620009ed565b9150506200010c565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200028e9062000a9b565b60405180910390fd5b919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200030582620002ba565b810181811067ffffffffffffffff82111715620003275762000326620002cb565b5b80604052505050565b60006200033c6200029c565b90506200034a8282620002fa565b919050565b600067ffffffffffffffff8211156200036d576200036c620002cb565b5b6200037882620002ba565b9050602081019050919050565b60005b83811015620003a557808201518184015260208101905062000388565b60008484015250505050565b6000620003c8620003c2846200034f565b62000330565b905082815260208101848484011115620003e757620003e6620002b5565b5b620003f484828562000385565b509392505050565b600082601f830112620004145762000413620002b0565b5b815162000426848260208601620003b1565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b62000466816200042f565b81146200047257600080fd5b50565b60008151905062000486816200045b565b92915050565b60008060408385031215620004a657620004a5620002a6565b5b600083015167ffffffffffffffff811115620004c757620004c6620002ab565b5b620004d585828601620003fc565b9250506020620004e88582860162000475565b9150509250929050565b600067ffffffffffffffff82111562000510576200050f620002cb565b5b602082029050602081019050919050565b600080fd5b600061ffff82169050919050565b6200053f8162000526565b81146200054b57600080fd5b50565b6000815190506200055f8162000534565b92915050565b60006200057c6200057684620004f2565b62000330565b90508083825260208201905060208402830185811115620005a257620005a162000521565b5b835b81811015620005cf5780620005ba88826200054e565b845260208401935050602081019050620005a4565b5050509392505050565b600082601f830112620005f157620005f0620002b0565b5b81516200060384826020860162000565565b91505092915050565b600060208284031215620006255762000624620002a6565b5b600082015167ffffffffffffffff811115620006465762000645620002ab565b5b6200065484828501620005d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b620006978162000526565b82525050565b6000602082019050620006b460008301846200068c565b92915050565b600080fd5b600080fd5b6000819050919050565b620006d981620006c4565b8114620006e557600080fd5b50565b600081519050620006f981620006ce565b92915050565b600067ffffffffffffffff8211156200071d576200071c620002cb565b5b6200072882620002ba565b9050602081019050919050565b60006200074c6200074684620006ff565b62000330565b9050828152602081018484840111156200076b576200076a620002b5565b5b6200077884828562000385565b509392505050565b600082601f830112620007985762000797620002b0565b5b8151620007aa84826020860162000735565b91505092915050565b60006101208284031215620007cd57620007cc620006ba565b5b620007da61012062000330565b9050600082015167ffffffffffffffff811115620007fd57620007fc620006bf565b5b6200080b84828501620003fc565b60008301525060206200082184828501620006e8565b60208301525060406200083784828501620006e8565b60408301525060606200084d84828501620006e8565b60608301525060806200086384828501620006e8565b60808301525060a06200087984828501620006e8565b60a08301525060c06200088f84828501620006e8565b60c08301525060e082015167ffffffffffffffff811115620008b657620008b5620006bf565b5b620008c48482850162000780565b60e08301525061010082015167ffffffffffffffff811115620008ec57620008eb620006bf565b5b620008fa8482850162000780565b6101008301525092915050565b60006020828403121562000920576200091f620002a6565b5b600082015167ffffffffffffffff811115620009415762000940620002ab565b5b6200094f84828501620007b3565b91505092915050565b600081519050919050565b600081905092915050565b60006200097b8262000958565b62000987818562000963565b93506200099981856020860162000385565b80840191505092915050565b6000620009b382846200096e565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009fa82620006c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a2f5762000a2e620009be565b5b600182019050919050565b600082825260208201905092915050565b7f436f756c646e27742066696e6420747261636b00000000000000000000000000600082015250565b600062000a8360138362000a3a565b915062000a908262000a4b565b602082019050919050565b6000602082019050818103600083015262000ab68162000a74565b9050919050565b610b3d8062000acd6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006001905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea2646970667358221220fe13ca5181d8295c1850e6566e74c1ab6de7b4e38a44e28c169ec0c1c3f54fc264736f6c63430008110033", + "byteCode": "0x60806040523480156200001157600080fd5b506040516200160a3803806200160a83398181016040528101906200003791906200048c565b818180600060026101000a81548161ffff021916908360f01c021790555062000066826200008b60201b60201c565b6000806101000a81548161ffff021916908361ffff1602179055505050505062000abd565b60008061081173ffffffffffffffffffffffffffffffffffffffff1663cc17da146040518163ffffffff1660e01b8152600401600060405180830381865afa158015620000dc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906200010791906200060c565b905060005b81518110156200025957600061081173ffffffffffffffffffffffffffffffffffffffff1663340381468484815181106200014c576200014b6200065d565b5b60200260200101516040518263ffffffff1660e01b81526004016200017291906200069d565b600060405180830381865afa15801562000190573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620001bb919062000907565b905084604051602001620001d09190620009a5565b604051602081830303815290604052805190602001208160000151604051602001620001fd9190620009a5565b604051602081830303815290604052805190602001200362000242578282815181106200022f576200022e6200065d565b5b6020026020010151935050505062000297565b5080806200025090620009ed565b9150506200010c565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200028e9062000a9b565b60405180910390fd5b919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200030582620002ba565b810181811067ffffffffffffffff82111715620003275762000326620002cb565b5b80604052505050565b60006200033c6200029c565b90506200034a8282620002fa565b919050565b600067ffffffffffffffff8211156200036d576200036c620002cb565b5b6200037882620002ba565b9050602081019050919050565b60005b83811015620003a557808201518184015260208101905062000388565b60008484015250505050565b6000620003c8620003c2846200034f565b62000330565b905082815260208101848484011115620003e757620003e6620002b5565b5b620003f484828562000385565b509392505050565b600082601f830112620004145762000413620002b0565b5b815162000426848260208601620003b1565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b62000466816200042f565b81146200047257600080fd5b50565b60008151905062000486816200045b565b92915050565b60008060408385031215620004a657620004a5620002a6565b5b600083015167ffffffffffffffff811115620004c757620004c6620002ab565b5b620004d585828601620003fc565b9250506020620004e88582860162000475565b9150509250929050565b600067ffffffffffffffff82111562000510576200050f620002cb565b5b602082029050602081019050919050565b600080fd5b600061ffff82169050919050565b6200053f8162000526565b81146200054b57600080fd5b50565b6000815190506200055f8162000534565b92915050565b60006200057c6200057684620004f2565b62000330565b90508083825260208201905060208402830185811115620005a257620005a162000521565b5b835b81811015620005cf5780620005ba88826200054e565b845260208401935050602081019050620005a4565b5050509392505050565b600082601f830112620005f157620005f0620002b0565b5b81516200060384826020860162000565565b91505092915050565b600060208284031215620006255762000624620002a6565b5b600082015167ffffffffffffffff811115620006465762000645620002ab565b5b6200065484828501620005d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b620006978162000526565b82525050565b6000602082019050620006b460008301846200068c565b92915050565b600080fd5b600080fd5b6000819050919050565b620006d981620006c4565b8114620006e557600080fd5b50565b600081519050620006f981620006ce565b92915050565b600067ffffffffffffffff8211156200071d576200071c620002cb565b5b6200072882620002ba565b9050602081019050919050565b60006200074c6200074684620006ff565b62000330565b9050828152602081018484840111156200076b576200076a620002b5565b5b6200077884828562000385565b509392505050565b600082601f830112620007985762000797620002b0565b5b8151620007aa84826020860162000735565b91505092915050565b60006101208284031215620007cd57620007cc620006ba565b5b620007da61012062000330565b9050600082015167ffffffffffffffff811115620007fd57620007fc620006bf565b5b6200080b84828501620003fc565b60008301525060206200082184828501620006e8565b60208301525060406200083784828501620006e8565b60408301525060606200084d84828501620006e8565b60608301525060806200086384828501620006e8565b60808301525060a06200087984828501620006e8565b60a08301525060c06200088f84828501620006e8565b60c08301525060e082015167ffffffffffffffff811115620008b657620008b5620006bf565b5b620008c48482850162000780565b60e08301525061010082015167ffffffffffffffff811115620008ec57620008eb620006bf565b5b620008fa8482850162000780565b6101008301525092915050565b60006020828403121562000920576200091f620002a6565b5b600082015167ffffffffffffffff811115620009415762000940620002ab565b5b6200094f84828501620007b3565b91505092915050565b600081519050919050565b600081905092915050565b60006200097b8262000958565b62000987818562000963565b93506200099981856020860162000385565b80840191505092915050565b6000620009b382846200096e565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009fa82620006c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a2f5762000a2e620009be565b5b600182019050919050565b600082825260208201905092915050565b7f436f756c646e27742066696e6420747261636b00000000000000000000000000600082015250565b600062000a8360138362000a3a565b915062000a908262000a4b565b602082019050919050565b6000602082019050818103600083015262000ab68162000a74565b9050919050565b610b3d8062000acd6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006001905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea26469706673582212202d0069a2f8fd80b585e5391c7483c702a13b1f308e8f78c0d57f2a4362c9a8b564736f6c63430008110033", "contract": { "abi": [ { @@ -65,7 +65,7 @@ "version": 1 }, "evm": { - "assembly": " /* \"main.sol\":3270:3562 contract ReferendaAutoUpgradeDemoV1 is ReferendaAutoUpgradeDemo {... */\n mstore(0x40, 0x80)\n /* \"main.sol\":3340:3478 constructor(string memory trackName, bytes2 pSetStorageCallIndex)... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\ntag_2:\n /* \"main.sol\":3439:3448 trackName */\n dup2\n /* \"main.sol\":3450:3470 pSetStorageCallIndex */\n dup2\n /* \"main.sol\":834:854 pSetStorageCallIndex */\n dup1\n /* \"main.sol\":812:831 setStorageCallIndex */\n 0x00\n 0x02\n /* \"main.sol\":812:854 setStorageCallIndex = pSetStorageCallIndex */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffff\n mul\n not\n and\n swap1\n dup4\n 0xf0\n shr\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":1161:1182 getTrackId(trackName) */\n tag_7\n /* \"main.sol\":1172:1181 trackName */\n dup3\n /* \"main.sol\":1161:1171 getTrackId */\n shl(0x20, tag_8)\n /* \"main.sol\":1161:1182 getTrackId(trackName) */\n 0x20\n shr\n jump\t// in\ntag_7:\n /* \"main.sol\":1147:1158 rootTrackId */\n 0x00\n dup1\n /* \"main.sol\":1147:1182 rootTrackId = getTrackId(trackName) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffff\n mul\n not\n and\n swap1\n dup4\n 0xffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":736:1189 constructor(string memory trackName, bytes2 pSetStorageCallIndex) {... */\n pop\n pop\n /* \"main.sol\":3340:3478 constructor(string memory trackName, bytes2 pSetStorageCallIndex)... */\n pop\n pop\n /* \"main.sol\":3270:3562 contract ReferendaAutoUpgradeDemoV1 is ReferendaAutoUpgradeDemo {... */\n jump(tag_10)\n /* \"main.sol\":1319:1946 function getTrackId(string memory trackName)... */\ntag_8:\n /* \"main.sol\":1411:1417 uint16 */\n 0x00\n /* \"main.sol\":1433:1457 uint16[] memory trackIds */\n dup1\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":1460:1487 REFERENDA_CONTRACT.trackIds */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xcc17da14\n /* \"main.sol\":1460:1489 REFERENDA_CONTRACT.trackIds() */\n mload(0x40)\n dup2\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup7\n gas\n staticcall\n iszero\n dup1\n iszero\n tag_13\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_13:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n 0x00\n dup3\n returndatacopy\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_14\n swap2\n swap1\n tag_15\n jump\t// in\ntag_14:\n /* \"main.sol\":1433:1489 uint16[] memory trackIds = REFERENDA_CONTRACT.trackIds() */\n swap1\n pop\n /* \"main.sol\":1504:1513 uint256 i */\n 0x00\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\ntag_16:\n /* \"main.sol\":1523:1531 trackIds */\n dup2\n /* \"main.sol\":1523:1538 trackIds.length */\n mload\n /* \"main.sol\":1519:1520 i */\n dup2\n /* \"main.sol\":1519:1538 i < trackIds.length */\n lt\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\n iszero\n tag_17\n jumpi\n /* \"main.sol\":1559:1590 Referenda.TrackInfo memory info */\n 0x00\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":1593:1621 REFERENDA_CONTRACT.trackInfo */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x34038146\n /* \"main.sol\":1639:1647 trackIds */\n dup5\n /* \"main.sol\":1648:1649 i */\n dup5\n /* \"main.sol\":1639:1650 trackIds[i] */\n dup2\n mload\n dup2\n lt\n tag_19\n jumpi\n tag_20\n tag_21\n jump\t// in\ntag_20:\ntag_19:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"main.sol\":1593:1664 REFERENDA_CONTRACT.trackInfo(... */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_22\n swap2\n swap1\n tag_23\n jump\t// in\ntag_22:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup7\n gas\n staticcall\n iszero\n dup1\n iszero\n tag_25\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_25:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n 0x00\n dup3\n returndatacopy\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_26\n swap2\n swap1\n tag_27\n jump\t// in\ntag_26:\n /* \"main.sol\":1559:1664 Referenda.TrackInfo memory info = REFERENDA_CONTRACT.trackInfo(... */\n swap1\n pop\n /* \"main.sol\":1788:1797 trackName */\n dup5\n /* \"main.sol\":1770:1799 abi.encodePacked((trackName)) */\n add(0x20, mload(0x40))\n tag_28\n swap2\n swap1\n tag_29\n jump\t// in\ntag_28:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"main.sol\":1760:1800 keccak256(abi.encodePacked((trackName))) */\n dup1\n mload\n swap1\n 0x20\n add\n keccak256\n /* \"main.sol\":1728:1732 info */\n dup2\n /* \"main.sol\":1728:1737 info.name */\n 0x00\n add\n mload\n /* \"main.sol\":1710:1739 abi.encodePacked((info.name)) */\n add(0x20, mload(0x40))\n tag_30\n swap2\n swap1\n tag_29\n jump\t// in\ntag_30:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"main.sol\":1700:1740 keccak256(abi.encodePacked((info.name))) */\n dup1\n mload\n swap1\n 0x20\n add\n keccak256\n /* \"main.sol\":1700:1800 keccak256(abi.encodePacked((info.name))) ==... */\n sub\n /* \"main.sol\":1679:1891 if (... */\n tag_31\n jumpi\n /* \"main.sol\":1865:1873 trackIds */\n dup3\n /* \"main.sol\":1874:1875 i */\n dup3\n /* \"main.sol\":1865:1876 trackIds[i] */\n dup2\n mload\n dup2\n lt\n tag_32\n jumpi\n tag_33\n tag_21\n jump\t// in\ntag_33:\ntag_32:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"main.sol\":1858:1876 return trackIds[i] */\n swap4\n pop\n pop\n pop\n pop\n jump(tag_11)\n /* \"main.sol\":1679:1891 if (... */\ntag_31:\n /* \"main.sol\":1545:1901 {... */\n pop\n /* \"main.sol\":1540:1543 i++ */\n dup1\n dup1\n tag_34\n swap1\n tag_35\n jump\t// in\ntag_34:\n swap2\n pop\n pop\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\n jump(tag_16)\ntag_17:\n pop\n /* \"main.sol\":1910:1939 revert(\"Couldn't find track\") */\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_36\n swap1\n tag_37\n jump\t// in\ntag_36:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":1319:1946 function getTrackId(string memory trackName)... */\ntag_11:\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:82 */\ntag_38:\n /* \"#utility.yul\":40:46 */\n 0x00\n /* \"#utility.yul\":73:75 */\n 0x40\n /* \"#utility.yul\":67:76 */\n mload\n /* \"#utility.yul\":57:76 */\n swap1\n pop\n /* \"#utility.yul\":7:82 */\n swap1\n jump\t// out\n /* \"#utility.yul\":88:205 */\ntag_39:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\ntag_40:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:451 */\ntag_41:\n /* \"#utility.yul\":443:444 */\n 0x00\n /* \"#utility.yul\":440:441 */\n dup1\n /* \"#utility.yul\":433:445 */\n revert\n /* \"#utility.yul\":457:574 */\ntag_42:\n /* \"#utility.yul\":566:567 */\n 0x00\n /* \"#utility.yul\":563:564 */\n dup1\n /* \"#utility.yul\":556:568 */\n revert\n /* \"#utility.yul\":580:682 */\ntag_43:\n /* \"#utility.yul\":621:627 */\n 0x00\n /* \"#utility.yul\":672:674 */\n 0x1f\n /* \"#utility.yul\":668:675 */\n not\n /* \"#utility.yul\":663:665 */\n 0x1f\n /* \"#utility.yul\":656:661 */\n dup4\n /* \"#utility.yul\":652:666 */\n add\n /* \"#utility.yul\":648:676 */\n and\n /* \"#utility.yul\":638:676 */\n swap1\n pop\n /* \"#utility.yul\":580:682 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":688:868 */\ntag_44:\n /* \"#utility.yul\":736:813 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":733:734 */\n 0x00\n /* \"#utility.yul\":726:814 */\n mstore\n /* \"#utility.yul\":833:837 */\n 0x41\n /* \"#utility.yul\":830:831 */\n 0x04\n /* \"#utility.yul\":823:838 */\n mstore\n /* \"#utility.yul\":857:861 */\n 0x24\n /* \"#utility.yul\":854:855 */\n 0x00\n /* \"#utility.yul\":847:862 */\n revert\n /* \"#utility.yul\":874:1155 */\ntag_45:\n /* \"#utility.yul\":957:984 */\n tag_87\n /* \"#utility.yul\":979:983 */\n dup3\n /* \"#utility.yul\":957:984 */\n tag_43\n jump\t// in\ntag_87:\n /* \"#utility.yul\":949:955 */\n dup2\n /* \"#utility.yul\":945:985 */\n add\n /* \"#utility.yul\":1087:1093 */\n dup2\n /* \"#utility.yul\":1075:1085 */\n dup2\n /* \"#utility.yul\":1072:1094 */\n lt\n /* \"#utility.yul\":1051:1069 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1039:1049 */\n dup3\n /* \"#utility.yul\":1036:1070 */\n gt\n /* \"#utility.yul\":1033:1095 */\n or\n /* \"#utility.yul\":1030:1118 */\n iszero\n tag_88\n jumpi\n /* \"#utility.yul\":1098:1116 */\n tag_89\n tag_44\n jump\t// in\ntag_89:\n /* \"#utility.yul\":1030:1118 */\ntag_88:\n /* \"#utility.yul\":1138:1148 */\n dup1\n /* \"#utility.yul\":1134:1136 */\n 0x40\n /* \"#utility.yul\":1127:1149 */\n mstore\n /* \"#utility.yul\":917:1155 */\n pop\n /* \"#utility.yul\":874:1155 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1161:1290 */\ntag_46:\n /* \"#utility.yul\":1195:1201 */\n 0x00\n /* \"#utility.yul\":1222:1242 */\n tag_91\n tag_38\n jump\t// in\ntag_91:\n /* \"#utility.yul\":1212:1242 */\n swap1\n pop\n /* \"#utility.yul\":1251:1284 */\n tag_92\n /* \"#utility.yul\":1279:1283 */\n dup3\n /* \"#utility.yul\":1271:1277 */\n dup3\n /* \"#utility.yul\":1251:1284 */\n tag_45\n jump\t// in\ntag_92:\n /* \"#utility.yul\":1161:1290 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1296:1604 */\ntag_47:\n /* \"#utility.yul\":1358:1362 */\n 0x00\n /* \"#utility.yul\":1448:1466 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1440:1446 */\n dup3\n /* \"#utility.yul\":1437:1467 */\n gt\n /* \"#utility.yul\":1434:1490 */\n iszero\n tag_94\n jumpi\n /* \"#utility.yul\":1470:1488 */\n tag_95\n tag_44\n jump\t// in\ntag_95:\n /* \"#utility.yul\":1434:1490 */\ntag_94:\n /* \"#utility.yul\":1508:1537 */\n tag_96\n /* \"#utility.yul\":1530:1536 */\n dup3\n /* \"#utility.yul\":1508:1537 */\n tag_43\n jump\t// in\ntag_96:\n /* \"#utility.yul\":1500:1537 */\n swap1\n pop\n /* \"#utility.yul\":1592:1596 */\n 0x20\n /* \"#utility.yul\":1586:1590 */\n dup2\n /* \"#utility.yul\":1582:1597 */\n add\n /* \"#utility.yul\":1574:1597 */\n swap1\n pop\n /* \"#utility.yul\":1296:1604 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1610:1856 */\ntag_48:\n /* \"#utility.yul\":1691:1692 */\n 0x00\n /* \"#utility.yul\":1701:1814 */\ntag_98:\n /* \"#utility.yul\":1715:1721 */\n dup4\n /* \"#utility.yul\":1712:1713 */\n dup2\n /* \"#utility.yul\":1709:1722 */\n lt\n /* \"#utility.yul\":1701:1814 */\n iszero\n tag_100\n jumpi\n /* \"#utility.yul\":1800:1801 */\n dup1\n /* \"#utility.yul\":1795:1798 */\n dup3\n /* \"#utility.yul\":1791:1802 */\n add\n /* \"#utility.yul\":1785:1803 */\n mload\n /* \"#utility.yul\":1781:1782 */\n dup2\n /* \"#utility.yul\":1776:1779 */\n dup5\n /* \"#utility.yul\":1772:1783 */\n add\n /* \"#utility.yul\":1765:1804 */\n mstore\n /* \"#utility.yul\":1737:1739 */\n 0x20\n /* \"#utility.yul\":1734:1735 */\n dup2\n /* \"#utility.yul\":1730:1740 */\n add\n /* \"#utility.yul\":1725:1740 */\n swap1\n pop\n /* \"#utility.yul\":1701:1814 */\n jump(tag_98)\ntag_100:\n /* \"#utility.yul\":1848:1849 */\n 0x00\n /* \"#utility.yul\":1839:1845 */\n dup5\n /* \"#utility.yul\":1834:1837 */\n dup5\n /* \"#utility.yul\":1830:1846 */\n add\n /* \"#utility.yul\":1823:1850 */\n mstore\n /* \"#utility.yul\":1672:1856 */\n pop\n /* \"#utility.yul\":1610:1856 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1862:2296 */\ntag_49:\n /* \"#utility.yul\":1951:1956 */\n 0x00\n /* \"#utility.yul\":1976:2042 */\n tag_102\n /* \"#utility.yul\":1992:2041 */\n tag_103\n /* \"#utility.yul\":2034:2040 */\n dup5\n /* \"#utility.yul\":1992:2041 */\n tag_47\n jump\t// in\ntag_103:\n /* \"#utility.yul\":1976:2042 */\n tag_46\n jump\t// in\ntag_102:\n /* \"#utility.yul\":1967:2042 */\n swap1\n pop\n /* \"#utility.yul\":2065:2071 */\n dup3\n /* \"#utility.yul\":2058:2063 */\n dup2\n /* \"#utility.yul\":2051:2072 */\n mstore\n /* \"#utility.yul\":2103:2107 */\n 0x20\n /* \"#utility.yul\":2096:2101 */\n dup2\n /* \"#utility.yul\":2092:2108 */\n add\n /* \"#utility.yul\":2141:2144 */\n dup5\n /* \"#utility.yul\":2132:2138 */\n dup5\n /* \"#utility.yul\":2127:2130 */\n dup5\n /* \"#utility.yul\":2123:2139 */\n add\n /* \"#utility.yul\":2120:2145 */\n gt\n /* \"#utility.yul\":2117:2229 */\n iszero\n tag_104\n jumpi\n /* \"#utility.yul\":2148:2227 */\n tag_105\n tag_42\n jump\t// in\ntag_105:\n /* \"#utility.yul\":2117:2229 */\ntag_104:\n /* \"#utility.yul\":2238:2290 */\n tag_106\n /* \"#utility.yul\":2283:2289 */\n dup5\n /* \"#utility.yul\":2278:2281 */\n dup3\n /* \"#utility.yul\":2273:2276 */\n dup6\n /* \"#utility.yul\":2238:2290 */\n tag_48\n jump\t// in\ntag_106:\n /* \"#utility.yul\":1957:2296 */\n pop\n /* \"#utility.yul\":1862:2296 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2316:2671 */\ntag_50:\n /* \"#utility.yul\":2383:2388 */\n 0x00\n /* \"#utility.yul\":2432:2435 */\n dup3\n /* \"#utility.yul\":2425:2429 */\n 0x1f\n /* \"#utility.yul\":2417:2423 */\n dup4\n /* \"#utility.yul\":2413:2430 */\n add\n /* \"#utility.yul\":2409:2436 */\n slt\n /* \"#utility.yul\":2399:2521 */\n tag_108\n jumpi\n /* \"#utility.yul\":2440:2519 */\n tag_109\n tag_41\n jump\t// in\ntag_109:\n /* \"#utility.yul\":2399:2521 */\ntag_108:\n /* \"#utility.yul\":2550:2556 */\n dup2\n /* \"#utility.yul\":2544:2557 */\n mload\n /* \"#utility.yul\":2575:2665 */\n tag_110\n /* \"#utility.yul\":2661:2664 */\n dup5\n /* \"#utility.yul\":2653:2659 */\n dup3\n /* \"#utility.yul\":2646:2650 */\n 0x20\n /* \"#utility.yul\":2638:2644 */\n dup7\n /* \"#utility.yul\":2634:2651 */\n add\n /* \"#utility.yul\":2575:2665 */\n tag_49\n jump\t// in\ntag_110:\n /* \"#utility.yul\":2566:2665 */\n swap2\n pop\n /* \"#utility.yul\":2389:2671 */\n pop\n /* \"#utility.yul\":2316:2671 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2677:2826 */\ntag_51:\n /* \"#utility.yul\":2713:2720 */\n 0x00\n /* \"#utility.yul\":2753:2819 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2746:2751 */\n dup3\n /* \"#utility.yul\":2742:2820 */\n and\n /* \"#utility.yul\":2731:2820 */\n swap1\n pop\n /* \"#utility.yul\":2677:2826 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2832:2952 */\ntag_52:\n /* \"#utility.yul\":2904:2927 */\n tag_113\n /* \"#utility.yul\":2921:2926 */\n dup2\n /* \"#utility.yul\":2904:2927 */\n tag_51\n jump\t// in\ntag_113:\n /* \"#utility.yul\":2897:2902 */\n dup2\n /* \"#utility.yul\":2894:2928 */\n eq\n /* \"#utility.yul\":2884:2946 */\n tag_114\n jumpi\n /* \"#utility.yul\":2942:2943 */\n 0x00\n /* \"#utility.yul\":2939:2940 */\n dup1\n /* \"#utility.yul\":2932:2944 */\n revert\n /* \"#utility.yul\":2884:2946 */\ntag_114:\n /* \"#utility.yul\":2832:2952 */\n pop\n jump\t// out\n /* \"#utility.yul\":2958:3099 */\ntag_53:\n /* \"#utility.yul\":3014:3019 */\n 0x00\n /* \"#utility.yul\":3045:3051 */\n dup2\n /* \"#utility.yul\":3039:3052 */\n mload\n /* \"#utility.yul\":3030:3052 */\n swap1\n pop\n /* \"#utility.yul\":3061:3093 */\n tag_116\n /* \"#utility.yul\":3087:3092 */\n dup2\n /* \"#utility.yul\":3061:3093 */\n tag_52\n jump\t// in\ntag_116:\n /* \"#utility.yul\":2958:3099 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3105:3783 */\ntag_3:\n /* \"#utility.yul\":3193:3199 */\n 0x00\n /* \"#utility.yul\":3201:3207 */\n dup1\n /* \"#utility.yul\":3250:3252 */\n 0x40\n /* \"#utility.yul\":3238:3247 */\n dup4\n /* \"#utility.yul\":3229:3236 */\n dup6\n /* \"#utility.yul\":3225:3248 */\n sub\n /* \"#utility.yul\":3221:3253 */\n slt\n /* \"#utility.yul\":3218:3337 */\n iszero\n tag_118\n jumpi\n /* \"#utility.yul\":3256:3335 */\n tag_119\n tag_39\n jump\t// in\ntag_119:\n /* \"#utility.yul\":3218:3337 */\ntag_118:\n /* \"#utility.yul\":3397:3398 */\n 0x00\n /* \"#utility.yul\":3386:3395 */\n dup4\n /* \"#utility.yul\":3382:3399 */\n add\n /* \"#utility.yul\":3376:3400 */\n mload\n /* \"#utility.yul\":3427:3445 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3419:3425 */\n dup2\n /* \"#utility.yul\":3416:3446 */\n gt\n /* \"#utility.yul\":3413:3530 */\n iszero\n tag_120\n jumpi\n /* \"#utility.yul\":3449:3528 */\n tag_121\n tag_40\n jump\t// in\ntag_121:\n /* \"#utility.yul\":3413:3530 */\ntag_120:\n /* \"#utility.yul\":3554:3628 */\n tag_122\n /* \"#utility.yul\":3620:3627 */\n dup6\n /* \"#utility.yul\":3611:3617 */\n dup3\n /* \"#utility.yul\":3600:3609 */\n dup7\n /* \"#utility.yul\":3596:3618 */\n add\n /* \"#utility.yul\":3554:3628 */\n tag_50\n jump\t// in\ntag_122:\n /* \"#utility.yul\":3544:3628 */\n swap3\n pop\n /* \"#utility.yul\":3347:3638 */\n pop\n /* \"#utility.yul\":3677:3679 */\n 0x20\n /* \"#utility.yul\":3703:3766 */\n tag_123\n /* \"#utility.yul\":3758:3765 */\n dup6\n /* \"#utility.yul\":3749:3755 */\n dup3\n /* \"#utility.yul\":3738:3747 */\n dup7\n /* \"#utility.yul\":3734:3756 */\n add\n /* \"#utility.yul\":3703:3766 */\n tag_53\n jump\t// in\ntag_123:\n /* \"#utility.yul\":3693:3766 */\n swap2\n pop\n /* \"#utility.yul\":3648:3776 */\n pop\n /* \"#utility.yul\":3105:3783 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3789:4099 */\ntag_54:\n /* \"#utility.yul\":3865:3869 */\n 0x00\n /* \"#utility.yul\":3955:3973 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3947:3953 */\n dup3\n /* \"#utility.yul\":3944:3974 */\n gt\n /* \"#utility.yul\":3941:3997 */\n iszero\n tag_125\n jumpi\n /* \"#utility.yul\":3977:3995 */\n tag_126\n tag_44\n jump\t// in\ntag_126:\n /* \"#utility.yul\":3941:3997 */\ntag_125:\n /* \"#utility.yul\":4027:4031 */\n 0x20\n /* \"#utility.yul\":4019:4025 */\n dup3\n /* \"#utility.yul\":4015:4032 */\n mul\n /* \"#utility.yul\":4007:4032 */\n swap1\n pop\n /* \"#utility.yul\":4087:4091 */\n 0x20\n /* \"#utility.yul\":4081:4085 */\n dup2\n /* \"#utility.yul\":4077:4092 */\n add\n /* \"#utility.yul\":4069:4092 */\n swap1\n pop\n /* \"#utility.yul\":3789:4099 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4105:4222 */\ntag_55:\n /* \"#utility.yul\":4214:4215 */\n 0x00\n /* \"#utility.yul\":4211:4212 */\n dup1\n /* \"#utility.yul\":4204:4216 */\n revert\n /* \"#utility.yul\":4228:4317 */\ntag_56:\n /* \"#utility.yul\":4264:4271 */\n 0x00\n /* \"#utility.yul\":4304:4310 */\n 0xffff\n /* \"#utility.yul\":4297:4302 */\n dup3\n /* \"#utility.yul\":4293:4311 */\n and\n /* \"#utility.yul\":4282:4311 */\n swap1\n pop\n /* \"#utility.yul\":4228:4317 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4323:4443 */\ntag_57:\n /* \"#utility.yul\":4395:4418 */\n tag_130\n /* \"#utility.yul\":4412:4417 */\n dup2\n /* \"#utility.yul\":4395:4418 */\n tag_56\n jump\t// in\ntag_130:\n /* \"#utility.yul\":4388:4393 */\n dup2\n /* \"#utility.yul\":4385:4419 */\n eq\n /* \"#utility.yul\":4375:4437 */\n tag_131\n jumpi\n /* \"#utility.yul\":4433:4434 */\n 0x00\n /* \"#utility.yul\":4430:4431 */\n dup1\n /* \"#utility.yul\":4423:4435 */\n revert\n /* \"#utility.yul\":4375:4437 */\ntag_131:\n /* \"#utility.yul\":4323:4443 */\n pop\n jump\t// out\n /* \"#utility.yul\":4449:4590 */\ntag_58:\n /* \"#utility.yul\":4505:4510 */\n 0x00\n /* \"#utility.yul\":4536:4542 */\n dup2\n /* \"#utility.yul\":4530:4543 */\n mload\n /* \"#utility.yul\":4521:4543 */\n swap1\n pop\n /* \"#utility.yul\":4552:4584 */\n tag_133\n /* \"#utility.yul\":4578:4583 */\n dup2\n /* \"#utility.yul\":4552:4584 */\n tag_57\n jump\t// in\ntag_133:\n /* \"#utility.yul\":4449:4590 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4612:5341 */\ntag_59:\n /* \"#utility.yul\":4718:4723 */\n 0x00\n /* \"#utility.yul\":4743:4823 */\n tag_135\n /* \"#utility.yul\":4759:4822 */\n tag_136\n /* \"#utility.yul\":4815:4821 */\n dup5\n /* \"#utility.yul\":4759:4822 */\n tag_54\n jump\t// in\ntag_136:\n /* \"#utility.yul\":4743:4823 */\n tag_46\n jump\t// in\ntag_135:\n /* \"#utility.yul\":4734:4823 */\n swap1\n pop\n /* \"#utility.yul\":4843:4848 */\n dup1\n /* \"#utility.yul\":4872:4878 */\n dup4\n /* \"#utility.yul\":4865:4870 */\n dup3\n /* \"#utility.yul\":4858:4879 */\n mstore\n /* \"#utility.yul\":4906:4910 */\n 0x20\n /* \"#utility.yul\":4899:4904 */\n dup3\n /* \"#utility.yul\":4895:4911 */\n add\n /* \"#utility.yul\":4888:4911 */\n swap1\n pop\n /* \"#utility.yul\":4959:4963 */\n 0x20\n /* \"#utility.yul\":4951:4957 */\n dup5\n /* \"#utility.yul\":4947:4964 */\n mul\n /* \"#utility.yul\":4939:4945 */\n dup4\n /* \"#utility.yul\":4935:4965 */\n add\n /* \"#utility.yul\":4988:4991 */\n dup6\n /* \"#utility.yul\":4980:4986 */\n dup2\n /* \"#utility.yul\":4977:4992 */\n gt\n /* \"#utility.yul\":4974:5096 */\n iszero\n tag_137\n jumpi\n /* \"#utility.yul\":5007:5086 */\n tag_138\n tag_55\n jump\t// in\ntag_138:\n /* \"#utility.yul\":4974:5096 */\ntag_137:\n /* \"#utility.yul\":5122:5128 */\n dup4\n /* \"#utility.yul\":5105:5335 */\ntag_139:\n /* \"#utility.yul\":5139:5145 */\n dup2\n /* \"#utility.yul\":5134:5137 */\n dup2\n /* \"#utility.yul\":5131:5146 */\n lt\n /* \"#utility.yul\":5105:5335 */\n iszero\n tag_141\n jumpi\n /* \"#utility.yul\":5214:5217 */\n dup1\n /* \"#utility.yul\":5243:5290 */\n tag_142\n /* \"#utility.yul\":5286:5289 */\n dup9\n /* \"#utility.yul\":5274:5284 */\n dup3\n /* \"#utility.yul\":5243:5290 */\n tag_58\n jump\t// in\ntag_142:\n /* \"#utility.yul\":5238:5241 */\n dup5\n /* \"#utility.yul\":5231:5291 */\n mstore\n /* \"#utility.yul\":5320:5324 */\n 0x20\n /* \"#utility.yul\":5315:5318 */\n dup5\n /* \"#utility.yul\":5311:5325 */\n add\n /* \"#utility.yul\":5304:5325 */\n swap4\n pop\n /* \"#utility.yul\":5181:5335 */\n pop\n /* \"#utility.yul\":5165:5169 */\n 0x20\n /* \"#utility.yul\":5160:5163 */\n dup2\n /* \"#utility.yul\":5156:5170 */\n add\n /* \"#utility.yul\":5149:5170 */\n swap1\n pop\n /* \"#utility.yul\":5105:5335 */\n jump(tag_139)\ntag_141:\n /* \"#utility.yul\":5109:5130 */\n pop\n /* \"#utility.yul\":4724:5341 */\n pop\n pop\n /* \"#utility.yul\":4612:5341 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5363:5746 */\ntag_60:\n /* \"#utility.yul\":5444:5449 */\n 0x00\n /* \"#utility.yul\":5493:5496 */\n dup3\n /* \"#utility.yul\":5486:5490 */\n 0x1f\n /* \"#utility.yul\":5478:5484 */\n dup4\n /* \"#utility.yul\":5474:5491 */\n add\n /* \"#utility.yul\":5470:5497 */\n slt\n /* \"#utility.yul\":5460:5582 */\n tag_144\n jumpi\n /* \"#utility.yul\":5501:5580 */\n tag_145\n tag_41\n jump\t// in\ntag_145:\n /* \"#utility.yul\":5460:5582 */\ntag_144:\n /* \"#utility.yul\":5611:5617 */\n dup2\n /* \"#utility.yul\":5605:5618 */\n mload\n /* \"#utility.yul\":5636:5740 */\n tag_146\n /* \"#utility.yul\":5736:5739 */\n dup5\n /* \"#utility.yul\":5728:5734 */\n dup3\n /* \"#utility.yul\":5721:5725 */\n 0x20\n /* \"#utility.yul\":5713:5719 */\n dup7\n /* \"#utility.yul\":5709:5726 */\n add\n /* \"#utility.yul\":5636:5740 */\n tag_59\n jump\t// in\ntag_146:\n /* \"#utility.yul\":5627:5740 */\n swap2\n pop\n /* \"#utility.yul\":5450:5746 */\n pop\n /* \"#utility.yul\":5363:5746 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5752:6304 */\ntag_15:\n /* \"#utility.yul\":5846:5852 */\n 0x00\n /* \"#utility.yul\":5895:5897 */\n 0x20\n /* \"#utility.yul\":5883:5892 */\n dup3\n /* \"#utility.yul\":5874:5881 */\n dup5\n /* \"#utility.yul\":5870:5893 */\n sub\n /* \"#utility.yul\":5866:5898 */\n slt\n /* \"#utility.yul\":5863:5982 */\n iszero\n tag_148\n jumpi\n /* \"#utility.yul\":5901:5980 */\n tag_149\n tag_39\n jump\t// in\ntag_149:\n /* \"#utility.yul\":5863:5982 */\ntag_148:\n /* \"#utility.yul\":6042:6043 */\n 0x00\n /* \"#utility.yul\":6031:6040 */\n dup3\n /* \"#utility.yul\":6027:6044 */\n add\n /* \"#utility.yul\":6021:6045 */\n mload\n /* \"#utility.yul\":6072:6090 */\n 0xffffffffffffffff\n /* \"#utility.yul\":6064:6070 */\n dup2\n /* \"#utility.yul\":6061:6091 */\n gt\n /* \"#utility.yul\":6058:6175 */\n iszero\n tag_150\n jumpi\n /* \"#utility.yul\":6094:6173 */\n tag_151\n tag_40\n jump\t// in\ntag_151:\n /* \"#utility.yul\":6058:6175 */\ntag_150:\n /* \"#utility.yul\":6199:6287 */\n tag_152\n /* \"#utility.yul\":6279:6286 */\n dup5\n /* \"#utility.yul\":6270:6276 */\n dup3\n /* \"#utility.yul\":6259:6268 */\n dup6\n /* \"#utility.yul\":6255:6277 */\n add\n /* \"#utility.yul\":6199:6287 */\n tag_60\n jump\t// in\ntag_152:\n /* \"#utility.yul\":6189:6287 */\n swap2\n pop\n /* \"#utility.yul\":5992:6297 */\n pop\n /* \"#utility.yul\":5752:6304 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6310:6490 */\ntag_21:\n /* \"#utility.yul\":6358:6435 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":6355:6356 */\n 0x00\n /* \"#utility.yul\":6348:6436 */\n mstore\n /* \"#utility.yul\":6455:6459 */\n 0x32\n /* \"#utility.yul\":6452:6453 */\n 0x04\n /* \"#utility.yul\":6445:6460 */\n mstore\n /* \"#utility.yul\":6479:6483 */\n 0x24\n /* \"#utility.yul\":6476:6477 */\n 0x00\n /* \"#utility.yul\":6469:6484 */\n revert\n /* \"#utility.yul\":6496:6611 */\ntag_61:\n /* \"#utility.yul\":6581:6604 */\n tag_155\n /* \"#utility.yul\":6598:6603 */\n dup2\n /* \"#utility.yul\":6581:6604 */\n tag_56\n jump\t// in\ntag_155:\n /* \"#utility.yul\":6576:6579 */\n dup3\n /* \"#utility.yul\":6569:6605 */\n mstore\n /* \"#utility.yul\":6496:6611 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6617:6835 */\ntag_23:\n /* \"#utility.yul\":6708:6712 */\n 0x00\n /* \"#utility.yul\":6746:6748 */\n 0x20\n /* \"#utility.yul\":6735:6744 */\n dup3\n /* \"#utility.yul\":6731:6749 */\n add\n /* \"#utility.yul\":6723:6749 */\n swap1\n pop\n /* \"#utility.yul\":6759:6828 */\n tag_157\n /* \"#utility.yul\":6825:6826 */\n 0x00\n /* \"#utility.yul\":6814:6823 */\n dup4\n /* \"#utility.yul\":6810:6827 */\n add\n /* \"#utility.yul\":6801:6807 */\n dup5\n /* \"#utility.yul\":6759:6828 */\n tag_61\n jump\t// in\ntag_157:\n /* \"#utility.yul\":6617:6835 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6841:6958 */\ntag_62:\n /* \"#utility.yul\":6950:6951 */\n 0x00\n /* \"#utility.yul\":6947:6948 */\n dup1\n /* \"#utility.yul\":6940:6952 */\n revert\n /* \"#utility.yul\":6964:7081 */\ntag_63:\n /* \"#utility.yul\":7073:7074 */\n 0x00\n /* \"#utility.yul\":7070:7071 */\n dup1\n /* \"#utility.yul\":7063:7075 */\n revert\n /* \"#utility.yul\":7087:7164 */\ntag_64:\n /* \"#utility.yul\":7124:7131 */\n 0x00\n /* \"#utility.yul\":7153:7158 */\n dup2\n /* \"#utility.yul\":7142:7158 */\n swap1\n pop\n /* \"#utility.yul\":7087:7164 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7170:7292 */\ntag_65:\n /* \"#utility.yul\":7243:7267 */\n tag_162\n /* \"#utility.yul\":7261:7266 */\n dup2\n /* \"#utility.yul\":7243:7267 */\n tag_64\n jump\t// in\ntag_162:\n /* \"#utility.yul\":7236:7241 */\n dup2\n /* \"#utility.yul\":7233:7268 */\n eq\n /* \"#utility.yul\":7223:7286 */\n tag_163\n jumpi\n /* \"#utility.yul\":7282:7283 */\n 0x00\n /* \"#utility.yul\":7279:7280 */\n dup1\n /* \"#utility.yul\":7272:7284 */\n revert\n /* \"#utility.yul\":7223:7286 */\ntag_163:\n /* \"#utility.yul\":7170:7292 */\n pop\n jump\t// out\n /* \"#utility.yul\":7298:7441 */\ntag_66:\n /* \"#utility.yul\":7355:7360 */\n 0x00\n /* \"#utility.yul\":7386:7392 */\n dup2\n /* \"#utility.yul\":7380:7393 */\n mload\n /* \"#utility.yul\":7371:7393 */\n swap1\n pop\n /* \"#utility.yul\":7402:7435 */\n tag_165\n /* \"#utility.yul\":7429:7434 */\n dup2\n /* \"#utility.yul\":7402:7435 */\n tag_65\n jump\t// in\ntag_165:\n /* \"#utility.yul\":7298:7441 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7447:7754 */\ntag_67:\n /* \"#utility.yul\":7508:7512 */\n 0x00\n /* \"#utility.yul\":7598:7616 */\n 0xffffffffffffffff\n /* \"#utility.yul\":7590:7596 */\n dup3\n /* \"#utility.yul\":7587:7617 */\n gt\n /* \"#utility.yul\":7584:7640 */\n iszero\n tag_167\n jumpi\n /* \"#utility.yul\":7620:7638 */\n tag_168\n tag_44\n jump\t// in\ntag_168:\n /* \"#utility.yul\":7584:7640 */\ntag_167:\n /* \"#utility.yul\":7658:7687 */\n tag_169\n /* \"#utility.yul\":7680:7686 */\n dup3\n /* \"#utility.yul\":7658:7687 */\n tag_43\n jump\t// in\ntag_169:\n /* \"#utility.yul\":7650:7687 */\n swap1\n pop\n /* \"#utility.yul\":7742:7746 */\n 0x20\n /* \"#utility.yul\":7736:7740 */\n dup2\n /* \"#utility.yul\":7732:7747 */\n add\n /* \"#utility.yul\":7724:7747 */\n swap1\n pop\n /* \"#utility.yul\":7447:7754 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7760:8192 */\ntag_68:\n /* \"#utility.yul\":7848:7853 */\n 0x00\n /* \"#utility.yul\":7873:7938 */\n tag_171\n /* \"#utility.yul\":7889:7937 */\n tag_172\n /* \"#utility.yul\":7930:7936 */\n dup5\n /* \"#utility.yul\":7889:7937 */\n tag_67\n jump\t// in\ntag_172:\n /* \"#utility.yul\":7873:7938 */\n tag_46\n jump\t// in\ntag_171:\n /* \"#utility.yul\":7864:7938 */\n swap1\n pop\n /* \"#utility.yul\":7961:7967 */\n dup3\n /* \"#utility.yul\":7954:7959 */\n dup2\n /* \"#utility.yul\":7947:7968 */\n mstore\n /* \"#utility.yul\":7999:8003 */\n 0x20\n /* \"#utility.yul\":7992:7997 */\n dup2\n /* \"#utility.yul\":7988:8004 */\n add\n /* \"#utility.yul\":8037:8040 */\n dup5\n /* \"#utility.yul\":8028:8034 */\n dup5\n /* \"#utility.yul\":8023:8026 */\n dup5\n /* \"#utility.yul\":8019:8035 */\n add\n /* \"#utility.yul\":8016:8041 */\n gt\n /* \"#utility.yul\":8013:8125 */\n iszero\n tag_173\n jumpi\n /* \"#utility.yul\":8044:8123 */\n tag_174\n tag_42\n jump\t// in\ntag_174:\n /* \"#utility.yul\":8013:8125 */\ntag_173:\n /* \"#utility.yul\":8134:8186 */\n tag_175\n /* \"#utility.yul\":8179:8185 */\n dup5\n /* \"#utility.yul\":8174:8177 */\n dup3\n /* \"#utility.yul\":8169:8172 */\n dup6\n /* \"#utility.yul\":8134:8186 */\n tag_48\n jump\t// in\ntag_175:\n /* \"#utility.yul\":7854:8192 */\n pop\n /* \"#utility.yul\":7760:8192 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8211:8564 */\ntag_69:\n /* \"#utility.yul\":8277:8282 */\n 0x00\n /* \"#utility.yul\":8326:8329 */\n dup3\n /* \"#utility.yul\":8319:8323 */\n 0x1f\n /* \"#utility.yul\":8311:8317 */\n dup4\n /* \"#utility.yul\":8307:8324 */\n add\n /* \"#utility.yul\":8303:8330 */\n slt\n /* \"#utility.yul\":8293:8415 */\n tag_177\n jumpi\n /* \"#utility.yul\":8334:8413 */\n tag_178\n tag_41\n jump\t// in\ntag_178:\n /* \"#utility.yul\":8293:8415 */\ntag_177:\n /* \"#utility.yul\":8444:8450 */\n dup2\n /* \"#utility.yul\":8438:8451 */\n mload\n /* \"#utility.yul\":8469:8558 */\n tag_179\n /* \"#utility.yul\":8554:8557 */\n dup5\n /* \"#utility.yul\":8546:8552 */\n dup3\n /* \"#utility.yul\":8539:8543 */\n 0x20\n /* \"#utility.yul\":8531:8537 */\n dup7\n /* \"#utility.yul\":8527:8544 */\n add\n /* \"#utility.yul\":8469:8558 */\n tag_68\n jump\t// in\ntag_179:\n /* \"#utility.yul\":8460:8558 */\n swap2\n pop\n /* \"#utility.yul\":8283:8564 */\n pop\n /* \"#utility.yul\":8211:8564 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8604:10987 */\ntag_70:\n /* \"#utility.yul\":8690:8695 */\n 0x00\n /* \"#utility.yul\":8734:8740 */\n 0x0120\n /* \"#utility.yul\":8722:8731 */\n dup3\n /* \"#utility.yul\":8717:8720 */\n dup5\n /* \"#utility.yul\":8713:8732 */\n sub\n /* \"#utility.yul\":8709:8741 */\n slt\n /* \"#utility.yul\":8706:8825 */\n iszero\n tag_181\n jumpi\n /* \"#utility.yul\":8744:8823 */\n tag_182\n tag_62\n jump\t// in\ntag_182:\n /* \"#utility.yul\":8706:8825 */\ntag_181:\n /* \"#utility.yul\":8843:8866 */\n tag_183\n /* \"#utility.yul\":8859:8865 */\n 0x0120\n /* \"#utility.yul\":8843:8866 */\n tag_46\n jump\t// in\ntag_183:\n /* \"#utility.yul\":8834:8866 */\n swap1\n pop\n /* \"#utility.yul\":8946:8947 */\n 0x00\n /* \"#utility.yul\":8935:8944 */\n dup3\n /* \"#utility.yul\":8931:8948 */\n add\n /* \"#utility.yul\":8925:8949 */\n mload\n /* \"#utility.yul\":8976:8994 */\n 0xffffffffffffffff\n /* \"#utility.yul\":8968:8974 */\n dup2\n /* \"#utility.yul\":8965:8995 */\n gt\n /* \"#utility.yul\":8962:9079 */\n iszero\n tag_184\n jumpi\n /* \"#utility.yul\":8998:9077 */\n tag_185\n tag_63\n jump\t// in\ntag_185:\n /* \"#utility.yul\":8962:9079 */\ntag_184:\n /* \"#utility.yul\":9118:9188 */\n tag_186\n /* \"#utility.yul\":9184:9187 */\n dup5\n /* \"#utility.yul\":9175:9181 */\n dup3\n /* \"#utility.yul\":9164:9173 */\n dup6\n /* \"#utility.yul\":9160:9182 */\n add\n /* \"#utility.yul\":9118:9188 */\n tag_50\n jump\t// in\ntag_186:\n /* \"#utility.yul\":9111:9115 */\n 0x00\n /* \"#utility.yul\":9104:9109 */\n dup4\n /* \"#utility.yul\":9100:9116 */\n add\n /* \"#utility.yul\":9093:9189 */\n mstore\n /* \"#utility.yul\":8876:9200 */\n pop\n /* \"#utility.yul\":9266:9268 */\n 0x20\n /* \"#utility.yul\":9307:9367 */\n tag_187\n /* \"#utility.yul\":9363:9366 */\n dup5\n /* \"#utility.yul\":9354:9360 */\n dup3\n /* \"#utility.yul\":9343:9352 */\n dup6\n /* \"#utility.yul\":9339:9361 */\n add\n /* \"#utility.yul\":9307:9367 */\n tag_66\n jump\t// in\ntag_187:\n /* \"#utility.yul\":9300:9304 */\n 0x20\n /* \"#utility.yul\":9293:9298 */\n dup4\n /* \"#utility.yul\":9289:9305 */\n add\n /* \"#utility.yul\":9282:9368 */\n mstore\n /* \"#utility.yul\":9210:9379 */\n pop\n /* \"#utility.yul\":9449:9451 */\n 0x40\n /* \"#utility.yul\":9490:9550 */\n tag_188\n /* \"#utility.yul\":9546:9549 */\n dup5\n /* \"#utility.yul\":9537:9543 */\n dup3\n /* \"#utility.yul\":9526:9535 */\n dup6\n /* \"#utility.yul\":9522:9544 */\n add\n /* \"#utility.yul\":9490:9550 */\n tag_66\n jump\t// in\ntag_188:\n /* \"#utility.yul\":9483:9487 */\n 0x40\n /* \"#utility.yul\":9476:9481 */\n dup4\n /* \"#utility.yul\":9472:9488 */\n add\n /* \"#utility.yul\":9465:9551 */\n mstore\n /* \"#utility.yul\":9389:9562 */\n pop\n /* \"#utility.yul\":9630:9632 */\n 0x60\n /* \"#utility.yul\":9671:9731 */\n tag_189\n /* \"#utility.yul\":9727:9730 */\n dup5\n /* \"#utility.yul\":9718:9724 */\n dup3\n /* \"#utility.yul\":9707:9716 */\n dup6\n /* \"#utility.yul\":9703:9725 */\n add\n /* \"#utility.yul\":9671:9731 */\n tag_66\n jump\t// in\ntag_189:\n /* \"#utility.yul\":9664:9668 */\n 0x60\n /* \"#utility.yul\":9657:9662 */\n dup4\n /* \"#utility.yul\":9653:9669 */\n add\n /* \"#utility.yul\":9646:9732 */\n mstore\n /* \"#utility.yul\":9572:9743 */\n pop\n /* \"#utility.yul\":9812:9815 */\n 0x80\n /* \"#utility.yul\":9854:9914 */\n tag_190\n /* \"#utility.yul\":9910:9913 */\n dup5\n /* \"#utility.yul\":9901:9907 */\n dup3\n /* \"#utility.yul\":9890:9899 */\n dup6\n /* \"#utility.yul\":9886:9908 */\n add\n /* \"#utility.yul\":9854:9914 */\n tag_66\n jump\t// in\ntag_190:\n /* \"#utility.yul\":9847:9851 */\n 0x80\n /* \"#utility.yul\":9840:9845 */\n dup4\n /* \"#utility.yul\":9836:9852 */\n add\n /* \"#utility.yul\":9829:9915 */\n mstore\n /* \"#utility.yul\":9753:9926 */\n pop\n /* \"#utility.yul\":9994:9997 */\n 0xa0\n /* \"#utility.yul\":10036:10096 */\n tag_191\n /* \"#utility.yul\":10092:10095 */\n dup5\n /* \"#utility.yul\":10083:10089 */\n dup3\n /* \"#utility.yul\":10072:10081 */\n dup6\n /* \"#utility.yul\":10068:10090 */\n add\n /* \"#utility.yul\":10036:10096 */\n tag_66\n jump\t// in\ntag_191:\n /* \"#utility.yul\":10029:10033 */\n 0xa0\n /* \"#utility.yul\":10022:10027 */\n dup4\n /* \"#utility.yul\":10018:10034 */\n add\n /* \"#utility.yul\":10011:10097 */\n mstore\n /* \"#utility.yul\":9936:10108 */\n pop\n /* \"#utility.yul\":10181:10184 */\n 0xc0\n /* \"#utility.yul\":10223:10283 */\n tag_192\n /* \"#utility.yul\":10279:10282 */\n dup5\n /* \"#utility.yul\":10270:10276 */\n dup3\n /* \"#utility.yul\":10259:10268 */\n dup6\n /* \"#utility.yul\":10255:10277 */\n add\n /* \"#utility.yul\":10223:10283 */\n tag_66\n jump\t// in\ntag_192:\n /* \"#utility.yul\":10216:10220 */\n 0xc0\n /* \"#utility.yul\":10209:10214 */\n dup4\n /* \"#utility.yul\":10205:10221 */\n add\n /* \"#utility.yul\":10198:10284 */\n mstore\n /* \"#utility.yul\":10118:10295 */\n pop\n /* \"#utility.yul\":10382:10385 */\n 0xe0\n /* \"#utility.yul\":10371:10380 */\n dup3\n /* \"#utility.yul\":10367:10386 */\n add\n /* \"#utility.yul\":10361:10387 */\n mload\n /* \"#utility.yul\":10414:10432 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10406:10412 */\n dup2\n /* \"#utility.yul\":10403:10433 */\n gt\n /* \"#utility.yul\":10400:10517 */\n iszero\n tag_193\n jumpi\n /* \"#utility.yul\":10436:10515 */\n tag_194\n tag_63\n jump\t// in\ntag_194:\n /* \"#utility.yul\":10400:10517 */\ntag_193:\n /* \"#utility.yul\":10556:10625 */\n tag_195\n /* \"#utility.yul\":10621:10624 */\n dup5\n /* \"#utility.yul\":10612:10618 */\n dup3\n /* \"#utility.yul\":10601:10610 */\n dup6\n /* \"#utility.yul\":10597:10619 */\n add\n /* \"#utility.yul\":10556:10625 */\n tag_69\n jump\t// in\ntag_195:\n /* \"#utility.yul\":10549:10553 */\n 0xe0\n /* \"#utility.yul\":10542:10547 */\n dup4\n /* \"#utility.yul\":10538:10554 */\n add\n /* \"#utility.yul\":10531:10626 */\n mstore\n /* \"#utility.yul\":10305:10637 */\n pop\n /* \"#utility.yul\":10723:10726 */\n 0x0100\n /* \"#utility.yul\":10712:10721 */\n dup3\n /* \"#utility.yul\":10708:10727 */\n add\n /* \"#utility.yul\":10702:10728 */\n mload\n /* \"#utility.yul\":10755:10773 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10747:10753 */\n dup2\n /* \"#utility.yul\":10744:10774 */\n gt\n /* \"#utility.yul\":10741:10858 */\n iszero\n tag_196\n jumpi\n /* \"#utility.yul\":10777:10856 */\n tag_197\n tag_63\n jump\t// in\ntag_197:\n /* \"#utility.yul\":10741:10858 */\ntag_196:\n /* \"#utility.yul\":10899:10968 */\n tag_198\n /* \"#utility.yul\":10964:10967 */\n dup5\n /* \"#utility.yul\":10955:10961 */\n dup3\n /* \"#utility.yul\":10944:10953 */\n dup6\n /* \"#utility.yul\":10940:10962 */\n add\n /* \"#utility.yul\":10899:10968 */\n tag_69\n jump\t// in\ntag_198:\n /* \"#utility.yul\":10890:10896 */\n 0x0100\n /* \"#utility.yul\":10883:10888 */\n dup4\n /* \"#utility.yul\":10879:10897 */\n add\n /* \"#utility.yul\":10872:10969 */\n mstore\n /* \"#utility.yul\":10647:10980 */\n pop\n /* \"#utility.yul\":8604:10987 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10993:11549 */\ntag_27:\n /* \"#utility.yul\":11089:11095 */\n 0x00\n /* \"#utility.yul\":11138:11140 */\n 0x20\n /* \"#utility.yul\":11126:11135 */\n dup3\n /* \"#utility.yul\":11117:11124 */\n dup5\n /* \"#utility.yul\":11113:11136 */\n sub\n /* \"#utility.yul\":11109:11141 */\n slt\n /* \"#utility.yul\":11106:11225 */\n iszero\n tag_200\n jumpi\n /* \"#utility.yul\":11144:11223 */\n tag_201\n tag_39\n jump\t// in\ntag_201:\n /* \"#utility.yul\":11106:11225 */\ntag_200:\n /* \"#utility.yul\":11285:11286 */\n 0x00\n /* \"#utility.yul\":11274:11283 */\n dup3\n /* \"#utility.yul\":11270:11287 */\n add\n /* \"#utility.yul\":11264:11288 */\n mload\n /* \"#utility.yul\":11315:11333 */\n 0xffffffffffffffff\n /* \"#utility.yul\":11307:11313 */\n dup2\n /* \"#utility.yul\":11304:11334 */\n gt\n /* \"#utility.yul\":11301:11418 */\n iszero\n tag_202\n jumpi\n /* \"#utility.yul\":11337:11416 */\n tag_203\n tag_40\n jump\t// in\ntag_203:\n /* \"#utility.yul\":11301:11418 */\ntag_202:\n /* \"#utility.yul\":11442:11532 */\n tag_204\n /* \"#utility.yul\":11524:11531 */\n dup5\n /* \"#utility.yul\":11515:11521 */\n dup3\n /* \"#utility.yul\":11504:11513 */\n dup6\n /* \"#utility.yul\":11500:11522 */\n add\n /* \"#utility.yul\":11442:11532 */\n tag_70\n jump\t// in\ntag_204:\n /* \"#utility.yul\":11432:11532 */\n swap2\n pop\n /* \"#utility.yul\":11235:11542 */\n pop\n /* \"#utility.yul\":10993:11549 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11555:11654 */\ntag_71:\n /* \"#utility.yul\":11607:11613 */\n 0x00\n /* \"#utility.yul\":11641:11646 */\n dup2\n /* \"#utility.yul\":11635:11647 */\n mload\n /* \"#utility.yul\":11625:11647 */\n swap1\n pop\n /* \"#utility.yul\":11555:11654 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":11660:11808 */\ntag_72:\n /* \"#utility.yul\":11762:11773 */\n 0x00\n /* \"#utility.yul\":11799:11802 */\n dup2\n /* \"#utility.yul\":11784:11802 */\n swap1\n pop\n /* \"#utility.yul\":11660:11808 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11814:12204 */\ntag_73:\n /* \"#utility.yul\":11920:11923 */\n 0x00\n /* \"#utility.yul\":11948:11987 */\n tag_208\n /* \"#utility.yul\":11981:11986 */\n dup3\n /* \"#utility.yul\":11948:11987 */\n tag_71\n jump\t// in\ntag_208:\n /* \"#utility.yul\":12003:12092 */\n tag_209\n /* \"#utility.yul\":12085:12091 */\n dup2\n /* \"#utility.yul\":12080:12083 */\n dup6\n /* \"#utility.yul\":12003:12092 */\n tag_72\n jump\t// in\ntag_209:\n /* \"#utility.yul\":11996:12092 */\n swap4\n pop\n /* \"#utility.yul\":12101:12166 */\n tag_210\n /* \"#utility.yul\":12159:12165 */\n dup2\n /* \"#utility.yul\":12154:12157 */\n dup6\n /* \"#utility.yul\":12147:12151 */\n 0x20\n /* \"#utility.yul\":12140:12145 */\n dup7\n /* \"#utility.yul\":12136:12152 */\n add\n /* \"#utility.yul\":12101:12166 */\n tag_48\n jump\t// in\ntag_210:\n /* \"#utility.yul\":12191:12197 */\n dup1\n /* \"#utility.yul\":12186:12189 */\n dup5\n /* \"#utility.yul\":12182:12198 */\n add\n /* \"#utility.yul\":12175:12198 */\n swap2\n pop\n /* \"#utility.yul\":11924:12204 */\n pop\n /* \"#utility.yul\":11814:12204 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12210:12485 */\ntag_29:\n /* \"#utility.yul\":12342:12345 */\n 0x00\n /* \"#utility.yul\":12364:12459 */\n tag_212\n /* \"#utility.yul\":12455:12458 */\n dup3\n /* \"#utility.yul\":12446:12452 */\n dup5\n /* \"#utility.yul\":12364:12459 */\n tag_73\n jump\t// in\ntag_212:\n /* \"#utility.yul\":12357:12459 */\n swap2\n pop\n /* \"#utility.yul\":12476:12479 */\n dup2\n /* \"#utility.yul\":12469:12479 */\n swap1\n pop\n /* \"#utility.yul\":12210:12485 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12491:12671 */\ntag_74:\n /* \"#utility.yul\":12539:12616 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":12536:12537 */\n 0x00\n /* \"#utility.yul\":12529:12617 */\n mstore\n /* \"#utility.yul\":12636:12640 */\n 0x11\n /* \"#utility.yul\":12633:12634 */\n 0x04\n /* \"#utility.yul\":12626:12641 */\n mstore\n /* \"#utility.yul\":12660:12664 */\n 0x24\n /* \"#utility.yul\":12657:12658 */\n 0x00\n /* \"#utility.yul\":12650:12665 */\n revert\n /* \"#utility.yul\":12677:12910 */\ntag_35:\n /* \"#utility.yul\":12716:12719 */\n 0x00\n /* \"#utility.yul\":12739:12763 */\n tag_215\n /* \"#utility.yul\":12757:12762 */\n dup3\n /* \"#utility.yul\":12739:12763 */\n tag_64\n jump\t// in\ntag_215:\n /* \"#utility.yul\":12730:12763 */\n swap2\n pop\n /* \"#utility.yul\":12785:12851 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":12778:12783 */\n dup3\n /* \"#utility.yul\":12775:12852 */\n sub\n /* \"#utility.yul\":12772:12875 */\n tag_216\n jumpi\n /* \"#utility.yul\":12855:12873 */\n tag_217\n tag_74\n jump\t// in\ntag_217:\n /* \"#utility.yul\":12772:12875 */\ntag_216:\n /* \"#utility.yul\":12902:12903 */\n 0x01\n /* \"#utility.yul\":12895:12900 */\n dup3\n /* \"#utility.yul\":12891:12904 */\n add\n /* \"#utility.yul\":12884:12904 */\n swap1\n pop\n /* \"#utility.yul\":12677:12910 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":12916:13085 */\ntag_75:\n /* \"#utility.yul\":13000:13011 */\n 0x00\n /* \"#utility.yul\":13034:13040 */\n dup3\n /* \"#utility.yul\":13029:13032 */\n dup3\n /* \"#utility.yul\":13022:13041 */\n mstore\n /* \"#utility.yul\":13074:13078 */\n 0x20\n /* \"#utility.yul\":13069:13072 */\n dup3\n /* \"#utility.yul\":13065:13079 */\n add\n /* \"#utility.yul\":13050:13079 */\n swap1\n pop\n /* \"#utility.yul\":12916:13085 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":13091:13260 */\ntag_76:\n /* \"#utility.yul\":13231:13252 */\n 0x436f756c646e27742066696e6420747261636b00000000000000000000000000\n /* \"#utility.yul\":13227:13228 */\n 0x00\n /* \"#utility.yul\":13219:13225 */\n dup3\n /* \"#utility.yul\":13215:13229 */\n add\n /* \"#utility.yul\":13208:13253 */\n mstore\n /* \"#utility.yul\":13091:13260 */\n pop\n jump\t// out\n /* \"#utility.yul\":13266:13632 */\ntag_77:\n /* \"#utility.yul\":13408:13411 */\n 0x00\n /* \"#utility.yul\":13429:13496 */\n tag_221\n /* \"#utility.yul\":13493:13495 */\n 0x13\n /* \"#utility.yul\":13488:13491 */\n dup4\n /* \"#utility.yul\":13429:13496 */\n tag_75\n jump\t// in\ntag_221:\n /* \"#utility.yul\":13422:13496 */\n swap2\n pop\n /* \"#utility.yul\":13505:13598 */\n tag_222\n /* \"#utility.yul\":13594:13597 */\n dup3\n /* \"#utility.yul\":13505:13598 */\n tag_76\n jump\t// in\ntag_222:\n /* \"#utility.yul\":13623:13625 */\n 0x20\n /* \"#utility.yul\":13618:13621 */\n dup3\n /* \"#utility.yul\":13614:13626 */\n add\n /* \"#utility.yul\":13607:13626 */\n swap1\n pop\n /* \"#utility.yul\":13266:13632 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":13638:14057 */\ntag_37:\n /* \"#utility.yul\":13804:13808 */\n 0x00\n /* \"#utility.yul\":13842:13844 */\n 0x20\n /* \"#utility.yul\":13831:13840 */\n dup3\n /* \"#utility.yul\":13827:13845 */\n add\n /* \"#utility.yul\":13819:13845 */\n swap1\n pop\n /* \"#utility.yul\":13891:13900 */\n dup2\n /* \"#utility.yul\":13885:13889 */\n dup2\n /* \"#utility.yul\":13881:13901 */\n sub\n /* \"#utility.yul\":13877:13878 */\n 0x00\n /* \"#utility.yul\":13866:13875 */\n dup4\n /* \"#utility.yul\":13862:13879 */\n add\n /* \"#utility.yul\":13855:13902 */\n mstore\n /* \"#utility.yul\":13919:14050 */\n tag_224\n /* \"#utility.yul\":14045:14049 */\n dup2\n /* \"#utility.yul\":13919:14050 */\n tag_77\n jump\t// in\ntag_224:\n /* \"#utility.yul\":13911:14050 */\n swap1\n pop\n /* \"#utility.yul\":13638:14057 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"main.sol\":3270:3562 contract ReferendaAutoUpgradeDemoV1 is ReferendaAutoUpgradeDemo {... */\ntag_10:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"main.sol\":3270:3562 contract ReferendaAutoUpgradeDemoV1 is ReferendaAutoUpgradeDemo {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x54fd4d50\n eq\n tag_3\n jumpi\n dup1\n 0x6d72ffb6\n eq\n tag_4\n jumpi\n dup1\n 0x79688e99\n eq\n tag_5\n jumpi\n dup1\n 0x920e0c03\n eq\n tag_6\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"main.sol\":3484:3560 function version() external pure returns (uint256) {... */\n tag_3:\n tag_7\n tag_8\n jump\t// in\n tag_7:\n mload(0x40)\n tag_9\n swap2\n swap1\n tag_10\n jump\t// in\n tag_9:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":476:501 uint16 public rootTrackId */\n tag_4:\n tag_11\n tag_12\n jump\t// in\n tag_11:\n mload(0x40)\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n tag_5:\n tag_15\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_16\n swap2\n swap1\n tag_17\n jump\t// in\n tag_16:\n tag_18\n jump\t// in\n tag_15:\n stop\n /* \"main.sol\":609:642 bytes2 public setStorageCallIndex */\n tag_6:\n tag_19\n tag_20\n jump\t// in\n tag_19:\n mload(0x40)\n tag_21\n swap2\n swap1\n tag_22\n jump\t// in\n tag_21:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":3484:3560 function version() external pure returns (uint256) {... */\n tag_8:\n /* \"main.sol\":3526:3533 uint256 */\n 0x00\n /* \"main.sol\":3552:3553 1 */\n 0x01\n /* \"main.sol\":3545:3553 return 1 */\n swap1\n pop\n /* \"main.sol\":3484:3560 function version() external pure returns (uint256) {... */\n swap1\n jump\t// out\n /* \"main.sol\":476:501 uint16 public rootTrackId */\n tag_12:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n dup2\n jump\t// out\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n tag_18:\n /* \"main.sol\":2300:2327 bytes memory setStorageCall */\n 0x00\n /* \"main.sol\":2330:2436 SubstrateTools.buildSetStorageProposal(... */\n tag_25\n /* \"main.sol\":2382:2400 contractStorageKey */\n dup3\n /* \"main.sol\":2414:2426 contractCode */\n dup5\n /* \"main.sol\":2330:2368 SubstrateTools.buildSetStorageProposal */\n tag_26\n /* \"main.sol\":2330:2436 SubstrateTools.buildSetStorageProposal(... */\n jump\t// in\n tag_25:\n /* \"main.sol\":2300:2436 bytes memory setStorageCall = SubstrateTools.buildSetStorageProposal(... */\n swap1\n pop\n /* \"main.sol\":2446:2466 bytes32 preimageHash */\n 0x00\n /* \"precompiles/preimage/Preimage.sol\":145:187 */\n 0x0813\n /* \"main.sol\":2469:2499 PREIMAGE_CONTRACT.notePreimage */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xcb00f603\n /* \"main.sol\":2500:2514 setStorageCall */\n dup4\n /* \"main.sol\":2469:2515 PREIMAGE_CONTRACT.notePreimage(setStorageCall) */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\n tag_27:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_30\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_30:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_31\n swap2\n swap1\n tag_32\n jump\t// in\n tag_31:\n /* \"main.sol\":2446:2515 bytes32 preimageHash = PREIMAGE_CONTRACT.notePreimage(setStorageCall) */\n swap1\n pop\n /* \"main.sol\":2658:2675 uint32 blockCount */\n 0x00\n /* \"main.sol\":2678:2679 1 */\n 0x01\n /* \"main.sol\":2658:2679 uint32 blockCount = 1 */\n swap1\n pop\n /* \"main.sol\":2689:2708 uint32 referendumId */\n 0x00\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":2711:2741 REFERENDA_CONTRACT.submitAfter */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x5b2479db\n /* \"main.sol\":2755:2766 rootTrackId */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n /* \"main.sol\":2780:2792 preimageHash */\n dup6\n /* \"main.sol\":2813:2827 setStorageCall */\n dup8\n /* \"main.sol\":2813:2834 setStorageCall.length */\n mload\n /* \"main.sol\":2849:2859 blockCount */\n dup7\n /* \"main.sol\":2711:2869 REFERENDA_CONTRACT.submitAfter(... */\n mload(0x40)\n dup6\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_33\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_34\n jump\t// in\n tag_33:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_36\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_36:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_37\n swap2\n swap1\n tag_38\n jump\t// in\n tag_37:\n /* \"main.sol\":2689:2869 uint32 referendumId = REFERENDA_CONTRACT.submitAfter(... */\n swap1\n pop\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":2919:2958 REFERENDA_CONTRACT.placeDecisionDeposit */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x245ce18d\n /* \"main.sol\":2959:2971 referendumId */\n dup3\n /* \"main.sol\":2919:2972 REFERENDA_CONTRACT.placeDecisionDeposit(referendumId) */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_39\n swap2\n swap1\n tag_40\n jump\t// in\n tag_39:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_41\n jumpi\n 0x00\n dup1\n revert\n tag_41:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_43\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_43:\n pop\n pop\n pop\n pop\n /* \"precompiles/conviction-voting/ConvictionVoting.sol\":163:205 */\n 0x0812\n /* \"main.sol\":3019:3053 CONVICTION_VOTING_CONTRACT.voteYes */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xda9df518\n /* \"main.sol\":3067:3079 referendumId */\n dup3\n /* \"main.sol\":3093:3114 address(this).balance */\n selfbalance\n /* \"main.sol\":3171:3207 ConvictionVoting.Conviction.Locked1x */\n 0x01\n /* \"main.sol\":3019:3217 CONVICTION_VOTING_CONTRACT.voteYes(... */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_44\n swap4\n swap3\n swap2\n swap1\n tag_45\n jump\t// in\n tag_44:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_46\n jumpi\n 0x00\n dup1\n revert\n tag_46:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_48\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_48:\n pop\n pop\n pop\n pop\n /* \"main.sol\":2290:3224 {... */\n pop\n pop\n pop\n pop\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n pop\n pop\n jump\t// out\n /* \"main.sol\":609:642 bytes2 public setStorageCallIndex */\n tag_20:\n 0x00\n 0x02\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xf0\n shl\n dup2\n jump\t// out\n /* \"SubstrateTools.sol\":1402:1812 */\n tag_26:\n /* \"SubstrateTools.sol\":1532:1544 */\n 0x60\n /* \"SubstrateTools.sol\":1605:1623 */\n 0x04000000000000000000000000000000000000000000000000000000000000\n /* \"SubstrateTools.sol\":1681:1686 */\n 0x04\n /* \"SubstrateTools.sol\":1668:1688 */\n 0xf8\n shl\n /* \"SubstrateTools.sol\":1746:1791 */\n tag_50\n /* \"SubstrateTools.sol\":1766:1776 */\n dup6\n /* \"SubstrateTools.sol\":1778:1790 */\n dup6\n /* \"SubstrateTools.sol\":1746:1765 */\n tag_51\n /* \"SubstrateTools.sol\":1746:1791 */\n jump\t// in\n tag_50:\n /* \"SubstrateTools.sol\":1575:1805 */\n add(0x20, mload(0x40))\n tag_52\n swap4\n swap3\n swap2\n swap1\n tag_53\n jump\t// in\n tag_52:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":1556:1805 */\n swap1\n pop\n /* \"SubstrateTools.sol\":1402:1812 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":858:1140 */\n tag_51:\n /* \"SubstrateTools.sol\":972:984 */\n 0x60\n /* \"SubstrateTools.sol\":1049:1074 */\n tag_55\n /* \"SubstrateTools.sol\":1070:1073 */\n dup4\n /* \"SubstrateTools.sol\":1049:1069 */\n tag_56\n /* \"SubstrateTools.sol\":1049:1074 */\n jump\t// in\n tag_55:\n /* \"SubstrateTools.sol\":1092:1119 */\n tag_57\n /* \"SubstrateTools.sol\":1113:1118 */\n dup4\n /* \"SubstrateTools.sol\":1092:1112 */\n tag_56\n /* \"SubstrateTools.sol\":1092:1119 */\n jump\t// in\n tag_57:\n /* \"SubstrateTools.sol\":1019:1133 */\n add(0x20, mload(0x40))\n tag_58\n swap3\n swap2\n swap1\n tag_59\n jump\t// in\n tag_58:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":1000:1133 */\n swap1\n pop\n /* \"SubstrateTools.sol\":858:1140 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":298:711 */\n tag_56:\n /* \"SubstrateTools.sol\":394:406 */\n 0x60\n /* \"SubstrateTools.sol\":453:466 */\n 0x00\n /* \"SubstrateTools.sol\":495:496 */\n 0x01\n /* \"SubstrateTools.sol\":490:491 */\n 0x04\n /* \"SubstrateTools.sol\":476:480 */\n dup5\n /* \"SubstrateTools.sol\":476:487 */\n mload\n /* \"SubstrateTools.sol\":476:491 */\n tag_61\n swap2\n swap1\n tag_62\n jump\t// in\n tag_61:\n /* \"SubstrateTools.sol\":469:496 */\n tag_63\n swap2\n swap1\n tag_64\n jump\t// in\n tag_63:\n /* \"SubstrateTools.sol\":453:496 */\n swap1\n pop\n /* \"SubstrateTools.sol\":542:563 */\n 0x00\n /* \"SubstrateTools.sol\":594:595 */\n 0x08\n /* \"SubstrateTools.sol\":584:590 */\n dup3\n /* \"SubstrateTools.sol\":584:595 */\n 0xffff\n and\n swap1\n shl\n /* \"SubstrateTools.sol\":578:579 */\n 0x08\n /* \"SubstrateTools.sol\":568:574 */\n dup4\n /* \"SubstrateTools.sol\":568:579 */\n 0xffff\n and\n swap1\n shr\n /* \"SubstrateTools.sol\":567:596 */\n or\n /* \"SubstrateTools.sol\":542:597 */\n swap1\n pop\n /* \"SubstrateTools.sol\":682:696 */\n dup1\n /* \"SubstrateTools.sol\":675:697 */\n 0xf0\n shl\n /* \"SubstrateTools.sol\":699:703 */\n dup5\n /* \"SubstrateTools.sol\":662:704 */\n add(0x20, mload(0x40))\n tag_65\n swap3\n swap2\n swap1\n tag_66\n jump\t// in\n tag_65:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":655:704 */\n swap3\n pop\n pop\n pop\n /* \"SubstrateTools.sol\":298:711 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:84 */\n tag_67:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":73:78 */\n dup2\n /* \"#utility.yul\":62:78 */\n swap1\n pop\n /* \"#utility.yul\":7:84 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":90:208 */\n tag_68:\n /* \"#utility.yul\":177:201 */\n tag_114\n /* \"#utility.yul\":195:200 */\n dup2\n /* \"#utility.yul\":177:201 */\n tag_67\n jump\t// in\n tag_114:\n /* \"#utility.yul\":172:175 */\n dup3\n /* \"#utility.yul\":165:202 */\n mstore\n /* \"#utility.yul\":90:208 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":214:436 */\n tag_10:\n /* \"#utility.yul\":307:311 */\n 0x00\n /* \"#utility.yul\":345:347 */\n 0x20\n /* \"#utility.yul\":334:343 */\n dup3\n /* \"#utility.yul\":330:348 */\n add\n /* \"#utility.yul\":322:348 */\n swap1\n pop\n /* \"#utility.yul\":358:429 */\n tag_116\n /* \"#utility.yul\":426:427 */\n 0x00\n /* \"#utility.yul\":415:424 */\n dup4\n /* \"#utility.yul\":411:428 */\n add\n /* \"#utility.yul\":402:408 */\n dup5\n /* \"#utility.yul\":358:429 */\n tag_68\n jump\t// in\n tag_116:\n /* \"#utility.yul\":214:436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":442:531 */\n tag_69:\n /* \"#utility.yul\":478:485 */\n 0x00\n /* \"#utility.yul\":518:524 */\n 0xffff\n /* \"#utility.yul\":511:516 */\n dup3\n /* \"#utility.yul\":507:525 */\n and\n /* \"#utility.yul\":496:525 */\n swap1\n pop\n /* \"#utility.yul\":442:531 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":537:652 */\n tag_70:\n /* \"#utility.yul\":622:645 */\n tag_119\n /* \"#utility.yul\":639:644 */\n dup2\n /* \"#utility.yul\":622:645 */\n tag_69\n jump\t// in\n tag_119:\n /* \"#utility.yul\":617:620 */\n dup3\n /* \"#utility.yul\":610:646 */\n mstore\n /* \"#utility.yul\":537:652 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":658:876 */\n tag_14:\n /* \"#utility.yul\":749:753 */\n 0x00\n /* \"#utility.yul\":787:789 */\n 0x20\n /* \"#utility.yul\":776:785 */\n dup3\n /* \"#utility.yul\":772:790 */\n add\n /* \"#utility.yul\":764:790 */\n swap1\n pop\n /* \"#utility.yul\":800:869 */\n tag_121\n /* \"#utility.yul\":866:867 */\n 0x00\n /* \"#utility.yul\":855:864 */\n dup4\n /* \"#utility.yul\":851:868 */\n add\n /* \"#utility.yul\":842:848 */\n dup5\n /* \"#utility.yul\":800:869 */\n tag_70\n jump\t// in\n tag_121:\n /* \"#utility.yul\":658:876 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":882:957 */\n tag_71:\n /* \"#utility.yul\":915:921 */\n 0x00\n /* \"#utility.yul\":948:950 */\n 0x40\n /* \"#utility.yul\":942:951 */\n mload\n /* \"#utility.yul\":932:951 */\n swap1\n pop\n /* \"#utility.yul\":882:957 */\n swap1\n jump\t// out\n /* \"#utility.yul\":963:1080 */\n tag_72:\n /* \"#utility.yul\":1072:1073 */\n 0x00\n /* \"#utility.yul\":1069:1070 */\n dup1\n /* \"#utility.yul\":1062:1074 */\n revert\n /* \"#utility.yul\":1086:1203 */\n tag_73:\n /* \"#utility.yul\":1195:1196 */\n 0x00\n /* \"#utility.yul\":1192:1193 */\n dup1\n /* \"#utility.yul\":1185:1197 */\n revert\n /* \"#utility.yul\":1209:1326 */\n tag_74:\n /* \"#utility.yul\":1318:1319 */\n 0x00\n /* \"#utility.yul\":1315:1316 */\n dup1\n /* \"#utility.yul\":1308:1320 */\n revert\n /* \"#utility.yul\":1332:1449 */\n tag_75:\n /* \"#utility.yul\":1441:1442 */\n 0x00\n /* \"#utility.yul\":1438:1439 */\n dup1\n /* \"#utility.yul\":1431:1443 */\n revert\n /* \"#utility.yul\":1455:1557 */\n tag_76:\n /* \"#utility.yul\":1496:1502 */\n 0x00\n /* \"#utility.yul\":1547:1549 */\n 0x1f\n /* \"#utility.yul\":1543:1550 */\n not\n /* \"#utility.yul\":1538:1540 */\n 0x1f\n /* \"#utility.yul\":1531:1536 */\n dup4\n /* \"#utility.yul\":1527:1541 */\n add\n /* \"#utility.yul\":1523:1551 */\n and\n /* \"#utility.yul\":1513:1551 */\n swap1\n pop\n /* \"#utility.yul\":1455:1557 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1563:1743 */\n tag_77:\n /* \"#utility.yul\":1611:1688 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1608:1609 */\n 0x00\n /* \"#utility.yul\":1601:1689 */\n mstore\n /* \"#utility.yul\":1708:1712 */\n 0x41\n /* \"#utility.yul\":1705:1706 */\n 0x04\n /* \"#utility.yul\":1698:1713 */\n mstore\n /* \"#utility.yul\":1732:1736 */\n 0x24\n /* \"#utility.yul\":1729:1730 */\n 0x00\n /* \"#utility.yul\":1722:1737 */\n revert\n /* \"#utility.yul\":1749:2030 */\n tag_78:\n /* \"#utility.yul\":1832:1859 */\n tag_130\n /* \"#utility.yul\":1854:1858 */\n dup3\n /* \"#utility.yul\":1832:1859 */\n tag_76\n jump\t// in\n tag_130:\n /* \"#utility.yul\":1824:1830 */\n dup2\n /* \"#utility.yul\":1820:1860 */\n add\n /* \"#utility.yul\":1962:1968 */\n dup2\n /* \"#utility.yul\":1950:1960 */\n dup2\n /* \"#utility.yul\":1947:1969 */\n lt\n /* \"#utility.yul\":1926:1944 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1914:1924 */\n dup3\n /* \"#utility.yul\":1911:1945 */\n gt\n /* \"#utility.yul\":1908:1970 */\n or\n /* \"#utility.yul\":1905:1993 */\n iszero\n tag_131\n jumpi\n /* \"#utility.yul\":1973:1991 */\n tag_132\n tag_77\n jump\t// in\n tag_132:\n /* \"#utility.yul\":1905:1993 */\n tag_131:\n /* \"#utility.yul\":2013:2023 */\n dup1\n /* \"#utility.yul\":2009:2011 */\n 0x40\n /* \"#utility.yul\":2002:2024 */\n mstore\n /* \"#utility.yul\":1792:2030 */\n pop\n /* \"#utility.yul\":1749:2030 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2036:2165 */\n tag_79:\n /* \"#utility.yul\":2070:2076 */\n 0x00\n /* \"#utility.yul\":2097:2117 */\n tag_134\n tag_71\n jump\t// in\n tag_134:\n /* \"#utility.yul\":2087:2117 */\n swap1\n pop\n /* \"#utility.yul\":2126:2159 */\n tag_135\n /* \"#utility.yul\":2154:2158 */\n dup3\n /* \"#utility.yul\":2146:2152 */\n dup3\n /* \"#utility.yul\":2126:2159 */\n tag_78\n jump\t// in\n tag_135:\n /* \"#utility.yul\":2036:2165 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2171:2478 */\n tag_80:\n /* \"#utility.yul\":2232:2236 */\n 0x00\n /* \"#utility.yul\":2322:2340 */\n 0xffffffffffffffff\n /* \"#utility.yul\":2314:2320 */\n dup3\n /* \"#utility.yul\":2311:2341 */\n gt\n /* \"#utility.yul\":2308:2364 */\n iszero\n tag_137\n jumpi\n /* \"#utility.yul\":2344:2362 */\n tag_138\n tag_77\n jump\t// in\n tag_138:\n /* \"#utility.yul\":2308:2364 */\n tag_137:\n /* \"#utility.yul\":2382:2411 */\n tag_139\n /* \"#utility.yul\":2404:2410 */\n dup3\n /* \"#utility.yul\":2382:2411 */\n tag_76\n jump\t// in\n tag_139:\n /* \"#utility.yul\":2374:2411 */\n swap1\n pop\n /* \"#utility.yul\":2466:2470 */\n 0x20\n /* \"#utility.yul\":2460:2464 */\n dup2\n /* \"#utility.yul\":2456:2471 */\n add\n /* \"#utility.yul\":2448:2471 */\n swap1\n pop\n /* \"#utility.yul\":2171:2478 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2484:2630 */\n tag_81:\n /* \"#utility.yul\":2581:2587 */\n dup3\n /* \"#utility.yul\":2576:2579 */\n dup2\n /* \"#utility.yul\":2571:2574 */\n dup4\n /* \"#utility.yul\":2558:2588 */\n calldatacopy\n /* \"#utility.yul\":2622:2623 */\n 0x00\n /* \"#utility.yul\":2613:2619 */\n dup4\n /* \"#utility.yul\":2608:2611 */\n dup4\n /* \"#utility.yul\":2604:2620 */\n add\n /* \"#utility.yul\":2597:2624 */\n mstore\n /* \"#utility.yul\":2484:2630 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2636:3059 */\n tag_82:\n /* \"#utility.yul\":2713:2718 */\n 0x00\n /* \"#utility.yul\":2738:2803 */\n tag_142\n /* \"#utility.yul\":2754:2802 */\n tag_143\n /* \"#utility.yul\":2795:2801 */\n dup5\n /* \"#utility.yul\":2754:2802 */\n tag_80\n jump\t// in\n tag_143:\n /* \"#utility.yul\":2738:2803 */\n tag_79\n jump\t// in\n tag_142:\n /* \"#utility.yul\":2729:2803 */\n swap1\n pop\n /* \"#utility.yul\":2826:2832 */\n dup3\n /* \"#utility.yul\":2819:2824 */\n dup2\n /* \"#utility.yul\":2812:2833 */\n mstore\n /* \"#utility.yul\":2864:2868 */\n 0x20\n /* \"#utility.yul\":2857:2862 */\n dup2\n /* \"#utility.yul\":2853:2869 */\n add\n /* \"#utility.yul\":2902:2905 */\n dup5\n /* \"#utility.yul\":2893:2899 */\n dup5\n /* \"#utility.yul\":2888:2891 */\n dup5\n /* \"#utility.yul\":2884:2900 */\n add\n /* \"#utility.yul\":2881:2906 */\n gt\n /* \"#utility.yul\":2878:2990 */\n iszero\n tag_144\n jumpi\n /* \"#utility.yul\":2909:2988 */\n tag_145\n tag_75\n jump\t// in\n tag_145:\n /* \"#utility.yul\":2878:2990 */\n tag_144:\n /* \"#utility.yul\":2999:3053 */\n tag_146\n /* \"#utility.yul\":3046:3052 */\n dup5\n /* \"#utility.yul\":3041:3044 */\n dup3\n /* \"#utility.yul\":3036:3039 */\n dup6\n /* \"#utility.yul\":2999:3053 */\n tag_81\n jump\t// in\n tag_146:\n /* \"#utility.yul\":2719:3059 */\n pop\n /* \"#utility.yul\":2636:3059 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3078:3416 */\n tag_83:\n /* \"#utility.yul\":3133:3138 */\n 0x00\n /* \"#utility.yul\":3182:3185 */\n dup3\n /* \"#utility.yul\":3175:3179 */\n 0x1f\n /* \"#utility.yul\":3167:3173 */\n dup4\n /* \"#utility.yul\":3163:3180 */\n add\n /* \"#utility.yul\":3159:3186 */\n slt\n /* \"#utility.yul\":3149:3271 */\n tag_148\n jumpi\n /* \"#utility.yul\":3190:3269 */\n tag_149\n tag_74\n jump\t// in\n tag_149:\n /* \"#utility.yul\":3149:3271 */\n tag_148:\n /* \"#utility.yul\":3307:3313 */\n dup2\n /* \"#utility.yul\":3294:3314 */\n calldataload\n /* \"#utility.yul\":3332:3410 */\n tag_150\n /* \"#utility.yul\":3406:3409 */\n dup5\n /* \"#utility.yul\":3398:3404 */\n dup3\n /* \"#utility.yul\":3391:3395 */\n 0x20\n /* \"#utility.yul\":3383:3389 */\n dup7\n /* \"#utility.yul\":3379:3396 */\n add\n /* \"#utility.yul\":3332:3410 */\n tag_82\n jump\t// in\n tag_150:\n /* \"#utility.yul\":3323:3410 */\n swap2\n pop\n /* \"#utility.yul\":3139:3416 */\n pop\n /* \"#utility.yul\":3078:3416 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3422:4252 */\n tag_17:\n /* \"#utility.yul\":3508:3514 */\n 0x00\n /* \"#utility.yul\":3516:3522 */\n dup1\n /* \"#utility.yul\":3565:3567 */\n 0x40\n /* \"#utility.yul\":3553:3562 */\n dup4\n /* \"#utility.yul\":3544:3551 */\n dup6\n /* \"#utility.yul\":3540:3563 */\n sub\n /* \"#utility.yul\":3536:3568 */\n slt\n /* \"#utility.yul\":3533:3652 */\n iszero\n tag_152\n jumpi\n /* \"#utility.yul\":3571:3650 */\n tag_153\n tag_72\n jump\t// in\n tag_153:\n /* \"#utility.yul\":3533:3652 */\n tag_152:\n /* \"#utility.yul\":3719:3720 */\n 0x00\n /* \"#utility.yul\":3708:3717 */\n dup4\n /* \"#utility.yul\":3704:3721 */\n add\n /* \"#utility.yul\":3691:3722 */\n calldataload\n /* \"#utility.yul\":3749:3767 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3741:3747 */\n dup2\n /* \"#utility.yul\":3738:3768 */\n gt\n /* \"#utility.yul\":3735:3852 */\n iszero\n tag_154\n jumpi\n /* \"#utility.yul\":3771:3850 */\n tag_155\n tag_73\n jump\t// in\n tag_155:\n /* \"#utility.yul\":3735:3852 */\n tag_154:\n /* \"#utility.yul\":3876:3938 */\n tag_156\n /* \"#utility.yul\":3930:3937 */\n dup6\n /* \"#utility.yul\":3921:3927 */\n dup3\n /* \"#utility.yul\":3910:3919 */\n dup7\n /* \"#utility.yul\":3906:3928 */\n add\n /* \"#utility.yul\":3876:3938 */\n tag_83\n jump\t// in\n tag_156:\n /* \"#utility.yul\":3866:3938 */\n swap3\n pop\n /* \"#utility.yul\":3662:3948 */\n pop\n /* \"#utility.yul\":4015:4017 */\n 0x20\n /* \"#utility.yul\":4004:4013 */\n dup4\n /* \"#utility.yul\":4000:4018 */\n add\n /* \"#utility.yul\":3987:4019 */\n calldataload\n /* \"#utility.yul\":4046:4064 */\n 0xffffffffffffffff\n /* \"#utility.yul\":4038:4044 */\n dup2\n /* \"#utility.yul\":4035:4065 */\n gt\n /* \"#utility.yul\":4032:4149 */\n iszero\n tag_157\n jumpi\n /* \"#utility.yul\":4068:4147 */\n tag_158\n tag_73\n jump\t// in\n tag_158:\n /* \"#utility.yul\":4032:4149 */\n tag_157:\n /* \"#utility.yul\":4173:4235 */\n tag_159\n /* \"#utility.yul\":4227:4234 */\n dup6\n /* \"#utility.yul\":4218:4224 */\n dup3\n /* \"#utility.yul\":4207:4216 */\n dup7\n /* \"#utility.yul\":4203:4225 */\n add\n /* \"#utility.yul\":4173:4235 */\n tag_83\n jump\t// in\n tag_159:\n /* \"#utility.yul\":4163:4235 */\n swap2\n pop\n /* \"#utility.yul\":3958:4245 */\n pop\n /* \"#utility.yul\":3422:4252 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4258:4407 */\n tag_84:\n /* \"#utility.yul\":4294:4301 */\n 0x00\n /* \"#utility.yul\":4334:4400 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":4327:4332 */\n dup3\n /* \"#utility.yul\":4323:4401 */\n and\n /* \"#utility.yul\":4312:4401 */\n swap1\n pop\n /* \"#utility.yul\":4258:4407 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4413:4528 */\n tag_85:\n /* \"#utility.yul\":4498:4521 */\n tag_162\n /* \"#utility.yul\":4515:4520 */\n dup2\n /* \"#utility.yul\":4498:4521 */\n tag_84\n jump\t// in\n tag_162:\n /* \"#utility.yul\":4493:4496 */\n dup3\n /* \"#utility.yul\":4486:4522 */\n mstore\n /* \"#utility.yul\":4413:4528 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4534:4752 */\n tag_22:\n /* \"#utility.yul\":4625:4629 */\n 0x00\n /* \"#utility.yul\":4663:4665 */\n 0x20\n /* \"#utility.yul\":4652:4661 */\n dup3\n /* \"#utility.yul\":4648:4666 */\n add\n /* \"#utility.yul\":4640:4666 */\n swap1\n pop\n /* \"#utility.yul\":4676:4745 */\n tag_164\n /* \"#utility.yul\":4742:4743 */\n 0x00\n /* \"#utility.yul\":4731:4740 */\n dup4\n /* \"#utility.yul\":4727:4744 */\n add\n /* \"#utility.yul\":4718:4724 */\n dup5\n /* \"#utility.yul\":4676:4745 */\n tag_85\n jump\t// in\n tag_164:\n /* \"#utility.yul\":4534:4752 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4758:4856 */\n tag_86:\n /* \"#utility.yul\":4809:4815 */\n 0x00\n /* \"#utility.yul\":4843:4848 */\n dup2\n /* \"#utility.yul\":4837:4849 */\n mload\n /* \"#utility.yul\":4827:4849 */\n swap1\n pop\n /* \"#utility.yul\":4758:4856 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4862:5030 */\n tag_87:\n /* \"#utility.yul\":4945:4956 */\n 0x00\n /* \"#utility.yul\":4979:4985 */\n dup3\n /* \"#utility.yul\":4974:4977 */\n dup3\n /* \"#utility.yul\":4967:4986 */\n mstore\n /* \"#utility.yul\":5019:5023 */\n 0x20\n /* \"#utility.yul\":5014:5017 */\n dup3\n /* \"#utility.yul\":5010:5024 */\n add\n /* \"#utility.yul\":4995:5024 */\n swap1\n pop\n /* \"#utility.yul\":4862:5030 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5036:5282 */\n tag_88:\n /* \"#utility.yul\":5117:5118 */\n 0x00\n /* \"#utility.yul\":5127:5240 */\n tag_168:\n /* \"#utility.yul\":5141:5147 */\n dup4\n /* \"#utility.yul\":5138:5139 */\n dup2\n /* \"#utility.yul\":5135:5148 */\n lt\n /* \"#utility.yul\":5127:5240 */\n iszero\n tag_170\n jumpi\n /* \"#utility.yul\":5226:5227 */\n dup1\n /* \"#utility.yul\":5221:5224 */\n dup3\n /* \"#utility.yul\":5217:5228 */\n add\n /* \"#utility.yul\":5211:5229 */\n mload\n /* \"#utility.yul\":5207:5208 */\n dup2\n /* \"#utility.yul\":5202:5205 */\n dup5\n /* \"#utility.yul\":5198:5209 */\n add\n /* \"#utility.yul\":5191:5230 */\n mstore\n /* \"#utility.yul\":5163:5165 */\n 0x20\n /* \"#utility.yul\":5160:5161 */\n dup2\n /* \"#utility.yul\":5156:5166 */\n add\n /* \"#utility.yul\":5151:5166 */\n swap1\n pop\n /* \"#utility.yul\":5127:5240 */\n jump(tag_168)\n tag_170:\n /* \"#utility.yul\":5274:5275 */\n 0x00\n /* \"#utility.yul\":5265:5271 */\n dup5\n /* \"#utility.yul\":5260:5263 */\n dup5\n /* \"#utility.yul\":5256:5272 */\n add\n /* \"#utility.yul\":5249:5276 */\n mstore\n /* \"#utility.yul\":5098:5282 */\n pop\n /* \"#utility.yul\":5036:5282 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5288:5661 */\n tag_89:\n /* \"#utility.yul\":5374:5377 */\n 0x00\n /* \"#utility.yul\":5402:5440 */\n tag_172\n /* \"#utility.yul\":5434:5439 */\n dup3\n /* \"#utility.yul\":5402:5440 */\n tag_86\n jump\t// in\n tag_172:\n /* \"#utility.yul\":5456:5526 */\n tag_173\n /* \"#utility.yul\":5519:5525 */\n dup2\n /* \"#utility.yul\":5514:5517 */\n dup6\n /* \"#utility.yul\":5456:5526 */\n tag_87\n jump\t// in\n tag_173:\n /* \"#utility.yul\":5449:5526 */\n swap4\n pop\n /* \"#utility.yul\":5535:5600 */\n tag_174\n /* \"#utility.yul\":5593:5599 */\n dup2\n /* \"#utility.yul\":5588:5591 */\n dup6\n /* \"#utility.yul\":5581:5585 */\n 0x20\n /* \"#utility.yul\":5574:5579 */\n dup7\n /* \"#utility.yul\":5570:5586 */\n add\n /* \"#utility.yul\":5535:5600 */\n tag_88\n jump\t// in\n tag_174:\n /* \"#utility.yul\":5625:5654 */\n tag_175\n /* \"#utility.yul\":5647:5653 */\n dup2\n /* \"#utility.yul\":5625:5654 */\n tag_76\n jump\t// in\n tag_175:\n /* \"#utility.yul\":5620:5623 */\n dup5\n /* \"#utility.yul\":5616:5655 */\n add\n /* \"#utility.yul\":5609:5655 */\n swap2\n pop\n /* \"#utility.yul\":5378:5661 */\n pop\n /* \"#utility.yul\":5288:5661 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5667:5976 */\n tag_28:\n /* \"#utility.yul\":5778:5782 */\n 0x00\n /* \"#utility.yul\":5816:5818 */\n 0x20\n /* \"#utility.yul\":5805:5814 */\n dup3\n /* \"#utility.yul\":5801:5819 */\n add\n /* \"#utility.yul\":5793:5819 */\n swap1\n pop\n /* \"#utility.yul\":5865:5874 */\n dup2\n /* \"#utility.yul\":5859:5863 */\n dup2\n /* \"#utility.yul\":5855:5875 */\n sub\n /* \"#utility.yul\":5851:5852 */\n 0x00\n /* \"#utility.yul\":5840:5849 */\n dup4\n /* \"#utility.yul\":5836:5853 */\n add\n /* \"#utility.yul\":5829:5876 */\n mstore\n /* \"#utility.yul\":5893:5969 */\n tag_177\n /* \"#utility.yul\":5964:5968 */\n dup2\n /* \"#utility.yul\":5955:5961 */\n dup5\n /* \"#utility.yul\":5893:5969 */\n tag_89\n jump\t// in\n tag_177:\n /* \"#utility.yul\":5885:5969 */\n swap1\n pop\n /* \"#utility.yul\":5667:5976 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5982:6059 */\n tag_90:\n /* \"#utility.yul\":6019:6026 */\n 0x00\n /* \"#utility.yul\":6048:6053 */\n dup2\n /* \"#utility.yul\":6037:6053 */\n swap1\n pop\n /* \"#utility.yul\":5982:6059 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6065:6187 */\n tag_91:\n /* \"#utility.yul\":6138:6162 */\n tag_180\n /* \"#utility.yul\":6156:6161 */\n dup2\n /* \"#utility.yul\":6138:6162 */\n tag_90\n jump\t// in\n tag_180:\n /* \"#utility.yul\":6131:6136 */\n dup2\n /* \"#utility.yul\":6128:6163 */\n eq\n /* \"#utility.yul\":6118:6181 */\n tag_181\n jumpi\n /* \"#utility.yul\":6177:6178 */\n 0x00\n /* \"#utility.yul\":6174:6175 */\n dup1\n /* \"#utility.yul\":6167:6179 */\n revert\n /* \"#utility.yul\":6118:6181 */\n tag_181:\n /* \"#utility.yul\":6065:6187 */\n pop\n jump\t// out\n /* \"#utility.yul\":6193:6336 */\n tag_92:\n /* \"#utility.yul\":6250:6255 */\n 0x00\n /* \"#utility.yul\":6281:6287 */\n dup2\n /* \"#utility.yul\":6275:6288 */\n mload\n /* \"#utility.yul\":6266:6288 */\n swap1\n pop\n /* \"#utility.yul\":6297:6330 */\n tag_183\n /* \"#utility.yul\":6324:6329 */\n dup2\n /* \"#utility.yul\":6297:6330 */\n tag_91\n jump\t// in\n tag_183:\n /* \"#utility.yul\":6193:6336 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6342:6693 */\n tag_32:\n /* \"#utility.yul\":6412:6418 */\n 0x00\n /* \"#utility.yul\":6461:6463 */\n 0x20\n /* \"#utility.yul\":6449:6458 */\n dup3\n /* \"#utility.yul\":6440:6447 */\n dup5\n /* \"#utility.yul\":6436:6459 */\n sub\n /* \"#utility.yul\":6432:6464 */\n slt\n /* \"#utility.yul\":6429:6548 */\n iszero\n tag_185\n jumpi\n /* \"#utility.yul\":6467:6546 */\n tag_186\n tag_72\n jump\t// in\n tag_186:\n /* \"#utility.yul\":6429:6548 */\n tag_185:\n /* \"#utility.yul\":6587:6588 */\n 0x00\n /* \"#utility.yul\":6612:6676 */\n tag_187\n /* \"#utility.yul\":6668:6675 */\n dup5\n /* \"#utility.yul\":6659:6665 */\n dup3\n /* \"#utility.yul\":6648:6657 */\n dup6\n /* \"#utility.yul\":6644:6666 */\n add\n /* \"#utility.yul\":6612:6676 */\n tag_92\n jump\t// in\n tag_187:\n /* \"#utility.yul\":6602:6676 */\n swap2\n pop\n /* \"#utility.yul\":6558:6686 */\n pop\n /* \"#utility.yul\":6342:6693 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6699:6817 */\n tag_93:\n /* \"#utility.yul\":6786:6810 */\n tag_189\n /* \"#utility.yul\":6804:6809 */\n dup2\n /* \"#utility.yul\":6786:6810 */\n tag_90\n jump\t// in\n tag_189:\n /* \"#utility.yul\":6781:6784 */\n dup3\n /* \"#utility.yul\":6774:6811 */\n mstore\n /* \"#utility.yul\":6699:6817 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6823:6916 */\n tag_94:\n /* \"#utility.yul\":6859:6866 */\n 0x00\n /* \"#utility.yul\":6899:6909 */\n 0xffffffff\n /* \"#utility.yul\":6892:6897 */\n dup3\n /* \"#utility.yul\":6888:6910 */\n and\n /* \"#utility.yul\":6877:6910 */\n swap1\n pop\n /* \"#utility.yul\":6823:6916 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6922:7037 */\n tag_95:\n /* \"#utility.yul\":7007:7030 */\n tag_192\n /* \"#utility.yul\":7024:7029 */\n dup2\n /* \"#utility.yul\":7007:7030 */\n tag_94\n jump\t// in\n tag_192:\n /* \"#utility.yul\":7002:7005 */\n dup3\n /* \"#utility.yul\":6995:7031 */\n mstore\n /* \"#utility.yul\":6922:7037 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7043:7584 */\n tag_34:\n /* \"#utility.yul\":7214:7218 */\n 0x00\n /* \"#utility.yul\":7252:7255 */\n 0x80\n /* \"#utility.yul\":7241:7250 */\n dup3\n /* \"#utility.yul\":7237:7256 */\n add\n /* \"#utility.yul\":7229:7256 */\n swap1\n pop\n /* \"#utility.yul\":7266:7335 */\n tag_194\n /* \"#utility.yul\":7332:7333 */\n 0x00\n /* \"#utility.yul\":7321:7330 */\n dup4\n /* \"#utility.yul\":7317:7334 */\n add\n /* \"#utility.yul\":7308:7314 */\n dup8\n /* \"#utility.yul\":7266:7335 */\n tag_70\n jump\t// in\n tag_194:\n /* \"#utility.yul\":7345:7417 */\n tag_195\n /* \"#utility.yul\":7413:7415 */\n 0x20\n /* \"#utility.yul\":7402:7411 */\n dup4\n /* \"#utility.yul\":7398:7416 */\n add\n /* \"#utility.yul\":7389:7395 */\n dup7\n /* \"#utility.yul\":7345:7417 */\n tag_93\n jump\t// in\n tag_195:\n /* \"#utility.yul\":7427:7497 */\n tag_196\n /* \"#utility.yul\":7493:7495 */\n 0x40\n /* \"#utility.yul\":7482:7491 */\n dup4\n /* \"#utility.yul\":7478:7496 */\n add\n /* \"#utility.yul\":7469:7475 */\n dup6\n /* \"#utility.yul\":7427:7497 */\n tag_95\n jump\t// in\n tag_196:\n /* \"#utility.yul\":7507:7577 */\n tag_197\n /* \"#utility.yul\":7573:7575 */\n 0x60\n /* \"#utility.yul\":7562:7571 */\n dup4\n /* \"#utility.yul\":7558:7576 */\n add\n /* \"#utility.yul\":7549:7555 */\n dup5\n /* \"#utility.yul\":7507:7577 */\n tag_95\n jump\t// in\n tag_197:\n /* \"#utility.yul\":7043:7584 */\n swap6\n swap5\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7590:7710 */\n tag_96:\n /* \"#utility.yul\":7662:7685 */\n tag_199\n /* \"#utility.yul\":7679:7684 */\n dup2\n /* \"#utility.yul\":7662:7685 */\n tag_94\n jump\t// in\n tag_199:\n /* \"#utility.yul\":7655:7660 */\n dup2\n /* \"#utility.yul\":7652:7686 */\n eq\n /* \"#utility.yul\":7642:7704 */\n tag_200\n jumpi\n /* \"#utility.yul\":7700:7701 */\n 0x00\n /* \"#utility.yul\":7697:7698 */\n dup1\n /* \"#utility.yul\":7690:7702 */\n revert\n /* \"#utility.yul\":7642:7704 */\n tag_200:\n /* \"#utility.yul\":7590:7710 */\n pop\n jump\t// out\n /* \"#utility.yul\":7716:7857 */\n tag_97:\n /* \"#utility.yul\":7772:7777 */\n 0x00\n /* \"#utility.yul\":7803:7809 */\n dup2\n /* \"#utility.yul\":7797:7810 */\n mload\n /* \"#utility.yul\":7788:7810 */\n swap1\n pop\n /* \"#utility.yul\":7819:7851 */\n tag_202\n /* \"#utility.yul\":7845:7850 */\n dup2\n /* \"#utility.yul\":7819:7851 */\n tag_96\n jump\t// in\n tag_202:\n /* \"#utility.yul\":7716:7857 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7863:8212 */\n tag_38:\n /* \"#utility.yul\":7932:7938 */\n 0x00\n /* \"#utility.yul\":7981:7983 */\n 0x20\n /* \"#utility.yul\":7969:7978 */\n dup3\n /* \"#utility.yul\":7960:7967 */\n dup5\n /* \"#utility.yul\":7956:7979 */\n sub\n /* \"#utility.yul\":7952:7984 */\n slt\n /* \"#utility.yul\":7949:8068 */\n iszero\n tag_204\n jumpi\n /* \"#utility.yul\":7987:8066 */\n tag_205\n tag_72\n jump\t// in\n tag_205:\n /* \"#utility.yul\":7949:8068 */\n tag_204:\n /* \"#utility.yul\":8107:8108 */\n 0x00\n /* \"#utility.yul\":8132:8195 */\n tag_206\n /* \"#utility.yul\":8187:8194 */\n dup5\n /* \"#utility.yul\":8178:8184 */\n dup3\n /* \"#utility.yul\":8167:8176 */\n dup6\n /* \"#utility.yul\":8163:8185 */\n add\n /* \"#utility.yul\":8132:8195 */\n tag_97\n jump\t// in\n tag_206:\n /* \"#utility.yul\":8122:8195 */\n swap2\n pop\n /* \"#utility.yul\":8078:8205 */\n pop\n /* \"#utility.yul\":7863:8212 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8218:8436 */\n tag_40:\n /* \"#utility.yul\":8309:8313 */\n 0x00\n /* \"#utility.yul\":8347:8349 */\n 0x20\n /* \"#utility.yul\":8336:8345 */\n dup3\n /* \"#utility.yul\":8332:8350 */\n add\n /* \"#utility.yul\":8324:8350 */\n swap1\n pop\n /* \"#utility.yul\":8360:8429 */\n tag_208\n /* \"#utility.yul\":8426:8427 */\n 0x00\n /* \"#utility.yul\":8415:8424 */\n dup4\n /* \"#utility.yul\":8411:8428 */\n add\n /* \"#utility.yul\":8402:8408 */\n dup5\n /* \"#utility.yul\":8360:8429 */\n tag_95\n jump\t// in\n tag_208:\n /* \"#utility.yul\":8218:8436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8442:8622 */\n tag_98:\n /* \"#utility.yul\":8490:8567 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":8487:8488 */\n 0x00\n /* \"#utility.yul\":8480:8568 */\n mstore\n /* \"#utility.yul\":8587:8591 */\n 0x21\n /* \"#utility.yul\":8584:8585 */\n 0x04\n /* \"#utility.yul\":8577:8592 */\n mstore\n /* \"#utility.yul\":8611:8615 */\n 0x24\n /* \"#utility.yul\":8608:8609 */\n 0x00\n /* \"#utility.yul\":8601:8616 */\n revert\n /* \"#utility.yul\":8628:8747 */\n tag_99:\n /* \"#utility.yul\":8715:8716 */\n 0x07\n /* \"#utility.yul\":8708:8713 */\n dup2\n /* \"#utility.yul\":8705:8717 */\n lt\n /* \"#utility.yul\":8695:8741 */\n tag_211\n jumpi\n /* \"#utility.yul\":8721:8739 */\n tag_212\n tag_98\n jump\t// in\n tag_212:\n /* \"#utility.yul\":8695:8741 */\n tag_211:\n /* \"#utility.yul\":8628:8747 */\n pop\n jump\t// out\n /* \"#utility.yul\":8753:8892 */\n tag_100:\n /* \"#utility.yul\":8804:8811 */\n 0x00\n /* \"#utility.yul\":8833:8838 */\n dup2\n /* \"#utility.yul\":8822:8838 */\n swap1\n pop\n /* \"#utility.yul\":8839:8886 */\n tag_214\n /* \"#utility.yul\":8880:8885 */\n dup3\n /* \"#utility.yul\":8839:8886 */\n tag_99\n jump\t// in\n tag_214:\n /* \"#utility.yul\":8753:8892 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8898:9037 */\n tag_101:\n /* \"#utility.yul\":8960:8969 */\n 0x00\n /* \"#utility.yul\":8993:9031 */\n tag_216\n /* \"#utility.yul\":9025:9030 */\n dup3\n /* \"#utility.yul\":8993:9031 */\n tag_100\n jump\t// in\n tag_216:\n /* \"#utility.yul\":8980:9031 */\n swap1\n pop\n /* \"#utility.yul\":8898:9037 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9043:9198 */\n tag_102:\n /* \"#utility.yul\":9142:9191 */\n tag_218\n /* \"#utility.yul\":9185:9190 */\n dup2\n /* \"#utility.yul\":9142:9191 */\n tag_101\n jump\t// in\n tag_218:\n /* \"#utility.yul\":9137:9140 */\n dup3\n /* \"#utility.yul\":9130:9192 */\n mstore\n /* \"#utility.yul\":9043:9198 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9204:9666 */\n tag_45:\n /* \"#utility.yul\":9363:9367 */\n 0x00\n /* \"#utility.yul\":9401:9403 */\n 0x60\n /* \"#utility.yul\":9390:9399 */\n dup3\n /* \"#utility.yul\":9386:9404 */\n add\n /* \"#utility.yul\":9378:9404 */\n swap1\n pop\n /* \"#utility.yul\":9414:9483 */\n tag_220\n /* \"#utility.yul\":9480:9481 */\n 0x00\n /* \"#utility.yul\":9469:9478 */\n dup4\n /* \"#utility.yul\":9465:9482 */\n add\n /* \"#utility.yul\":9456:9462 */\n dup7\n /* \"#utility.yul\":9414:9483 */\n tag_95\n jump\t// in\n tag_220:\n /* \"#utility.yul\":9493:9565 */\n tag_221\n /* \"#utility.yul\":9561:9563 */\n 0x20\n /* \"#utility.yul\":9550:9559 */\n dup4\n /* \"#utility.yul\":9546:9564 */\n add\n /* \"#utility.yul\":9537:9543 */\n dup6\n /* \"#utility.yul\":9493:9565 */\n tag_68\n jump\t// in\n tag_221:\n /* \"#utility.yul\":9575:9659 */\n tag_222\n /* \"#utility.yul\":9655:9657 */\n 0x40\n /* \"#utility.yul\":9644:9653 */\n dup4\n /* \"#utility.yul\":9640:9658 */\n add\n /* \"#utility.yul\":9631:9637 */\n dup5\n /* \"#utility.yul\":9575:9659 */\n tag_102\n jump\t// in\n tag_222:\n /* \"#utility.yul\":9204:9666 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9672:9750 */\n tag_103:\n /* \"#utility.yul\":9710:9717 */\n 0x00\n /* \"#utility.yul\":9739:9744 */\n dup2\n /* \"#utility.yul\":9728:9744 */\n swap1\n pop\n /* \"#utility.yul\":9672:9750 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9756:9909 */\n tag_104:\n /* \"#utility.yul\":9859:9902 */\n tag_225\n /* \"#utility.yul\":9878:9901 */\n tag_226\n /* \"#utility.yul\":9895:9900 */\n dup3\n /* \"#utility.yul\":9878:9901 */\n tag_84\n jump\t// in\n tag_226:\n /* \"#utility.yul\":9859:9902 */\n tag_103\n jump\t// in\n tag_225:\n /* \"#utility.yul\":9854:9857 */\n dup3\n /* \"#utility.yul\":9847:9903 */\n mstore\n /* \"#utility.yul\":9756:9909 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9915:10064 */\n tag_105:\n /* \"#utility.yul\":9951:9958 */\n 0x00\n /* \"#utility.yul\":9991:10057 */\n 0xff00000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":9984:9989 */\n dup3\n /* \"#utility.yul\":9980:10058 */\n and\n /* \"#utility.yul\":9969:10058 */\n swap1\n pop\n /* \"#utility.yul\":9915:10064 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":10070:10148 */\n tag_106:\n /* \"#utility.yul\":10108:10115 */\n 0x00\n /* \"#utility.yul\":10137:10142 */\n dup2\n /* \"#utility.yul\":10126:10142 */\n swap1\n pop\n /* \"#utility.yul\":10070:10148 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":10154:10307 */\n tag_107:\n /* \"#utility.yul\":10257:10300 */\n tag_230\n /* \"#utility.yul\":10276:10299 */\n tag_231\n /* \"#utility.yul\":10293:10298 */\n dup3\n /* \"#utility.yul\":10276:10299 */\n tag_105\n jump\t// in\n tag_231:\n /* \"#utility.yul\":10257:10300 */\n tag_106\n jump\t// in\n tag_230:\n /* \"#utility.yul\":10252:10255 */\n dup3\n /* \"#utility.yul\":10245:10301 */\n mstore\n /* \"#utility.yul\":10154:10307 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10313:10460 */\n tag_108:\n /* \"#utility.yul\":10414:10425 */\n 0x00\n /* \"#utility.yul\":10451:10454 */\n dup2\n /* \"#utility.yul\":10436:10454 */\n swap1\n pop\n /* \"#utility.yul\":10313:10460 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10466:10852 */\n tag_109:\n /* \"#utility.yul\":10570:10573 */\n 0x00\n /* \"#utility.yul\":10598:10636 */\n tag_234\n /* \"#utility.yul\":10630:10635 */\n dup3\n /* \"#utility.yul\":10598:10636 */\n tag_86\n jump\t// in\n tag_234:\n /* \"#utility.yul\":10652:10740 */\n tag_235\n /* \"#utility.yul\":10733:10739 */\n dup2\n /* \"#utility.yul\":10728:10731 */\n dup6\n /* \"#utility.yul\":10652:10740 */\n tag_108\n jump\t// in\n tag_235:\n /* \"#utility.yul\":10645:10740 */\n swap4\n pop\n /* \"#utility.yul\":10749:10814 */\n tag_236\n /* \"#utility.yul\":10807:10813 */\n dup2\n /* \"#utility.yul\":10802:10805 */\n dup6\n /* \"#utility.yul\":10795:10799 */\n 0x20\n /* \"#utility.yul\":10788:10793 */\n dup7\n /* \"#utility.yul\":10784:10800 */\n add\n /* \"#utility.yul\":10749:10814 */\n tag_88\n jump\t// in\n tag_236:\n /* \"#utility.yul\":10839:10845 */\n dup1\n /* \"#utility.yul\":10834:10837 */\n dup5\n /* \"#utility.yul\":10830:10846 */\n add\n /* \"#utility.yul\":10823:10846 */\n swap2\n pop\n /* \"#utility.yul\":10574:10852 */\n pop\n /* \"#utility.yul\":10466:10852 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10858:11401 */\n tag_53:\n /* \"#utility.yul\":11040:11043 */\n 0x00\n /* \"#utility.yul\":11055:11128 */\n tag_238\n /* \"#utility.yul\":11124:11127 */\n dup3\n /* \"#utility.yul\":11115:11121 */\n dup7\n /* \"#utility.yul\":11055:11128 */\n tag_104\n jump\t// in\n tag_238:\n /* \"#utility.yul\":11153:11154 */\n 0x02\n /* \"#utility.yul\":11148:11151 */\n dup3\n /* \"#utility.yul\":11144:11155 */\n add\n /* \"#utility.yul\":11137:11155 */\n swap2\n pop\n /* \"#utility.yul\":11165:11238 */\n tag_239\n /* \"#utility.yul\":11234:11237 */\n dup3\n /* \"#utility.yul\":11225:11231 */\n dup6\n /* \"#utility.yul\":11165:11238 */\n tag_107\n jump\t// in\n tag_239:\n /* \"#utility.yul\":11263:11264 */\n 0x01\n /* \"#utility.yul\":11258:11261 */\n dup3\n /* \"#utility.yul\":11254:11265 */\n add\n /* \"#utility.yul\":11247:11265 */\n swap2\n pop\n /* \"#utility.yul\":11282:11375 */\n tag_240\n /* \"#utility.yul\":11371:11374 */\n dup3\n /* \"#utility.yul\":11362:11368 */\n dup5\n /* \"#utility.yul\":11282:11375 */\n tag_109\n jump\t// in\n tag_240:\n /* \"#utility.yul\":11275:11375 */\n swap2\n pop\n /* \"#utility.yul\":11392:11395 */\n dup2\n /* \"#utility.yul\":11385:11395 */\n swap1\n pop\n /* \"#utility.yul\":10858:11401 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11407:11834 */\n tag_59:\n /* \"#utility.yul\":11583:11586 */\n 0x00\n /* \"#utility.yul\":11605:11698 */\n tag_242\n /* \"#utility.yul\":11694:11697 */\n dup3\n /* \"#utility.yul\":11685:11691 */\n dup6\n /* \"#utility.yul\":11605:11698 */\n tag_109\n jump\t// in\n tag_242:\n /* \"#utility.yul\":11598:11698 */\n swap2\n pop\n /* \"#utility.yul\":11715:11808 */\n tag_243\n /* \"#utility.yul\":11804:11807 */\n dup3\n /* \"#utility.yul\":11795:11801 */\n dup5\n /* \"#utility.yul\":11715:11808 */\n tag_109\n jump\t// in\n tag_243:\n /* \"#utility.yul\":11708:11808 */\n swap2\n pop\n /* \"#utility.yul\":11825:11828 */\n dup2\n /* \"#utility.yul\":11818:11828 */\n swap1\n pop\n /* \"#utility.yul\":11407:11834 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11840:12020 */\n tag_110:\n /* \"#utility.yul\":11888:11965 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":11885:11886 */\n 0x00\n /* \"#utility.yul\":11878:11966 */\n mstore\n /* \"#utility.yul\":11985:11989 */\n 0x11\n /* \"#utility.yul\":11982:11983 */\n 0x04\n /* \"#utility.yul\":11975:11990 */\n mstore\n /* \"#utility.yul\":12009:12013 */\n 0x24\n /* \"#utility.yul\":12006:12007 */\n 0x00\n /* \"#utility.yul\":11999:12014 */\n revert\n /* \"#utility.yul\":12026:12436 */\n tag_62:\n /* \"#utility.yul\":12066:12073 */\n 0x00\n /* \"#utility.yul\":12089:12109 */\n tag_246\n /* \"#utility.yul\":12107:12108 */\n dup3\n /* \"#utility.yul\":12089:12109 */\n tag_67\n jump\t// in\n tag_246:\n /* \"#utility.yul\":12084:12109 */\n swap2\n pop\n /* \"#utility.yul\":12123:12143 */\n tag_247\n /* \"#utility.yul\":12141:12142 */\n dup4\n /* \"#utility.yul\":12123:12143 */\n tag_67\n jump\t// in\n tag_247:\n /* \"#utility.yul\":12118:12143 */\n swap3\n pop\n /* \"#utility.yul\":12178:12179 */\n dup3\n /* \"#utility.yul\":12175:12176 */\n dup3\n /* \"#utility.yul\":12171:12180 */\n mul\n /* \"#utility.yul\":12200:12230 */\n tag_248\n /* \"#utility.yul\":12218:12229 */\n dup2\n /* \"#utility.yul\":12200:12230 */\n tag_67\n jump\t// in\n tag_248:\n /* \"#utility.yul\":12189:12230 */\n swap2\n pop\n /* \"#utility.yul\":12379:12380 */\n dup3\n /* \"#utility.yul\":12370:12377 */\n dup3\n /* \"#utility.yul\":12366:12381 */\n div\n /* \"#utility.yul\":12363:12364 */\n dup5\n /* \"#utility.yul\":12360:12382 */\n eq\n /* \"#utility.yul\":12340:12341 */\n dup4\n /* \"#utility.yul\":12333:12342 */\n iszero\n /* \"#utility.yul\":12313:12396 */\n or\n /* \"#utility.yul\":12290:12429 */\n tag_249\n jumpi\n /* \"#utility.yul\":12409:12427 */\n tag_250\n tag_110\n jump\t// in\n tag_250:\n /* \"#utility.yul\":12290:12429 */\n tag_249:\n /* \"#utility.yul\":12074:12436 */\n pop\n /* \"#utility.yul\":12026:12436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12442:12635 */\n tag_64:\n /* \"#utility.yul\":12481:12484 */\n 0x00\n /* \"#utility.yul\":12500:12519 */\n tag_252\n /* \"#utility.yul\":12517:12518 */\n dup3\n /* \"#utility.yul\":12500:12519 */\n tag_69\n jump\t// in\n tag_252:\n /* \"#utility.yul\":12495:12519 */\n swap2\n pop\n /* \"#utility.yul\":12533:12552 */\n tag_253\n /* \"#utility.yul\":12550:12551 */\n dup4\n /* \"#utility.yul\":12533:12552 */\n tag_69\n jump\t// in\n tag_253:\n /* \"#utility.yul\":12528:12552 */\n swap3\n pop\n /* \"#utility.yul\":12575:12576 */\n dup3\n /* \"#utility.yul\":12572:12573 */\n dup3\n /* \"#utility.yul\":12568:12577 */\n add\n /* \"#utility.yul\":12561:12577 */\n swap1\n pop\n /* \"#utility.yul\":12598:12604 */\n 0xffff\n /* \"#utility.yul\":12593:12596 */\n dup2\n /* \"#utility.yul\":12590:12605 */\n gt\n /* \"#utility.yul\":12587:12628 */\n iszero\n tag_254\n jumpi\n /* \"#utility.yul\":12608:12626 */\n tag_255\n tag_110\n jump\t// in\n tag_255:\n /* \"#utility.yul\":12587:12628 */\n tag_254:\n /* \"#utility.yul\":12442:12635 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12641:13048 */\n tag_66:\n /* \"#utility.yul\":12797:12800 */\n 0x00\n /* \"#utility.yul\":12812:12885 */\n tag_257\n /* \"#utility.yul\":12881:12884 */\n dup3\n /* \"#utility.yul\":12872:12878 */\n dup6\n /* \"#utility.yul\":12812:12885 */\n tag_104\n jump\t// in\n tag_257:\n /* \"#utility.yul\":12910:12911 */\n 0x02\n /* \"#utility.yul\":12905:12908 */\n dup3\n /* \"#utility.yul\":12901:12912 */\n add\n /* \"#utility.yul\":12894:12912 */\n swap2\n pop\n /* \"#utility.yul\":12929:13022 */\n tag_258\n /* \"#utility.yul\":13018:13021 */\n dup3\n /* \"#utility.yul\":13009:13015 */\n dup5\n /* \"#utility.yul\":12929:13022 */\n tag_109\n jump\t// in\n tag_258:\n /* \"#utility.yul\":12922:13022 */\n swap2\n pop\n /* \"#utility.yul\":13039:13042 */\n dup2\n /* \"#utility.yul\":13032:13042 */\n swap1\n pop\n /* \"#utility.yul\":12641:13048 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220fe13ca5181d8295c1850e6566e74c1ab6de7b4e38a44e28c169ec0c1c3f54fc264736f6c63430008110033\n}\n", + "assembly": " /* \"main.sol\":3270:3562 contract ReferendaAutoUpgradeDemoV1 is ReferendaAutoUpgradeDemo {... */\n mstore(0x40, 0x80)\n /* \"main.sol\":3340:3478 constructor(string memory trackName, bytes2 pSetStorageCallIndex)... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\ntag_2:\n /* \"main.sol\":3439:3448 trackName */\n dup2\n /* \"main.sol\":3450:3470 pSetStorageCallIndex */\n dup2\n /* \"main.sol\":834:854 pSetStorageCallIndex */\n dup1\n /* \"main.sol\":812:831 setStorageCallIndex */\n 0x00\n 0x02\n /* \"main.sol\":812:854 setStorageCallIndex = pSetStorageCallIndex */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffff\n mul\n not\n and\n swap1\n dup4\n 0xf0\n shr\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":1161:1182 getTrackId(trackName) */\n tag_7\n /* \"main.sol\":1172:1181 trackName */\n dup3\n /* \"main.sol\":1161:1171 getTrackId */\n shl(0x20, tag_8)\n /* \"main.sol\":1161:1182 getTrackId(trackName) */\n 0x20\n shr\n jump\t// in\ntag_7:\n /* \"main.sol\":1147:1158 rootTrackId */\n 0x00\n dup1\n /* \"main.sol\":1147:1182 rootTrackId = getTrackId(trackName) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffff\n mul\n not\n and\n swap1\n dup4\n 0xffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":736:1189 constructor(string memory trackName, bytes2 pSetStorageCallIndex) {... */\n pop\n pop\n /* \"main.sol\":3340:3478 constructor(string memory trackName, bytes2 pSetStorageCallIndex)... */\n pop\n pop\n /* \"main.sol\":3270:3562 contract ReferendaAutoUpgradeDemoV1 is ReferendaAutoUpgradeDemo {... */\n jump(tag_10)\n /* \"main.sol\":1319:1946 function getTrackId(string memory trackName)... */\ntag_8:\n /* \"main.sol\":1411:1417 uint16 */\n 0x00\n /* \"main.sol\":1433:1457 uint16[] memory trackIds */\n dup1\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":1460:1487 REFERENDA_CONTRACT.trackIds */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xcc17da14\n /* \"main.sol\":1460:1489 REFERENDA_CONTRACT.trackIds() */\n mload(0x40)\n dup2\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup7\n gas\n staticcall\n iszero\n dup1\n iszero\n tag_13\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_13:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n 0x00\n dup3\n returndatacopy\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_14\n swap2\n swap1\n tag_15\n jump\t// in\ntag_14:\n /* \"main.sol\":1433:1489 uint16[] memory trackIds = REFERENDA_CONTRACT.trackIds() */\n swap1\n pop\n /* \"main.sol\":1504:1513 uint256 i */\n 0x00\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\ntag_16:\n /* \"main.sol\":1523:1531 trackIds */\n dup2\n /* \"main.sol\":1523:1538 trackIds.length */\n mload\n /* \"main.sol\":1519:1520 i */\n dup2\n /* \"main.sol\":1519:1538 i < trackIds.length */\n lt\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\n iszero\n tag_17\n jumpi\n /* \"main.sol\":1559:1590 Referenda.TrackInfo memory info */\n 0x00\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":1593:1621 REFERENDA_CONTRACT.trackInfo */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x34038146\n /* \"main.sol\":1639:1647 trackIds */\n dup5\n /* \"main.sol\":1648:1649 i */\n dup5\n /* \"main.sol\":1639:1650 trackIds[i] */\n dup2\n mload\n dup2\n lt\n tag_19\n jumpi\n tag_20\n tag_21\n jump\t// in\ntag_20:\ntag_19:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"main.sol\":1593:1664 REFERENDA_CONTRACT.trackInfo(... */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_22\n swap2\n swap1\n tag_23\n jump\t// in\ntag_22:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup7\n gas\n staticcall\n iszero\n dup1\n iszero\n tag_25\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_25:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n 0x00\n dup3\n returndatacopy\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_26\n swap2\n swap1\n tag_27\n jump\t// in\ntag_26:\n /* \"main.sol\":1559:1664 Referenda.TrackInfo memory info = REFERENDA_CONTRACT.trackInfo(... */\n swap1\n pop\n /* \"main.sol\":1788:1797 trackName */\n dup5\n /* \"main.sol\":1770:1799 abi.encodePacked((trackName)) */\n add(0x20, mload(0x40))\n tag_28\n swap2\n swap1\n tag_29\n jump\t// in\ntag_28:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"main.sol\":1760:1800 keccak256(abi.encodePacked((trackName))) */\n dup1\n mload\n swap1\n 0x20\n add\n keccak256\n /* \"main.sol\":1728:1732 info */\n dup2\n /* \"main.sol\":1728:1737 info.name */\n 0x00\n add\n mload\n /* \"main.sol\":1710:1739 abi.encodePacked((info.name)) */\n add(0x20, mload(0x40))\n tag_30\n swap2\n swap1\n tag_29\n jump\t// in\ntag_30:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"main.sol\":1700:1740 keccak256(abi.encodePacked((info.name))) */\n dup1\n mload\n swap1\n 0x20\n add\n keccak256\n /* \"main.sol\":1700:1800 keccak256(abi.encodePacked((info.name))) ==... */\n sub\n /* \"main.sol\":1679:1891 if (... */\n tag_31\n jumpi\n /* \"main.sol\":1865:1873 trackIds */\n dup3\n /* \"main.sol\":1874:1875 i */\n dup3\n /* \"main.sol\":1865:1876 trackIds[i] */\n dup2\n mload\n dup2\n lt\n tag_32\n jumpi\n tag_33\n tag_21\n jump\t// in\ntag_33:\ntag_32:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"main.sol\":1858:1876 return trackIds[i] */\n swap4\n pop\n pop\n pop\n pop\n jump(tag_11)\n /* \"main.sol\":1679:1891 if (... */\ntag_31:\n /* \"main.sol\":1545:1901 {... */\n pop\n /* \"main.sol\":1540:1543 i++ */\n dup1\n dup1\n tag_34\n swap1\n tag_35\n jump\t// in\ntag_34:\n swap2\n pop\n pop\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\n jump(tag_16)\ntag_17:\n pop\n /* \"main.sol\":1910:1939 revert(\"Couldn't find track\") */\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_36\n swap1\n tag_37\n jump\t// in\ntag_36:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":1319:1946 function getTrackId(string memory trackName)... */\ntag_11:\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:82 */\ntag_38:\n /* \"#utility.yul\":40:46 */\n 0x00\n /* \"#utility.yul\":73:75 */\n 0x40\n /* \"#utility.yul\":67:76 */\n mload\n /* \"#utility.yul\":57:76 */\n swap1\n pop\n /* \"#utility.yul\":7:82 */\n swap1\n jump\t// out\n /* \"#utility.yul\":88:205 */\ntag_39:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\ntag_40:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:451 */\ntag_41:\n /* \"#utility.yul\":443:444 */\n 0x00\n /* \"#utility.yul\":440:441 */\n dup1\n /* \"#utility.yul\":433:445 */\n revert\n /* \"#utility.yul\":457:574 */\ntag_42:\n /* \"#utility.yul\":566:567 */\n 0x00\n /* \"#utility.yul\":563:564 */\n dup1\n /* \"#utility.yul\":556:568 */\n revert\n /* \"#utility.yul\":580:682 */\ntag_43:\n /* \"#utility.yul\":621:627 */\n 0x00\n /* \"#utility.yul\":672:674 */\n 0x1f\n /* \"#utility.yul\":668:675 */\n not\n /* \"#utility.yul\":663:665 */\n 0x1f\n /* \"#utility.yul\":656:661 */\n dup4\n /* \"#utility.yul\":652:666 */\n add\n /* \"#utility.yul\":648:676 */\n and\n /* \"#utility.yul\":638:676 */\n swap1\n pop\n /* \"#utility.yul\":580:682 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":688:868 */\ntag_44:\n /* \"#utility.yul\":736:813 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":733:734 */\n 0x00\n /* \"#utility.yul\":726:814 */\n mstore\n /* \"#utility.yul\":833:837 */\n 0x41\n /* \"#utility.yul\":830:831 */\n 0x04\n /* \"#utility.yul\":823:838 */\n mstore\n /* \"#utility.yul\":857:861 */\n 0x24\n /* \"#utility.yul\":854:855 */\n 0x00\n /* \"#utility.yul\":847:862 */\n revert\n /* \"#utility.yul\":874:1155 */\ntag_45:\n /* \"#utility.yul\":957:984 */\n tag_87\n /* \"#utility.yul\":979:983 */\n dup3\n /* \"#utility.yul\":957:984 */\n tag_43\n jump\t// in\ntag_87:\n /* \"#utility.yul\":949:955 */\n dup2\n /* \"#utility.yul\":945:985 */\n add\n /* \"#utility.yul\":1087:1093 */\n dup2\n /* \"#utility.yul\":1075:1085 */\n dup2\n /* \"#utility.yul\":1072:1094 */\n lt\n /* \"#utility.yul\":1051:1069 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1039:1049 */\n dup3\n /* \"#utility.yul\":1036:1070 */\n gt\n /* \"#utility.yul\":1033:1095 */\n or\n /* \"#utility.yul\":1030:1118 */\n iszero\n tag_88\n jumpi\n /* \"#utility.yul\":1098:1116 */\n tag_89\n tag_44\n jump\t// in\ntag_89:\n /* \"#utility.yul\":1030:1118 */\ntag_88:\n /* \"#utility.yul\":1138:1148 */\n dup1\n /* \"#utility.yul\":1134:1136 */\n 0x40\n /* \"#utility.yul\":1127:1149 */\n mstore\n /* \"#utility.yul\":917:1155 */\n pop\n /* \"#utility.yul\":874:1155 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1161:1290 */\ntag_46:\n /* \"#utility.yul\":1195:1201 */\n 0x00\n /* \"#utility.yul\":1222:1242 */\n tag_91\n tag_38\n jump\t// in\ntag_91:\n /* \"#utility.yul\":1212:1242 */\n swap1\n pop\n /* \"#utility.yul\":1251:1284 */\n tag_92\n /* \"#utility.yul\":1279:1283 */\n dup3\n /* \"#utility.yul\":1271:1277 */\n dup3\n /* \"#utility.yul\":1251:1284 */\n tag_45\n jump\t// in\ntag_92:\n /* \"#utility.yul\":1161:1290 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1296:1604 */\ntag_47:\n /* \"#utility.yul\":1358:1362 */\n 0x00\n /* \"#utility.yul\":1448:1466 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1440:1446 */\n dup3\n /* \"#utility.yul\":1437:1467 */\n gt\n /* \"#utility.yul\":1434:1490 */\n iszero\n tag_94\n jumpi\n /* \"#utility.yul\":1470:1488 */\n tag_95\n tag_44\n jump\t// in\ntag_95:\n /* \"#utility.yul\":1434:1490 */\ntag_94:\n /* \"#utility.yul\":1508:1537 */\n tag_96\n /* \"#utility.yul\":1530:1536 */\n dup3\n /* \"#utility.yul\":1508:1537 */\n tag_43\n jump\t// in\ntag_96:\n /* \"#utility.yul\":1500:1537 */\n swap1\n pop\n /* \"#utility.yul\":1592:1596 */\n 0x20\n /* \"#utility.yul\":1586:1590 */\n dup2\n /* \"#utility.yul\":1582:1597 */\n add\n /* \"#utility.yul\":1574:1597 */\n swap1\n pop\n /* \"#utility.yul\":1296:1604 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1610:1856 */\ntag_48:\n /* \"#utility.yul\":1691:1692 */\n 0x00\n /* \"#utility.yul\":1701:1814 */\ntag_98:\n /* \"#utility.yul\":1715:1721 */\n dup4\n /* \"#utility.yul\":1712:1713 */\n dup2\n /* \"#utility.yul\":1709:1722 */\n lt\n /* \"#utility.yul\":1701:1814 */\n iszero\n tag_100\n jumpi\n /* \"#utility.yul\":1800:1801 */\n dup1\n /* \"#utility.yul\":1795:1798 */\n dup3\n /* \"#utility.yul\":1791:1802 */\n add\n /* \"#utility.yul\":1785:1803 */\n mload\n /* \"#utility.yul\":1781:1782 */\n dup2\n /* \"#utility.yul\":1776:1779 */\n dup5\n /* \"#utility.yul\":1772:1783 */\n add\n /* \"#utility.yul\":1765:1804 */\n mstore\n /* \"#utility.yul\":1737:1739 */\n 0x20\n /* \"#utility.yul\":1734:1735 */\n dup2\n /* \"#utility.yul\":1730:1740 */\n add\n /* \"#utility.yul\":1725:1740 */\n swap1\n pop\n /* \"#utility.yul\":1701:1814 */\n jump(tag_98)\ntag_100:\n /* \"#utility.yul\":1848:1849 */\n 0x00\n /* \"#utility.yul\":1839:1845 */\n dup5\n /* \"#utility.yul\":1834:1837 */\n dup5\n /* \"#utility.yul\":1830:1846 */\n add\n /* \"#utility.yul\":1823:1850 */\n mstore\n /* \"#utility.yul\":1672:1856 */\n pop\n /* \"#utility.yul\":1610:1856 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1862:2296 */\ntag_49:\n /* \"#utility.yul\":1951:1956 */\n 0x00\n /* \"#utility.yul\":1976:2042 */\n tag_102\n /* \"#utility.yul\":1992:2041 */\n tag_103\n /* \"#utility.yul\":2034:2040 */\n dup5\n /* \"#utility.yul\":1992:2041 */\n tag_47\n jump\t// in\ntag_103:\n /* \"#utility.yul\":1976:2042 */\n tag_46\n jump\t// in\ntag_102:\n /* \"#utility.yul\":1967:2042 */\n swap1\n pop\n /* \"#utility.yul\":2065:2071 */\n dup3\n /* \"#utility.yul\":2058:2063 */\n dup2\n /* \"#utility.yul\":2051:2072 */\n mstore\n /* \"#utility.yul\":2103:2107 */\n 0x20\n /* \"#utility.yul\":2096:2101 */\n dup2\n /* \"#utility.yul\":2092:2108 */\n add\n /* \"#utility.yul\":2141:2144 */\n dup5\n /* \"#utility.yul\":2132:2138 */\n dup5\n /* \"#utility.yul\":2127:2130 */\n dup5\n /* \"#utility.yul\":2123:2139 */\n add\n /* \"#utility.yul\":2120:2145 */\n gt\n /* \"#utility.yul\":2117:2229 */\n iszero\n tag_104\n jumpi\n /* \"#utility.yul\":2148:2227 */\n tag_105\n tag_42\n jump\t// in\ntag_105:\n /* \"#utility.yul\":2117:2229 */\ntag_104:\n /* \"#utility.yul\":2238:2290 */\n tag_106\n /* \"#utility.yul\":2283:2289 */\n dup5\n /* \"#utility.yul\":2278:2281 */\n dup3\n /* \"#utility.yul\":2273:2276 */\n dup6\n /* \"#utility.yul\":2238:2290 */\n tag_48\n jump\t// in\ntag_106:\n /* \"#utility.yul\":1957:2296 */\n pop\n /* \"#utility.yul\":1862:2296 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2316:2671 */\ntag_50:\n /* \"#utility.yul\":2383:2388 */\n 0x00\n /* \"#utility.yul\":2432:2435 */\n dup3\n /* \"#utility.yul\":2425:2429 */\n 0x1f\n /* \"#utility.yul\":2417:2423 */\n dup4\n /* \"#utility.yul\":2413:2430 */\n add\n /* \"#utility.yul\":2409:2436 */\n slt\n /* \"#utility.yul\":2399:2521 */\n tag_108\n jumpi\n /* \"#utility.yul\":2440:2519 */\n tag_109\n tag_41\n jump\t// in\ntag_109:\n /* \"#utility.yul\":2399:2521 */\ntag_108:\n /* \"#utility.yul\":2550:2556 */\n dup2\n /* \"#utility.yul\":2544:2557 */\n mload\n /* \"#utility.yul\":2575:2665 */\n tag_110\n /* \"#utility.yul\":2661:2664 */\n dup5\n /* \"#utility.yul\":2653:2659 */\n dup3\n /* \"#utility.yul\":2646:2650 */\n 0x20\n /* \"#utility.yul\":2638:2644 */\n dup7\n /* \"#utility.yul\":2634:2651 */\n add\n /* \"#utility.yul\":2575:2665 */\n tag_49\n jump\t// in\ntag_110:\n /* \"#utility.yul\":2566:2665 */\n swap2\n pop\n /* \"#utility.yul\":2389:2671 */\n pop\n /* \"#utility.yul\":2316:2671 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2677:2826 */\ntag_51:\n /* \"#utility.yul\":2713:2720 */\n 0x00\n /* \"#utility.yul\":2753:2819 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2746:2751 */\n dup3\n /* \"#utility.yul\":2742:2820 */\n and\n /* \"#utility.yul\":2731:2820 */\n swap1\n pop\n /* \"#utility.yul\":2677:2826 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2832:2952 */\ntag_52:\n /* \"#utility.yul\":2904:2927 */\n tag_113\n /* \"#utility.yul\":2921:2926 */\n dup2\n /* \"#utility.yul\":2904:2927 */\n tag_51\n jump\t// in\ntag_113:\n /* \"#utility.yul\":2897:2902 */\n dup2\n /* \"#utility.yul\":2894:2928 */\n eq\n /* \"#utility.yul\":2884:2946 */\n tag_114\n jumpi\n /* \"#utility.yul\":2942:2943 */\n 0x00\n /* \"#utility.yul\":2939:2940 */\n dup1\n /* \"#utility.yul\":2932:2944 */\n revert\n /* \"#utility.yul\":2884:2946 */\ntag_114:\n /* \"#utility.yul\":2832:2952 */\n pop\n jump\t// out\n /* \"#utility.yul\":2958:3099 */\ntag_53:\n /* \"#utility.yul\":3014:3019 */\n 0x00\n /* \"#utility.yul\":3045:3051 */\n dup2\n /* \"#utility.yul\":3039:3052 */\n mload\n /* \"#utility.yul\":3030:3052 */\n swap1\n pop\n /* \"#utility.yul\":3061:3093 */\n tag_116\n /* \"#utility.yul\":3087:3092 */\n dup2\n /* \"#utility.yul\":3061:3093 */\n tag_52\n jump\t// in\ntag_116:\n /* \"#utility.yul\":2958:3099 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3105:3783 */\ntag_3:\n /* \"#utility.yul\":3193:3199 */\n 0x00\n /* \"#utility.yul\":3201:3207 */\n dup1\n /* \"#utility.yul\":3250:3252 */\n 0x40\n /* \"#utility.yul\":3238:3247 */\n dup4\n /* \"#utility.yul\":3229:3236 */\n dup6\n /* \"#utility.yul\":3225:3248 */\n sub\n /* \"#utility.yul\":3221:3253 */\n slt\n /* \"#utility.yul\":3218:3337 */\n iszero\n tag_118\n jumpi\n /* \"#utility.yul\":3256:3335 */\n tag_119\n tag_39\n jump\t// in\ntag_119:\n /* \"#utility.yul\":3218:3337 */\ntag_118:\n /* \"#utility.yul\":3397:3398 */\n 0x00\n /* \"#utility.yul\":3386:3395 */\n dup4\n /* \"#utility.yul\":3382:3399 */\n add\n /* \"#utility.yul\":3376:3400 */\n mload\n /* \"#utility.yul\":3427:3445 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3419:3425 */\n dup2\n /* \"#utility.yul\":3416:3446 */\n gt\n /* \"#utility.yul\":3413:3530 */\n iszero\n tag_120\n jumpi\n /* \"#utility.yul\":3449:3528 */\n tag_121\n tag_40\n jump\t// in\ntag_121:\n /* \"#utility.yul\":3413:3530 */\ntag_120:\n /* \"#utility.yul\":3554:3628 */\n tag_122\n /* \"#utility.yul\":3620:3627 */\n dup6\n /* \"#utility.yul\":3611:3617 */\n dup3\n /* \"#utility.yul\":3600:3609 */\n dup7\n /* \"#utility.yul\":3596:3618 */\n add\n /* \"#utility.yul\":3554:3628 */\n tag_50\n jump\t// in\ntag_122:\n /* \"#utility.yul\":3544:3628 */\n swap3\n pop\n /* \"#utility.yul\":3347:3638 */\n pop\n /* \"#utility.yul\":3677:3679 */\n 0x20\n /* \"#utility.yul\":3703:3766 */\n tag_123\n /* \"#utility.yul\":3758:3765 */\n dup6\n /* \"#utility.yul\":3749:3755 */\n dup3\n /* \"#utility.yul\":3738:3747 */\n dup7\n /* \"#utility.yul\":3734:3756 */\n add\n /* \"#utility.yul\":3703:3766 */\n tag_53\n jump\t// in\ntag_123:\n /* \"#utility.yul\":3693:3766 */\n swap2\n pop\n /* \"#utility.yul\":3648:3776 */\n pop\n /* \"#utility.yul\":3105:3783 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3789:4099 */\ntag_54:\n /* \"#utility.yul\":3865:3869 */\n 0x00\n /* \"#utility.yul\":3955:3973 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3947:3953 */\n dup3\n /* \"#utility.yul\":3944:3974 */\n gt\n /* \"#utility.yul\":3941:3997 */\n iszero\n tag_125\n jumpi\n /* \"#utility.yul\":3977:3995 */\n tag_126\n tag_44\n jump\t// in\ntag_126:\n /* \"#utility.yul\":3941:3997 */\ntag_125:\n /* \"#utility.yul\":4027:4031 */\n 0x20\n /* \"#utility.yul\":4019:4025 */\n dup3\n /* \"#utility.yul\":4015:4032 */\n mul\n /* \"#utility.yul\":4007:4032 */\n swap1\n pop\n /* \"#utility.yul\":4087:4091 */\n 0x20\n /* \"#utility.yul\":4081:4085 */\n dup2\n /* \"#utility.yul\":4077:4092 */\n add\n /* \"#utility.yul\":4069:4092 */\n swap1\n pop\n /* \"#utility.yul\":3789:4099 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4105:4222 */\ntag_55:\n /* \"#utility.yul\":4214:4215 */\n 0x00\n /* \"#utility.yul\":4211:4212 */\n dup1\n /* \"#utility.yul\":4204:4216 */\n revert\n /* \"#utility.yul\":4228:4317 */\ntag_56:\n /* \"#utility.yul\":4264:4271 */\n 0x00\n /* \"#utility.yul\":4304:4310 */\n 0xffff\n /* \"#utility.yul\":4297:4302 */\n dup3\n /* \"#utility.yul\":4293:4311 */\n and\n /* \"#utility.yul\":4282:4311 */\n swap1\n pop\n /* \"#utility.yul\":4228:4317 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4323:4443 */\ntag_57:\n /* \"#utility.yul\":4395:4418 */\n tag_130\n /* \"#utility.yul\":4412:4417 */\n dup2\n /* \"#utility.yul\":4395:4418 */\n tag_56\n jump\t// in\ntag_130:\n /* \"#utility.yul\":4388:4393 */\n dup2\n /* \"#utility.yul\":4385:4419 */\n eq\n /* \"#utility.yul\":4375:4437 */\n tag_131\n jumpi\n /* \"#utility.yul\":4433:4434 */\n 0x00\n /* \"#utility.yul\":4430:4431 */\n dup1\n /* \"#utility.yul\":4423:4435 */\n revert\n /* \"#utility.yul\":4375:4437 */\ntag_131:\n /* \"#utility.yul\":4323:4443 */\n pop\n jump\t// out\n /* \"#utility.yul\":4449:4590 */\ntag_58:\n /* \"#utility.yul\":4505:4510 */\n 0x00\n /* \"#utility.yul\":4536:4542 */\n dup2\n /* \"#utility.yul\":4530:4543 */\n mload\n /* \"#utility.yul\":4521:4543 */\n swap1\n pop\n /* \"#utility.yul\":4552:4584 */\n tag_133\n /* \"#utility.yul\":4578:4583 */\n dup2\n /* \"#utility.yul\":4552:4584 */\n tag_57\n jump\t// in\ntag_133:\n /* \"#utility.yul\":4449:4590 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4612:5341 */\ntag_59:\n /* \"#utility.yul\":4718:4723 */\n 0x00\n /* \"#utility.yul\":4743:4823 */\n tag_135\n /* \"#utility.yul\":4759:4822 */\n tag_136\n /* \"#utility.yul\":4815:4821 */\n dup5\n /* \"#utility.yul\":4759:4822 */\n tag_54\n jump\t// in\ntag_136:\n /* \"#utility.yul\":4743:4823 */\n tag_46\n jump\t// in\ntag_135:\n /* \"#utility.yul\":4734:4823 */\n swap1\n pop\n /* \"#utility.yul\":4843:4848 */\n dup1\n /* \"#utility.yul\":4872:4878 */\n dup4\n /* \"#utility.yul\":4865:4870 */\n dup3\n /* \"#utility.yul\":4858:4879 */\n mstore\n /* \"#utility.yul\":4906:4910 */\n 0x20\n /* \"#utility.yul\":4899:4904 */\n dup3\n /* \"#utility.yul\":4895:4911 */\n add\n /* \"#utility.yul\":4888:4911 */\n swap1\n pop\n /* \"#utility.yul\":4959:4963 */\n 0x20\n /* \"#utility.yul\":4951:4957 */\n dup5\n /* \"#utility.yul\":4947:4964 */\n mul\n /* \"#utility.yul\":4939:4945 */\n dup4\n /* \"#utility.yul\":4935:4965 */\n add\n /* \"#utility.yul\":4988:4991 */\n dup6\n /* \"#utility.yul\":4980:4986 */\n dup2\n /* \"#utility.yul\":4977:4992 */\n gt\n /* \"#utility.yul\":4974:5096 */\n iszero\n tag_137\n jumpi\n /* \"#utility.yul\":5007:5086 */\n tag_138\n tag_55\n jump\t// in\ntag_138:\n /* \"#utility.yul\":4974:5096 */\ntag_137:\n /* \"#utility.yul\":5122:5128 */\n dup4\n /* \"#utility.yul\":5105:5335 */\ntag_139:\n /* \"#utility.yul\":5139:5145 */\n dup2\n /* \"#utility.yul\":5134:5137 */\n dup2\n /* \"#utility.yul\":5131:5146 */\n lt\n /* \"#utility.yul\":5105:5335 */\n iszero\n tag_141\n jumpi\n /* \"#utility.yul\":5214:5217 */\n dup1\n /* \"#utility.yul\":5243:5290 */\n tag_142\n /* \"#utility.yul\":5286:5289 */\n dup9\n /* \"#utility.yul\":5274:5284 */\n dup3\n /* \"#utility.yul\":5243:5290 */\n tag_58\n jump\t// in\ntag_142:\n /* \"#utility.yul\":5238:5241 */\n dup5\n /* \"#utility.yul\":5231:5291 */\n mstore\n /* \"#utility.yul\":5320:5324 */\n 0x20\n /* \"#utility.yul\":5315:5318 */\n dup5\n /* \"#utility.yul\":5311:5325 */\n add\n /* \"#utility.yul\":5304:5325 */\n swap4\n pop\n /* \"#utility.yul\":5181:5335 */\n pop\n /* \"#utility.yul\":5165:5169 */\n 0x20\n /* \"#utility.yul\":5160:5163 */\n dup2\n /* \"#utility.yul\":5156:5170 */\n add\n /* \"#utility.yul\":5149:5170 */\n swap1\n pop\n /* \"#utility.yul\":5105:5335 */\n jump(tag_139)\ntag_141:\n /* \"#utility.yul\":5109:5130 */\n pop\n /* \"#utility.yul\":4724:5341 */\n pop\n pop\n /* \"#utility.yul\":4612:5341 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5363:5746 */\ntag_60:\n /* \"#utility.yul\":5444:5449 */\n 0x00\n /* \"#utility.yul\":5493:5496 */\n dup3\n /* \"#utility.yul\":5486:5490 */\n 0x1f\n /* \"#utility.yul\":5478:5484 */\n dup4\n /* \"#utility.yul\":5474:5491 */\n add\n /* \"#utility.yul\":5470:5497 */\n slt\n /* \"#utility.yul\":5460:5582 */\n tag_144\n jumpi\n /* \"#utility.yul\":5501:5580 */\n tag_145\n tag_41\n jump\t// in\ntag_145:\n /* \"#utility.yul\":5460:5582 */\ntag_144:\n /* \"#utility.yul\":5611:5617 */\n dup2\n /* \"#utility.yul\":5605:5618 */\n mload\n /* \"#utility.yul\":5636:5740 */\n tag_146\n /* \"#utility.yul\":5736:5739 */\n dup5\n /* \"#utility.yul\":5728:5734 */\n dup3\n /* \"#utility.yul\":5721:5725 */\n 0x20\n /* \"#utility.yul\":5713:5719 */\n dup7\n /* \"#utility.yul\":5709:5726 */\n add\n /* \"#utility.yul\":5636:5740 */\n tag_59\n jump\t// in\ntag_146:\n /* \"#utility.yul\":5627:5740 */\n swap2\n pop\n /* \"#utility.yul\":5450:5746 */\n pop\n /* \"#utility.yul\":5363:5746 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5752:6304 */\ntag_15:\n /* \"#utility.yul\":5846:5852 */\n 0x00\n /* \"#utility.yul\":5895:5897 */\n 0x20\n /* \"#utility.yul\":5883:5892 */\n dup3\n /* \"#utility.yul\":5874:5881 */\n dup5\n /* \"#utility.yul\":5870:5893 */\n sub\n /* \"#utility.yul\":5866:5898 */\n slt\n /* \"#utility.yul\":5863:5982 */\n iszero\n tag_148\n jumpi\n /* \"#utility.yul\":5901:5980 */\n tag_149\n tag_39\n jump\t// in\ntag_149:\n /* \"#utility.yul\":5863:5982 */\ntag_148:\n /* \"#utility.yul\":6042:6043 */\n 0x00\n /* \"#utility.yul\":6031:6040 */\n dup3\n /* \"#utility.yul\":6027:6044 */\n add\n /* \"#utility.yul\":6021:6045 */\n mload\n /* \"#utility.yul\":6072:6090 */\n 0xffffffffffffffff\n /* \"#utility.yul\":6064:6070 */\n dup2\n /* \"#utility.yul\":6061:6091 */\n gt\n /* \"#utility.yul\":6058:6175 */\n iszero\n tag_150\n jumpi\n /* \"#utility.yul\":6094:6173 */\n tag_151\n tag_40\n jump\t// in\ntag_151:\n /* \"#utility.yul\":6058:6175 */\ntag_150:\n /* \"#utility.yul\":6199:6287 */\n tag_152\n /* \"#utility.yul\":6279:6286 */\n dup5\n /* \"#utility.yul\":6270:6276 */\n dup3\n /* \"#utility.yul\":6259:6268 */\n dup6\n /* \"#utility.yul\":6255:6277 */\n add\n /* \"#utility.yul\":6199:6287 */\n tag_60\n jump\t// in\ntag_152:\n /* \"#utility.yul\":6189:6287 */\n swap2\n pop\n /* \"#utility.yul\":5992:6297 */\n pop\n /* \"#utility.yul\":5752:6304 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6310:6490 */\ntag_21:\n /* \"#utility.yul\":6358:6435 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":6355:6356 */\n 0x00\n /* \"#utility.yul\":6348:6436 */\n mstore\n /* \"#utility.yul\":6455:6459 */\n 0x32\n /* \"#utility.yul\":6452:6453 */\n 0x04\n /* \"#utility.yul\":6445:6460 */\n mstore\n /* \"#utility.yul\":6479:6483 */\n 0x24\n /* \"#utility.yul\":6476:6477 */\n 0x00\n /* \"#utility.yul\":6469:6484 */\n revert\n /* \"#utility.yul\":6496:6611 */\ntag_61:\n /* \"#utility.yul\":6581:6604 */\n tag_155\n /* \"#utility.yul\":6598:6603 */\n dup2\n /* \"#utility.yul\":6581:6604 */\n tag_56\n jump\t// in\ntag_155:\n /* \"#utility.yul\":6576:6579 */\n dup3\n /* \"#utility.yul\":6569:6605 */\n mstore\n /* \"#utility.yul\":6496:6611 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6617:6835 */\ntag_23:\n /* \"#utility.yul\":6708:6712 */\n 0x00\n /* \"#utility.yul\":6746:6748 */\n 0x20\n /* \"#utility.yul\":6735:6744 */\n dup3\n /* \"#utility.yul\":6731:6749 */\n add\n /* \"#utility.yul\":6723:6749 */\n swap1\n pop\n /* \"#utility.yul\":6759:6828 */\n tag_157\n /* \"#utility.yul\":6825:6826 */\n 0x00\n /* \"#utility.yul\":6814:6823 */\n dup4\n /* \"#utility.yul\":6810:6827 */\n add\n /* \"#utility.yul\":6801:6807 */\n dup5\n /* \"#utility.yul\":6759:6828 */\n tag_61\n jump\t// in\ntag_157:\n /* \"#utility.yul\":6617:6835 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6841:6958 */\ntag_62:\n /* \"#utility.yul\":6950:6951 */\n 0x00\n /* \"#utility.yul\":6947:6948 */\n dup1\n /* \"#utility.yul\":6940:6952 */\n revert\n /* \"#utility.yul\":6964:7081 */\ntag_63:\n /* \"#utility.yul\":7073:7074 */\n 0x00\n /* \"#utility.yul\":7070:7071 */\n dup1\n /* \"#utility.yul\":7063:7075 */\n revert\n /* \"#utility.yul\":7087:7164 */\ntag_64:\n /* \"#utility.yul\":7124:7131 */\n 0x00\n /* \"#utility.yul\":7153:7158 */\n dup2\n /* \"#utility.yul\":7142:7158 */\n swap1\n pop\n /* \"#utility.yul\":7087:7164 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7170:7292 */\ntag_65:\n /* \"#utility.yul\":7243:7267 */\n tag_162\n /* \"#utility.yul\":7261:7266 */\n dup2\n /* \"#utility.yul\":7243:7267 */\n tag_64\n jump\t// in\ntag_162:\n /* \"#utility.yul\":7236:7241 */\n dup2\n /* \"#utility.yul\":7233:7268 */\n eq\n /* \"#utility.yul\":7223:7286 */\n tag_163\n jumpi\n /* \"#utility.yul\":7282:7283 */\n 0x00\n /* \"#utility.yul\":7279:7280 */\n dup1\n /* \"#utility.yul\":7272:7284 */\n revert\n /* \"#utility.yul\":7223:7286 */\ntag_163:\n /* \"#utility.yul\":7170:7292 */\n pop\n jump\t// out\n /* \"#utility.yul\":7298:7441 */\ntag_66:\n /* \"#utility.yul\":7355:7360 */\n 0x00\n /* \"#utility.yul\":7386:7392 */\n dup2\n /* \"#utility.yul\":7380:7393 */\n mload\n /* \"#utility.yul\":7371:7393 */\n swap1\n pop\n /* \"#utility.yul\":7402:7435 */\n tag_165\n /* \"#utility.yul\":7429:7434 */\n dup2\n /* \"#utility.yul\":7402:7435 */\n tag_65\n jump\t// in\ntag_165:\n /* \"#utility.yul\":7298:7441 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7447:7754 */\ntag_67:\n /* \"#utility.yul\":7508:7512 */\n 0x00\n /* \"#utility.yul\":7598:7616 */\n 0xffffffffffffffff\n /* \"#utility.yul\":7590:7596 */\n dup3\n /* \"#utility.yul\":7587:7617 */\n gt\n /* \"#utility.yul\":7584:7640 */\n iszero\n tag_167\n jumpi\n /* \"#utility.yul\":7620:7638 */\n tag_168\n tag_44\n jump\t// in\ntag_168:\n /* \"#utility.yul\":7584:7640 */\ntag_167:\n /* \"#utility.yul\":7658:7687 */\n tag_169\n /* \"#utility.yul\":7680:7686 */\n dup3\n /* \"#utility.yul\":7658:7687 */\n tag_43\n jump\t// in\ntag_169:\n /* \"#utility.yul\":7650:7687 */\n swap1\n pop\n /* \"#utility.yul\":7742:7746 */\n 0x20\n /* \"#utility.yul\":7736:7740 */\n dup2\n /* \"#utility.yul\":7732:7747 */\n add\n /* \"#utility.yul\":7724:7747 */\n swap1\n pop\n /* \"#utility.yul\":7447:7754 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7760:8192 */\ntag_68:\n /* \"#utility.yul\":7848:7853 */\n 0x00\n /* \"#utility.yul\":7873:7938 */\n tag_171\n /* \"#utility.yul\":7889:7937 */\n tag_172\n /* \"#utility.yul\":7930:7936 */\n dup5\n /* \"#utility.yul\":7889:7937 */\n tag_67\n jump\t// in\ntag_172:\n /* \"#utility.yul\":7873:7938 */\n tag_46\n jump\t// in\ntag_171:\n /* \"#utility.yul\":7864:7938 */\n swap1\n pop\n /* \"#utility.yul\":7961:7967 */\n dup3\n /* \"#utility.yul\":7954:7959 */\n dup2\n /* \"#utility.yul\":7947:7968 */\n mstore\n /* \"#utility.yul\":7999:8003 */\n 0x20\n /* \"#utility.yul\":7992:7997 */\n dup2\n /* \"#utility.yul\":7988:8004 */\n add\n /* \"#utility.yul\":8037:8040 */\n dup5\n /* \"#utility.yul\":8028:8034 */\n dup5\n /* \"#utility.yul\":8023:8026 */\n dup5\n /* \"#utility.yul\":8019:8035 */\n add\n /* \"#utility.yul\":8016:8041 */\n gt\n /* \"#utility.yul\":8013:8125 */\n iszero\n tag_173\n jumpi\n /* \"#utility.yul\":8044:8123 */\n tag_174\n tag_42\n jump\t// in\ntag_174:\n /* \"#utility.yul\":8013:8125 */\ntag_173:\n /* \"#utility.yul\":8134:8186 */\n tag_175\n /* \"#utility.yul\":8179:8185 */\n dup5\n /* \"#utility.yul\":8174:8177 */\n dup3\n /* \"#utility.yul\":8169:8172 */\n dup6\n /* \"#utility.yul\":8134:8186 */\n tag_48\n jump\t// in\ntag_175:\n /* \"#utility.yul\":7854:8192 */\n pop\n /* \"#utility.yul\":7760:8192 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8211:8564 */\ntag_69:\n /* \"#utility.yul\":8277:8282 */\n 0x00\n /* \"#utility.yul\":8326:8329 */\n dup3\n /* \"#utility.yul\":8319:8323 */\n 0x1f\n /* \"#utility.yul\":8311:8317 */\n dup4\n /* \"#utility.yul\":8307:8324 */\n add\n /* \"#utility.yul\":8303:8330 */\n slt\n /* \"#utility.yul\":8293:8415 */\n tag_177\n jumpi\n /* \"#utility.yul\":8334:8413 */\n tag_178\n tag_41\n jump\t// in\ntag_178:\n /* \"#utility.yul\":8293:8415 */\ntag_177:\n /* \"#utility.yul\":8444:8450 */\n dup2\n /* \"#utility.yul\":8438:8451 */\n mload\n /* \"#utility.yul\":8469:8558 */\n tag_179\n /* \"#utility.yul\":8554:8557 */\n dup5\n /* \"#utility.yul\":8546:8552 */\n dup3\n /* \"#utility.yul\":8539:8543 */\n 0x20\n /* \"#utility.yul\":8531:8537 */\n dup7\n /* \"#utility.yul\":8527:8544 */\n add\n /* \"#utility.yul\":8469:8558 */\n tag_68\n jump\t// in\ntag_179:\n /* \"#utility.yul\":8460:8558 */\n swap2\n pop\n /* \"#utility.yul\":8283:8564 */\n pop\n /* \"#utility.yul\":8211:8564 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8604:10987 */\ntag_70:\n /* \"#utility.yul\":8690:8695 */\n 0x00\n /* \"#utility.yul\":8734:8740 */\n 0x0120\n /* \"#utility.yul\":8722:8731 */\n dup3\n /* \"#utility.yul\":8717:8720 */\n dup5\n /* \"#utility.yul\":8713:8732 */\n sub\n /* \"#utility.yul\":8709:8741 */\n slt\n /* \"#utility.yul\":8706:8825 */\n iszero\n tag_181\n jumpi\n /* \"#utility.yul\":8744:8823 */\n tag_182\n tag_62\n jump\t// in\ntag_182:\n /* \"#utility.yul\":8706:8825 */\ntag_181:\n /* \"#utility.yul\":8843:8866 */\n tag_183\n /* \"#utility.yul\":8859:8865 */\n 0x0120\n /* \"#utility.yul\":8843:8866 */\n tag_46\n jump\t// in\ntag_183:\n /* \"#utility.yul\":8834:8866 */\n swap1\n pop\n /* \"#utility.yul\":8946:8947 */\n 0x00\n /* \"#utility.yul\":8935:8944 */\n dup3\n /* \"#utility.yul\":8931:8948 */\n add\n /* \"#utility.yul\":8925:8949 */\n mload\n /* \"#utility.yul\":8976:8994 */\n 0xffffffffffffffff\n /* \"#utility.yul\":8968:8974 */\n dup2\n /* \"#utility.yul\":8965:8995 */\n gt\n /* \"#utility.yul\":8962:9079 */\n iszero\n tag_184\n jumpi\n /* \"#utility.yul\":8998:9077 */\n tag_185\n tag_63\n jump\t// in\ntag_185:\n /* \"#utility.yul\":8962:9079 */\ntag_184:\n /* \"#utility.yul\":9118:9188 */\n tag_186\n /* \"#utility.yul\":9184:9187 */\n dup5\n /* \"#utility.yul\":9175:9181 */\n dup3\n /* \"#utility.yul\":9164:9173 */\n dup6\n /* \"#utility.yul\":9160:9182 */\n add\n /* \"#utility.yul\":9118:9188 */\n tag_50\n jump\t// in\ntag_186:\n /* \"#utility.yul\":9111:9115 */\n 0x00\n /* \"#utility.yul\":9104:9109 */\n dup4\n /* \"#utility.yul\":9100:9116 */\n add\n /* \"#utility.yul\":9093:9189 */\n mstore\n /* \"#utility.yul\":8876:9200 */\n pop\n /* \"#utility.yul\":9266:9268 */\n 0x20\n /* \"#utility.yul\":9307:9367 */\n tag_187\n /* \"#utility.yul\":9363:9366 */\n dup5\n /* \"#utility.yul\":9354:9360 */\n dup3\n /* \"#utility.yul\":9343:9352 */\n dup6\n /* \"#utility.yul\":9339:9361 */\n add\n /* \"#utility.yul\":9307:9367 */\n tag_66\n jump\t// in\ntag_187:\n /* \"#utility.yul\":9300:9304 */\n 0x20\n /* \"#utility.yul\":9293:9298 */\n dup4\n /* \"#utility.yul\":9289:9305 */\n add\n /* \"#utility.yul\":9282:9368 */\n mstore\n /* \"#utility.yul\":9210:9379 */\n pop\n /* \"#utility.yul\":9449:9451 */\n 0x40\n /* \"#utility.yul\":9490:9550 */\n tag_188\n /* \"#utility.yul\":9546:9549 */\n dup5\n /* \"#utility.yul\":9537:9543 */\n dup3\n /* \"#utility.yul\":9526:9535 */\n dup6\n /* \"#utility.yul\":9522:9544 */\n add\n /* \"#utility.yul\":9490:9550 */\n tag_66\n jump\t// in\ntag_188:\n /* \"#utility.yul\":9483:9487 */\n 0x40\n /* \"#utility.yul\":9476:9481 */\n dup4\n /* \"#utility.yul\":9472:9488 */\n add\n /* \"#utility.yul\":9465:9551 */\n mstore\n /* \"#utility.yul\":9389:9562 */\n pop\n /* \"#utility.yul\":9630:9632 */\n 0x60\n /* \"#utility.yul\":9671:9731 */\n tag_189\n /* \"#utility.yul\":9727:9730 */\n dup5\n /* \"#utility.yul\":9718:9724 */\n dup3\n /* \"#utility.yul\":9707:9716 */\n dup6\n /* \"#utility.yul\":9703:9725 */\n add\n /* \"#utility.yul\":9671:9731 */\n tag_66\n jump\t// in\ntag_189:\n /* \"#utility.yul\":9664:9668 */\n 0x60\n /* \"#utility.yul\":9657:9662 */\n dup4\n /* \"#utility.yul\":9653:9669 */\n add\n /* \"#utility.yul\":9646:9732 */\n mstore\n /* \"#utility.yul\":9572:9743 */\n pop\n /* \"#utility.yul\":9812:9815 */\n 0x80\n /* \"#utility.yul\":9854:9914 */\n tag_190\n /* \"#utility.yul\":9910:9913 */\n dup5\n /* \"#utility.yul\":9901:9907 */\n dup3\n /* \"#utility.yul\":9890:9899 */\n dup6\n /* \"#utility.yul\":9886:9908 */\n add\n /* \"#utility.yul\":9854:9914 */\n tag_66\n jump\t// in\ntag_190:\n /* \"#utility.yul\":9847:9851 */\n 0x80\n /* \"#utility.yul\":9840:9845 */\n dup4\n /* \"#utility.yul\":9836:9852 */\n add\n /* \"#utility.yul\":9829:9915 */\n mstore\n /* \"#utility.yul\":9753:9926 */\n pop\n /* \"#utility.yul\":9994:9997 */\n 0xa0\n /* \"#utility.yul\":10036:10096 */\n tag_191\n /* \"#utility.yul\":10092:10095 */\n dup5\n /* \"#utility.yul\":10083:10089 */\n dup3\n /* \"#utility.yul\":10072:10081 */\n dup6\n /* \"#utility.yul\":10068:10090 */\n add\n /* \"#utility.yul\":10036:10096 */\n tag_66\n jump\t// in\ntag_191:\n /* \"#utility.yul\":10029:10033 */\n 0xa0\n /* \"#utility.yul\":10022:10027 */\n dup4\n /* \"#utility.yul\":10018:10034 */\n add\n /* \"#utility.yul\":10011:10097 */\n mstore\n /* \"#utility.yul\":9936:10108 */\n pop\n /* \"#utility.yul\":10181:10184 */\n 0xc0\n /* \"#utility.yul\":10223:10283 */\n tag_192\n /* \"#utility.yul\":10279:10282 */\n dup5\n /* \"#utility.yul\":10270:10276 */\n dup3\n /* \"#utility.yul\":10259:10268 */\n dup6\n /* \"#utility.yul\":10255:10277 */\n add\n /* \"#utility.yul\":10223:10283 */\n tag_66\n jump\t// in\ntag_192:\n /* \"#utility.yul\":10216:10220 */\n 0xc0\n /* \"#utility.yul\":10209:10214 */\n dup4\n /* \"#utility.yul\":10205:10221 */\n add\n /* \"#utility.yul\":10198:10284 */\n mstore\n /* \"#utility.yul\":10118:10295 */\n pop\n /* \"#utility.yul\":10382:10385 */\n 0xe0\n /* \"#utility.yul\":10371:10380 */\n dup3\n /* \"#utility.yul\":10367:10386 */\n add\n /* \"#utility.yul\":10361:10387 */\n mload\n /* \"#utility.yul\":10414:10432 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10406:10412 */\n dup2\n /* \"#utility.yul\":10403:10433 */\n gt\n /* \"#utility.yul\":10400:10517 */\n iszero\n tag_193\n jumpi\n /* \"#utility.yul\":10436:10515 */\n tag_194\n tag_63\n jump\t// in\ntag_194:\n /* \"#utility.yul\":10400:10517 */\ntag_193:\n /* \"#utility.yul\":10556:10625 */\n tag_195\n /* \"#utility.yul\":10621:10624 */\n dup5\n /* \"#utility.yul\":10612:10618 */\n dup3\n /* \"#utility.yul\":10601:10610 */\n dup6\n /* \"#utility.yul\":10597:10619 */\n add\n /* \"#utility.yul\":10556:10625 */\n tag_69\n jump\t// in\ntag_195:\n /* \"#utility.yul\":10549:10553 */\n 0xe0\n /* \"#utility.yul\":10542:10547 */\n dup4\n /* \"#utility.yul\":10538:10554 */\n add\n /* \"#utility.yul\":10531:10626 */\n mstore\n /* \"#utility.yul\":10305:10637 */\n pop\n /* \"#utility.yul\":10723:10726 */\n 0x0100\n /* \"#utility.yul\":10712:10721 */\n dup3\n /* \"#utility.yul\":10708:10727 */\n add\n /* \"#utility.yul\":10702:10728 */\n mload\n /* \"#utility.yul\":10755:10773 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10747:10753 */\n dup2\n /* \"#utility.yul\":10744:10774 */\n gt\n /* \"#utility.yul\":10741:10858 */\n iszero\n tag_196\n jumpi\n /* \"#utility.yul\":10777:10856 */\n tag_197\n tag_63\n jump\t// in\ntag_197:\n /* \"#utility.yul\":10741:10858 */\ntag_196:\n /* \"#utility.yul\":10899:10968 */\n tag_198\n /* \"#utility.yul\":10964:10967 */\n dup5\n /* \"#utility.yul\":10955:10961 */\n dup3\n /* \"#utility.yul\":10944:10953 */\n dup6\n /* \"#utility.yul\":10940:10962 */\n add\n /* \"#utility.yul\":10899:10968 */\n tag_69\n jump\t// in\ntag_198:\n /* \"#utility.yul\":10890:10896 */\n 0x0100\n /* \"#utility.yul\":10883:10888 */\n dup4\n /* \"#utility.yul\":10879:10897 */\n add\n /* \"#utility.yul\":10872:10969 */\n mstore\n /* \"#utility.yul\":10647:10980 */\n pop\n /* \"#utility.yul\":8604:10987 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10993:11549 */\ntag_27:\n /* \"#utility.yul\":11089:11095 */\n 0x00\n /* \"#utility.yul\":11138:11140 */\n 0x20\n /* \"#utility.yul\":11126:11135 */\n dup3\n /* \"#utility.yul\":11117:11124 */\n dup5\n /* \"#utility.yul\":11113:11136 */\n sub\n /* \"#utility.yul\":11109:11141 */\n slt\n /* \"#utility.yul\":11106:11225 */\n iszero\n tag_200\n jumpi\n /* \"#utility.yul\":11144:11223 */\n tag_201\n tag_39\n jump\t// in\ntag_201:\n /* \"#utility.yul\":11106:11225 */\ntag_200:\n /* \"#utility.yul\":11285:11286 */\n 0x00\n /* \"#utility.yul\":11274:11283 */\n dup3\n /* \"#utility.yul\":11270:11287 */\n add\n /* \"#utility.yul\":11264:11288 */\n mload\n /* \"#utility.yul\":11315:11333 */\n 0xffffffffffffffff\n /* \"#utility.yul\":11307:11313 */\n dup2\n /* \"#utility.yul\":11304:11334 */\n gt\n /* \"#utility.yul\":11301:11418 */\n iszero\n tag_202\n jumpi\n /* \"#utility.yul\":11337:11416 */\n tag_203\n tag_40\n jump\t// in\ntag_203:\n /* \"#utility.yul\":11301:11418 */\ntag_202:\n /* \"#utility.yul\":11442:11532 */\n tag_204\n /* \"#utility.yul\":11524:11531 */\n dup5\n /* \"#utility.yul\":11515:11521 */\n dup3\n /* \"#utility.yul\":11504:11513 */\n dup6\n /* \"#utility.yul\":11500:11522 */\n add\n /* \"#utility.yul\":11442:11532 */\n tag_70\n jump\t// in\ntag_204:\n /* \"#utility.yul\":11432:11532 */\n swap2\n pop\n /* \"#utility.yul\":11235:11542 */\n pop\n /* \"#utility.yul\":10993:11549 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11555:11654 */\ntag_71:\n /* \"#utility.yul\":11607:11613 */\n 0x00\n /* \"#utility.yul\":11641:11646 */\n dup2\n /* \"#utility.yul\":11635:11647 */\n mload\n /* \"#utility.yul\":11625:11647 */\n swap1\n pop\n /* \"#utility.yul\":11555:11654 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":11660:11808 */\ntag_72:\n /* \"#utility.yul\":11762:11773 */\n 0x00\n /* \"#utility.yul\":11799:11802 */\n dup2\n /* \"#utility.yul\":11784:11802 */\n swap1\n pop\n /* \"#utility.yul\":11660:11808 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11814:12204 */\ntag_73:\n /* \"#utility.yul\":11920:11923 */\n 0x00\n /* \"#utility.yul\":11948:11987 */\n tag_208\n /* \"#utility.yul\":11981:11986 */\n dup3\n /* \"#utility.yul\":11948:11987 */\n tag_71\n jump\t// in\ntag_208:\n /* \"#utility.yul\":12003:12092 */\n tag_209\n /* \"#utility.yul\":12085:12091 */\n dup2\n /* \"#utility.yul\":12080:12083 */\n dup6\n /* \"#utility.yul\":12003:12092 */\n tag_72\n jump\t// in\ntag_209:\n /* \"#utility.yul\":11996:12092 */\n swap4\n pop\n /* \"#utility.yul\":12101:12166 */\n tag_210\n /* \"#utility.yul\":12159:12165 */\n dup2\n /* \"#utility.yul\":12154:12157 */\n dup6\n /* \"#utility.yul\":12147:12151 */\n 0x20\n /* \"#utility.yul\":12140:12145 */\n dup7\n /* \"#utility.yul\":12136:12152 */\n add\n /* \"#utility.yul\":12101:12166 */\n tag_48\n jump\t// in\ntag_210:\n /* \"#utility.yul\":12191:12197 */\n dup1\n /* \"#utility.yul\":12186:12189 */\n dup5\n /* \"#utility.yul\":12182:12198 */\n add\n /* \"#utility.yul\":12175:12198 */\n swap2\n pop\n /* \"#utility.yul\":11924:12204 */\n pop\n /* \"#utility.yul\":11814:12204 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12210:12485 */\ntag_29:\n /* \"#utility.yul\":12342:12345 */\n 0x00\n /* \"#utility.yul\":12364:12459 */\n tag_212\n /* \"#utility.yul\":12455:12458 */\n dup3\n /* \"#utility.yul\":12446:12452 */\n dup5\n /* \"#utility.yul\":12364:12459 */\n tag_73\n jump\t// in\ntag_212:\n /* \"#utility.yul\":12357:12459 */\n swap2\n pop\n /* \"#utility.yul\":12476:12479 */\n dup2\n /* \"#utility.yul\":12469:12479 */\n swap1\n pop\n /* \"#utility.yul\":12210:12485 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12491:12671 */\ntag_74:\n /* \"#utility.yul\":12539:12616 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":12536:12537 */\n 0x00\n /* \"#utility.yul\":12529:12617 */\n mstore\n /* \"#utility.yul\":12636:12640 */\n 0x11\n /* \"#utility.yul\":12633:12634 */\n 0x04\n /* \"#utility.yul\":12626:12641 */\n mstore\n /* \"#utility.yul\":12660:12664 */\n 0x24\n /* \"#utility.yul\":12657:12658 */\n 0x00\n /* \"#utility.yul\":12650:12665 */\n revert\n /* \"#utility.yul\":12677:12910 */\ntag_35:\n /* \"#utility.yul\":12716:12719 */\n 0x00\n /* \"#utility.yul\":12739:12763 */\n tag_215\n /* \"#utility.yul\":12757:12762 */\n dup3\n /* \"#utility.yul\":12739:12763 */\n tag_64\n jump\t// in\ntag_215:\n /* \"#utility.yul\":12730:12763 */\n swap2\n pop\n /* \"#utility.yul\":12785:12851 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":12778:12783 */\n dup3\n /* \"#utility.yul\":12775:12852 */\n sub\n /* \"#utility.yul\":12772:12875 */\n tag_216\n jumpi\n /* \"#utility.yul\":12855:12873 */\n tag_217\n tag_74\n jump\t// in\ntag_217:\n /* \"#utility.yul\":12772:12875 */\ntag_216:\n /* \"#utility.yul\":12902:12903 */\n 0x01\n /* \"#utility.yul\":12895:12900 */\n dup3\n /* \"#utility.yul\":12891:12904 */\n add\n /* \"#utility.yul\":12884:12904 */\n swap1\n pop\n /* \"#utility.yul\":12677:12910 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":12916:13085 */\ntag_75:\n /* \"#utility.yul\":13000:13011 */\n 0x00\n /* \"#utility.yul\":13034:13040 */\n dup3\n /* \"#utility.yul\":13029:13032 */\n dup3\n /* \"#utility.yul\":13022:13041 */\n mstore\n /* \"#utility.yul\":13074:13078 */\n 0x20\n /* \"#utility.yul\":13069:13072 */\n dup3\n /* \"#utility.yul\":13065:13079 */\n add\n /* \"#utility.yul\":13050:13079 */\n swap1\n pop\n /* \"#utility.yul\":12916:13085 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":13091:13260 */\ntag_76:\n /* \"#utility.yul\":13231:13252 */\n 0x436f756c646e27742066696e6420747261636b00000000000000000000000000\n /* \"#utility.yul\":13227:13228 */\n 0x00\n /* \"#utility.yul\":13219:13225 */\n dup3\n /* \"#utility.yul\":13215:13229 */\n add\n /* \"#utility.yul\":13208:13253 */\n mstore\n /* \"#utility.yul\":13091:13260 */\n pop\n jump\t// out\n /* \"#utility.yul\":13266:13632 */\ntag_77:\n /* \"#utility.yul\":13408:13411 */\n 0x00\n /* \"#utility.yul\":13429:13496 */\n tag_221\n /* \"#utility.yul\":13493:13495 */\n 0x13\n /* \"#utility.yul\":13488:13491 */\n dup4\n /* \"#utility.yul\":13429:13496 */\n tag_75\n jump\t// in\ntag_221:\n /* \"#utility.yul\":13422:13496 */\n swap2\n pop\n /* \"#utility.yul\":13505:13598 */\n tag_222\n /* \"#utility.yul\":13594:13597 */\n dup3\n /* \"#utility.yul\":13505:13598 */\n tag_76\n jump\t// in\ntag_222:\n /* \"#utility.yul\":13623:13625 */\n 0x20\n /* \"#utility.yul\":13618:13621 */\n dup3\n /* \"#utility.yul\":13614:13626 */\n add\n /* \"#utility.yul\":13607:13626 */\n swap1\n pop\n /* \"#utility.yul\":13266:13632 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":13638:14057 */\ntag_37:\n /* \"#utility.yul\":13804:13808 */\n 0x00\n /* \"#utility.yul\":13842:13844 */\n 0x20\n /* \"#utility.yul\":13831:13840 */\n dup3\n /* \"#utility.yul\":13827:13845 */\n add\n /* \"#utility.yul\":13819:13845 */\n swap1\n pop\n /* \"#utility.yul\":13891:13900 */\n dup2\n /* \"#utility.yul\":13885:13889 */\n dup2\n /* \"#utility.yul\":13881:13901 */\n sub\n /* \"#utility.yul\":13877:13878 */\n 0x00\n /* \"#utility.yul\":13866:13875 */\n dup4\n /* \"#utility.yul\":13862:13879 */\n add\n /* \"#utility.yul\":13855:13902 */\n mstore\n /* \"#utility.yul\":13919:14050 */\n tag_224\n /* \"#utility.yul\":14045:14049 */\n dup2\n /* \"#utility.yul\":13919:14050 */\n tag_77\n jump\t// in\ntag_224:\n /* \"#utility.yul\":13911:14050 */\n swap1\n pop\n /* \"#utility.yul\":13638:14057 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"main.sol\":3270:3562 contract ReferendaAutoUpgradeDemoV1 is ReferendaAutoUpgradeDemo {... */\ntag_10:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"main.sol\":3270:3562 contract ReferendaAutoUpgradeDemoV1 is ReferendaAutoUpgradeDemo {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x54fd4d50\n eq\n tag_3\n jumpi\n dup1\n 0x6d72ffb6\n eq\n tag_4\n jumpi\n dup1\n 0x79688e99\n eq\n tag_5\n jumpi\n dup1\n 0x920e0c03\n eq\n tag_6\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"main.sol\":3484:3560 function version() external pure returns (uint256) {... */\n tag_3:\n tag_7\n tag_8\n jump\t// in\n tag_7:\n mload(0x40)\n tag_9\n swap2\n swap1\n tag_10\n jump\t// in\n tag_9:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":476:501 uint16 public rootTrackId */\n tag_4:\n tag_11\n tag_12\n jump\t// in\n tag_11:\n mload(0x40)\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n tag_5:\n tag_15\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_16\n swap2\n swap1\n tag_17\n jump\t// in\n tag_16:\n tag_18\n jump\t// in\n tag_15:\n stop\n /* \"main.sol\":609:642 bytes2 public setStorageCallIndex */\n tag_6:\n tag_19\n tag_20\n jump\t// in\n tag_19:\n mload(0x40)\n tag_21\n swap2\n swap1\n tag_22\n jump\t// in\n tag_21:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":3484:3560 function version() external pure returns (uint256) {... */\n tag_8:\n /* \"main.sol\":3526:3533 uint256 */\n 0x00\n /* \"main.sol\":3552:3553 1 */\n 0x01\n /* \"main.sol\":3545:3553 return 1 */\n swap1\n pop\n /* \"main.sol\":3484:3560 function version() external pure returns (uint256) {... */\n swap1\n jump\t// out\n /* \"main.sol\":476:501 uint16 public rootTrackId */\n tag_12:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n dup2\n jump\t// out\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n tag_18:\n /* \"main.sol\":2300:2327 bytes memory setStorageCall */\n 0x00\n /* \"main.sol\":2330:2436 SubstrateTools.buildSetStorageProposal(... */\n tag_25\n /* \"main.sol\":2382:2400 contractStorageKey */\n dup3\n /* \"main.sol\":2414:2426 contractCode */\n dup5\n /* \"main.sol\":2330:2368 SubstrateTools.buildSetStorageProposal */\n tag_26\n /* \"main.sol\":2330:2436 SubstrateTools.buildSetStorageProposal(... */\n jump\t// in\n tag_25:\n /* \"main.sol\":2300:2436 bytes memory setStorageCall = SubstrateTools.buildSetStorageProposal(... */\n swap1\n pop\n /* \"main.sol\":2446:2466 bytes32 preimageHash */\n 0x00\n /* \"precompiles/preimage/Preimage.sol\":145:187 */\n 0x0813\n /* \"main.sol\":2469:2499 PREIMAGE_CONTRACT.notePreimage */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xcb00f603\n /* \"main.sol\":2500:2514 setStorageCall */\n dup4\n /* \"main.sol\":2469:2515 PREIMAGE_CONTRACT.notePreimage(setStorageCall) */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\n tag_27:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_30\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_30:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_31\n swap2\n swap1\n tag_32\n jump\t// in\n tag_31:\n /* \"main.sol\":2446:2515 bytes32 preimageHash = PREIMAGE_CONTRACT.notePreimage(setStorageCall) */\n swap1\n pop\n /* \"main.sol\":2658:2675 uint32 blockCount */\n 0x00\n /* \"main.sol\":2678:2679 1 */\n 0x01\n /* \"main.sol\":2658:2679 uint32 blockCount = 1 */\n swap1\n pop\n /* \"main.sol\":2689:2708 uint32 referendumId */\n 0x00\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":2711:2741 REFERENDA_CONTRACT.submitAfter */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x5b2479db\n /* \"main.sol\":2755:2766 rootTrackId */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n /* \"main.sol\":2780:2792 preimageHash */\n dup6\n /* \"main.sol\":2813:2827 setStorageCall */\n dup8\n /* \"main.sol\":2813:2834 setStorageCall.length */\n mload\n /* \"main.sol\":2849:2859 blockCount */\n dup7\n /* \"main.sol\":2711:2869 REFERENDA_CONTRACT.submitAfter(... */\n mload(0x40)\n dup6\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_33\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_34\n jump\t// in\n tag_33:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_36\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_36:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_37\n swap2\n swap1\n tag_38\n jump\t// in\n tag_37:\n /* \"main.sol\":2689:2869 uint32 referendumId = REFERENDA_CONTRACT.submitAfter(... */\n swap1\n pop\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":2919:2958 REFERENDA_CONTRACT.placeDecisionDeposit */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x245ce18d\n /* \"main.sol\":2959:2971 referendumId */\n dup3\n /* \"main.sol\":2919:2972 REFERENDA_CONTRACT.placeDecisionDeposit(referendumId) */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_39\n swap2\n swap1\n tag_40\n jump\t// in\n tag_39:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_41\n jumpi\n 0x00\n dup1\n revert\n tag_41:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_43\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_43:\n pop\n pop\n pop\n pop\n /* \"precompiles/conviction-voting/ConvictionVoting.sol\":163:205 */\n 0x0812\n /* \"main.sol\":3019:3053 CONVICTION_VOTING_CONTRACT.voteYes */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xda9df518\n /* \"main.sol\":3067:3079 referendumId */\n dup3\n /* \"main.sol\":3093:3114 address(this).balance */\n selfbalance\n /* \"main.sol\":3171:3207 ConvictionVoting.Conviction.Locked1x */\n 0x01\n /* \"main.sol\":3019:3217 CONVICTION_VOTING_CONTRACT.voteYes(... */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_44\n swap4\n swap3\n swap2\n swap1\n tag_45\n jump\t// in\n tag_44:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_46\n jumpi\n 0x00\n dup1\n revert\n tag_46:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_48\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_48:\n pop\n pop\n pop\n pop\n /* \"main.sol\":2290:3224 {... */\n pop\n pop\n pop\n pop\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n pop\n pop\n jump\t// out\n /* \"main.sol\":609:642 bytes2 public setStorageCallIndex */\n tag_20:\n 0x00\n 0x02\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xf0\n shl\n dup2\n jump\t// out\n /* \"SubstrateTools.sol\":1402:1812 */\n tag_26:\n /* \"SubstrateTools.sol\":1532:1544 */\n 0x60\n /* \"SubstrateTools.sol\":1605:1623 */\n 0x04000000000000000000000000000000000000000000000000000000000000\n /* \"SubstrateTools.sol\":1681:1686 */\n 0x04\n /* \"SubstrateTools.sol\":1668:1688 */\n 0xf8\n shl\n /* \"SubstrateTools.sol\":1746:1791 */\n tag_50\n /* \"SubstrateTools.sol\":1766:1776 */\n dup6\n /* \"SubstrateTools.sol\":1778:1790 */\n dup6\n /* \"SubstrateTools.sol\":1746:1765 */\n tag_51\n /* \"SubstrateTools.sol\":1746:1791 */\n jump\t// in\n tag_50:\n /* \"SubstrateTools.sol\":1575:1805 */\n add(0x20, mload(0x40))\n tag_52\n swap4\n swap3\n swap2\n swap1\n tag_53\n jump\t// in\n tag_52:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":1556:1805 */\n swap1\n pop\n /* \"SubstrateTools.sol\":1402:1812 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":858:1140 */\n tag_51:\n /* \"SubstrateTools.sol\":972:984 */\n 0x60\n /* \"SubstrateTools.sol\":1049:1074 */\n tag_55\n /* \"SubstrateTools.sol\":1070:1073 */\n dup4\n /* \"SubstrateTools.sol\":1049:1069 */\n tag_56\n /* \"SubstrateTools.sol\":1049:1074 */\n jump\t// in\n tag_55:\n /* \"SubstrateTools.sol\":1092:1119 */\n tag_57\n /* \"SubstrateTools.sol\":1113:1118 */\n dup4\n /* \"SubstrateTools.sol\":1092:1112 */\n tag_56\n /* \"SubstrateTools.sol\":1092:1119 */\n jump\t// in\n tag_57:\n /* \"SubstrateTools.sol\":1019:1133 */\n add(0x20, mload(0x40))\n tag_58\n swap3\n swap2\n swap1\n tag_59\n jump\t// in\n tag_58:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":1000:1133 */\n swap1\n pop\n /* \"SubstrateTools.sol\":858:1140 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":298:711 */\n tag_56:\n /* \"SubstrateTools.sol\":394:406 */\n 0x60\n /* \"SubstrateTools.sol\":453:466 */\n 0x00\n /* \"SubstrateTools.sol\":495:496 */\n 0x01\n /* \"SubstrateTools.sol\":490:491 */\n 0x04\n /* \"SubstrateTools.sol\":476:480 */\n dup5\n /* \"SubstrateTools.sol\":476:487 */\n mload\n /* \"SubstrateTools.sol\":476:491 */\n tag_61\n swap2\n swap1\n tag_62\n jump\t// in\n tag_61:\n /* \"SubstrateTools.sol\":469:496 */\n tag_63\n swap2\n swap1\n tag_64\n jump\t// in\n tag_63:\n /* \"SubstrateTools.sol\":453:496 */\n swap1\n pop\n /* \"SubstrateTools.sol\":542:563 */\n 0x00\n /* \"SubstrateTools.sol\":594:595 */\n 0x08\n /* \"SubstrateTools.sol\":584:590 */\n dup3\n /* \"SubstrateTools.sol\":584:595 */\n 0xffff\n and\n swap1\n shl\n /* \"SubstrateTools.sol\":578:579 */\n 0x08\n /* \"SubstrateTools.sol\":568:574 */\n dup4\n /* \"SubstrateTools.sol\":568:579 */\n 0xffff\n and\n swap1\n shr\n /* \"SubstrateTools.sol\":567:596 */\n or\n /* \"SubstrateTools.sol\":542:597 */\n swap1\n pop\n /* \"SubstrateTools.sol\":682:696 */\n dup1\n /* \"SubstrateTools.sol\":675:697 */\n 0xf0\n shl\n /* \"SubstrateTools.sol\":699:703 */\n dup5\n /* \"SubstrateTools.sol\":662:704 */\n add(0x20, mload(0x40))\n tag_65\n swap3\n swap2\n swap1\n tag_66\n jump\t// in\n tag_65:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":655:704 */\n swap3\n pop\n pop\n pop\n /* \"SubstrateTools.sol\":298:711 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:84 */\n tag_67:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":73:78 */\n dup2\n /* \"#utility.yul\":62:78 */\n swap1\n pop\n /* \"#utility.yul\":7:84 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":90:208 */\n tag_68:\n /* \"#utility.yul\":177:201 */\n tag_114\n /* \"#utility.yul\":195:200 */\n dup2\n /* \"#utility.yul\":177:201 */\n tag_67\n jump\t// in\n tag_114:\n /* \"#utility.yul\":172:175 */\n dup3\n /* \"#utility.yul\":165:202 */\n mstore\n /* \"#utility.yul\":90:208 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":214:436 */\n tag_10:\n /* \"#utility.yul\":307:311 */\n 0x00\n /* \"#utility.yul\":345:347 */\n 0x20\n /* \"#utility.yul\":334:343 */\n dup3\n /* \"#utility.yul\":330:348 */\n add\n /* \"#utility.yul\":322:348 */\n swap1\n pop\n /* \"#utility.yul\":358:429 */\n tag_116\n /* \"#utility.yul\":426:427 */\n 0x00\n /* \"#utility.yul\":415:424 */\n dup4\n /* \"#utility.yul\":411:428 */\n add\n /* \"#utility.yul\":402:408 */\n dup5\n /* \"#utility.yul\":358:429 */\n tag_68\n jump\t// in\n tag_116:\n /* \"#utility.yul\":214:436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":442:531 */\n tag_69:\n /* \"#utility.yul\":478:485 */\n 0x00\n /* \"#utility.yul\":518:524 */\n 0xffff\n /* \"#utility.yul\":511:516 */\n dup3\n /* \"#utility.yul\":507:525 */\n and\n /* \"#utility.yul\":496:525 */\n swap1\n pop\n /* \"#utility.yul\":442:531 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":537:652 */\n tag_70:\n /* \"#utility.yul\":622:645 */\n tag_119\n /* \"#utility.yul\":639:644 */\n dup2\n /* \"#utility.yul\":622:645 */\n tag_69\n jump\t// in\n tag_119:\n /* \"#utility.yul\":617:620 */\n dup3\n /* \"#utility.yul\":610:646 */\n mstore\n /* \"#utility.yul\":537:652 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":658:876 */\n tag_14:\n /* \"#utility.yul\":749:753 */\n 0x00\n /* \"#utility.yul\":787:789 */\n 0x20\n /* \"#utility.yul\":776:785 */\n dup3\n /* \"#utility.yul\":772:790 */\n add\n /* \"#utility.yul\":764:790 */\n swap1\n pop\n /* \"#utility.yul\":800:869 */\n tag_121\n /* \"#utility.yul\":866:867 */\n 0x00\n /* \"#utility.yul\":855:864 */\n dup4\n /* \"#utility.yul\":851:868 */\n add\n /* \"#utility.yul\":842:848 */\n dup5\n /* \"#utility.yul\":800:869 */\n tag_70\n jump\t// in\n tag_121:\n /* \"#utility.yul\":658:876 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":882:957 */\n tag_71:\n /* \"#utility.yul\":915:921 */\n 0x00\n /* \"#utility.yul\":948:950 */\n 0x40\n /* \"#utility.yul\":942:951 */\n mload\n /* \"#utility.yul\":932:951 */\n swap1\n pop\n /* \"#utility.yul\":882:957 */\n swap1\n jump\t// out\n /* \"#utility.yul\":963:1080 */\n tag_72:\n /* \"#utility.yul\":1072:1073 */\n 0x00\n /* \"#utility.yul\":1069:1070 */\n dup1\n /* \"#utility.yul\":1062:1074 */\n revert\n /* \"#utility.yul\":1086:1203 */\n tag_73:\n /* \"#utility.yul\":1195:1196 */\n 0x00\n /* \"#utility.yul\":1192:1193 */\n dup1\n /* \"#utility.yul\":1185:1197 */\n revert\n /* \"#utility.yul\":1209:1326 */\n tag_74:\n /* \"#utility.yul\":1318:1319 */\n 0x00\n /* \"#utility.yul\":1315:1316 */\n dup1\n /* \"#utility.yul\":1308:1320 */\n revert\n /* \"#utility.yul\":1332:1449 */\n tag_75:\n /* \"#utility.yul\":1441:1442 */\n 0x00\n /* \"#utility.yul\":1438:1439 */\n dup1\n /* \"#utility.yul\":1431:1443 */\n revert\n /* \"#utility.yul\":1455:1557 */\n tag_76:\n /* \"#utility.yul\":1496:1502 */\n 0x00\n /* \"#utility.yul\":1547:1549 */\n 0x1f\n /* \"#utility.yul\":1543:1550 */\n not\n /* \"#utility.yul\":1538:1540 */\n 0x1f\n /* \"#utility.yul\":1531:1536 */\n dup4\n /* \"#utility.yul\":1527:1541 */\n add\n /* \"#utility.yul\":1523:1551 */\n and\n /* \"#utility.yul\":1513:1551 */\n swap1\n pop\n /* \"#utility.yul\":1455:1557 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1563:1743 */\n tag_77:\n /* \"#utility.yul\":1611:1688 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1608:1609 */\n 0x00\n /* \"#utility.yul\":1601:1689 */\n mstore\n /* \"#utility.yul\":1708:1712 */\n 0x41\n /* \"#utility.yul\":1705:1706 */\n 0x04\n /* \"#utility.yul\":1698:1713 */\n mstore\n /* \"#utility.yul\":1732:1736 */\n 0x24\n /* \"#utility.yul\":1729:1730 */\n 0x00\n /* \"#utility.yul\":1722:1737 */\n revert\n /* \"#utility.yul\":1749:2030 */\n tag_78:\n /* \"#utility.yul\":1832:1859 */\n tag_130\n /* \"#utility.yul\":1854:1858 */\n dup3\n /* \"#utility.yul\":1832:1859 */\n tag_76\n jump\t// in\n tag_130:\n /* \"#utility.yul\":1824:1830 */\n dup2\n /* \"#utility.yul\":1820:1860 */\n add\n /* \"#utility.yul\":1962:1968 */\n dup2\n /* \"#utility.yul\":1950:1960 */\n dup2\n /* \"#utility.yul\":1947:1969 */\n lt\n /* \"#utility.yul\":1926:1944 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1914:1924 */\n dup3\n /* \"#utility.yul\":1911:1945 */\n gt\n /* \"#utility.yul\":1908:1970 */\n or\n /* \"#utility.yul\":1905:1993 */\n iszero\n tag_131\n jumpi\n /* \"#utility.yul\":1973:1991 */\n tag_132\n tag_77\n jump\t// in\n tag_132:\n /* \"#utility.yul\":1905:1993 */\n tag_131:\n /* \"#utility.yul\":2013:2023 */\n dup1\n /* \"#utility.yul\":2009:2011 */\n 0x40\n /* \"#utility.yul\":2002:2024 */\n mstore\n /* \"#utility.yul\":1792:2030 */\n pop\n /* \"#utility.yul\":1749:2030 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2036:2165 */\n tag_79:\n /* \"#utility.yul\":2070:2076 */\n 0x00\n /* \"#utility.yul\":2097:2117 */\n tag_134\n tag_71\n jump\t// in\n tag_134:\n /* \"#utility.yul\":2087:2117 */\n swap1\n pop\n /* \"#utility.yul\":2126:2159 */\n tag_135\n /* \"#utility.yul\":2154:2158 */\n dup3\n /* \"#utility.yul\":2146:2152 */\n dup3\n /* \"#utility.yul\":2126:2159 */\n tag_78\n jump\t// in\n tag_135:\n /* \"#utility.yul\":2036:2165 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2171:2478 */\n tag_80:\n /* \"#utility.yul\":2232:2236 */\n 0x00\n /* \"#utility.yul\":2322:2340 */\n 0xffffffffffffffff\n /* \"#utility.yul\":2314:2320 */\n dup3\n /* \"#utility.yul\":2311:2341 */\n gt\n /* \"#utility.yul\":2308:2364 */\n iszero\n tag_137\n jumpi\n /* \"#utility.yul\":2344:2362 */\n tag_138\n tag_77\n jump\t// in\n tag_138:\n /* \"#utility.yul\":2308:2364 */\n tag_137:\n /* \"#utility.yul\":2382:2411 */\n tag_139\n /* \"#utility.yul\":2404:2410 */\n dup3\n /* \"#utility.yul\":2382:2411 */\n tag_76\n jump\t// in\n tag_139:\n /* \"#utility.yul\":2374:2411 */\n swap1\n pop\n /* \"#utility.yul\":2466:2470 */\n 0x20\n /* \"#utility.yul\":2460:2464 */\n dup2\n /* \"#utility.yul\":2456:2471 */\n add\n /* \"#utility.yul\":2448:2471 */\n swap1\n pop\n /* \"#utility.yul\":2171:2478 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2484:2630 */\n tag_81:\n /* \"#utility.yul\":2581:2587 */\n dup3\n /* \"#utility.yul\":2576:2579 */\n dup2\n /* \"#utility.yul\":2571:2574 */\n dup4\n /* \"#utility.yul\":2558:2588 */\n calldatacopy\n /* \"#utility.yul\":2622:2623 */\n 0x00\n /* \"#utility.yul\":2613:2619 */\n dup4\n /* \"#utility.yul\":2608:2611 */\n dup4\n /* \"#utility.yul\":2604:2620 */\n add\n /* \"#utility.yul\":2597:2624 */\n mstore\n /* \"#utility.yul\":2484:2630 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2636:3059 */\n tag_82:\n /* \"#utility.yul\":2713:2718 */\n 0x00\n /* \"#utility.yul\":2738:2803 */\n tag_142\n /* \"#utility.yul\":2754:2802 */\n tag_143\n /* \"#utility.yul\":2795:2801 */\n dup5\n /* \"#utility.yul\":2754:2802 */\n tag_80\n jump\t// in\n tag_143:\n /* \"#utility.yul\":2738:2803 */\n tag_79\n jump\t// in\n tag_142:\n /* \"#utility.yul\":2729:2803 */\n swap1\n pop\n /* \"#utility.yul\":2826:2832 */\n dup3\n /* \"#utility.yul\":2819:2824 */\n dup2\n /* \"#utility.yul\":2812:2833 */\n mstore\n /* \"#utility.yul\":2864:2868 */\n 0x20\n /* \"#utility.yul\":2857:2862 */\n dup2\n /* \"#utility.yul\":2853:2869 */\n add\n /* \"#utility.yul\":2902:2905 */\n dup5\n /* \"#utility.yul\":2893:2899 */\n dup5\n /* \"#utility.yul\":2888:2891 */\n dup5\n /* \"#utility.yul\":2884:2900 */\n add\n /* \"#utility.yul\":2881:2906 */\n gt\n /* \"#utility.yul\":2878:2990 */\n iszero\n tag_144\n jumpi\n /* \"#utility.yul\":2909:2988 */\n tag_145\n tag_75\n jump\t// in\n tag_145:\n /* \"#utility.yul\":2878:2990 */\n tag_144:\n /* \"#utility.yul\":2999:3053 */\n tag_146\n /* \"#utility.yul\":3046:3052 */\n dup5\n /* \"#utility.yul\":3041:3044 */\n dup3\n /* \"#utility.yul\":3036:3039 */\n dup6\n /* \"#utility.yul\":2999:3053 */\n tag_81\n jump\t// in\n tag_146:\n /* \"#utility.yul\":2719:3059 */\n pop\n /* \"#utility.yul\":2636:3059 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3078:3416 */\n tag_83:\n /* \"#utility.yul\":3133:3138 */\n 0x00\n /* \"#utility.yul\":3182:3185 */\n dup3\n /* \"#utility.yul\":3175:3179 */\n 0x1f\n /* \"#utility.yul\":3167:3173 */\n dup4\n /* \"#utility.yul\":3163:3180 */\n add\n /* \"#utility.yul\":3159:3186 */\n slt\n /* \"#utility.yul\":3149:3271 */\n tag_148\n jumpi\n /* \"#utility.yul\":3190:3269 */\n tag_149\n tag_74\n jump\t// in\n tag_149:\n /* \"#utility.yul\":3149:3271 */\n tag_148:\n /* \"#utility.yul\":3307:3313 */\n dup2\n /* \"#utility.yul\":3294:3314 */\n calldataload\n /* \"#utility.yul\":3332:3410 */\n tag_150\n /* \"#utility.yul\":3406:3409 */\n dup5\n /* \"#utility.yul\":3398:3404 */\n dup3\n /* \"#utility.yul\":3391:3395 */\n 0x20\n /* \"#utility.yul\":3383:3389 */\n dup7\n /* \"#utility.yul\":3379:3396 */\n add\n /* \"#utility.yul\":3332:3410 */\n tag_82\n jump\t// in\n tag_150:\n /* \"#utility.yul\":3323:3410 */\n swap2\n pop\n /* \"#utility.yul\":3139:3416 */\n pop\n /* \"#utility.yul\":3078:3416 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3422:4252 */\n tag_17:\n /* \"#utility.yul\":3508:3514 */\n 0x00\n /* \"#utility.yul\":3516:3522 */\n dup1\n /* \"#utility.yul\":3565:3567 */\n 0x40\n /* \"#utility.yul\":3553:3562 */\n dup4\n /* \"#utility.yul\":3544:3551 */\n dup6\n /* \"#utility.yul\":3540:3563 */\n sub\n /* \"#utility.yul\":3536:3568 */\n slt\n /* \"#utility.yul\":3533:3652 */\n iszero\n tag_152\n jumpi\n /* \"#utility.yul\":3571:3650 */\n tag_153\n tag_72\n jump\t// in\n tag_153:\n /* \"#utility.yul\":3533:3652 */\n tag_152:\n /* \"#utility.yul\":3719:3720 */\n 0x00\n /* \"#utility.yul\":3708:3717 */\n dup4\n /* \"#utility.yul\":3704:3721 */\n add\n /* \"#utility.yul\":3691:3722 */\n calldataload\n /* \"#utility.yul\":3749:3767 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3741:3747 */\n dup2\n /* \"#utility.yul\":3738:3768 */\n gt\n /* \"#utility.yul\":3735:3852 */\n iszero\n tag_154\n jumpi\n /* \"#utility.yul\":3771:3850 */\n tag_155\n tag_73\n jump\t// in\n tag_155:\n /* \"#utility.yul\":3735:3852 */\n tag_154:\n /* \"#utility.yul\":3876:3938 */\n tag_156\n /* \"#utility.yul\":3930:3937 */\n dup6\n /* \"#utility.yul\":3921:3927 */\n dup3\n /* \"#utility.yul\":3910:3919 */\n dup7\n /* \"#utility.yul\":3906:3928 */\n add\n /* \"#utility.yul\":3876:3938 */\n tag_83\n jump\t// in\n tag_156:\n /* \"#utility.yul\":3866:3938 */\n swap3\n pop\n /* \"#utility.yul\":3662:3948 */\n pop\n /* \"#utility.yul\":4015:4017 */\n 0x20\n /* \"#utility.yul\":4004:4013 */\n dup4\n /* \"#utility.yul\":4000:4018 */\n add\n /* \"#utility.yul\":3987:4019 */\n calldataload\n /* \"#utility.yul\":4046:4064 */\n 0xffffffffffffffff\n /* \"#utility.yul\":4038:4044 */\n dup2\n /* \"#utility.yul\":4035:4065 */\n gt\n /* \"#utility.yul\":4032:4149 */\n iszero\n tag_157\n jumpi\n /* \"#utility.yul\":4068:4147 */\n tag_158\n tag_73\n jump\t// in\n tag_158:\n /* \"#utility.yul\":4032:4149 */\n tag_157:\n /* \"#utility.yul\":4173:4235 */\n tag_159\n /* \"#utility.yul\":4227:4234 */\n dup6\n /* \"#utility.yul\":4218:4224 */\n dup3\n /* \"#utility.yul\":4207:4216 */\n dup7\n /* \"#utility.yul\":4203:4225 */\n add\n /* \"#utility.yul\":4173:4235 */\n tag_83\n jump\t// in\n tag_159:\n /* \"#utility.yul\":4163:4235 */\n swap2\n pop\n /* \"#utility.yul\":3958:4245 */\n pop\n /* \"#utility.yul\":3422:4252 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4258:4407 */\n tag_84:\n /* \"#utility.yul\":4294:4301 */\n 0x00\n /* \"#utility.yul\":4334:4400 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":4327:4332 */\n dup3\n /* \"#utility.yul\":4323:4401 */\n and\n /* \"#utility.yul\":4312:4401 */\n swap1\n pop\n /* \"#utility.yul\":4258:4407 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4413:4528 */\n tag_85:\n /* \"#utility.yul\":4498:4521 */\n tag_162\n /* \"#utility.yul\":4515:4520 */\n dup2\n /* \"#utility.yul\":4498:4521 */\n tag_84\n jump\t// in\n tag_162:\n /* \"#utility.yul\":4493:4496 */\n dup3\n /* \"#utility.yul\":4486:4522 */\n mstore\n /* \"#utility.yul\":4413:4528 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4534:4752 */\n tag_22:\n /* \"#utility.yul\":4625:4629 */\n 0x00\n /* \"#utility.yul\":4663:4665 */\n 0x20\n /* \"#utility.yul\":4652:4661 */\n dup3\n /* \"#utility.yul\":4648:4666 */\n add\n /* \"#utility.yul\":4640:4666 */\n swap1\n pop\n /* \"#utility.yul\":4676:4745 */\n tag_164\n /* \"#utility.yul\":4742:4743 */\n 0x00\n /* \"#utility.yul\":4731:4740 */\n dup4\n /* \"#utility.yul\":4727:4744 */\n add\n /* \"#utility.yul\":4718:4724 */\n dup5\n /* \"#utility.yul\":4676:4745 */\n tag_85\n jump\t// in\n tag_164:\n /* \"#utility.yul\":4534:4752 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4758:4856 */\n tag_86:\n /* \"#utility.yul\":4809:4815 */\n 0x00\n /* \"#utility.yul\":4843:4848 */\n dup2\n /* \"#utility.yul\":4837:4849 */\n mload\n /* \"#utility.yul\":4827:4849 */\n swap1\n pop\n /* \"#utility.yul\":4758:4856 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4862:5030 */\n tag_87:\n /* \"#utility.yul\":4945:4956 */\n 0x00\n /* \"#utility.yul\":4979:4985 */\n dup3\n /* \"#utility.yul\":4974:4977 */\n dup3\n /* \"#utility.yul\":4967:4986 */\n mstore\n /* \"#utility.yul\":5019:5023 */\n 0x20\n /* \"#utility.yul\":5014:5017 */\n dup3\n /* \"#utility.yul\":5010:5024 */\n add\n /* \"#utility.yul\":4995:5024 */\n swap1\n pop\n /* \"#utility.yul\":4862:5030 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5036:5282 */\n tag_88:\n /* \"#utility.yul\":5117:5118 */\n 0x00\n /* \"#utility.yul\":5127:5240 */\n tag_168:\n /* \"#utility.yul\":5141:5147 */\n dup4\n /* \"#utility.yul\":5138:5139 */\n dup2\n /* \"#utility.yul\":5135:5148 */\n lt\n /* \"#utility.yul\":5127:5240 */\n iszero\n tag_170\n jumpi\n /* \"#utility.yul\":5226:5227 */\n dup1\n /* \"#utility.yul\":5221:5224 */\n dup3\n /* \"#utility.yul\":5217:5228 */\n add\n /* \"#utility.yul\":5211:5229 */\n mload\n /* \"#utility.yul\":5207:5208 */\n dup2\n /* \"#utility.yul\":5202:5205 */\n dup5\n /* \"#utility.yul\":5198:5209 */\n add\n /* \"#utility.yul\":5191:5230 */\n mstore\n /* \"#utility.yul\":5163:5165 */\n 0x20\n /* \"#utility.yul\":5160:5161 */\n dup2\n /* \"#utility.yul\":5156:5166 */\n add\n /* \"#utility.yul\":5151:5166 */\n swap1\n pop\n /* \"#utility.yul\":5127:5240 */\n jump(tag_168)\n tag_170:\n /* \"#utility.yul\":5274:5275 */\n 0x00\n /* \"#utility.yul\":5265:5271 */\n dup5\n /* \"#utility.yul\":5260:5263 */\n dup5\n /* \"#utility.yul\":5256:5272 */\n add\n /* \"#utility.yul\":5249:5276 */\n mstore\n /* \"#utility.yul\":5098:5282 */\n pop\n /* \"#utility.yul\":5036:5282 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5288:5661 */\n tag_89:\n /* \"#utility.yul\":5374:5377 */\n 0x00\n /* \"#utility.yul\":5402:5440 */\n tag_172\n /* \"#utility.yul\":5434:5439 */\n dup3\n /* \"#utility.yul\":5402:5440 */\n tag_86\n jump\t// in\n tag_172:\n /* \"#utility.yul\":5456:5526 */\n tag_173\n /* \"#utility.yul\":5519:5525 */\n dup2\n /* \"#utility.yul\":5514:5517 */\n dup6\n /* \"#utility.yul\":5456:5526 */\n tag_87\n jump\t// in\n tag_173:\n /* \"#utility.yul\":5449:5526 */\n swap4\n pop\n /* \"#utility.yul\":5535:5600 */\n tag_174\n /* \"#utility.yul\":5593:5599 */\n dup2\n /* \"#utility.yul\":5588:5591 */\n dup6\n /* \"#utility.yul\":5581:5585 */\n 0x20\n /* \"#utility.yul\":5574:5579 */\n dup7\n /* \"#utility.yul\":5570:5586 */\n add\n /* \"#utility.yul\":5535:5600 */\n tag_88\n jump\t// in\n tag_174:\n /* \"#utility.yul\":5625:5654 */\n tag_175\n /* \"#utility.yul\":5647:5653 */\n dup2\n /* \"#utility.yul\":5625:5654 */\n tag_76\n jump\t// in\n tag_175:\n /* \"#utility.yul\":5620:5623 */\n dup5\n /* \"#utility.yul\":5616:5655 */\n add\n /* \"#utility.yul\":5609:5655 */\n swap2\n pop\n /* \"#utility.yul\":5378:5661 */\n pop\n /* \"#utility.yul\":5288:5661 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5667:5976 */\n tag_28:\n /* \"#utility.yul\":5778:5782 */\n 0x00\n /* \"#utility.yul\":5816:5818 */\n 0x20\n /* \"#utility.yul\":5805:5814 */\n dup3\n /* \"#utility.yul\":5801:5819 */\n add\n /* \"#utility.yul\":5793:5819 */\n swap1\n pop\n /* \"#utility.yul\":5865:5874 */\n dup2\n /* \"#utility.yul\":5859:5863 */\n dup2\n /* \"#utility.yul\":5855:5875 */\n sub\n /* \"#utility.yul\":5851:5852 */\n 0x00\n /* \"#utility.yul\":5840:5849 */\n dup4\n /* \"#utility.yul\":5836:5853 */\n add\n /* \"#utility.yul\":5829:5876 */\n mstore\n /* \"#utility.yul\":5893:5969 */\n tag_177\n /* \"#utility.yul\":5964:5968 */\n dup2\n /* \"#utility.yul\":5955:5961 */\n dup5\n /* \"#utility.yul\":5893:5969 */\n tag_89\n jump\t// in\n tag_177:\n /* \"#utility.yul\":5885:5969 */\n swap1\n pop\n /* \"#utility.yul\":5667:5976 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5982:6059 */\n tag_90:\n /* \"#utility.yul\":6019:6026 */\n 0x00\n /* \"#utility.yul\":6048:6053 */\n dup2\n /* \"#utility.yul\":6037:6053 */\n swap1\n pop\n /* \"#utility.yul\":5982:6059 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6065:6187 */\n tag_91:\n /* \"#utility.yul\":6138:6162 */\n tag_180\n /* \"#utility.yul\":6156:6161 */\n dup2\n /* \"#utility.yul\":6138:6162 */\n tag_90\n jump\t// in\n tag_180:\n /* \"#utility.yul\":6131:6136 */\n dup2\n /* \"#utility.yul\":6128:6163 */\n eq\n /* \"#utility.yul\":6118:6181 */\n tag_181\n jumpi\n /* \"#utility.yul\":6177:6178 */\n 0x00\n /* \"#utility.yul\":6174:6175 */\n dup1\n /* \"#utility.yul\":6167:6179 */\n revert\n /* \"#utility.yul\":6118:6181 */\n tag_181:\n /* \"#utility.yul\":6065:6187 */\n pop\n jump\t// out\n /* \"#utility.yul\":6193:6336 */\n tag_92:\n /* \"#utility.yul\":6250:6255 */\n 0x00\n /* \"#utility.yul\":6281:6287 */\n dup2\n /* \"#utility.yul\":6275:6288 */\n mload\n /* \"#utility.yul\":6266:6288 */\n swap1\n pop\n /* \"#utility.yul\":6297:6330 */\n tag_183\n /* \"#utility.yul\":6324:6329 */\n dup2\n /* \"#utility.yul\":6297:6330 */\n tag_91\n jump\t// in\n tag_183:\n /* \"#utility.yul\":6193:6336 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6342:6693 */\n tag_32:\n /* \"#utility.yul\":6412:6418 */\n 0x00\n /* \"#utility.yul\":6461:6463 */\n 0x20\n /* \"#utility.yul\":6449:6458 */\n dup3\n /* \"#utility.yul\":6440:6447 */\n dup5\n /* \"#utility.yul\":6436:6459 */\n sub\n /* \"#utility.yul\":6432:6464 */\n slt\n /* \"#utility.yul\":6429:6548 */\n iszero\n tag_185\n jumpi\n /* \"#utility.yul\":6467:6546 */\n tag_186\n tag_72\n jump\t// in\n tag_186:\n /* \"#utility.yul\":6429:6548 */\n tag_185:\n /* \"#utility.yul\":6587:6588 */\n 0x00\n /* \"#utility.yul\":6612:6676 */\n tag_187\n /* \"#utility.yul\":6668:6675 */\n dup5\n /* \"#utility.yul\":6659:6665 */\n dup3\n /* \"#utility.yul\":6648:6657 */\n dup6\n /* \"#utility.yul\":6644:6666 */\n add\n /* \"#utility.yul\":6612:6676 */\n tag_92\n jump\t// in\n tag_187:\n /* \"#utility.yul\":6602:6676 */\n swap2\n pop\n /* \"#utility.yul\":6558:6686 */\n pop\n /* \"#utility.yul\":6342:6693 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6699:6817 */\n tag_93:\n /* \"#utility.yul\":6786:6810 */\n tag_189\n /* \"#utility.yul\":6804:6809 */\n dup2\n /* \"#utility.yul\":6786:6810 */\n tag_90\n jump\t// in\n tag_189:\n /* \"#utility.yul\":6781:6784 */\n dup3\n /* \"#utility.yul\":6774:6811 */\n mstore\n /* \"#utility.yul\":6699:6817 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6823:6916 */\n tag_94:\n /* \"#utility.yul\":6859:6866 */\n 0x00\n /* \"#utility.yul\":6899:6909 */\n 0xffffffff\n /* \"#utility.yul\":6892:6897 */\n dup3\n /* \"#utility.yul\":6888:6910 */\n and\n /* \"#utility.yul\":6877:6910 */\n swap1\n pop\n /* \"#utility.yul\":6823:6916 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6922:7037 */\n tag_95:\n /* \"#utility.yul\":7007:7030 */\n tag_192\n /* \"#utility.yul\":7024:7029 */\n dup2\n /* \"#utility.yul\":7007:7030 */\n tag_94\n jump\t// in\n tag_192:\n /* \"#utility.yul\":7002:7005 */\n dup3\n /* \"#utility.yul\":6995:7031 */\n mstore\n /* \"#utility.yul\":6922:7037 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7043:7584 */\n tag_34:\n /* \"#utility.yul\":7214:7218 */\n 0x00\n /* \"#utility.yul\":7252:7255 */\n 0x80\n /* \"#utility.yul\":7241:7250 */\n dup3\n /* \"#utility.yul\":7237:7256 */\n add\n /* \"#utility.yul\":7229:7256 */\n swap1\n pop\n /* \"#utility.yul\":7266:7335 */\n tag_194\n /* \"#utility.yul\":7332:7333 */\n 0x00\n /* \"#utility.yul\":7321:7330 */\n dup4\n /* \"#utility.yul\":7317:7334 */\n add\n /* \"#utility.yul\":7308:7314 */\n dup8\n /* \"#utility.yul\":7266:7335 */\n tag_70\n jump\t// in\n tag_194:\n /* \"#utility.yul\":7345:7417 */\n tag_195\n /* \"#utility.yul\":7413:7415 */\n 0x20\n /* \"#utility.yul\":7402:7411 */\n dup4\n /* \"#utility.yul\":7398:7416 */\n add\n /* \"#utility.yul\":7389:7395 */\n dup7\n /* \"#utility.yul\":7345:7417 */\n tag_93\n jump\t// in\n tag_195:\n /* \"#utility.yul\":7427:7497 */\n tag_196\n /* \"#utility.yul\":7493:7495 */\n 0x40\n /* \"#utility.yul\":7482:7491 */\n dup4\n /* \"#utility.yul\":7478:7496 */\n add\n /* \"#utility.yul\":7469:7475 */\n dup6\n /* \"#utility.yul\":7427:7497 */\n tag_95\n jump\t// in\n tag_196:\n /* \"#utility.yul\":7507:7577 */\n tag_197\n /* \"#utility.yul\":7573:7575 */\n 0x60\n /* \"#utility.yul\":7562:7571 */\n dup4\n /* \"#utility.yul\":7558:7576 */\n add\n /* \"#utility.yul\":7549:7555 */\n dup5\n /* \"#utility.yul\":7507:7577 */\n tag_95\n jump\t// in\n tag_197:\n /* \"#utility.yul\":7043:7584 */\n swap6\n swap5\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7590:7710 */\n tag_96:\n /* \"#utility.yul\":7662:7685 */\n tag_199\n /* \"#utility.yul\":7679:7684 */\n dup2\n /* \"#utility.yul\":7662:7685 */\n tag_94\n jump\t// in\n tag_199:\n /* \"#utility.yul\":7655:7660 */\n dup2\n /* \"#utility.yul\":7652:7686 */\n eq\n /* \"#utility.yul\":7642:7704 */\n tag_200\n jumpi\n /* \"#utility.yul\":7700:7701 */\n 0x00\n /* \"#utility.yul\":7697:7698 */\n dup1\n /* \"#utility.yul\":7690:7702 */\n revert\n /* \"#utility.yul\":7642:7704 */\n tag_200:\n /* \"#utility.yul\":7590:7710 */\n pop\n jump\t// out\n /* \"#utility.yul\":7716:7857 */\n tag_97:\n /* \"#utility.yul\":7772:7777 */\n 0x00\n /* \"#utility.yul\":7803:7809 */\n dup2\n /* \"#utility.yul\":7797:7810 */\n mload\n /* \"#utility.yul\":7788:7810 */\n swap1\n pop\n /* \"#utility.yul\":7819:7851 */\n tag_202\n /* \"#utility.yul\":7845:7850 */\n dup2\n /* \"#utility.yul\":7819:7851 */\n tag_96\n jump\t// in\n tag_202:\n /* \"#utility.yul\":7716:7857 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7863:8212 */\n tag_38:\n /* \"#utility.yul\":7932:7938 */\n 0x00\n /* \"#utility.yul\":7981:7983 */\n 0x20\n /* \"#utility.yul\":7969:7978 */\n dup3\n /* \"#utility.yul\":7960:7967 */\n dup5\n /* \"#utility.yul\":7956:7979 */\n sub\n /* \"#utility.yul\":7952:7984 */\n slt\n /* \"#utility.yul\":7949:8068 */\n iszero\n tag_204\n jumpi\n /* \"#utility.yul\":7987:8066 */\n tag_205\n tag_72\n jump\t// in\n tag_205:\n /* \"#utility.yul\":7949:8068 */\n tag_204:\n /* \"#utility.yul\":8107:8108 */\n 0x00\n /* \"#utility.yul\":8132:8195 */\n tag_206\n /* \"#utility.yul\":8187:8194 */\n dup5\n /* \"#utility.yul\":8178:8184 */\n dup3\n /* \"#utility.yul\":8167:8176 */\n dup6\n /* \"#utility.yul\":8163:8185 */\n add\n /* \"#utility.yul\":8132:8195 */\n tag_97\n jump\t// in\n tag_206:\n /* \"#utility.yul\":8122:8195 */\n swap2\n pop\n /* \"#utility.yul\":8078:8205 */\n pop\n /* \"#utility.yul\":7863:8212 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8218:8436 */\n tag_40:\n /* \"#utility.yul\":8309:8313 */\n 0x00\n /* \"#utility.yul\":8347:8349 */\n 0x20\n /* \"#utility.yul\":8336:8345 */\n dup3\n /* \"#utility.yul\":8332:8350 */\n add\n /* \"#utility.yul\":8324:8350 */\n swap1\n pop\n /* \"#utility.yul\":8360:8429 */\n tag_208\n /* \"#utility.yul\":8426:8427 */\n 0x00\n /* \"#utility.yul\":8415:8424 */\n dup4\n /* \"#utility.yul\":8411:8428 */\n add\n /* \"#utility.yul\":8402:8408 */\n dup5\n /* \"#utility.yul\":8360:8429 */\n tag_95\n jump\t// in\n tag_208:\n /* \"#utility.yul\":8218:8436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8442:8622 */\n tag_98:\n /* \"#utility.yul\":8490:8567 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":8487:8488 */\n 0x00\n /* \"#utility.yul\":8480:8568 */\n mstore\n /* \"#utility.yul\":8587:8591 */\n 0x21\n /* \"#utility.yul\":8584:8585 */\n 0x04\n /* \"#utility.yul\":8577:8592 */\n mstore\n /* \"#utility.yul\":8611:8615 */\n 0x24\n /* \"#utility.yul\":8608:8609 */\n 0x00\n /* \"#utility.yul\":8601:8616 */\n revert\n /* \"#utility.yul\":8628:8747 */\n tag_99:\n /* \"#utility.yul\":8715:8716 */\n 0x07\n /* \"#utility.yul\":8708:8713 */\n dup2\n /* \"#utility.yul\":8705:8717 */\n lt\n /* \"#utility.yul\":8695:8741 */\n tag_211\n jumpi\n /* \"#utility.yul\":8721:8739 */\n tag_212\n tag_98\n jump\t// in\n tag_212:\n /* \"#utility.yul\":8695:8741 */\n tag_211:\n /* \"#utility.yul\":8628:8747 */\n pop\n jump\t// out\n /* \"#utility.yul\":8753:8892 */\n tag_100:\n /* \"#utility.yul\":8804:8811 */\n 0x00\n /* \"#utility.yul\":8833:8838 */\n dup2\n /* \"#utility.yul\":8822:8838 */\n swap1\n pop\n /* \"#utility.yul\":8839:8886 */\n tag_214\n /* \"#utility.yul\":8880:8885 */\n dup3\n /* \"#utility.yul\":8839:8886 */\n tag_99\n jump\t// in\n tag_214:\n /* \"#utility.yul\":8753:8892 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8898:9037 */\n tag_101:\n /* \"#utility.yul\":8960:8969 */\n 0x00\n /* \"#utility.yul\":8993:9031 */\n tag_216\n /* \"#utility.yul\":9025:9030 */\n dup3\n /* \"#utility.yul\":8993:9031 */\n tag_100\n jump\t// in\n tag_216:\n /* \"#utility.yul\":8980:9031 */\n swap1\n pop\n /* \"#utility.yul\":8898:9037 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9043:9198 */\n tag_102:\n /* \"#utility.yul\":9142:9191 */\n tag_218\n /* \"#utility.yul\":9185:9190 */\n dup2\n /* \"#utility.yul\":9142:9191 */\n tag_101\n jump\t// in\n tag_218:\n /* \"#utility.yul\":9137:9140 */\n dup3\n /* \"#utility.yul\":9130:9192 */\n mstore\n /* \"#utility.yul\":9043:9198 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9204:9666 */\n tag_45:\n /* \"#utility.yul\":9363:9367 */\n 0x00\n /* \"#utility.yul\":9401:9403 */\n 0x60\n /* \"#utility.yul\":9390:9399 */\n dup3\n /* \"#utility.yul\":9386:9404 */\n add\n /* \"#utility.yul\":9378:9404 */\n swap1\n pop\n /* \"#utility.yul\":9414:9483 */\n tag_220\n /* \"#utility.yul\":9480:9481 */\n 0x00\n /* \"#utility.yul\":9469:9478 */\n dup4\n /* \"#utility.yul\":9465:9482 */\n add\n /* \"#utility.yul\":9456:9462 */\n dup7\n /* \"#utility.yul\":9414:9483 */\n tag_95\n jump\t// in\n tag_220:\n /* \"#utility.yul\":9493:9565 */\n tag_221\n /* \"#utility.yul\":9561:9563 */\n 0x20\n /* \"#utility.yul\":9550:9559 */\n dup4\n /* \"#utility.yul\":9546:9564 */\n add\n /* \"#utility.yul\":9537:9543 */\n dup6\n /* \"#utility.yul\":9493:9565 */\n tag_68\n jump\t// in\n tag_221:\n /* \"#utility.yul\":9575:9659 */\n tag_222\n /* \"#utility.yul\":9655:9657 */\n 0x40\n /* \"#utility.yul\":9644:9653 */\n dup4\n /* \"#utility.yul\":9640:9658 */\n add\n /* \"#utility.yul\":9631:9637 */\n dup5\n /* \"#utility.yul\":9575:9659 */\n tag_102\n jump\t// in\n tag_222:\n /* \"#utility.yul\":9204:9666 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9672:9750 */\n tag_103:\n /* \"#utility.yul\":9710:9717 */\n 0x00\n /* \"#utility.yul\":9739:9744 */\n dup2\n /* \"#utility.yul\":9728:9744 */\n swap1\n pop\n /* \"#utility.yul\":9672:9750 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9756:9909 */\n tag_104:\n /* \"#utility.yul\":9859:9902 */\n tag_225\n /* \"#utility.yul\":9878:9901 */\n tag_226\n /* \"#utility.yul\":9895:9900 */\n dup3\n /* \"#utility.yul\":9878:9901 */\n tag_84\n jump\t// in\n tag_226:\n /* \"#utility.yul\":9859:9902 */\n tag_103\n jump\t// in\n tag_225:\n /* \"#utility.yul\":9854:9857 */\n dup3\n /* \"#utility.yul\":9847:9903 */\n mstore\n /* \"#utility.yul\":9756:9909 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9915:10064 */\n tag_105:\n /* \"#utility.yul\":9951:9958 */\n 0x00\n /* \"#utility.yul\":9991:10057 */\n 0xff00000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":9984:9989 */\n dup3\n /* \"#utility.yul\":9980:10058 */\n and\n /* \"#utility.yul\":9969:10058 */\n swap1\n pop\n /* \"#utility.yul\":9915:10064 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":10070:10148 */\n tag_106:\n /* \"#utility.yul\":10108:10115 */\n 0x00\n /* \"#utility.yul\":10137:10142 */\n dup2\n /* \"#utility.yul\":10126:10142 */\n swap1\n pop\n /* \"#utility.yul\":10070:10148 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":10154:10307 */\n tag_107:\n /* \"#utility.yul\":10257:10300 */\n tag_230\n /* \"#utility.yul\":10276:10299 */\n tag_231\n /* \"#utility.yul\":10293:10298 */\n dup3\n /* \"#utility.yul\":10276:10299 */\n tag_105\n jump\t// in\n tag_231:\n /* \"#utility.yul\":10257:10300 */\n tag_106\n jump\t// in\n tag_230:\n /* \"#utility.yul\":10252:10255 */\n dup3\n /* \"#utility.yul\":10245:10301 */\n mstore\n /* \"#utility.yul\":10154:10307 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10313:10460 */\n tag_108:\n /* \"#utility.yul\":10414:10425 */\n 0x00\n /* \"#utility.yul\":10451:10454 */\n dup2\n /* \"#utility.yul\":10436:10454 */\n swap1\n pop\n /* \"#utility.yul\":10313:10460 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10466:10852 */\n tag_109:\n /* \"#utility.yul\":10570:10573 */\n 0x00\n /* \"#utility.yul\":10598:10636 */\n tag_234\n /* \"#utility.yul\":10630:10635 */\n dup3\n /* \"#utility.yul\":10598:10636 */\n tag_86\n jump\t// in\n tag_234:\n /* \"#utility.yul\":10652:10740 */\n tag_235\n /* \"#utility.yul\":10733:10739 */\n dup2\n /* \"#utility.yul\":10728:10731 */\n dup6\n /* \"#utility.yul\":10652:10740 */\n tag_108\n jump\t// in\n tag_235:\n /* \"#utility.yul\":10645:10740 */\n swap4\n pop\n /* \"#utility.yul\":10749:10814 */\n tag_236\n /* \"#utility.yul\":10807:10813 */\n dup2\n /* \"#utility.yul\":10802:10805 */\n dup6\n /* \"#utility.yul\":10795:10799 */\n 0x20\n /* \"#utility.yul\":10788:10793 */\n dup7\n /* \"#utility.yul\":10784:10800 */\n add\n /* \"#utility.yul\":10749:10814 */\n tag_88\n jump\t// in\n tag_236:\n /* \"#utility.yul\":10839:10845 */\n dup1\n /* \"#utility.yul\":10834:10837 */\n dup5\n /* \"#utility.yul\":10830:10846 */\n add\n /* \"#utility.yul\":10823:10846 */\n swap2\n pop\n /* \"#utility.yul\":10574:10852 */\n pop\n /* \"#utility.yul\":10466:10852 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10858:11401 */\n tag_53:\n /* \"#utility.yul\":11040:11043 */\n 0x00\n /* \"#utility.yul\":11055:11128 */\n tag_238\n /* \"#utility.yul\":11124:11127 */\n dup3\n /* \"#utility.yul\":11115:11121 */\n dup7\n /* \"#utility.yul\":11055:11128 */\n tag_104\n jump\t// in\n tag_238:\n /* \"#utility.yul\":11153:11154 */\n 0x02\n /* \"#utility.yul\":11148:11151 */\n dup3\n /* \"#utility.yul\":11144:11155 */\n add\n /* \"#utility.yul\":11137:11155 */\n swap2\n pop\n /* \"#utility.yul\":11165:11238 */\n tag_239\n /* \"#utility.yul\":11234:11237 */\n dup3\n /* \"#utility.yul\":11225:11231 */\n dup6\n /* \"#utility.yul\":11165:11238 */\n tag_107\n jump\t// in\n tag_239:\n /* \"#utility.yul\":11263:11264 */\n 0x01\n /* \"#utility.yul\":11258:11261 */\n dup3\n /* \"#utility.yul\":11254:11265 */\n add\n /* \"#utility.yul\":11247:11265 */\n swap2\n pop\n /* \"#utility.yul\":11282:11375 */\n tag_240\n /* \"#utility.yul\":11371:11374 */\n dup3\n /* \"#utility.yul\":11362:11368 */\n dup5\n /* \"#utility.yul\":11282:11375 */\n tag_109\n jump\t// in\n tag_240:\n /* \"#utility.yul\":11275:11375 */\n swap2\n pop\n /* \"#utility.yul\":11392:11395 */\n dup2\n /* \"#utility.yul\":11385:11395 */\n swap1\n pop\n /* \"#utility.yul\":10858:11401 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11407:11834 */\n tag_59:\n /* \"#utility.yul\":11583:11586 */\n 0x00\n /* \"#utility.yul\":11605:11698 */\n tag_242\n /* \"#utility.yul\":11694:11697 */\n dup3\n /* \"#utility.yul\":11685:11691 */\n dup6\n /* \"#utility.yul\":11605:11698 */\n tag_109\n jump\t// in\n tag_242:\n /* \"#utility.yul\":11598:11698 */\n swap2\n pop\n /* \"#utility.yul\":11715:11808 */\n tag_243\n /* \"#utility.yul\":11804:11807 */\n dup3\n /* \"#utility.yul\":11795:11801 */\n dup5\n /* \"#utility.yul\":11715:11808 */\n tag_109\n jump\t// in\n tag_243:\n /* \"#utility.yul\":11708:11808 */\n swap2\n pop\n /* \"#utility.yul\":11825:11828 */\n dup2\n /* \"#utility.yul\":11818:11828 */\n swap1\n pop\n /* \"#utility.yul\":11407:11834 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11840:12020 */\n tag_110:\n /* \"#utility.yul\":11888:11965 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":11885:11886 */\n 0x00\n /* \"#utility.yul\":11878:11966 */\n mstore\n /* \"#utility.yul\":11985:11989 */\n 0x11\n /* \"#utility.yul\":11982:11983 */\n 0x04\n /* \"#utility.yul\":11975:11990 */\n mstore\n /* \"#utility.yul\":12009:12013 */\n 0x24\n /* \"#utility.yul\":12006:12007 */\n 0x00\n /* \"#utility.yul\":11999:12014 */\n revert\n /* \"#utility.yul\":12026:12436 */\n tag_62:\n /* \"#utility.yul\":12066:12073 */\n 0x00\n /* \"#utility.yul\":12089:12109 */\n tag_246\n /* \"#utility.yul\":12107:12108 */\n dup3\n /* \"#utility.yul\":12089:12109 */\n tag_67\n jump\t// in\n tag_246:\n /* \"#utility.yul\":12084:12109 */\n swap2\n pop\n /* \"#utility.yul\":12123:12143 */\n tag_247\n /* \"#utility.yul\":12141:12142 */\n dup4\n /* \"#utility.yul\":12123:12143 */\n tag_67\n jump\t// in\n tag_247:\n /* \"#utility.yul\":12118:12143 */\n swap3\n pop\n /* \"#utility.yul\":12178:12179 */\n dup3\n /* \"#utility.yul\":12175:12176 */\n dup3\n /* \"#utility.yul\":12171:12180 */\n mul\n /* \"#utility.yul\":12200:12230 */\n tag_248\n /* \"#utility.yul\":12218:12229 */\n dup2\n /* \"#utility.yul\":12200:12230 */\n tag_67\n jump\t// in\n tag_248:\n /* \"#utility.yul\":12189:12230 */\n swap2\n pop\n /* \"#utility.yul\":12379:12380 */\n dup3\n /* \"#utility.yul\":12370:12377 */\n dup3\n /* \"#utility.yul\":12366:12381 */\n div\n /* \"#utility.yul\":12363:12364 */\n dup5\n /* \"#utility.yul\":12360:12382 */\n eq\n /* \"#utility.yul\":12340:12341 */\n dup4\n /* \"#utility.yul\":12333:12342 */\n iszero\n /* \"#utility.yul\":12313:12396 */\n or\n /* \"#utility.yul\":12290:12429 */\n tag_249\n jumpi\n /* \"#utility.yul\":12409:12427 */\n tag_250\n tag_110\n jump\t// in\n tag_250:\n /* \"#utility.yul\":12290:12429 */\n tag_249:\n /* \"#utility.yul\":12074:12436 */\n pop\n /* \"#utility.yul\":12026:12436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12442:12635 */\n tag_64:\n /* \"#utility.yul\":12481:12484 */\n 0x00\n /* \"#utility.yul\":12500:12519 */\n tag_252\n /* \"#utility.yul\":12517:12518 */\n dup3\n /* \"#utility.yul\":12500:12519 */\n tag_69\n jump\t// in\n tag_252:\n /* \"#utility.yul\":12495:12519 */\n swap2\n pop\n /* \"#utility.yul\":12533:12552 */\n tag_253\n /* \"#utility.yul\":12550:12551 */\n dup4\n /* \"#utility.yul\":12533:12552 */\n tag_69\n jump\t// in\n tag_253:\n /* \"#utility.yul\":12528:12552 */\n swap3\n pop\n /* \"#utility.yul\":12575:12576 */\n dup3\n /* \"#utility.yul\":12572:12573 */\n dup3\n /* \"#utility.yul\":12568:12577 */\n add\n /* \"#utility.yul\":12561:12577 */\n swap1\n pop\n /* \"#utility.yul\":12598:12604 */\n 0xffff\n /* \"#utility.yul\":12593:12596 */\n dup2\n /* \"#utility.yul\":12590:12605 */\n gt\n /* \"#utility.yul\":12587:12628 */\n iszero\n tag_254\n jumpi\n /* \"#utility.yul\":12608:12626 */\n tag_255\n tag_110\n jump\t// in\n tag_255:\n /* \"#utility.yul\":12587:12628 */\n tag_254:\n /* \"#utility.yul\":12442:12635 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12641:13048 */\n tag_66:\n /* \"#utility.yul\":12797:12800 */\n 0x00\n /* \"#utility.yul\":12812:12885 */\n tag_257\n /* \"#utility.yul\":12881:12884 */\n dup3\n /* \"#utility.yul\":12872:12878 */\n dup6\n /* \"#utility.yul\":12812:12885 */\n tag_104\n jump\t// in\n tag_257:\n /* \"#utility.yul\":12910:12911 */\n 0x02\n /* \"#utility.yul\":12905:12908 */\n dup3\n /* \"#utility.yul\":12901:12912 */\n add\n /* \"#utility.yul\":12894:12912 */\n swap2\n pop\n /* \"#utility.yul\":12929:13022 */\n tag_258\n /* \"#utility.yul\":13018:13021 */\n dup3\n /* \"#utility.yul\":13009:13015 */\n dup5\n /* \"#utility.yul\":12929:13022 */\n tag_109\n jump\t// in\n tag_258:\n /* \"#utility.yul\":12922:13022 */\n swap2\n pop\n /* \"#utility.yul\":13039:13042 */\n dup2\n /* \"#utility.yul\":13032:13042 */\n swap1\n pop\n /* \"#utility.yul\":12641:13048 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212202d0069a2f8fd80b585e5391c7483c702a13b1f308e8f78c0d57f2a4362c9a8b564736f6c63430008110033\n}\n", "bytecode": { "functionDebugData": { "@_178": { @@ -128,7 +128,7 @@ "parameterSlots": 2, "returnSlots": 1 }, - "abi_decode_t_struct$_TrackInfo_$556_memory_ptr_fromMemory": { + "abi_decode_t_struct$_TrackInfo_$563_memory_ptr_fromMemory": { "entryPoint": 1971, "id": null, "parameterSlots": 2, @@ -158,7 +158,7 @@ "parameterSlots": 2, "returnSlots": 2 }, - "abi_decode_tuple_t_struct$_TrackInfo_$556_memory_ptr_fromMemory": { + "abi_decode_tuple_t_struct$_TrackInfo_$563_memory_ptr_fromMemory": { "entryPoint": 2311, "id": null, "parameterSlots": 2, @@ -6018,7 +6018,7 @@ } ] }, - "name": "abi_decode_t_struct$_TrackInfo_$556_memory_ptr_fromMemory", + "name": "abi_decode_t_struct$_TrackInfo_$563_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -6242,7 +6242,7 @@ } ], "functionName": { - "name": "abi_decode_t_struct$_TrackInfo_$556_memory_ptr_fromMemory", + "name": "abi_decode_t_struct$_TrackInfo_$563_memory_ptr_fromMemory", "nodeType": "YulIdentifier", "src": "11442:57:5" }, @@ -6261,7 +6261,7 @@ } ] }, - "name": "abi_decode_tuple_t_struct$_TrackInfo_$556_memory_ptr_fromMemory", + "name": "abi_decode_tuple_t_struct$_TrackInfo_$563_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -7298,15 +7298,15 @@ } ] }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_bytes2(value) -> cleaned {\n cleaned := and(value, 0xffff000000000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes2(value) {\n if iszero(eq(value, cleanup_t_bytes2(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes2_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes2(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_bytes2_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes2_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_uint16_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint16(value) -> cleaned {\n cleaned := and(value, 0xffff)\n }\n\n function validator_revert_t_uint16(value) {\n if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint16_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint16(value)\n }\n\n // uint16[]\n function abi_decode_available_length_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint16_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint16_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint16[]\n function abi_decode_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint16(value))\n }\n\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint16_to_t_uint16_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n // struct Referenda.TrackInfo\n function abi_decode_t_struct$_TrackInfo_$556_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x0120) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x0120)\n\n {\n // name\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // maxDeciding\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // decisionDeposit\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // preparePeriod\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // decisionPeriod\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // confirmPeriod\n\n let offset := 160\n\n mstore(add(value, 0xa0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minEnactmentPeriod\n\n let offset := 192\n\n mstore(add(value, 0xc0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minApproval\n\n let offset := mload(add(headStart, 224))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0xe0), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minSupport\n\n let offset := mload(add(headStart, 256))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x0100), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_TrackInfo_$556_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_TrackInfo_$556_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59(memPtr) {\n\n mstore(add(memPtr, 0), \"Couldn't find track\")\n\n }\n\n function abi_encode_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_bytes2(value) -> cleaned {\n cleaned := and(value, 0xffff000000000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes2(value) {\n if iszero(eq(value, cleanup_t_bytes2(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes2_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes2(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_bytes2_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes2_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_uint16_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint16(value) -> cleaned {\n cleaned := and(value, 0xffff)\n }\n\n function validator_revert_t_uint16(value) {\n if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint16_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint16(value)\n }\n\n // uint16[]\n function abi_decode_available_length_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint16_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint16_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint16[]\n function abi_decode_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint16(value))\n }\n\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint16_to_t_uint16_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n // struct Referenda.TrackInfo\n function abi_decode_t_struct$_TrackInfo_$563_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x0120) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x0120)\n\n {\n // name\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // maxDeciding\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // decisionDeposit\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // preparePeriod\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // decisionPeriod\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // confirmPeriod\n\n let offset := 160\n\n mstore(add(value, 0xa0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minEnactmentPeriod\n\n let offset := 192\n\n mstore(add(value, 0xc0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minApproval\n\n let offset := mload(add(headStart, 224))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0xe0), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minSupport\n\n let offset := mload(add(headStart, 256))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x0100), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_TrackInfo_$563_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_TrackInfo_$563_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59(memPtr) {\n\n mstore(add(memPtr, 0), \"Couldn't find track\")\n\n }\n\n function abi_encode_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 5, "language": "Yul", "name": "#utility.yul" } ], "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b506040516200160a3803806200160a83398181016040528101906200003791906200048c565b818180600060026101000a81548161ffff021916908360f01c021790555062000066826200008b60201b60201c565b6000806101000a81548161ffff021916908361ffff1602179055505050505062000abd565b60008061081173ffffffffffffffffffffffffffffffffffffffff1663cc17da146040518163ffffffff1660e01b8152600401600060405180830381865afa158015620000dc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906200010791906200060c565b905060005b81518110156200025957600061081173ffffffffffffffffffffffffffffffffffffffff1663340381468484815181106200014c576200014b6200065d565b5b60200260200101516040518263ffffffff1660e01b81526004016200017291906200069d565b600060405180830381865afa15801562000190573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620001bb919062000907565b905084604051602001620001d09190620009a5565b604051602081830303815290604052805190602001208160000151604051602001620001fd9190620009a5565b604051602081830303815290604052805190602001200362000242578282815181106200022f576200022e6200065d565b5b6020026020010151935050505062000297565b5080806200025090620009ed565b9150506200010c565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200028e9062000a9b565b60405180910390fd5b919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200030582620002ba565b810181811067ffffffffffffffff82111715620003275762000326620002cb565b5b80604052505050565b60006200033c6200029c565b90506200034a8282620002fa565b919050565b600067ffffffffffffffff8211156200036d576200036c620002cb565b5b6200037882620002ba565b9050602081019050919050565b60005b83811015620003a557808201518184015260208101905062000388565b60008484015250505050565b6000620003c8620003c2846200034f565b62000330565b905082815260208101848484011115620003e757620003e6620002b5565b5b620003f484828562000385565b509392505050565b600082601f830112620004145762000413620002b0565b5b815162000426848260208601620003b1565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b62000466816200042f565b81146200047257600080fd5b50565b60008151905062000486816200045b565b92915050565b60008060408385031215620004a657620004a5620002a6565b5b600083015167ffffffffffffffff811115620004c757620004c6620002ab565b5b620004d585828601620003fc565b9250506020620004e88582860162000475565b9150509250929050565b600067ffffffffffffffff82111562000510576200050f620002cb565b5b602082029050602081019050919050565b600080fd5b600061ffff82169050919050565b6200053f8162000526565b81146200054b57600080fd5b50565b6000815190506200055f8162000534565b92915050565b60006200057c6200057684620004f2565b62000330565b90508083825260208201905060208402830185811115620005a257620005a162000521565b5b835b81811015620005cf5780620005ba88826200054e565b845260208401935050602081019050620005a4565b5050509392505050565b600082601f830112620005f157620005f0620002b0565b5b81516200060384826020860162000565565b91505092915050565b600060208284031215620006255762000624620002a6565b5b600082015167ffffffffffffffff811115620006465762000645620002ab565b5b6200065484828501620005d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b620006978162000526565b82525050565b6000602082019050620006b460008301846200068c565b92915050565b600080fd5b600080fd5b6000819050919050565b620006d981620006c4565b8114620006e557600080fd5b50565b600081519050620006f981620006ce565b92915050565b600067ffffffffffffffff8211156200071d576200071c620002cb565b5b6200072882620002ba565b9050602081019050919050565b60006200074c6200074684620006ff565b62000330565b9050828152602081018484840111156200076b576200076a620002b5565b5b6200077884828562000385565b509392505050565b600082601f830112620007985762000797620002b0565b5b8151620007aa84826020860162000735565b91505092915050565b60006101208284031215620007cd57620007cc620006ba565b5b620007da61012062000330565b9050600082015167ffffffffffffffff811115620007fd57620007fc620006bf565b5b6200080b84828501620003fc565b60008301525060206200082184828501620006e8565b60208301525060406200083784828501620006e8565b60408301525060606200084d84828501620006e8565b60608301525060806200086384828501620006e8565b60808301525060a06200087984828501620006e8565b60a08301525060c06200088f84828501620006e8565b60c08301525060e082015167ffffffffffffffff811115620008b657620008b5620006bf565b5b620008c48482850162000780565b60e08301525061010082015167ffffffffffffffff811115620008ec57620008eb620006bf565b5b620008fa8482850162000780565b6101008301525092915050565b60006020828403121562000920576200091f620002a6565b5b600082015167ffffffffffffffff811115620009415762000940620002ab565b5b6200094f84828501620007b3565b91505092915050565b600081519050919050565b600081905092915050565b60006200097b8262000958565b62000987818562000963565b93506200099981856020860162000385565b80840191505092915050565b6000620009b382846200096e565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009fa82620006c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a2f5762000a2e620009be565b5b600182019050919050565b600082825260208201905092915050565b7f436f756c646e27742066696e6420747261636b00000000000000000000000000600082015250565b600062000a8360138362000a3a565b915062000a908262000a4b565b602082019050919050565b6000602082019050818103600083015262000ab68162000a74565b9050919050565b610b3d8062000acd6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006001905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea2646970667358221220fe13ca5181d8295c1850e6566e74c1ab6de7b4e38a44e28c169ec0c1c3f54fc264736f6c63430008110033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x160A CODESIZE SUB DUP1 PUSH3 0x160A DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x48C JUMP JUMPDEST DUP2 DUP2 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP PUSH3 0x66 DUP3 PUSH3 0x8B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP PUSH3 0xABD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCC17DA14 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0xDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x107 SWAP2 SWAP1 PUSH3 0x60C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0x259 JUMPI PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x34038146 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH3 0x14C JUMPI PUSH3 0x14B PUSH3 0x65D JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x172 SWAP2 SWAP1 PUSH3 0x69D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x190 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x1BB SWAP2 SWAP1 PUSH3 0x907 JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x1D0 SWAP2 SWAP1 PUSH3 0x9A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x1FD SWAP2 SWAP1 PUSH3 0x9A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SUB PUSH3 0x242 JUMPI DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH3 0x22F JUMPI PUSH3 0x22E PUSH3 0x65D JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP4 POP POP POP POP PUSH3 0x297 JUMP JUMPDEST POP DUP1 DUP1 PUSH3 0x250 SWAP1 PUSH3 0x9ED JUMP JUMPDEST SWAP2 POP POP PUSH3 0x10C JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x28E SWAP1 PUSH3 0xA9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x305 DUP3 PUSH3 0x2BA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x327 JUMPI PUSH3 0x326 PUSH3 0x2CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x33C PUSH3 0x29C JUMP JUMPDEST SWAP1 POP PUSH3 0x34A DUP3 DUP3 PUSH3 0x2FA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x36D JUMPI PUSH3 0x36C PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH3 0x378 DUP3 PUSH3 0x2BA JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x3A5 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x388 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3C8 PUSH3 0x3C2 DUP5 PUSH3 0x34F JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x3E7 JUMPI PUSH3 0x3E6 PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x3F4 DUP5 DUP3 DUP6 PUSH3 0x385 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x414 JUMPI PUSH3 0x413 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x426 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x3B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x466 DUP2 PUSH3 0x42F JUMP JUMPDEST DUP2 EQ PUSH3 0x472 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x486 DUP2 PUSH3 0x45B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x4A6 JUMPI PUSH3 0x4A5 PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4C7 JUMPI PUSH3 0x4C6 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x4D5 DUP6 DUP3 DUP7 ADD PUSH3 0x3FC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x4E8 DUP6 DUP3 DUP7 ADD PUSH3 0x475 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x510 JUMPI PUSH3 0x50F PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x53F DUP2 PUSH3 0x526 JUMP JUMPDEST DUP2 EQ PUSH3 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x55F DUP2 PUSH3 0x534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x57C PUSH3 0x576 DUP5 PUSH3 0x4F2 JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH3 0x5A2 JUMPI PUSH3 0x5A1 PUSH3 0x521 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x5CF JUMPI DUP1 PUSH3 0x5BA DUP9 DUP3 PUSH3 0x54E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x5A4 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x5F1 JUMPI PUSH3 0x5F0 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x603 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x565 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x625 JUMPI PUSH3 0x624 PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x646 JUMPI PUSH3 0x645 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x654 DUP5 DUP3 DUP6 ADD PUSH3 0x5D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x697 DUP2 PUSH3 0x526 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x6B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x68C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x6D9 DUP2 PUSH3 0x6C4 JUMP JUMPDEST DUP2 EQ PUSH3 0x6E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x6F9 DUP2 PUSH3 0x6CE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x71D JUMPI PUSH3 0x71C PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH3 0x728 DUP3 PUSH3 0x2BA JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x74C PUSH3 0x746 DUP5 PUSH3 0x6FF JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x76B JUMPI PUSH3 0x76A PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x778 DUP5 DUP3 DUP6 PUSH3 0x385 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x798 JUMPI PUSH3 0x797 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x7AA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x735 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x7CD JUMPI PUSH3 0x7CC PUSH3 0x6BA JUMP JUMPDEST JUMPDEST PUSH3 0x7DA PUSH2 0x120 PUSH3 0x330 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x7FD JUMPI PUSH3 0x7FC PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x80B DUP5 DUP3 DUP6 ADD PUSH3 0x3FC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH3 0x821 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH3 0x837 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH3 0x84D DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH3 0x863 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH3 0x879 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH3 0x88F DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x8B6 JUMPI PUSH3 0x8B5 PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x8C4 DUP5 DUP3 DUP6 ADD PUSH3 0x780 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x8EC JUMPI PUSH3 0x8EB PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x8FA DUP5 DUP3 DUP6 ADD PUSH3 0x780 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x920 JUMPI PUSH3 0x91F PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x941 JUMPI PUSH3 0x940 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x94F DUP5 DUP3 DUP6 ADD PUSH3 0x7B3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x97B DUP3 PUSH3 0x958 JUMP JUMPDEST PUSH3 0x987 DUP2 DUP6 PUSH3 0x963 JUMP JUMPDEST SWAP4 POP PUSH3 0x999 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x385 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9B3 DUP3 DUP5 PUSH3 0x96E JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x9FA DUP3 PUSH3 0x6C4 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH3 0xA2F JUMPI PUSH3 0xA2E PUSH3 0x9BE JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x436F756C646E27742066696E6420747261636B00000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA83 PUSH1 0x13 DUP4 PUSH3 0xA3A JUMP JUMPDEST SWAP2 POP PUSH3 0xA90 DUP3 PUSH3 0xA4B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0xAB6 DUP2 PUSH3 0xA74 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB3D DUP1 PUSH3 0xACD PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x79688E99 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x920E0C03 EQ PUSH2 0xA9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x67D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE DUP3 DUP5 PUSH2 0x309 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x813 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCB00F603 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D SWAP2 SWAP1 PUSH2 0x717 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x76F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B2479DB PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP6 DUP8 MLOAD DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x83B JUMP JUMPDEST SWAP1 POP PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x245CE18D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x868 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x278 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x812 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDA9DF518 DUP3 SELFBALANCE PUSH1 0x1 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x8FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x4000000000000000000000000000000000000000000000000000000000000 PUSH1 0x4 PUSH1 0xF8 SHL PUSH2 0x33A DUP6 DUP6 PUSH2 0x363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x34C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x36E DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x377 DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x388 SWAP3 SWAP2 SWAP1 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0xA67 JUMP JUMPDEST PUSH2 0x3BD SWAP2 SWAP1 PUSH2 0xAA9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3EC SWAP3 SWAP2 SWAP1 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x417 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x432 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x40E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x44F DUP2 PUSH2 0x438 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x46A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4D7 DUP3 PUSH2 0x48E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4F6 JUMPI PUSH2 0x4F5 PUSH2 0x49F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x509 PUSH2 0x470 JUMP JUMPDEST SWAP1 POP PUSH2 0x515 DUP3 DUP3 PUSH2 0x4CE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x535 JUMPI PUSH2 0x534 PUSH2 0x49F JUMP JUMPDEST JUMPDEST PUSH2 0x53E DUP3 PUSH2 0x48E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56D PUSH2 0x568 DUP5 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x4FF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x489 JUMP JUMPDEST JUMPDEST PUSH2 0x594 DUP5 DUP3 DUP6 PUSH2 0x54B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5B1 JUMPI PUSH2 0x5B0 PUSH2 0x484 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5C1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x55A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5E1 JUMPI PUSH2 0x5E0 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5FF JUMPI PUSH2 0x5FE PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x60B DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x62C JUMPI PUSH2 0x62B PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x638 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x677 DUP2 PUSH2 0x642 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x692 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x66E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E9 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x6F3 DUP2 DUP6 PUSH2 0x6A3 JUMP JUMPDEST SWAP4 POP PUSH2 0x703 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x70C DUP2 PUSH2 0x48E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x731 DUP2 DUP5 PUSH2 0x6DE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x74C DUP2 PUSH2 0x739 JUMP JUMPDEST DUP2 EQ PUSH2 0x757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x769 DUP2 PUSH2 0x743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x785 JUMPI PUSH2 0x784 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x793 DUP5 DUP3 DUP6 ADD PUSH2 0x75A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7A5 DUP2 PUSH2 0x739 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7C4 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x7DF PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x446 JUMP JUMPDEST PUSH2 0x7EC PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x7F9 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x806 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x818 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP2 EQ PUSH2 0x823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x835 DUP2 PUSH2 0x80F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x851 JUMPI PUSH2 0x850 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x85F DUP5 DUP3 DUP6 ADD PUSH2 0x826 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x87D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0x883 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x8D4 DUP3 PUSH2 0x8B2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E4 DUP3 PUSH2 0x8C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8F4 DUP2 PUSH2 0x8D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x90F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x91C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x40E JUMP JUMPDEST PUSH2 0x929 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8EB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94C PUSH2 0x947 DUP3 PUSH2 0x642 JUMP JUMPDEST PUSH2 0x931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x999 PUSH2 0x994 DUP3 PUSH2 0x952 JUMP JUMPDEST PUSH2 0x97E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9B5 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x9BF DUP2 DUP6 PUSH2 0x99F JUMP JUMPDEST SWAP4 POP PUSH2 0x9CF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E7 DUP3 DUP7 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x9F7 DUP3 DUP6 PUSH2 0x988 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0xA07 DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA20 DUP3 DUP6 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP PUSH2 0xA2C DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0xA7D DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xA8B DUP2 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB4 DUP3 PUSH2 0x438 JUMP JUMPDEST SWAP2 POP PUSH2 0xABF DUP4 PUSH2 0x438 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEB DUP3 DUP6 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0xAFB DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID SGT 0xCA MLOAD DUP2 0xD8 0x29 0x5C XOR POP 0xE6 JUMP PUSH15 0x74C1AB6DE7B4E38A44E28C169EC0C1 0xC3 CREATE2 0x4F 0xC2 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "object": "60806040523480156200001157600080fd5b506040516200160a3803806200160a83398181016040528101906200003791906200048c565b818180600060026101000a81548161ffff021916908360f01c021790555062000066826200008b60201b60201c565b6000806101000a81548161ffff021916908361ffff1602179055505050505062000abd565b60008061081173ffffffffffffffffffffffffffffffffffffffff1663cc17da146040518163ffffffff1660e01b8152600401600060405180830381865afa158015620000dc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906200010791906200060c565b905060005b81518110156200025957600061081173ffffffffffffffffffffffffffffffffffffffff1663340381468484815181106200014c576200014b6200065d565b5b60200260200101516040518263ffffffff1660e01b81526004016200017291906200069d565b600060405180830381865afa15801562000190573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620001bb919062000907565b905084604051602001620001d09190620009a5565b604051602081830303815290604052805190602001208160000151604051602001620001fd9190620009a5565b604051602081830303815290604052805190602001200362000242578282815181106200022f576200022e6200065d565b5b6020026020010151935050505062000297565b5080806200025090620009ed565b9150506200010c565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200028e9062000a9b565b60405180910390fd5b919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200030582620002ba565b810181811067ffffffffffffffff82111715620003275762000326620002cb565b5b80604052505050565b60006200033c6200029c565b90506200034a8282620002fa565b919050565b600067ffffffffffffffff8211156200036d576200036c620002cb565b5b6200037882620002ba565b9050602081019050919050565b60005b83811015620003a557808201518184015260208101905062000388565b60008484015250505050565b6000620003c8620003c2846200034f565b62000330565b905082815260208101848484011115620003e757620003e6620002b5565b5b620003f484828562000385565b509392505050565b600082601f830112620004145762000413620002b0565b5b815162000426848260208601620003b1565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b62000466816200042f565b81146200047257600080fd5b50565b60008151905062000486816200045b565b92915050565b60008060408385031215620004a657620004a5620002a6565b5b600083015167ffffffffffffffff811115620004c757620004c6620002ab565b5b620004d585828601620003fc565b9250506020620004e88582860162000475565b9150509250929050565b600067ffffffffffffffff82111562000510576200050f620002cb565b5b602082029050602081019050919050565b600080fd5b600061ffff82169050919050565b6200053f8162000526565b81146200054b57600080fd5b50565b6000815190506200055f8162000534565b92915050565b60006200057c6200057684620004f2565b62000330565b90508083825260208201905060208402830185811115620005a257620005a162000521565b5b835b81811015620005cf5780620005ba88826200054e565b845260208401935050602081019050620005a4565b5050509392505050565b600082601f830112620005f157620005f0620002b0565b5b81516200060384826020860162000565565b91505092915050565b600060208284031215620006255762000624620002a6565b5b600082015167ffffffffffffffff811115620006465762000645620002ab565b5b6200065484828501620005d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b620006978162000526565b82525050565b6000602082019050620006b460008301846200068c565b92915050565b600080fd5b600080fd5b6000819050919050565b620006d981620006c4565b8114620006e557600080fd5b50565b600081519050620006f981620006ce565b92915050565b600067ffffffffffffffff8211156200071d576200071c620002cb565b5b6200072882620002ba565b9050602081019050919050565b60006200074c6200074684620006ff565b62000330565b9050828152602081018484840111156200076b576200076a620002b5565b5b6200077884828562000385565b509392505050565b600082601f830112620007985762000797620002b0565b5b8151620007aa84826020860162000735565b91505092915050565b60006101208284031215620007cd57620007cc620006ba565b5b620007da61012062000330565b9050600082015167ffffffffffffffff811115620007fd57620007fc620006bf565b5b6200080b84828501620003fc565b60008301525060206200082184828501620006e8565b60208301525060406200083784828501620006e8565b60408301525060606200084d84828501620006e8565b60608301525060806200086384828501620006e8565b60808301525060a06200087984828501620006e8565b60a08301525060c06200088f84828501620006e8565b60c08301525060e082015167ffffffffffffffff811115620008b657620008b5620006bf565b5b620008c48482850162000780565b60e08301525061010082015167ffffffffffffffff811115620008ec57620008eb620006bf565b5b620008fa8482850162000780565b6101008301525092915050565b60006020828403121562000920576200091f620002a6565b5b600082015167ffffffffffffffff811115620009415762000940620002ab565b5b6200094f84828501620007b3565b91505092915050565b600081519050919050565b600081905092915050565b60006200097b8262000958565b62000987818562000963565b93506200099981856020860162000385565b80840191505092915050565b6000620009b382846200096e565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009fa82620006c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a2f5762000a2e620009be565b5b600182019050919050565b600082825260208201905092915050565b7f436f756c646e27742066696e6420747261636b00000000000000000000000000600082015250565b600062000a8360138362000a3a565b915062000a908262000a4b565b602082019050919050565b6000602082019050818103600083015262000ab68162000a74565b9050919050565b610b3d8062000acd6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006001905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea26469706673582212202d0069a2f8fd80b585e5391c7483c702a13b1f308e8f78c0d57f2a4362c9a8b564736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x160A CODESIZE SUB DUP1 PUSH3 0x160A DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x48C JUMP JUMPDEST DUP2 DUP2 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP PUSH3 0x66 DUP3 PUSH3 0x8B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP PUSH3 0xABD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCC17DA14 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0xDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x107 SWAP2 SWAP1 PUSH3 0x60C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0x259 JUMPI PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x34038146 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH3 0x14C JUMPI PUSH3 0x14B PUSH3 0x65D JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x172 SWAP2 SWAP1 PUSH3 0x69D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x190 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x1BB SWAP2 SWAP1 PUSH3 0x907 JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x1D0 SWAP2 SWAP1 PUSH3 0x9A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x1FD SWAP2 SWAP1 PUSH3 0x9A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SUB PUSH3 0x242 JUMPI DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH3 0x22F JUMPI PUSH3 0x22E PUSH3 0x65D JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP4 POP POP POP POP PUSH3 0x297 JUMP JUMPDEST POP DUP1 DUP1 PUSH3 0x250 SWAP1 PUSH3 0x9ED JUMP JUMPDEST SWAP2 POP POP PUSH3 0x10C JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x28E SWAP1 PUSH3 0xA9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x305 DUP3 PUSH3 0x2BA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x327 JUMPI PUSH3 0x326 PUSH3 0x2CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x33C PUSH3 0x29C JUMP JUMPDEST SWAP1 POP PUSH3 0x34A DUP3 DUP3 PUSH3 0x2FA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x36D JUMPI PUSH3 0x36C PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH3 0x378 DUP3 PUSH3 0x2BA JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x3A5 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x388 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3C8 PUSH3 0x3C2 DUP5 PUSH3 0x34F JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x3E7 JUMPI PUSH3 0x3E6 PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x3F4 DUP5 DUP3 DUP6 PUSH3 0x385 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x414 JUMPI PUSH3 0x413 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x426 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x3B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x466 DUP2 PUSH3 0x42F JUMP JUMPDEST DUP2 EQ PUSH3 0x472 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x486 DUP2 PUSH3 0x45B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x4A6 JUMPI PUSH3 0x4A5 PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4C7 JUMPI PUSH3 0x4C6 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x4D5 DUP6 DUP3 DUP7 ADD PUSH3 0x3FC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x4E8 DUP6 DUP3 DUP7 ADD PUSH3 0x475 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x510 JUMPI PUSH3 0x50F PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x53F DUP2 PUSH3 0x526 JUMP JUMPDEST DUP2 EQ PUSH3 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x55F DUP2 PUSH3 0x534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x57C PUSH3 0x576 DUP5 PUSH3 0x4F2 JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH3 0x5A2 JUMPI PUSH3 0x5A1 PUSH3 0x521 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x5CF JUMPI DUP1 PUSH3 0x5BA DUP9 DUP3 PUSH3 0x54E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x5A4 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x5F1 JUMPI PUSH3 0x5F0 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x603 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x565 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x625 JUMPI PUSH3 0x624 PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x646 JUMPI PUSH3 0x645 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x654 DUP5 DUP3 DUP6 ADD PUSH3 0x5D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x697 DUP2 PUSH3 0x526 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x6B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x68C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x6D9 DUP2 PUSH3 0x6C4 JUMP JUMPDEST DUP2 EQ PUSH3 0x6E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x6F9 DUP2 PUSH3 0x6CE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x71D JUMPI PUSH3 0x71C PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH3 0x728 DUP3 PUSH3 0x2BA JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x74C PUSH3 0x746 DUP5 PUSH3 0x6FF JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x76B JUMPI PUSH3 0x76A PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x778 DUP5 DUP3 DUP6 PUSH3 0x385 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x798 JUMPI PUSH3 0x797 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x7AA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x735 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x7CD JUMPI PUSH3 0x7CC PUSH3 0x6BA JUMP JUMPDEST JUMPDEST PUSH3 0x7DA PUSH2 0x120 PUSH3 0x330 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x7FD JUMPI PUSH3 0x7FC PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x80B DUP5 DUP3 DUP6 ADD PUSH3 0x3FC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH3 0x821 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH3 0x837 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH3 0x84D DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH3 0x863 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH3 0x879 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH3 0x88F DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x8B6 JUMPI PUSH3 0x8B5 PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x8C4 DUP5 DUP3 DUP6 ADD PUSH3 0x780 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x8EC JUMPI PUSH3 0x8EB PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x8FA DUP5 DUP3 DUP6 ADD PUSH3 0x780 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x920 JUMPI PUSH3 0x91F PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x941 JUMPI PUSH3 0x940 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x94F DUP5 DUP3 DUP6 ADD PUSH3 0x7B3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x97B DUP3 PUSH3 0x958 JUMP JUMPDEST PUSH3 0x987 DUP2 DUP6 PUSH3 0x963 JUMP JUMPDEST SWAP4 POP PUSH3 0x999 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x385 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9B3 DUP3 DUP5 PUSH3 0x96E JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x9FA DUP3 PUSH3 0x6C4 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH3 0xA2F JUMPI PUSH3 0xA2E PUSH3 0x9BE JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x436F756C646E27742066696E6420747261636B00000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA83 PUSH1 0x13 DUP4 PUSH3 0xA3A JUMP JUMPDEST SWAP2 POP PUSH3 0xA90 DUP3 PUSH3 0xA4B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0xAB6 DUP2 PUSH3 0xA74 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB3D DUP1 PUSH3 0xACD PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x79688E99 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x920E0C03 EQ PUSH2 0xA9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x67D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE DUP3 DUP5 PUSH2 0x309 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x813 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCB00F603 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D SWAP2 SWAP1 PUSH2 0x717 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x76F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B2479DB PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP6 DUP8 MLOAD DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x83B JUMP JUMPDEST SWAP1 POP PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x245CE18D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x868 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x278 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x812 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDA9DF518 DUP3 SELFBALANCE PUSH1 0x1 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x8FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x4000000000000000000000000000000000000000000000000000000000000 PUSH1 0x4 PUSH1 0xF8 SHL PUSH2 0x33A DUP6 DUP6 PUSH2 0x363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x34C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x36E DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x377 DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x388 SWAP3 SWAP2 SWAP1 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0xA67 JUMP JUMPDEST PUSH2 0x3BD SWAP2 SWAP1 PUSH2 0xAA9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3EC SWAP3 SWAP2 SWAP1 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x417 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x432 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x40E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x44F DUP2 PUSH2 0x438 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x46A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4D7 DUP3 PUSH2 0x48E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4F6 JUMPI PUSH2 0x4F5 PUSH2 0x49F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x509 PUSH2 0x470 JUMP JUMPDEST SWAP1 POP PUSH2 0x515 DUP3 DUP3 PUSH2 0x4CE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x535 JUMPI PUSH2 0x534 PUSH2 0x49F JUMP JUMPDEST JUMPDEST PUSH2 0x53E DUP3 PUSH2 0x48E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56D PUSH2 0x568 DUP5 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x4FF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x489 JUMP JUMPDEST JUMPDEST PUSH2 0x594 DUP5 DUP3 DUP6 PUSH2 0x54B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5B1 JUMPI PUSH2 0x5B0 PUSH2 0x484 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5C1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x55A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5E1 JUMPI PUSH2 0x5E0 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5FF JUMPI PUSH2 0x5FE PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x60B DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x62C JUMPI PUSH2 0x62B PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x638 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x677 DUP2 PUSH2 0x642 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x692 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x66E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E9 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x6F3 DUP2 DUP6 PUSH2 0x6A3 JUMP JUMPDEST SWAP4 POP PUSH2 0x703 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x70C DUP2 PUSH2 0x48E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x731 DUP2 DUP5 PUSH2 0x6DE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x74C DUP2 PUSH2 0x739 JUMP JUMPDEST DUP2 EQ PUSH2 0x757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x769 DUP2 PUSH2 0x743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x785 JUMPI PUSH2 0x784 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x793 DUP5 DUP3 DUP6 ADD PUSH2 0x75A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7A5 DUP2 PUSH2 0x739 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7C4 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x7DF PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x446 JUMP JUMPDEST PUSH2 0x7EC PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x7F9 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x806 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x818 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP2 EQ PUSH2 0x823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x835 DUP2 PUSH2 0x80F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x851 JUMPI PUSH2 0x850 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x85F DUP5 DUP3 DUP6 ADD PUSH2 0x826 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x87D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0x883 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x8D4 DUP3 PUSH2 0x8B2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E4 DUP3 PUSH2 0x8C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8F4 DUP2 PUSH2 0x8D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x90F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x91C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x40E JUMP JUMPDEST PUSH2 0x929 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8EB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94C PUSH2 0x947 DUP3 PUSH2 0x642 JUMP JUMPDEST PUSH2 0x931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x999 PUSH2 0x994 DUP3 PUSH2 0x952 JUMP JUMPDEST PUSH2 0x97E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9B5 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x9BF DUP2 DUP6 PUSH2 0x99F JUMP JUMPDEST SWAP4 POP PUSH2 0x9CF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E7 DUP3 DUP7 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x9F7 DUP3 DUP6 PUSH2 0x988 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0xA07 DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA20 DUP3 DUP6 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP PUSH2 0xA2C DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0xA7D DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xA8B DUP2 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB4 DUP3 PUSH2 0x438 JUMP JUMPDEST SWAP2 POP PUSH2 0xABF DUP4 PUSH2 0x438 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEB DUP3 DUP6 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0xAFB DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D STOP PUSH10 0xA2F8FD80B585E5391C74 DUP4 0xC7 MUL LOG1 EXTCODESIZE 0x1F ADDRESS DUP15 DUP16 PUSH25 0xC0D57F2A4362C9A8B564736F6C634300081100330000000000 ", "sourceMap": "3270:292:1:-:0;;;3340:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3439:9;3450:20;834;812:19;;:42;;;;;;;;;;;;;;;;;;1161:21;1172:9;1161:10;;;:21;;:::i;:::-;1147:11;;:35;;;;;;;;;;;;;;;;;;736:453;;3340:138;;3270:292;;1319:627;1411:6;1433:24;147:42:4;1460:27:1;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1433:56;;1504:9;1499:402;1523:8;:15;1519:1;:19;1499:402;;;1559:31;147:42:4;1593:28:1;;;1639:8;1648:1;1639:11;;;;;;;;:::i;:::-;;;;;;;;1593:71;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1559:105;;1788:9;1770:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;1760:40;;;;;;1728:4;:9;;;1710:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;1700:40;;;;;;:100;1679:212;;1865:8;1874:1;1865:11;;;;;;;;:::i;:::-;;;;;;;;1858:18;;;;;;;1679:212;1545:356;1540:3;;;;;:::i;:::-;;;;1499:402;;;;1910:29;;;;;;;;;;:::i;:::-;;;;;;;;1319:627;;;;:::o;7:75:5:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:149::-;2713:7;2753:66;2746:5;2742:78;2731:89;;2677:149;;;:::o;2832:120::-;2904:23;2921:5;2904:23;:::i;:::-;2897:5;2894:34;2884:62;;2942:1;2939;2932:12;2884:62;2832:120;:::o;2958:141::-;3014:5;3045:6;3039:13;3030:22;;3061:32;3087:5;3061:32;:::i;:::-;2958:141;;;;:::o;3105:678::-;3193:6;3201;3250:2;3238:9;3229:7;3225:23;3221:32;3218:119;;;3256:79;;:::i;:::-;3218:119;3397:1;3386:9;3382:17;3376:24;3427:18;3419:6;3416:30;3413:117;;;3449:79;;:::i;:::-;3413:117;3554:74;3620:7;3611:6;3600:9;3596:22;3554:74;:::i;:::-;3544:84;;3347:291;3677:2;3703:63;3758:7;3749:6;3738:9;3734:22;3703:63;:::i;:::-;3693:73;;3648:128;3105:678;;;;;:::o;3789:310::-;3865:4;3955:18;3947:6;3944:30;3941:56;;;3977:18;;:::i;:::-;3941:56;4027:4;4019:6;4015:17;4007:25;;4087:4;4081;4077:15;4069:23;;3789:310;;;:::o;4105:117::-;4214:1;4211;4204:12;4228:89;4264:7;4304:6;4297:5;4293:18;4282:29;;4228:89;;;:::o;4323:120::-;4395:23;4412:5;4395:23;:::i;:::-;4388:5;4385:34;4375:62;;4433:1;4430;4423:12;4375:62;4323:120;:::o;4449:141::-;4505:5;4536:6;4530:13;4521:22;;4552:32;4578:5;4552:32;:::i;:::-;4449:141;;;;:::o;4612:729::-;4718:5;4743:80;4759:63;4815:6;4759:63;:::i;:::-;4743:80;:::i;:::-;4734:89;;4843:5;4872:6;4865:5;4858:21;4906:4;4899:5;4895:16;4888:23;;4959:4;4951:6;4947:17;4939:6;4935:30;4988:3;4980:6;4977:15;4974:122;;;5007:79;;:::i;:::-;4974:122;5122:6;5105:230;5139:6;5134:3;5131:15;5105:230;;;5214:3;5243:47;5286:3;5274:10;5243:47;:::i;:::-;5238:3;5231:60;5320:4;5315:3;5311:14;5304:21;;5181:154;5165:4;5160:3;5156:14;5149:21;;5105:230;;;5109:21;4724:617;;4612:729;;;;;:::o;5363:383::-;5444:5;5493:3;5486:4;5478:6;5474:17;5470:27;5460:122;;5501:79;;:::i;:::-;5460:122;5611:6;5605:13;5636:104;5736:3;5728:6;5721:4;5713:6;5709:17;5636:104;:::i;:::-;5627:113;;5450:296;5363:383;;;;:::o;5752:552::-;5846:6;5895:2;5883:9;5874:7;5870:23;5866:32;5863:119;;;5901:79;;:::i;:::-;5863:119;6042:1;6031:9;6027:17;6021:24;6072:18;6064:6;6061:30;6058:117;;;6094:79;;:::i;:::-;6058:117;6199:88;6279:7;6270:6;6259:9;6255:22;6199:88;:::i;:::-;6189:98;;5992:305;5752:552;;;;:::o;6310:180::-;6358:77;6355:1;6348:88;6455:4;6452:1;6445:15;6479:4;6476:1;6469:15;6496:115;6581:23;6598:5;6581:23;:::i;:::-;6576:3;6569:36;6496:115;;:::o;6617:218::-;6708:4;6746:2;6735:9;6731:18;6723:26;;6759:69;6825:1;6814:9;6810:17;6801:6;6759:69;:::i;:::-;6617:218;;;;:::o;6841:117::-;6950:1;6947;6940:12;6964:117;7073:1;7070;7063:12;7087:77;7124:7;7153:5;7142:16;;7087:77;;;:::o;7170:122::-;7243:24;7261:5;7243:24;:::i;:::-;7236:5;7233:35;7223:63;;7282:1;7279;7272:12;7223:63;7170:122;:::o;7298:143::-;7355:5;7386:6;7380:13;7371:22;;7402:33;7429:5;7402:33;:::i;:::-;7298:143;;;;:::o;7447:307::-;7508:4;7598:18;7590:6;7587:30;7584:56;;;7620:18;;:::i;:::-;7584:56;7658:29;7680:6;7658:29;:::i;:::-;7650:37;;7742:4;7736;7732:15;7724:23;;7447:307;;;:::o;7760:432::-;7848:5;7873:65;7889:48;7930:6;7889:48;:::i;:::-;7873:65;:::i;:::-;7864:74;;7961:6;7954:5;7947:21;7999:4;7992:5;7988:16;8037:3;8028:6;8023:3;8019:16;8016:25;8013:112;;;8044:79;;:::i;:::-;8013:112;8134:52;8179:6;8174:3;8169;8134:52;:::i;:::-;7854:338;7760:432;;;;;:::o;8211:353::-;8277:5;8326:3;8319:4;8311:6;8307:17;8303:27;8293:122;;8334:79;;:::i;:::-;8293:122;8444:6;8438:13;8469:89;8554:3;8546:6;8539:4;8531:6;8527:17;8469:89;:::i;:::-;8460:98;;8283:281;8211:353;;;;:::o;8604:2383::-;8690:5;8734:6;8722:9;8717:3;8713:19;8709:32;8706:119;;;8744:79;;:::i;:::-;8706:119;8843:23;8859:6;8843:23;:::i;:::-;8834:32;;8946:1;8935:9;8931:17;8925:24;8976:18;8968:6;8965:30;8962:117;;;8998:79;;:::i;:::-;8962:117;9118:70;9184:3;9175:6;9164:9;9160:22;9118:70;:::i;:::-;9111:4;9104:5;9100:16;9093:96;8876:324;9266:2;9307:60;9363:3;9354:6;9343:9;9339:22;9307:60;:::i;:::-;9300:4;9293:5;9289:16;9282:86;9210:169;9449:2;9490:60;9546:3;9537:6;9526:9;9522:22;9490:60;:::i;:::-;9483:4;9476:5;9472:16;9465:86;9389:173;9630:2;9671:60;9727:3;9718:6;9707:9;9703:22;9671:60;:::i;:::-;9664:4;9657:5;9653:16;9646:86;9572:171;9812:3;9854:60;9910:3;9901:6;9890:9;9886:22;9854:60;:::i;:::-;9847:4;9840:5;9836:16;9829:86;9753:173;9994:3;10036:60;10092:3;10083:6;10072:9;10068:22;10036:60;:::i;:::-;10029:4;10022:5;10018:16;10011:86;9936:172;10181:3;10223:60;10279:3;10270:6;10259:9;10255:22;10223:60;:::i;:::-;10216:4;10209:5;10205:16;10198:86;10118:177;10382:3;10371:9;10367:19;10361:26;10414:18;10406:6;10403:30;10400:117;;;10436:79;;:::i;:::-;10400:117;10556:69;10621:3;10612:6;10601:9;10597:22;10556:69;:::i;:::-;10549:4;10542:5;10538:16;10531:95;10305:332;10723:3;10712:9;10708:19;10702:26;10755:18;10747:6;10744:30;10741:117;;;10777:79;;:::i;:::-;10741:117;10899:69;10964:3;10955:6;10944:9;10940:22;10899:69;:::i;:::-;10890:6;10883:5;10879:18;10872:97;10647:333;8604:2383;;;;:::o;10993:556::-;11089:6;11138:2;11126:9;11117:7;11113:23;11109:32;11106:119;;;11144:79;;:::i;:::-;11106:119;11285:1;11274:9;11270:17;11264:24;11315:18;11307:6;11304:30;11301:117;;;11337:79;;:::i;:::-;11301:117;11442:90;11524:7;11515:6;11504:9;11500:22;11442:90;:::i;:::-;11432:100;;11235:307;10993:556;;;;:::o;11555:99::-;11607:6;11641:5;11635:12;11625:22;;11555:99;;;:::o;11660:148::-;11762:11;11799:3;11784:18;;11660:148;;;;:::o;11814:390::-;11920:3;11948:39;11981:5;11948:39;:::i;:::-;12003:89;12085:6;12080:3;12003:89;:::i;:::-;11996:96;;12101:65;12159:6;12154:3;12147:4;12140:5;12136:16;12101:65;:::i;:::-;12191:6;12186:3;12182:16;12175:23;;11924:280;11814:390;;;;:::o;12210:275::-;12342:3;12364:95;12455:3;12446:6;12364:95;:::i;:::-;12357:102;;12476:3;12469:10;;12210:275;;;;:::o;12491:180::-;12539:77;12536:1;12529:88;12636:4;12633:1;12626:15;12660:4;12657:1;12650:15;12677:233;12716:3;12739:24;12757:5;12739:24;:::i;:::-;12730:33;;12785:66;12778:5;12775:77;12772:103;;12855:18;;:::i;:::-;12772:103;12902:1;12895:5;12891:13;12884:20;;12677:233;;;:::o;12916:169::-;13000:11;13034:6;13029:3;13022:19;13074:4;13069:3;13065:14;13050:29;;12916:169;;;;:::o;13091:::-;13231:21;13227:1;13219:6;13215:14;13208:45;13091:169;:::o;13266:366::-;13408:3;13429:67;13493:2;13488:3;13429:67;:::i;:::-;13422:74;;13505:93;13594:3;13505:93;:::i;:::-;13623:2;13618:3;13614:12;13607:19;;13266:366;;;:::o;13638:419::-;13804:4;13842:2;13831:9;13827:18;13819:26;;13891:9;13885:4;13881:20;13877:1;13866:9;13862:17;13855:47;13919:131;14045:4;13919:131;:::i;:::-;13911:139;;13638:419;;;:::o;3270:292:1:-;;;;;;;" }, "deployedBytecode": { @@ -14177,8 +14177,8 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006001905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea2646970667358221220fe13ca5181d8295c1850e6566e74c1ab6de7b4e38a44e28c169ec0c1c3f54fc264736f6c63430008110033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x79688E99 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x920E0C03 EQ PUSH2 0xA9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x67D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE DUP3 DUP5 PUSH2 0x309 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x813 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCB00F603 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D SWAP2 SWAP1 PUSH2 0x717 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x76F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B2479DB PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP6 DUP8 MLOAD DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x83B JUMP JUMPDEST SWAP1 POP PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x245CE18D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x868 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x278 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x812 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDA9DF518 DUP3 SELFBALANCE PUSH1 0x1 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x8FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x4000000000000000000000000000000000000000000000000000000000000 PUSH1 0x4 PUSH1 0xF8 SHL PUSH2 0x33A DUP6 DUP6 PUSH2 0x363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x34C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x36E DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x377 DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x388 SWAP3 SWAP2 SWAP1 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0xA67 JUMP JUMPDEST PUSH2 0x3BD SWAP2 SWAP1 PUSH2 0xAA9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3EC SWAP3 SWAP2 SWAP1 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x417 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x432 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x40E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x44F DUP2 PUSH2 0x438 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x46A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4D7 DUP3 PUSH2 0x48E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4F6 JUMPI PUSH2 0x4F5 PUSH2 0x49F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x509 PUSH2 0x470 JUMP JUMPDEST SWAP1 POP PUSH2 0x515 DUP3 DUP3 PUSH2 0x4CE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x535 JUMPI PUSH2 0x534 PUSH2 0x49F JUMP JUMPDEST JUMPDEST PUSH2 0x53E DUP3 PUSH2 0x48E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56D PUSH2 0x568 DUP5 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x4FF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x489 JUMP JUMPDEST JUMPDEST PUSH2 0x594 DUP5 DUP3 DUP6 PUSH2 0x54B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5B1 JUMPI PUSH2 0x5B0 PUSH2 0x484 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5C1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x55A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5E1 JUMPI PUSH2 0x5E0 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5FF JUMPI PUSH2 0x5FE PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x60B DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x62C JUMPI PUSH2 0x62B PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x638 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x677 DUP2 PUSH2 0x642 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x692 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x66E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E9 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x6F3 DUP2 DUP6 PUSH2 0x6A3 JUMP JUMPDEST SWAP4 POP PUSH2 0x703 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x70C DUP2 PUSH2 0x48E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x731 DUP2 DUP5 PUSH2 0x6DE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x74C DUP2 PUSH2 0x739 JUMP JUMPDEST DUP2 EQ PUSH2 0x757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x769 DUP2 PUSH2 0x743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x785 JUMPI PUSH2 0x784 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x793 DUP5 DUP3 DUP6 ADD PUSH2 0x75A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7A5 DUP2 PUSH2 0x739 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7C4 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x7DF PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x446 JUMP JUMPDEST PUSH2 0x7EC PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x7F9 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x806 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x818 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP2 EQ PUSH2 0x823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x835 DUP2 PUSH2 0x80F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x851 JUMPI PUSH2 0x850 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x85F DUP5 DUP3 DUP6 ADD PUSH2 0x826 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x87D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0x883 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x8D4 DUP3 PUSH2 0x8B2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E4 DUP3 PUSH2 0x8C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8F4 DUP2 PUSH2 0x8D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x90F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x91C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x40E JUMP JUMPDEST PUSH2 0x929 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8EB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94C PUSH2 0x947 DUP3 PUSH2 0x642 JUMP JUMPDEST PUSH2 0x931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x999 PUSH2 0x994 DUP3 PUSH2 0x952 JUMP JUMPDEST PUSH2 0x97E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9B5 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x9BF DUP2 DUP6 PUSH2 0x99F JUMP JUMPDEST SWAP4 POP PUSH2 0x9CF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E7 DUP3 DUP7 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x9F7 DUP3 DUP6 PUSH2 0x988 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0xA07 DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA20 DUP3 DUP6 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP PUSH2 0xA2C DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0xA7D DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xA8B DUP2 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB4 DUP3 PUSH2 0x438 JUMP JUMPDEST SWAP2 POP PUSH2 0xABF DUP4 PUSH2 0x438 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEB DUP3 DUP6 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0xAFB DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID SGT 0xCA MLOAD DUP2 0xD8 0x29 0x5C XOR POP 0xE6 JUMP PUSH15 0x74C1AB6DE7B4E38A44E28C169EC0C1 0xC3 CREATE2 0x4F 0xC2 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006001905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea26469706673582212202d0069a2f8fd80b585e5391c7483c702a13b1f308e8f78c0d57f2a4362c9a8b564736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x79688E99 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x920E0C03 EQ PUSH2 0xA9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x67D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE DUP3 DUP5 PUSH2 0x309 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x813 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCB00F603 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D SWAP2 SWAP1 PUSH2 0x717 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x76F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B2479DB PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP6 DUP8 MLOAD DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x83B JUMP JUMPDEST SWAP1 POP PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x245CE18D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x868 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x278 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x812 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDA9DF518 DUP3 SELFBALANCE PUSH1 0x1 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x8FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x4000000000000000000000000000000000000000000000000000000000000 PUSH1 0x4 PUSH1 0xF8 SHL PUSH2 0x33A DUP6 DUP6 PUSH2 0x363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x34C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x36E DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x377 DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x388 SWAP3 SWAP2 SWAP1 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0xA67 JUMP JUMPDEST PUSH2 0x3BD SWAP2 SWAP1 PUSH2 0xAA9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3EC SWAP3 SWAP2 SWAP1 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x417 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x432 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x40E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x44F DUP2 PUSH2 0x438 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x46A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4D7 DUP3 PUSH2 0x48E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4F6 JUMPI PUSH2 0x4F5 PUSH2 0x49F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x509 PUSH2 0x470 JUMP JUMPDEST SWAP1 POP PUSH2 0x515 DUP3 DUP3 PUSH2 0x4CE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x535 JUMPI PUSH2 0x534 PUSH2 0x49F JUMP JUMPDEST JUMPDEST PUSH2 0x53E DUP3 PUSH2 0x48E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56D PUSH2 0x568 DUP5 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x4FF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x489 JUMP JUMPDEST JUMPDEST PUSH2 0x594 DUP5 DUP3 DUP6 PUSH2 0x54B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5B1 JUMPI PUSH2 0x5B0 PUSH2 0x484 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5C1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x55A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5E1 JUMPI PUSH2 0x5E0 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5FF JUMPI PUSH2 0x5FE PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x60B DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x62C JUMPI PUSH2 0x62B PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x638 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x677 DUP2 PUSH2 0x642 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x692 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x66E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E9 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x6F3 DUP2 DUP6 PUSH2 0x6A3 JUMP JUMPDEST SWAP4 POP PUSH2 0x703 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x70C DUP2 PUSH2 0x48E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x731 DUP2 DUP5 PUSH2 0x6DE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x74C DUP2 PUSH2 0x739 JUMP JUMPDEST DUP2 EQ PUSH2 0x757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x769 DUP2 PUSH2 0x743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x785 JUMPI PUSH2 0x784 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x793 DUP5 DUP3 DUP6 ADD PUSH2 0x75A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7A5 DUP2 PUSH2 0x739 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7C4 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x7DF PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x446 JUMP JUMPDEST PUSH2 0x7EC PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x7F9 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x806 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x818 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP2 EQ PUSH2 0x823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x835 DUP2 PUSH2 0x80F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x851 JUMPI PUSH2 0x850 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x85F DUP5 DUP3 DUP6 ADD PUSH2 0x826 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x87D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0x883 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x8D4 DUP3 PUSH2 0x8B2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E4 DUP3 PUSH2 0x8C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8F4 DUP2 PUSH2 0x8D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x90F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x91C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x40E JUMP JUMPDEST PUSH2 0x929 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8EB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94C PUSH2 0x947 DUP3 PUSH2 0x642 JUMP JUMPDEST PUSH2 0x931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x999 PUSH2 0x994 DUP3 PUSH2 0x952 JUMP JUMPDEST PUSH2 0x97E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9B5 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x9BF DUP2 DUP6 PUSH2 0x99F JUMP JUMPDEST SWAP4 POP PUSH2 0x9CF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E7 DUP3 DUP7 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x9F7 DUP3 DUP6 PUSH2 0x988 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0xA07 DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA20 DUP3 DUP6 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP PUSH2 0xA2C DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0xA7D DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xA8B DUP2 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB4 DUP3 PUSH2 0x438 JUMP JUMPDEST SWAP2 POP PUSH2 0xABF DUP4 PUSH2 0x438 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEB DUP3 DUP6 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0xAFB DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D STOP PUSH10 0xA2F8FD80B585E5391C74 DUP4 0xC7 MUL LOG1 EXTCODESIZE 0x1F ADDRESS DUP15 DUP16 PUSH25 0xC0D57F2A4362C9A8B564736F6C634300081100330000000000 ", "sourceMap": "3270:292:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3484:76;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;476:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2180:1044;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;609:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3484:76;3526:7;3552:1;3545:8;;3484:76;:::o;476:25::-;;;;;;;;;;;;:::o;2180:1044::-;2300:27;2330:106;2382:18;2414:12;2330:38;:106::i;:::-;2300:136;;2446:20;145:42:3;2469:30:1;;;2500:14;2469:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2446:69;;2658:17;2678:1;2658:21;;2689:19;147:42:4;2711:30:1;;;2755:11;;;;;;;;;;2780:12;2813:14;:21;2849:10;2711:158;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2689:180;;147:42:4;2919:39:1;;;2959:12;2919:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:42:2;3019:34:1;;;3067:12;3093:21;3171:36;3019:198;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2290:934;;;;2180:1044;;:::o;609:33::-;;;;;;;;;;;;;:::o;1402:410:0:-;1532:12;1605:18;1681:5;1668:20;;1746:45;1766:10;1778:12;1746:19;:45::i;:::-;1575:230;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1556:249;;1402:410;;;;:::o;858:282::-;972:12;1049:25;1070:3;1049:20;:25::i;:::-;1092:27;1113:5;1092:20;:27::i;:::-;1019:114;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1000:133;;858:282;;;;:::o;298:413::-;394:12;453:13;495:1;490;476:4;:11;:15;;;;:::i;:::-;469:27;;;;:::i;:::-;453:43;;542:21;594:1;584:6;:11;;;;578:1;568:6;:11;;;;567:29;542:55;;682:14;675:22;;699:4;662:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;655:49;;;;298:413;;;:::o;7:77:5:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:89::-;478:7;518:6;511:5;507:18;496:29;;442:89;;;:::o;537:115::-;622:23;639:5;622:23;:::i;:::-;617:3;610:36;537:115;;:::o;658:218::-;749:4;787:2;776:9;772:18;764:26;;800:69;866:1;855:9;851:17;842:6;800:69;:::i;:::-;658:218;;;;:::o;882:75::-;915:6;948:2;942:9;932:19;;882:75;:::o;963:117::-;1072:1;1069;1062:12;1086:117;1195:1;1192;1185:12;1209:117;1318:1;1315;1308:12;1332:117;1441:1;1438;1431:12;1455:102;1496:6;1547:2;1543:7;1538:2;1531:5;1527:14;1523:28;1513:38;;1455:102;;;:::o;1563:180::-;1611:77;1608:1;1601:88;1708:4;1705:1;1698:15;1732:4;1729:1;1722:15;1749:281;1832:27;1854:4;1832:27;:::i;:::-;1824:6;1820:40;1962:6;1950:10;1947:22;1926:18;1914:10;1911:34;1908:62;1905:88;;;1973:18;;:::i;:::-;1905:88;2013:10;2009:2;2002:22;1792:238;1749:281;;:::o;2036:129::-;2070:6;2097:20;;:::i;:::-;2087:30;;2126:33;2154:4;2146:6;2126:33;:::i;:::-;2036:129;;;:::o;2171:307::-;2232:4;2322:18;2314:6;2311:30;2308:56;;;2344:18;;:::i;:::-;2308:56;2382:29;2404:6;2382:29;:::i;:::-;2374:37;;2466:4;2460;2456:15;2448:23;;2171:307;;;:::o;2484:146::-;2581:6;2576:3;2571;2558:30;2622:1;2613:6;2608:3;2604:16;2597:27;2484:146;;;:::o;2636:423::-;2713:5;2738:65;2754:48;2795:6;2754:48;:::i;:::-;2738:65;:::i;:::-;2729:74;;2826:6;2819:5;2812:21;2864:4;2857:5;2853:16;2902:3;2893:6;2888:3;2884:16;2881:25;2878:112;;;2909:79;;:::i;:::-;2878:112;2999:54;3046:6;3041:3;3036;2999:54;:::i;:::-;2719:340;2636:423;;;;;:::o;3078:338::-;3133:5;3182:3;3175:4;3167:6;3163:17;3159:27;3149:122;;3190:79;;:::i;:::-;3149:122;3307:6;3294:20;3332:78;3406:3;3398:6;3391:4;3383:6;3379:17;3332:78;:::i;:::-;3323:87;;3139:277;3078:338;;;;:::o;3422:830::-;3508:6;3516;3565:2;3553:9;3544:7;3540:23;3536:32;3533:119;;;3571:79;;:::i;:::-;3533:119;3719:1;3708:9;3704:17;3691:31;3749:18;3741:6;3738:30;3735:117;;;3771:79;;:::i;:::-;3735:117;3876:62;3930:7;3921:6;3910:9;3906:22;3876:62;:::i;:::-;3866:72;;3662:286;4015:2;4004:9;4000:18;3987:32;4046:18;4038:6;4035:30;4032:117;;;4068:79;;:::i;:::-;4032:117;4173:62;4227:7;4218:6;4207:9;4203:22;4173:62;:::i;:::-;4163:72;;3958:287;3422:830;;;;;:::o;4258:149::-;4294:7;4334:66;4327:5;4323:78;4312:89;;4258:149;;;:::o;4413:115::-;4498:23;4515:5;4498:23;:::i;:::-;4493:3;4486:36;4413:115;;:::o;4534:218::-;4625:4;4663:2;4652:9;4648:18;4640:26;;4676:69;4742:1;4731:9;4727:17;4718:6;4676:69;:::i;:::-;4534:218;;;;:::o;4758:98::-;4809:6;4843:5;4837:12;4827:22;;4758:98;;;:::o;4862:168::-;4945:11;4979:6;4974:3;4967:19;5019:4;5014:3;5010:14;4995:29;;4862:168;;;;:::o;5036:246::-;5117:1;5127:113;5141:6;5138:1;5135:13;5127:113;;;5226:1;5221:3;5217:11;5211:18;5207:1;5202:3;5198:11;5191:39;5163:2;5160:1;5156:10;5151:15;;5127:113;;;5274:1;5265:6;5260:3;5256:16;5249:27;5098:184;5036:246;;;:::o;5288:373::-;5374:3;5402:38;5434:5;5402:38;:::i;:::-;5456:70;5519:6;5514:3;5456:70;:::i;:::-;5449:77;;5535:65;5593:6;5588:3;5581:4;5574:5;5570:16;5535:65;:::i;:::-;5625:29;5647:6;5625:29;:::i;:::-;5620:3;5616:39;5609:46;;5378:283;5288:373;;;;:::o;5667:309::-;5778:4;5816:2;5805:9;5801:18;5793:26;;5865:9;5859:4;5855:20;5851:1;5840:9;5836:17;5829:47;5893:76;5964:4;5955:6;5893:76;:::i;:::-;5885:84;;5667:309;;;;:::o;5982:77::-;6019:7;6048:5;6037:16;;5982:77;;;:::o;6065:122::-;6138:24;6156:5;6138:24;:::i;:::-;6131:5;6128:35;6118:63;;6177:1;6174;6167:12;6118:63;6065:122;:::o;6193:143::-;6250:5;6281:6;6275:13;6266:22;;6297:33;6324:5;6297:33;:::i;:::-;6193:143;;;;:::o;6342:351::-;6412:6;6461:2;6449:9;6440:7;6436:23;6432:32;6429:119;;;6467:79;;:::i;:::-;6429:119;6587:1;6612:64;6668:7;6659:6;6648:9;6644:22;6612:64;:::i;:::-;6602:74;;6558:128;6342:351;;;;:::o;6699:118::-;6786:24;6804:5;6786:24;:::i;:::-;6781:3;6774:37;6699:118;;:::o;6823:93::-;6859:7;6899:10;6892:5;6888:22;6877:33;;6823:93;;;:::o;6922:115::-;7007:23;7024:5;7007:23;:::i;:::-;7002:3;6995:36;6922:115;;:::o;7043:541::-;7214:4;7252:3;7241:9;7237:19;7229:27;;7266:69;7332:1;7321:9;7317:17;7308:6;7266:69;:::i;:::-;7345:72;7413:2;7402:9;7398:18;7389:6;7345:72;:::i;:::-;7427:70;7493:2;7482:9;7478:18;7469:6;7427:70;:::i;:::-;7507;7573:2;7562:9;7558:18;7549:6;7507:70;:::i;:::-;7043:541;;;;;;;:::o;7590:120::-;7662:23;7679:5;7662:23;:::i;:::-;7655:5;7652:34;7642:62;;7700:1;7697;7690:12;7642:62;7590:120;:::o;7716:141::-;7772:5;7803:6;7797:13;7788:22;;7819:32;7845:5;7819:32;:::i;:::-;7716:141;;;;:::o;7863:349::-;7932:6;7981:2;7969:9;7960:7;7956:23;7952:32;7949:119;;;7987:79;;:::i;:::-;7949:119;8107:1;8132:63;8187:7;8178:6;8167:9;8163:22;8132:63;:::i;:::-;8122:73;;8078:127;7863:349;;;;:::o;8218:218::-;8309:4;8347:2;8336:9;8332:18;8324:26;;8360:69;8426:1;8415:9;8411:17;8402:6;8360:69;:::i;:::-;8218:218;;;;:::o;8442:180::-;8490:77;8487:1;8480:88;8587:4;8584:1;8577:15;8611:4;8608:1;8601:15;8628:119;8715:1;8708:5;8705:12;8695:46;;8721:18;;:::i;:::-;8695:46;8628:119;:::o;8753:139::-;8804:7;8833:5;8822:16;;8839:47;8880:5;8839:47;:::i;:::-;8753:139;;;:::o;8898:::-;8960:9;8993:38;9025:5;8993:38;:::i;:::-;8980:51;;8898:139;;;:::o;9043:155::-;9142:49;9185:5;9142:49;:::i;:::-;9137:3;9130:62;9043:155;;:::o;9204:462::-;9363:4;9401:2;9390:9;9386:18;9378:26;;9414:69;9480:1;9469:9;9465:17;9456:6;9414:69;:::i;:::-;9493:72;9561:2;9550:9;9546:18;9537:6;9493:72;:::i;:::-;9575:84;9655:2;9644:9;9640:18;9631:6;9575:84;:::i;:::-;9204:462;;;;;;:::o;9672:78::-;9710:7;9739:5;9728:16;;9672:78;;;:::o;9756:153::-;9859:43;9878:23;9895:5;9878:23;:::i;:::-;9859:43;:::i;:::-;9854:3;9847:56;9756:153;;:::o;9915:149::-;9951:7;9991:66;9984:5;9980:78;9969:89;;9915:149;;;:::o;10070:78::-;10108:7;10137:5;10126:16;;10070:78;;;:::o;10154:153::-;10257:43;10276:23;10293:5;10276:23;:::i;:::-;10257:43;:::i;:::-;10252:3;10245:56;10154:153;;:::o;10313:147::-;10414:11;10451:3;10436:18;;10313:147;;;;:::o;10466:386::-;10570:3;10598:38;10630:5;10598:38;:::i;:::-;10652:88;10733:6;10728:3;10652:88;:::i;:::-;10645:95;;10749:65;10807:6;10802:3;10795:4;10788:5;10784:16;10749:65;:::i;:::-;10839:6;10834:3;10830:16;10823:23;;10574:278;10466:386;;;;:::o;10858:543::-;11040:3;11055:73;11124:3;11115:6;11055:73;:::i;:::-;11153:1;11148:3;11144:11;11137:18;;11165:73;11234:3;11225:6;11165:73;:::i;:::-;11263:1;11258:3;11254:11;11247:18;;11282:93;11371:3;11362:6;11282:93;:::i;:::-;11275:100;;11392:3;11385:10;;10858:543;;;;;;:::o;11407:427::-;11583:3;11605:93;11694:3;11685:6;11605:93;:::i;:::-;11598:100;;11715:93;11804:3;11795:6;11715:93;:::i;:::-;11708:100;;11825:3;11818:10;;11407:427;;;;;:::o;11840:180::-;11888:77;11885:1;11878:88;11985:4;11982:1;11975:15;12009:4;12006:1;11999:15;12026:410;12066:7;12089:20;12107:1;12089:20;:::i;:::-;12084:25;;12123:20;12141:1;12123:20;:::i;:::-;12118:25;;12178:1;12175;12171:9;12200:30;12218:11;12200:30;:::i;:::-;12189:41;;12379:1;12370:7;12366:15;12363:1;12360:22;12340:1;12333:9;12313:83;12290:139;;12409:18;;:::i;:::-;12290:139;12074:362;12026:410;;;;:::o;12442:193::-;12481:3;12500:19;12517:1;12500:19;:::i;:::-;12495:24;;12533:19;12550:1;12533:19;:::i;:::-;12528:24;;12575:1;12572;12568:9;12561:16;;12598:6;12593:3;12590:15;12587:41;;;12608:18;;:::i;:::-;12587:41;12442:193;;;;:::o;12641:407::-;12797:3;12812:73;12881:3;12872:6;12812:73;:::i;:::-;12910:1;12905:3;12901:11;12894:18;;12929:93;13018:3;13009:6;12929:93;:::i;:::-;12922:100;;13039:3;13032:10;;12641:407;;;;;:::o" }, "gasEstimates": { @@ -20096,7 +20096,7 @@ ], ".data": { "0": { - ".auxdata": "a2646970667358221220fe13ca5181d8295c1850e6566e74c1ab6de7b4e38a44e28c169ec0c1c3f54fc264736f6c63430008110033", + ".auxdata": "a26469706673582212202d0069a2f8fd80b585e5391c7483c702a13b1f308e8f78c0d57f2a4362c9a8b564736f6c63430008110033", ".code": [ { "begin": 3270, @@ -27018,7 +27018,7 @@ } }, "ewasm": { "wasm": "" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"trackName\",\"type\":\"string\"},{\"internalType\":\"bytes2\",\"name\":\"pSetStorageCallIndex\",\"type\":\"bytes2\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"contractStorageKey\",\"type\":\"bytes\"}],\"name\":\"autoUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootTrackId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setStorageCallIndex\",\"outputs\":[{\"internalType\":\"bytes2\",\"name\":\"\",\"type\":\"bytes2\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"params\":{\"contractCode\":\"The code as deployed of the new contract\",\"contractStorageKey\":\"The storage key associated with the current smart contract\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"notice\":\"submits to upgrade contract for given storage key\"},\"rootTrackId()\":{\"notice\":\"The id of the track used for root execution\"},\"setStorageCallIndex()\":{\"notice\":\"SetStorageCall index (pallet Index concatenated with call index, usually \\\"\\\\x00\\\\x04\\\")\"}},\"notice\":\"First version of the contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"ReferendaAutoUpgradeDemoV1\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"SubstrateTools.sol\":{\"keccak256\":\"0xb79c6a9b3a694dfa362268f87e5598b95c048c5e8f1a053a5c5e9dd81e6345a1\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://ecbf04ed9eaca008ec155d5041ce28cab434f8f15368a4db7a5d3ad653f12e1b\",\"dweb:/ipfs/QmPuCTURp9BwkyR6otvbs2mQhiToSheANZiTpw7AvXAdnR\"]},\"main.sol\":{\"keccak256\":\"0x952cd5c14bbd014c37b67fda6f4b52dae7aaf888fe3476d9575fd5ea76fa15a0\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://550273857d8f5f99a118fe8686cb69e92d16a03f9209ff8b841b0fb9a341ccba\",\"dweb:/ipfs/QmRWX8vaQjKhcgrHP2YcpJV7fGqnDmLP2Roj8ehYHYXD4T\"]},\"precompiles/conviction-voting/ConvictionVoting.sol\":{\"keccak256\":\"0x2ee018e2de05f175dc13f1eada66c145ee9b86c79eabcea8475681d840e2374d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://9f57de4887b65be5bb52e848513bd3471c4275ff6df34d2a647dc421054122b3\",\"dweb:/ipfs/QmYt2F5e6VHUc5MdhsaSsTcZbctSNeUH9ncgCihSx37uc3\"]},\"precompiles/preimage/Preimage.sol\":{\"keccak256\":\"0x8b0a12d239d2226ae5d5d79761b0e66c3aa9bdbe2fb41d512478bbd8b5d516ec\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://8405c679cdc5ecc4725e1869c620910ed303dfdab74a617af60e6b4c6df6ca3e\",\"dweb:/ipfs/QmPsXz13YLPKX2FjaLTZTW1cEBeVL1cKt4GoJewtiHjv2P\"]},\"precompiles/referenda/Referenda.sol\":{\"keccak256\":\"0x6d7b2c4c6e5f54ca4bbd935e37581c587b058b34145f6380a35c405bd9f981f4\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://27b062d76058c253b7534f6a3782599dd80cb533474290f557435d4a31e8de81\",\"dweb:/ipfs/QmRV57137PdX3JKE6Hi5BS7n3o624xT8GbjG3dVwod1Q5P\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"trackName\",\"type\":\"string\"},{\"internalType\":\"bytes2\",\"name\":\"pSetStorageCallIndex\",\"type\":\"bytes2\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"contractStorageKey\",\"type\":\"bytes\"}],\"name\":\"autoUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootTrackId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setStorageCallIndex\",\"outputs\":[{\"internalType\":\"bytes2\",\"name\":\"\",\"type\":\"bytes2\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"params\":{\"contractCode\":\"The code as deployed of the new contract\",\"contractStorageKey\":\"The storage key associated with the current smart contract\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"notice\":\"submits to upgrade contract for given storage key\"},\"rootTrackId()\":{\"notice\":\"The id of the track used for root execution\"},\"setStorageCallIndex()\":{\"notice\":\"SetStorageCall index (pallet Index concatenated with call index, usually \\\"\\\\x00\\\\x04\\\")\"}},\"notice\":\"First version of the contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"ReferendaAutoUpgradeDemoV1\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"SubstrateTools.sol\":{\"keccak256\":\"0xb79c6a9b3a694dfa362268f87e5598b95c048c5e8f1a053a5c5e9dd81e6345a1\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://ecbf04ed9eaca008ec155d5041ce28cab434f8f15368a4db7a5d3ad653f12e1b\",\"dweb:/ipfs/QmPuCTURp9BwkyR6otvbs2mQhiToSheANZiTpw7AvXAdnR\"]},\"main.sol\":{\"keccak256\":\"0x952cd5c14bbd014c37b67fda6f4b52dae7aaf888fe3476d9575fd5ea76fa15a0\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://550273857d8f5f99a118fe8686cb69e92d16a03f9209ff8b841b0fb9a341ccba\",\"dweb:/ipfs/QmRWX8vaQjKhcgrHP2YcpJV7fGqnDmLP2Roj8ehYHYXD4T\"]},\"precompiles/conviction-voting/ConvictionVoting.sol\":{\"keccak256\":\"0x2ee018e2de05f175dc13f1eada66c145ee9b86c79eabcea8475681d840e2374d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://9f57de4887b65be5bb52e848513bd3471c4275ff6df34d2a647dc421054122b3\",\"dweb:/ipfs/QmYt2F5e6VHUc5MdhsaSsTcZbctSNeUH9ncgCihSx37uc3\"]},\"precompiles/preimage/Preimage.sol\":{\"keccak256\":\"0x8b0a12d239d2226ae5d5d79761b0e66c3aa9bdbe2fb41d512478bbd8b5d516ec\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://8405c679cdc5ecc4725e1869c620910ed303dfdab74a617af60e6b4c6df6ca3e\",\"dweb:/ipfs/QmPsXz13YLPKX2FjaLTZTW1cEBeVL1cKt4GoJewtiHjv2P\"]},\"precompiles/referenda/Referenda.sol\":{\"keccak256\":\"0x1775aed3f3772a4e943ee08c12f42ff5ce2bf528466f33efc36a6447cfbfb594\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://22c54fd60c34e50acf3554a32b11b7e5207f2ad2c16b37cd3c4e607d5ce7827a\",\"dweb:/ipfs/QmSmFZPJ7MH6PjfYKMoLbY2QzhhREvuQyNTztQQ683utC9\"]}},\"version\":1}", "storageLayout": { "storage": [ { diff --git a/tests/contracts/compiled/ReferendaAutoUpgradeDemoV2.json b/tests/contracts/compiled/ReferendaAutoUpgradeDemoV2.json index e0ac2e6ddc..20bddc6527 100644 --- a/tests/contracts/compiled/ReferendaAutoUpgradeDemoV2.json +++ b/tests/contracts/compiled/ReferendaAutoUpgradeDemoV2.json @@ -1,5 +1,5 @@ { - "byteCode": "0x60806040523480156200001157600080fd5b506040516200160a3803806200160a83398181016040528101906200003791906200048c565b818180600060026101000a81548161ffff021916908360f01c021790555062000066826200008b60201b60201c565b6000806101000a81548161ffff021916908361ffff1602179055505050505062000abd565b60008061081173ffffffffffffffffffffffffffffffffffffffff1663cc17da146040518163ffffffff1660e01b8152600401600060405180830381865afa158015620000dc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906200010791906200060c565b905060005b81518110156200025957600061081173ffffffffffffffffffffffffffffffffffffffff1663340381468484815181106200014c576200014b6200065d565b5b60200260200101516040518263ffffffff1660e01b81526004016200017291906200069d565b600060405180830381865afa15801562000190573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620001bb919062000907565b905084604051602001620001d09190620009a5565b604051602081830303815290604052805190602001208160000151604051602001620001fd9190620009a5565b604051602081830303815290604052805190602001200362000242578282815181106200022f576200022e6200065d565b5b6020026020010151935050505062000297565b5080806200025090620009ed565b9150506200010c565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200028e9062000a9b565b60405180910390fd5b919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200030582620002ba565b810181811067ffffffffffffffff82111715620003275762000326620002cb565b5b80604052505050565b60006200033c6200029c565b90506200034a8282620002fa565b919050565b600067ffffffffffffffff8211156200036d576200036c620002cb565b5b6200037882620002ba565b9050602081019050919050565b60005b83811015620003a557808201518184015260208101905062000388565b60008484015250505050565b6000620003c8620003c2846200034f565b62000330565b905082815260208101848484011115620003e757620003e6620002b5565b5b620003f484828562000385565b509392505050565b600082601f830112620004145762000413620002b0565b5b815162000426848260208601620003b1565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b62000466816200042f565b81146200047257600080fd5b50565b60008151905062000486816200045b565b92915050565b60008060408385031215620004a657620004a5620002a6565b5b600083015167ffffffffffffffff811115620004c757620004c6620002ab565b5b620004d585828601620003fc565b9250506020620004e88582860162000475565b9150509250929050565b600067ffffffffffffffff82111562000510576200050f620002cb565b5b602082029050602081019050919050565b600080fd5b600061ffff82169050919050565b6200053f8162000526565b81146200054b57600080fd5b50565b6000815190506200055f8162000534565b92915050565b60006200057c6200057684620004f2565b62000330565b90508083825260208201905060208402830185811115620005a257620005a162000521565b5b835b81811015620005cf5780620005ba88826200054e565b845260208401935050602081019050620005a4565b5050509392505050565b600082601f830112620005f157620005f0620002b0565b5b81516200060384826020860162000565565b91505092915050565b600060208284031215620006255762000624620002a6565b5b600082015167ffffffffffffffff811115620006465762000645620002ab565b5b6200065484828501620005d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b620006978162000526565b82525050565b6000602082019050620006b460008301846200068c565b92915050565b600080fd5b600080fd5b6000819050919050565b620006d981620006c4565b8114620006e557600080fd5b50565b600081519050620006f981620006ce565b92915050565b600067ffffffffffffffff8211156200071d576200071c620002cb565b5b6200072882620002ba565b9050602081019050919050565b60006200074c6200074684620006ff565b62000330565b9050828152602081018484840111156200076b576200076a620002b5565b5b6200077884828562000385565b509392505050565b600082601f830112620007985762000797620002b0565b5b8151620007aa84826020860162000735565b91505092915050565b60006101208284031215620007cd57620007cc620006ba565b5b620007da61012062000330565b9050600082015167ffffffffffffffff811115620007fd57620007fc620006bf565b5b6200080b84828501620003fc565b60008301525060206200082184828501620006e8565b60208301525060406200083784828501620006e8565b60408301525060606200084d84828501620006e8565b60608301525060806200086384828501620006e8565b60808301525060a06200087984828501620006e8565b60a08301525060c06200088f84828501620006e8565b60c08301525060e082015167ffffffffffffffff811115620008b657620008b5620006bf565b5b620008c48482850162000780565b60e08301525061010082015167ffffffffffffffff811115620008ec57620008eb620006bf565b5b620008fa8482850162000780565b6101008301525092915050565b60006020828403121562000920576200091f620002a6565b5b600082015167ffffffffffffffff811115620009415762000940620002ab565b5b6200094f84828501620007b3565b91505092915050565b600081519050919050565b600081905092915050565b60006200097b8262000958565b62000987818562000963565b93506200099981856020860162000385565b80840191505092915050565b6000620009b382846200096e565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009fa82620006c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a2f5762000a2e620009be565b5b600182019050919050565b600082825260208201905092915050565b7f436f756c646e27742066696e6420747261636b00000000000000000000000000600082015250565b600062000a8360138362000a3a565b915062000a908262000a4b565b602082019050919050565b6000602082019050818103600083015262000ab68162000a74565b9050919050565b610b3d8062000acd6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006002905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea2646970667358221220bdad4453aa6d78c958487815d182ffb6eaf3664add23e66e161304f251fc382864736f6c63430008110033", + "byteCode": "0x60806040523480156200001157600080fd5b506040516200160a3803806200160a83398181016040528101906200003791906200048c565b818180600060026101000a81548161ffff021916908360f01c021790555062000066826200008b60201b60201c565b6000806101000a81548161ffff021916908361ffff1602179055505050505062000abd565b60008061081173ffffffffffffffffffffffffffffffffffffffff1663cc17da146040518163ffffffff1660e01b8152600401600060405180830381865afa158015620000dc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906200010791906200060c565b905060005b81518110156200025957600061081173ffffffffffffffffffffffffffffffffffffffff1663340381468484815181106200014c576200014b6200065d565b5b60200260200101516040518263ffffffff1660e01b81526004016200017291906200069d565b600060405180830381865afa15801562000190573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620001bb919062000907565b905084604051602001620001d09190620009a5565b604051602081830303815290604052805190602001208160000151604051602001620001fd9190620009a5565b604051602081830303815290604052805190602001200362000242578282815181106200022f576200022e6200065d565b5b6020026020010151935050505062000297565b5080806200025090620009ed565b9150506200010c565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200028e9062000a9b565b60405180910390fd5b919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200030582620002ba565b810181811067ffffffffffffffff82111715620003275762000326620002cb565b5b80604052505050565b60006200033c6200029c565b90506200034a8282620002fa565b919050565b600067ffffffffffffffff8211156200036d576200036c620002cb565b5b6200037882620002ba565b9050602081019050919050565b60005b83811015620003a557808201518184015260208101905062000388565b60008484015250505050565b6000620003c8620003c2846200034f565b62000330565b905082815260208101848484011115620003e757620003e6620002b5565b5b620003f484828562000385565b509392505050565b600082601f830112620004145762000413620002b0565b5b815162000426848260208601620003b1565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b62000466816200042f565b81146200047257600080fd5b50565b60008151905062000486816200045b565b92915050565b60008060408385031215620004a657620004a5620002a6565b5b600083015167ffffffffffffffff811115620004c757620004c6620002ab565b5b620004d585828601620003fc565b9250506020620004e88582860162000475565b9150509250929050565b600067ffffffffffffffff82111562000510576200050f620002cb565b5b602082029050602081019050919050565b600080fd5b600061ffff82169050919050565b6200053f8162000526565b81146200054b57600080fd5b50565b6000815190506200055f8162000534565b92915050565b60006200057c6200057684620004f2565b62000330565b90508083825260208201905060208402830185811115620005a257620005a162000521565b5b835b81811015620005cf5780620005ba88826200054e565b845260208401935050602081019050620005a4565b5050509392505050565b600082601f830112620005f157620005f0620002b0565b5b81516200060384826020860162000565565b91505092915050565b600060208284031215620006255762000624620002a6565b5b600082015167ffffffffffffffff811115620006465762000645620002ab565b5b6200065484828501620005d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b620006978162000526565b82525050565b6000602082019050620006b460008301846200068c565b92915050565b600080fd5b600080fd5b6000819050919050565b620006d981620006c4565b8114620006e557600080fd5b50565b600081519050620006f981620006ce565b92915050565b600067ffffffffffffffff8211156200071d576200071c620002cb565b5b6200072882620002ba565b9050602081019050919050565b60006200074c6200074684620006ff565b62000330565b9050828152602081018484840111156200076b576200076a620002b5565b5b6200077884828562000385565b509392505050565b600082601f830112620007985762000797620002b0565b5b8151620007aa84826020860162000735565b91505092915050565b60006101208284031215620007cd57620007cc620006ba565b5b620007da61012062000330565b9050600082015167ffffffffffffffff811115620007fd57620007fc620006bf565b5b6200080b84828501620003fc565b60008301525060206200082184828501620006e8565b60208301525060406200083784828501620006e8565b60408301525060606200084d84828501620006e8565b60608301525060806200086384828501620006e8565b60808301525060a06200087984828501620006e8565b60a08301525060c06200088f84828501620006e8565b60c08301525060e082015167ffffffffffffffff811115620008b657620008b5620006bf565b5b620008c48482850162000780565b60e08301525061010082015167ffffffffffffffff811115620008ec57620008eb620006bf565b5b620008fa8482850162000780565b6101008301525092915050565b60006020828403121562000920576200091f620002a6565b5b600082015167ffffffffffffffff811115620009415762000940620002ab565b5b6200094f84828501620007b3565b91505092915050565b600081519050919050565b600081905092915050565b60006200097b8262000958565b62000987818562000963565b93506200099981856020860162000385565b80840191505092915050565b6000620009b382846200096e565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009fa82620006c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a2f5762000a2e620009be565b5b600182019050919050565b600082825260208201905092915050565b7f436f756c646e27742066696e6420747261636b00000000000000000000000000600082015250565b600062000a8360138362000a3a565b915062000a908262000a4b565b602082019050919050565b6000602082019050818103600083015262000ab68162000a74565b9050919050565b610b3d8062000acd6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006002905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea2646970667358221220b36604818933d234e033ae1863fe2be2c5258a09a0fa7c42dc19933bc22c08ca64736f6c63430008110033", "contract": { "abi": [ { @@ -65,7 +65,7 @@ "version": 1 }, "evm": { - "assembly": " /* \"main.sol\":3607:3899 contract ReferendaAutoUpgradeDemoV2 is ReferendaAutoUpgradeDemo {... */\n mstore(0x40, 0x80)\n /* \"main.sol\":3677:3815 constructor(string memory trackName, bytes2 pSetStorageCallIndex)... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\ntag_2:\n /* \"main.sol\":3776:3785 trackName */\n dup2\n /* \"main.sol\":3787:3807 pSetStorageCallIndex */\n dup2\n /* \"main.sol\":834:854 pSetStorageCallIndex */\n dup1\n /* \"main.sol\":812:831 setStorageCallIndex */\n 0x00\n 0x02\n /* \"main.sol\":812:854 setStorageCallIndex = pSetStorageCallIndex */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffff\n mul\n not\n and\n swap1\n dup4\n 0xf0\n shr\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":1161:1182 getTrackId(trackName) */\n tag_7\n /* \"main.sol\":1172:1181 trackName */\n dup3\n /* \"main.sol\":1161:1171 getTrackId */\n shl(0x20, tag_8)\n /* \"main.sol\":1161:1182 getTrackId(trackName) */\n 0x20\n shr\n jump\t// in\ntag_7:\n /* \"main.sol\":1147:1158 rootTrackId */\n 0x00\n dup1\n /* \"main.sol\":1147:1182 rootTrackId = getTrackId(trackName) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffff\n mul\n not\n and\n swap1\n dup4\n 0xffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":736:1189 constructor(string memory trackName, bytes2 pSetStorageCallIndex) {... */\n pop\n pop\n /* \"main.sol\":3677:3815 constructor(string memory trackName, bytes2 pSetStorageCallIndex)... */\n pop\n pop\n /* \"main.sol\":3607:3899 contract ReferendaAutoUpgradeDemoV2 is ReferendaAutoUpgradeDemo {... */\n jump(tag_10)\n /* \"main.sol\":1319:1946 function getTrackId(string memory trackName)... */\ntag_8:\n /* \"main.sol\":1411:1417 uint16 */\n 0x00\n /* \"main.sol\":1433:1457 uint16[] memory trackIds */\n dup1\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":1460:1487 REFERENDA_CONTRACT.trackIds */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xcc17da14\n /* \"main.sol\":1460:1489 REFERENDA_CONTRACT.trackIds() */\n mload(0x40)\n dup2\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup7\n gas\n staticcall\n iszero\n dup1\n iszero\n tag_13\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_13:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n 0x00\n dup3\n returndatacopy\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_14\n swap2\n swap1\n tag_15\n jump\t// in\ntag_14:\n /* \"main.sol\":1433:1489 uint16[] memory trackIds = REFERENDA_CONTRACT.trackIds() */\n swap1\n pop\n /* \"main.sol\":1504:1513 uint256 i */\n 0x00\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\ntag_16:\n /* \"main.sol\":1523:1531 trackIds */\n dup2\n /* \"main.sol\":1523:1538 trackIds.length */\n mload\n /* \"main.sol\":1519:1520 i */\n dup2\n /* \"main.sol\":1519:1538 i < trackIds.length */\n lt\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\n iszero\n tag_17\n jumpi\n /* \"main.sol\":1559:1590 Referenda.TrackInfo memory info */\n 0x00\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":1593:1621 REFERENDA_CONTRACT.trackInfo */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x34038146\n /* \"main.sol\":1639:1647 trackIds */\n dup5\n /* \"main.sol\":1648:1649 i */\n dup5\n /* \"main.sol\":1639:1650 trackIds[i] */\n dup2\n mload\n dup2\n lt\n tag_19\n jumpi\n tag_20\n tag_21\n jump\t// in\ntag_20:\ntag_19:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"main.sol\":1593:1664 REFERENDA_CONTRACT.trackInfo(... */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_22\n swap2\n swap1\n tag_23\n jump\t// in\ntag_22:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup7\n gas\n staticcall\n iszero\n dup1\n iszero\n tag_25\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_25:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n 0x00\n dup3\n returndatacopy\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_26\n swap2\n swap1\n tag_27\n jump\t// in\ntag_26:\n /* \"main.sol\":1559:1664 Referenda.TrackInfo memory info = REFERENDA_CONTRACT.trackInfo(... */\n swap1\n pop\n /* \"main.sol\":1788:1797 trackName */\n dup5\n /* \"main.sol\":1770:1799 abi.encodePacked((trackName)) */\n add(0x20, mload(0x40))\n tag_28\n swap2\n swap1\n tag_29\n jump\t// in\ntag_28:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"main.sol\":1760:1800 keccak256(abi.encodePacked((trackName))) */\n dup1\n mload\n swap1\n 0x20\n add\n keccak256\n /* \"main.sol\":1728:1732 info */\n dup2\n /* \"main.sol\":1728:1737 info.name */\n 0x00\n add\n mload\n /* \"main.sol\":1710:1739 abi.encodePacked((info.name)) */\n add(0x20, mload(0x40))\n tag_30\n swap2\n swap1\n tag_29\n jump\t// in\ntag_30:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"main.sol\":1700:1740 keccak256(abi.encodePacked((info.name))) */\n dup1\n mload\n swap1\n 0x20\n add\n keccak256\n /* \"main.sol\":1700:1800 keccak256(abi.encodePacked((info.name))) ==... */\n sub\n /* \"main.sol\":1679:1891 if (... */\n tag_31\n jumpi\n /* \"main.sol\":1865:1873 trackIds */\n dup3\n /* \"main.sol\":1874:1875 i */\n dup3\n /* \"main.sol\":1865:1876 trackIds[i] */\n dup2\n mload\n dup2\n lt\n tag_32\n jumpi\n tag_33\n tag_21\n jump\t// in\ntag_33:\ntag_32:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"main.sol\":1858:1876 return trackIds[i] */\n swap4\n pop\n pop\n pop\n pop\n jump(tag_11)\n /* \"main.sol\":1679:1891 if (... */\ntag_31:\n /* \"main.sol\":1545:1901 {... */\n pop\n /* \"main.sol\":1540:1543 i++ */\n dup1\n dup1\n tag_34\n swap1\n tag_35\n jump\t// in\ntag_34:\n swap2\n pop\n pop\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\n jump(tag_16)\ntag_17:\n pop\n /* \"main.sol\":1910:1939 revert(\"Couldn't find track\") */\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_36\n swap1\n tag_37\n jump\t// in\ntag_36:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":1319:1946 function getTrackId(string memory trackName)... */\ntag_11:\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:82 */\ntag_38:\n /* \"#utility.yul\":40:46 */\n 0x00\n /* \"#utility.yul\":73:75 */\n 0x40\n /* \"#utility.yul\":67:76 */\n mload\n /* \"#utility.yul\":57:76 */\n swap1\n pop\n /* \"#utility.yul\":7:82 */\n swap1\n jump\t// out\n /* \"#utility.yul\":88:205 */\ntag_39:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\ntag_40:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:451 */\ntag_41:\n /* \"#utility.yul\":443:444 */\n 0x00\n /* \"#utility.yul\":440:441 */\n dup1\n /* \"#utility.yul\":433:445 */\n revert\n /* \"#utility.yul\":457:574 */\ntag_42:\n /* \"#utility.yul\":566:567 */\n 0x00\n /* \"#utility.yul\":563:564 */\n dup1\n /* \"#utility.yul\":556:568 */\n revert\n /* \"#utility.yul\":580:682 */\ntag_43:\n /* \"#utility.yul\":621:627 */\n 0x00\n /* \"#utility.yul\":672:674 */\n 0x1f\n /* \"#utility.yul\":668:675 */\n not\n /* \"#utility.yul\":663:665 */\n 0x1f\n /* \"#utility.yul\":656:661 */\n dup4\n /* \"#utility.yul\":652:666 */\n add\n /* \"#utility.yul\":648:676 */\n and\n /* \"#utility.yul\":638:676 */\n swap1\n pop\n /* \"#utility.yul\":580:682 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":688:868 */\ntag_44:\n /* \"#utility.yul\":736:813 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":733:734 */\n 0x00\n /* \"#utility.yul\":726:814 */\n mstore\n /* \"#utility.yul\":833:837 */\n 0x41\n /* \"#utility.yul\":830:831 */\n 0x04\n /* \"#utility.yul\":823:838 */\n mstore\n /* \"#utility.yul\":857:861 */\n 0x24\n /* \"#utility.yul\":854:855 */\n 0x00\n /* \"#utility.yul\":847:862 */\n revert\n /* \"#utility.yul\":874:1155 */\ntag_45:\n /* \"#utility.yul\":957:984 */\n tag_87\n /* \"#utility.yul\":979:983 */\n dup3\n /* \"#utility.yul\":957:984 */\n tag_43\n jump\t// in\ntag_87:\n /* \"#utility.yul\":949:955 */\n dup2\n /* \"#utility.yul\":945:985 */\n add\n /* \"#utility.yul\":1087:1093 */\n dup2\n /* \"#utility.yul\":1075:1085 */\n dup2\n /* \"#utility.yul\":1072:1094 */\n lt\n /* \"#utility.yul\":1051:1069 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1039:1049 */\n dup3\n /* \"#utility.yul\":1036:1070 */\n gt\n /* \"#utility.yul\":1033:1095 */\n or\n /* \"#utility.yul\":1030:1118 */\n iszero\n tag_88\n jumpi\n /* \"#utility.yul\":1098:1116 */\n tag_89\n tag_44\n jump\t// in\ntag_89:\n /* \"#utility.yul\":1030:1118 */\ntag_88:\n /* \"#utility.yul\":1138:1148 */\n dup1\n /* \"#utility.yul\":1134:1136 */\n 0x40\n /* \"#utility.yul\":1127:1149 */\n mstore\n /* \"#utility.yul\":917:1155 */\n pop\n /* \"#utility.yul\":874:1155 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1161:1290 */\ntag_46:\n /* \"#utility.yul\":1195:1201 */\n 0x00\n /* \"#utility.yul\":1222:1242 */\n tag_91\n tag_38\n jump\t// in\ntag_91:\n /* \"#utility.yul\":1212:1242 */\n swap1\n pop\n /* \"#utility.yul\":1251:1284 */\n tag_92\n /* \"#utility.yul\":1279:1283 */\n dup3\n /* \"#utility.yul\":1271:1277 */\n dup3\n /* \"#utility.yul\":1251:1284 */\n tag_45\n jump\t// in\ntag_92:\n /* \"#utility.yul\":1161:1290 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1296:1604 */\ntag_47:\n /* \"#utility.yul\":1358:1362 */\n 0x00\n /* \"#utility.yul\":1448:1466 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1440:1446 */\n dup3\n /* \"#utility.yul\":1437:1467 */\n gt\n /* \"#utility.yul\":1434:1490 */\n iszero\n tag_94\n jumpi\n /* \"#utility.yul\":1470:1488 */\n tag_95\n tag_44\n jump\t// in\ntag_95:\n /* \"#utility.yul\":1434:1490 */\ntag_94:\n /* \"#utility.yul\":1508:1537 */\n tag_96\n /* \"#utility.yul\":1530:1536 */\n dup3\n /* \"#utility.yul\":1508:1537 */\n tag_43\n jump\t// in\ntag_96:\n /* \"#utility.yul\":1500:1537 */\n swap1\n pop\n /* \"#utility.yul\":1592:1596 */\n 0x20\n /* \"#utility.yul\":1586:1590 */\n dup2\n /* \"#utility.yul\":1582:1597 */\n add\n /* \"#utility.yul\":1574:1597 */\n swap1\n pop\n /* \"#utility.yul\":1296:1604 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1610:1856 */\ntag_48:\n /* \"#utility.yul\":1691:1692 */\n 0x00\n /* \"#utility.yul\":1701:1814 */\ntag_98:\n /* \"#utility.yul\":1715:1721 */\n dup4\n /* \"#utility.yul\":1712:1713 */\n dup2\n /* \"#utility.yul\":1709:1722 */\n lt\n /* \"#utility.yul\":1701:1814 */\n iszero\n tag_100\n jumpi\n /* \"#utility.yul\":1800:1801 */\n dup1\n /* \"#utility.yul\":1795:1798 */\n dup3\n /* \"#utility.yul\":1791:1802 */\n add\n /* \"#utility.yul\":1785:1803 */\n mload\n /* \"#utility.yul\":1781:1782 */\n dup2\n /* \"#utility.yul\":1776:1779 */\n dup5\n /* \"#utility.yul\":1772:1783 */\n add\n /* \"#utility.yul\":1765:1804 */\n mstore\n /* \"#utility.yul\":1737:1739 */\n 0x20\n /* \"#utility.yul\":1734:1735 */\n dup2\n /* \"#utility.yul\":1730:1740 */\n add\n /* \"#utility.yul\":1725:1740 */\n swap1\n pop\n /* \"#utility.yul\":1701:1814 */\n jump(tag_98)\ntag_100:\n /* \"#utility.yul\":1848:1849 */\n 0x00\n /* \"#utility.yul\":1839:1845 */\n dup5\n /* \"#utility.yul\":1834:1837 */\n dup5\n /* \"#utility.yul\":1830:1846 */\n add\n /* \"#utility.yul\":1823:1850 */\n mstore\n /* \"#utility.yul\":1672:1856 */\n pop\n /* \"#utility.yul\":1610:1856 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1862:2296 */\ntag_49:\n /* \"#utility.yul\":1951:1956 */\n 0x00\n /* \"#utility.yul\":1976:2042 */\n tag_102\n /* \"#utility.yul\":1992:2041 */\n tag_103\n /* \"#utility.yul\":2034:2040 */\n dup5\n /* \"#utility.yul\":1992:2041 */\n tag_47\n jump\t// in\ntag_103:\n /* \"#utility.yul\":1976:2042 */\n tag_46\n jump\t// in\ntag_102:\n /* \"#utility.yul\":1967:2042 */\n swap1\n pop\n /* \"#utility.yul\":2065:2071 */\n dup3\n /* \"#utility.yul\":2058:2063 */\n dup2\n /* \"#utility.yul\":2051:2072 */\n mstore\n /* \"#utility.yul\":2103:2107 */\n 0x20\n /* \"#utility.yul\":2096:2101 */\n dup2\n /* \"#utility.yul\":2092:2108 */\n add\n /* \"#utility.yul\":2141:2144 */\n dup5\n /* \"#utility.yul\":2132:2138 */\n dup5\n /* \"#utility.yul\":2127:2130 */\n dup5\n /* \"#utility.yul\":2123:2139 */\n add\n /* \"#utility.yul\":2120:2145 */\n gt\n /* \"#utility.yul\":2117:2229 */\n iszero\n tag_104\n jumpi\n /* \"#utility.yul\":2148:2227 */\n tag_105\n tag_42\n jump\t// in\ntag_105:\n /* \"#utility.yul\":2117:2229 */\ntag_104:\n /* \"#utility.yul\":2238:2290 */\n tag_106\n /* \"#utility.yul\":2283:2289 */\n dup5\n /* \"#utility.yul\":2278:2281 */\n dup3\n /* \"#utility.yul\":2273:2276 */\n dup6\n /* \"#utility.yul\":2238:2290 */\n tag_48\n jump\t// in\ntag_106:\n /* \"#utility.yul\":1957:2296 */\n pop\n /* \"#utility.yul\":1862:2296 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2316:2671 */\ntag_50:\n /* \"#utility.yul\":2383:2388 */\n 0x00\n /* \"#utility.yul\":2432:2435 */\n dup3\n /* \"#utility.yul\":2425:2429 */\n 0x1f\n /* \"#utility.yul\":2417:2423 */\n dup4\n /* \"#utility.yul\":2413:2430 */\n add\n /* \"#utility.yul\":2409:2436 */\n slt\n /* \"#utility.yul\":2399:2521 */\n tag_108\n jumpi\n /* \"#utility.yul\":2440:2519 */\n tag_109\n tag_41\n jump\t// in\ntag_109:\n /* \"#utility.yul\":2399:2521 */\ntag_108:\n /* \"#utility.yul\":2550:2556 */\n dup2\n /* \"#utility.yul\":2544:2557 */\n mload\n /* \"#utility.yul\":2575:2665 */\n tag_110\n /* \"#utility.yul\":2661:2664 */\n dup5\n /* \"#utility.yul\":2653:2659 */\n dup3\n /* \"#utility.yul\":2646:2650 */\n 0x20\n /* \"#utility.yul\":2638:2644 */\n dup7\n /* \"#utility.yul\":2634:2651 */\n add\n /* \"#utility.yul\":2575:2665 */\n tag_49\n jump\t// in\ntag_110:\n /* \"#utility.yul\":2566:2665 */\n swap2\n pop\n /* \"#utility.yul\":2389:2671 */\n pop\n /* \"#utility.yul\":2316:2671 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2677:2826 */\ntag_51:\n /* \"#utility.yul\":2713:2720 */\n 0x00\n /* \"#utility.yul\":2753:2819 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2746:2751 */\n dup3\n /* \"#utility.yul\":2742:2820 */\n and\n /* \"#utility.yul\":2731:2820 */\n swap1\n pop\n /* \"#utility.yul\":2677:2826 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2832:2952 */\ntag_52:\n /* \"#utility.yul\":2904:2927 */\n tag_113\n /* \"#utility.yul\":2921:2926 */\n dup2\n /* \"#utility.yul\":2904:2927 */\n tag_51\n jump\t// in\ntag_113:\n /* \"#utility.yul\":2897:2902 */\n dup2\n /* \"#utility.yul\":2894:2928 */\n eq\n /* \"#utility.yul\":2884:2946 */\n tag_114\n jumpi\n /* \"#utility.yul\":2942:2943 */\n 0x00\n /* \"#utility.yul\":2939:2940 */\n dup1\n /* \"#utility.yul\":2932:2944 */\n revert\n /* \"#utility.yul\":2884:2946 */\ntag_114:\n /* \"#utility.yul\":2832:2952 */\n pop\n jump\t// out\n /* \"#utility.yul\":2958:3099 */\ntag_53:\n /* \"#utility.yul\":3014:3019 */\n 0x00\n /* \"#utility.yul\":3045:3051 */\n dup2\n /* \"#utility.yul\":3039:3052 */\n mload\n /* \"#utility.yul\":3030:3052 */\n swap1\n pop\n /* \"#utility.yul\":3061:3093 */\n tag_116\n /* \"#utility.yul\":3087:3092 */\n dup2\n /* \"#utility.yul\":3061:3093 */\n tag_52\n jump\t// in\ntag_116:\n /* \"#utility.yul\":2958:3099 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3105:3783 */\ntag_3:\n /* \"#utility.yul\":3193:3199 */\n 0x00\n /* \"#utility.yul\":3201:3207 */\n dup1\n /* \"#utility.yul\":3250:3252 */\n 0x40\n /* \"#utility.yul\":3238:3247 */\n dup4\n /* \"#utility.yul\":3229:3236 */\n dup6\n /* \"#utility.yul\":3225:3248 */\n sub\n /* \"#utility.yul\":3221:3253 */\n slt\n /* \"#utility.yul\":3218:3337 */\n iszero\n tag_118\n jumpi\n /* \"#utility.yul\":3256:3335 */\n tag_119\n tag_39\n jump\t// in\ntag_119:\n /* \"#utility.yul\":3218:3337 */\ntag_118:\n /* \"#utility.yul\":3397:3398 */\n 0x00\n /* \"#utility.yul\":3386:3395 */\n dup4\n /* \"#utility.yul\":3382:3399 */\n add\n /* \"#utility.yul\":3376:3400 */\n mload\n /* \"#utility.yul\":3427:3445 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3419:3425 */\n dup2\n /* \"#utility.yul\":3416:3446 */\n gt\n /* \"#utility.yul\":3413:3530 */\n iszero\n tag_120\n jumpi\n /* \"#utility.yul\":3449:3528 */\n tag_121\n tag_40\n jump\t// in\ntag_121:\n /* \"#utility.yul\":3413:3530 */\ntag_120:\n /* \"#utility.yul\":3554:3628 */\n tag_122\n /* \"#utility.yul\":3620:3627 */\n dup6\n /* \"#utility.yul\":3611:3617 */\n dup3\n /* \"#utility.yul\":3600:3609 */\n dup7\n /* \"#utility.yul\":3596:3618 */\n add\n /* \"#utility.yul\":3554:3628 */\n tag_50\n jump\t// in\ntag_122:\n /* \"#utility.yul\":3544:3628 */\n swap3\n pop\n /* \"#utility.yul\":3347:3638 */\n pop\n /* \"#utility.yul\":3677:3679 */\n 0x20\n /* \"#utility.yul\":3703:3766 */\n tag_123\n /* \"#utility.yul\":3758:3765 */\n dup6\n /* \"#utility.yul\":3749:3755 */\n dup3\n /* \"#utility.yul\":3738:3747 */\n dup7\n /* \"#utility.yul\":3734:3756 */\n add\n /* \"#utility.yul\":3703:3766 */\n tag_53\n jump\t// in\ntag_123:\n /* \"#utility.yul\":3693:3766 */\n swap2\n pop\n /* \"#utility.yul\":3648:3776 */\n pop\n /* \"#utility.yul\":3105:3783 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3789:4099 */\ntag_54:\n /* \"#utility.yul\":3865:3869 */\n 0x00\n /* \"#utility.yul\":3955:3973 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3947:3953 */\n dup3\n /* \"#utility.yul\":3944:3974 */\n gt\n /* \"#utility.yul\":3941:3997 */\n iszero\n tag_125\n jumpi\n /* \"#utility.yul\":3977:3995 */\n tag_126\n tag_44\n jump\t// in\ntag_126:\n /* \"#utility.yul\":3941:3997 */\ntag_125:\n /* \"#utility.yul\":4027:4031 */\n 0x20\n /* \"#utility.yul\":4019:4025 */\n dup3\n /* \"#utility.yul\":4015:4032 */\n mul\n /* \"#utility.yul\":4007:4032 */\n swap1\n pop\n /* \"#utility.yul\":4087:4091 */\n 0x20\n /* \"#utility.yul\":4081:4085 */\n dup2\n /* \"#utility.yul\":4077:4092 */\n add\n /* \"#utility.yul\":4069:4092 */\n swap1\n pop\n /* \"#utility.yul\":3789:4099 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4105:4222 */\ntag_55:\n /* \"#utility.yul\":4214:4215 */\n 0x00\n /* \"#utility.yul\":4211:4212 */\n dup1\n /* \"#utility.yul\":4204:4216 */\n revert\n /* \"#utility.yul\":4228:4317 */\ntag_56:\n /* \"#utility.yul\":4264:4271 */\n 0x00\n /* \"#utility.yul\":4304:4310 */\n 0xffff\n /* \"#utility.yul\":4297:4302 */\n dup3\n /* \"#utility.yul\":4293:4311 */\n and\n /* \"#utility.yul\":4282:4311 */\n swap1\n pop\n /* \"#utility.yul\":4228:4317 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4323:4443 */\ntag_57:\n /* \"#utility.yul\":4395:4418 */\n tag_130\n /* \"#utility.yul\":4412:4417 */\n dup2\n /* \"#utility.yul\":4395:4418 */\n tag_56\n jump\t// in\ntag_130:\n /* \"#utility.yul\":4388:4393 */\n dup2\n /* \"#utility.yul\":4385:4419 */\n eq\n /* \"#utility.yul\":4375:4437 */\n tag_131\n jumpi\n /* \"#utility.yul\":4433:4434 */\n 0x00\n /* \"#utility.yul\":4430:4431 */\n dup1\n /* \"#utility.yul\":4423:4435 */\n revert\n /* \"#utility.yul\":4375:4437 */\ntag_131:\n /* \"#utility.yul\":4323:4443 */\n pop\n jump\t// out\n /* \"#utility.yul\":4449:4590 */\ntag_58:\n /* \"#utility.yul\":4505:4510 */\n 0x00\n /* \"#utility.yul\":4536:4542 */\n dup2\n /* \"#utility.yul\":4530:4543 */\n mload\n /* \"#utility.yul\":4521:4543 */\n swap1\n pop\n /* \"#utility.yul\":4552:4584 */\n tag_133\n /* \"#utility.yul\":4578:4583 */\n dup2\n /* \"#utility.yul\":4552:4584 */\n tag_57\n jump\t// in\ntag_133:\n /* \"#utility.yul\":4449:4590 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4612:5341 */\ntag_59:\n /* \"#utility.yul\":4718:4723 */\n 0x00\n /* \"#utility.yul\":4743:4823 */\n tag_135\n /* \"#utility.yul\":4759:4822 */\n tag_136\n /* \"#utility.yul\":4815:4821 */\n dup5\n /* \"#utility.yul\":4759:4822 */\n tag_54\n jump\t// in\ntag_136:\n /* \"#utility.yul\":4743:4823 */\n tag_46\n jump\t// in\ntag_135:\n /* \"#utility.yul\":4734:4823 */\n swap1\n pop\n /* \"#utility.yul\":4843:4848 */\n dup1\n /* \"#utility.yul\":4872:4878 */\n dup4\n /* \"#utility.yul\":4865:4870 */\n dup3\n /* \"#utility.yul\":4858:4879 */\n mstore\n /* \"#utility.yul\":4906:4910 */\n 0x20\n /* \"#utility.yul\":4899:4904 */\n dup3\n /* \"#utility.yul\":4895:4911 */\n add\n /* \"#utility.yul\":4888:4911 */\n swap1\n pop\n /* \"#utility.yul\":4959:4963 */\n 0x20\n /* \"#utility.yul\":4951:4957 */\n dup5\n /* \"#utility.yul\":4947:4964 */\n mul\n /* \"#utility.yul\":4939:4945 */\n dup4\n /* \"#utility.yul\":4935:4965 */\n add\n /* \"#utility.yul\":4988:4991 */\n dup6\n /* \"#utility.yul\":4980:4986 */\n dup2\n /* \"#utility.yul\":4977:4992 */\n gt\n /* \"#utility.yul\":4974:5096 */\n iszero\n tag_137\n jumpi\n /* \"#utility.yul\":5007:5086 */\n tag_138\n tag_55\n jump\t// in\ntag_138:\n /* \"#utility.yul\":4974:5096 */\ntag_137:\n /* \"#utility.yul\":5122:5128 */\n dup4\n /* \"#utility.yul\":5105:5335 */\ntag_139:\n /* \"#utility.yul\":5139:5145 */\n dup2\n /* \"#utility.yul\":5134:5137 */\n dup2\n /* \"#utility.yul\":5131:5146 */\n lt\n /* \"#utility.yul\":5105:5335 */\n iszero\n tag_141\n jumpi\n /* \"#utility.yul\":5214:5217 */\n dup1\n /* \"#utility.yul\":5243:5290 */\n tag_142\n /* \"#utility.yul\":5286:5289 */\n dup9\n /* \"#utility.yul\":5274:5284 */\n dup3\n /* \"#utility.yul\":5243:5290 */\n tag_58\n jump\t// in\ntag_142:\n /* \"#utility.yul\":5238:5241 */\n dup5\n /* \"#utility.yul\":5231:5291 */\n mstore\n /* \"#utility.yul\":5320:5324 */\n 0x20\n /* \"#utility.yul\":5315:5318 */\n dup5\n /* \"#utility.yul\":5311:5325 */\n add\n /* \"#utility.yul\":5304:5325 */\n swap4\n pop\n /* \"#utility.yul\":5181:5335 */\n pop\n /* \"#utility.yul\":5165:5169 */\n 0x20\n /* \"#utility.yul\":5160:5163 */\n dup2\n /* \"#utility.yul\":5156:5170 */\n add\n /* \"#utility.yul\":5149:5170 */\n swap1\n pop\n /* \"#utility.yul\":5105:5335 */\n jump(tag_139)\ntag_141:\n /* \"#utility.yul\":5109:5130 */\n pop\n /* \"#utility.yul\":4724:5341 */\n pop\n pop\n /* \"#utility.yul\":4612:5341 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5363:5746 */\ntag_60:\n /* \"#utility.yul\":5444:5449 */\n 0x00\n /* \"#utility.yul\":5493:5496 */\n dup3\n /* \"#utility.yul\":5486:5490 */\n 0x1f\n /* \"#utility.yul\":5478:5484 */\n dup4\n /* \"#utility.yul\":5474:5491 */\n add\n /* \"#utility.yul\":5470:5497 */\n slt\n /* \"#utility.yul\":5460:5582 */\n tag_144\n jumpi\n /* \"#utility.yul\":5501:5580 */\n tag_145\n tag_41\n jump\t// in\ntag_145:\n /* \"#utility.yul\":5460:5582 */\ntag_144:\n /* \"#utility.yul\":5611:5617 */\n dup2\n /* \"#utility.yul\":5605:5618 */\n mload\n /* \"#utility.yul\":5636:5740 */\n tag_146\n /* \"#utility.yul\":5736:5739 */\n dup5\n /* \"#utility.yul\":5728:5734 */\n dup3\n /* \"#utility.yul\":5721:5725 */\n 0x20\n /* \"#utility.yul\":5713:5719 */\n dup7\n /* \"#utility.yul\":5709:5726 */\n add\n /* \"#utility.yul\":5636:5740 */\n tag_59\n jump\t// in\ntag_146:\n /* \"#utility.yul\":5627:5740 */\n swap2\n pop\n /* \"#utility.yul\":5450:5746 */\n pop\n /* \"#utility.yul\":5363:5746 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5752:6304 */\ntag_15:\n /* \"#utility.yul\":5846:5852 */\n 0x00\n /* \"#utility.yul\":5895:5897 */\n 0x20\n /* \"#utility.yul\":5883:5892 */\n dup3\n /* \"#utility.yul\":5874:5881 */\n dup5\n /* \"#utility.yul\":5870:5893 */\n sub\n /* \"#utility.yul\":5866:5898 */\n slt\n /* \"#utility.yul\":5863:5982 */\n iszero\n tag_148\n jumpi\n /* \"#utility.yul\":5901:5980 */\n tag_149\n tag_39\n jump\t// in\ntag_149:\n /* \"#utility.yul\":5863:5982 */\ntag_148:\n /* \"#utility.yul\":6042:6043 */\n 0x00\n /* \"#utility.yul\":6031:6040 */\n dup3\n /* \"#utility.yul\":6027:6044 */\n add\n /* \"#utility.yul\":6021:6045 */\n mload\n /* \"#utility.yul\":6072:6090 */\n 0xffffffffffffffff\n /* \"#utility.yul\":6064:6070 */\n dup2\n /* \"#utility.yul\":6061:6091 */\n gt\n /* \"#utility.yul\":6058:6175 */\n iszero\n tag_150\n jumpi\n /* \"#utility.yul\":6094:6173 */\n tag_151\n tag_40\n jump\t// in\ntag_151:\n /* \"#utility.yul\":6058:6175 */\ntag_150:\n /* \"#utility.yul\":6199:6287 */\n tag_152\n /* \"#utility.yul\":6279:6286 */\n dup5\n /* \"#utility.yul\":6270:6276 */\n dup3\n /* \"#utility.yul\":6259:6268 */\n dup6\n /* \"#utility.yul\":6255:6277 */\n add\n /* \"#utility.yul\":6199:6287 */\n tag_60\n jump\t// in\ntag_152:\n /* \"#utility.yul\":6189:6287 */\n swap2\n pop\n /* \"#utility.yul\":5992:6297 */\n pop\n /* \"#utility.yul\":5752:6304 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6310:6490 */\ntag_21:\n /* \"#utility.yul\":6358:6435 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":6355:6356 */\n 0x00\n /* \"#utility.yul\":6348:6436 */\n mstore\n /* \"#utility.yul\":6455:6459 */\n 0x32\n /* \"#utility.yul\":6452:6453 */\n 0x04\n /* \"#utility.yul\":6445:6460 */\n mstore\n /* \"#utility.yul\":6479:6483 */\n 0x24\n /* \"#utility.yul\":6476:6477 */\n 0x00\n /* \"#utility.yul\":6469:6484 */\n revert\n /* \"#utility.yul\":6496:6611 */\ntag_61:\n /* \"#utility.yul\":6581:6604 */\n tag_155\n /* \"#utility.yul\":6598:6603 */\n dup2\n /* \"#utility.yul\":6581:6604 */\n tag_56\n jump\t// in\ntag_155:\n /* \"#utility.yul\":6576:6579 */\n dup3\n /* \"#utility.yul\":6569:6605 */\n mstore\n /* \"#utility.yul\":6496:6611 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6617:6835 */\ntag_23:\n /* \"#utility.yul\":6708:6712 */\n 0x00\n /* \"#utility.yul\":6746:6748 */\n 0x20\n /* \"#utility.yul\":6735:6744 */\n dup3\n /* \"#utility.yul\":6731:6749 */\n add\n /* \"#utility.yul\":6723:6749 */\n swap1\n pop\n /* \"#utility.yul\":6759:6828 */\n tag_157\n /* \"#utility.yul\":6825:6826 */\n 0x00\n /* \"#utility.yul\":6814:6823 */\n dup4\n /* \"#utility.yul\":6810:6827 */\n add\n /* \"#utility.yul\":6801:6807 */\n dup5\n /* \"#utility.yul\":6759:6828 */\n tag_61\n jump\t// in\ntag_157:\n /* \"#utility.yul\":6617:6835 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6841:6958 */\ntag_62:\n /* \"#utility.yul\":6950:6951 */\n 0x00\n /* \"#utility.yul\":6947:6948 */\n dup1\n /* \"#utility.yul\":6940:6952 */\n revert\n /* \"#utility.yul\":6964:7081 */\ntag_63:\n /* \"#utility.yul\":7073:7074 */\n 0x00\n /* \"#utility.yul\":7070:7071 */\n dup1\n /* \"#utility.yul\":7063:7075 */\n revert\n /* \"#utility.yul\":7087:7164 */\ntag_64:\n /* \"#utility.yul\":7124:7131 */\n 0x00\n /* \"#utility.yul\":7153:7158 */\n dup2\n /* \"#utility.yul\":7142:7158 */\n swap1\n pop\n /* \"#utility.yul\":7087:7164 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7170:7292 */\ntag_65:\n /* \"#utility.yul\":7243:7267 */\n tag_162\n /* \"#utility.yul\":7261:7266 */\n dup2\n /* \"#utility.yul\":7243:7267 */\n tag_64\n jump\t// in\ntag_162:\n /* \"#utility.yul\":7236:7241 */\n dup2\n /* \"#utility.yul\":7233:7268 */\n eq\n /* \"#utility.yul\":7223:7286 */\n tag_163\n jumpi\n /* \"#utility.yul\":7282:7283 */\n 0x00\n /* \"#utility.yul\":7279:7280 */\n dup1\n /* \"#utility.yul\":7272:7284 */\n revert\n /* \"#utility.yul\":7223:7286 */\ntag_163:\n /* \"#utility.yul\":7170:7292 */\n pop\n jump\t// out\n /* \"#utility.yul\":7298:7441 */\ntag_66:\n /* \"#utility.yul\":7355:7360 */\n 0x00\n /* \"#utility.yul\":7386:7392 */\n dup2\n /* \"#utility.yul\":7380:7393 */\n mload\n /* \"#utility.yul\":7371:7393 */\n swap1\n pop\n /* \"#utility.yul\":7402:7435 */\n tag_165\n /* \"#utility.yul\":7429:7434 */\n dup2\n /* \"#utility.yul\":7402:7435 */\n tag_65\n jump\t// in\ntag_165:\n /* \"#utility.yul\":7298:7441 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7447:7754 */\ntag_67:\n /* \"#utility.yul\":7508:7512 */\n 0x00\n /* \"#utility.yul\":7598:7616 */\n 0xffffffffffffffff\n /* \"#utility.yul\":7590:7596 */\n dup3\n /* \"#utility.yul\":7587:7617 */\n gt\n /* \"#utility.yul\":7584:7640 */\n iszero\n tag_167\n jumpi\n /* \"#utility.yul\":7620:7638 */\n tag_168\n tag_44\n jump\t// in\ntag_168:\n /* \"#utility.yul\":7584:7640 */\ntag_167:\n /* \"#utility.yul\":7658:7687 */\n tag_169\n /* \"#utility.yul\":7680:7686 */\n dup3\n /* \"#utility.yul\":7658:7687 */\n tag_43\n jump\t// in\ntag_169:\n /* \"#utility.yul\":7650:7687 */\n swap1\n pop\n /* \"#utility.yul\":7742:7746 */\n 0x20\n /* \"#utility.yul\":7736:7740 */\n dup2\n /* \"#utility.yul\":7732:7747 */\n add\n /* \"#utility.yul\":7724:7747 */\n swap1\n pop\n /* \"#utility.yul\":7447:7754 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7760:8192 */\ntag_68:\n /* \"#utility.yul\":7848:7853 */\n 0x00\n /* \"#utility.yul\":7873:7938 */\n tag_171\n /* \"#utility.yul\":7889:7937 */\n tag_172\n /* \"#utility.yul\":7930:7936 */\n dup5\n /* \"#utility.yul\":7889:7937 */\n tag_67\n jump\t// in\ntag_172:\n /* \"#utility.yul\":7873:7938 */\n tag_46\n jump\t// in\ntag_171:\n /* \"#utility.yul\":7864:7938 */\n swap1\n pop\n /* \"#utility.yul\":7961:7967 */\n dup3\n /* \"#utility.yul\":7954:7959 */\n dup2\n /* \"#utility.yul\":7947:7968 */\n mstore\n /* \"#utility.yul\":7999:8003 */\n 0x20\n /* \"#utility.yul\":7992:7997 */\n dup2\n /* \"#utility.yul\":7988:8004 */\n add\n /* \"#utility.yul\":8037:8040 */\n dup5\n /* \"#utility.yul\":8028:8034 */\n dup5\n /* \"#utility.yul\":8023:8026 */\n dup5\n /* \"#utility.yul\":8019:8035 */\n add\n /* \"#utility.yul\":8016:8041 */\n gt\n /* \"#utility.yul\":8013:8125 */\n iszero\n tag_173\n jumpi\n /* \"#utility.yul\":8044:8123 */\n tag_174\n tag_42\n jump\t// in\ntag_174:\n /* \"#utility.yul\":8013:8125 */\ntag_173:\n /* \"#utility.yul\":8134:8186 */\n tag_175\n /* \"#utility.yul\":8179:8185 */\n dup5\n /* \"#utility.yul\":8174:8177 */\n dup3\n /* \"#utility.yul\":8169:8172 */\n dup6\n /* \"#utility.yul\":8134:8186 */\n tag_48\n jump\t// in\ntag_175:\n /* \"#utility.yul\":7854:8192 */\n pop\n /* \"#utility.yul\":7760:8192 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8211:8564 */\ntag_69:\n /* \"#utility.yul\":8277:8282 */\n 0x00\n /* \"#utility.yul\":8326:8329 */\n dup3\n /* \"#utility.yul\":8319:8323 */\n 0x1f\n /* \"#utility.yul\":8311:8317 */\n dup4\n /* \"#utility.yul\":8307:8324 */\n add\n /* \"#utility.yul\":8303:8330 */\n slt\n /* \"#utility.yul\":8293:8415 */\n tag_177\n jumpi\n /* \"#utility.yul\":8334:8413 */\n tag_178\n tag_41\n jump\t// in\ntag_178:\n /* \"#utility.yul\":8293:8415 */\ntag_177:\n /* \"#utility.yul\":8444:8450 */\n dup2\n /* \"#utility.yul\":8438:8451 */\n mload\n /* \"#utility.yul\":8469:8558 */\n tag_179\n /* \"#utility.yul\":8554:8557 */\n dup5\n /* \"#utility.yul\":8546:8552 */\n dup3\n /* \"#utility.yul\":8539:8543 */\n 0x20\n /* \"#utility.yul\":8531:8537 */\n dup7\n /* \"#utility.yul\":8527:8544 */\n add\n /* \"#utility.yul\":8469:8558 */\n tag_68\n jump\t// in\ntag_179:\n /* \"#utility.yul\":8460:8558 */\n swap2\n pop\n /* \"#utility.yul\":8283:8564 */\n pop\n /* \"#utility.yul\":8211:8564 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8604:10987 */\ntag_70:\n /* \"#utility.yul\":8690:8695 */\n 0x00\n /* \"#utility.yul\":8734:8740 */\n 0x0120\n /* \"#utility.yul\":8722:8731 */\n dup3\n /* \"#utility.yul\":8717:8720 */\n dup5\n /* \"#utility.yul\":8713:8732 */\n sub\n /* \"#utility.yul\":8709:8741 */\n slt\n /* \"#utility.yul\":8706:8825 */\n iszero\n tag_181\n jumpi\n /* \"#utility.yul\":8744:8823 */\n tag_182\n tag_62\n jump\t// in\ntag_182:\n /* \"#utility.yul\":8706:8825 */\ntag_181:\n /* \"#utility.yul\":8843:8866 */\n tag_183\n /* \"#utility.yul\":8859:8865 */\n 0x0120\n /* \"#utility.yul\":8843:8866 */\n tag_46\n jump\t// in\ntag_183:\n /* \"#utility.yul\":8834:8866 */\n swap1\n pop\n /* \"#utility.yul\":8946:8947 */\n 0x00\n /* \"#utility.yul\":8935:8944 */\n dup3\n /* \"#utility.yul\":8931:8948 */\n add\n /* \"#utility.yul\":8925:8949 */\n mload\n /* \"#utility.yul\":8976:8994 */\n 0xffffffffffffffff\n /* \"#utility.yul\":8968:8974 */\n dup2\n /* \"#utility.yul\":8965:8995 */\n gt\n /* \"#utility.yul\":8962:9079 */\n iszero\n tag_184\n jumpi\n /* \"#utility.yul\":8998:9077 */\n tag_185\n tag_63\n jump\t// in\ntag_185:\n /* \"#utility.yul\":8962:9079 */\ntag_184:\n /* \"#utility.yul\":9118:9188 */\n tag_186\n /* \"#utility.yul\":9184:9187 */\n dup5\n /* \"#utility.yul\":9175:9181 */\n dup3\n /* \"#utility.yul\":9164:9173 */\n dup6\n /* \"#utility.yul\":9160:9182 */\n add\n /* \"#utility.yul\":9118:9188 */\n tag_50\n jump\t// in\ntag_186:\n /* \"#utility.yul\":9111:9115 */\n 0x00\n /* \"#utility.yul\":9104:9109 */\n dup4\n /* \"#utility.yul\":9100:9116 */\n add\n /* \"#utility.yul\":9093:9189 */\n mstore\n /* \"#utility.yul\":8876:9200 */\n pop\n /* \"#utility.yul\":9266:9268 */\n 0x20\n /* \"#utility.yul\":9307:9367 */\n tag_187\n /* \"#utility.yul\":9363:9366 */\n dup5\n /* \"#utility.yul\":9354:9360 */\n dup3\n /* \"#utility.yul\":9343:9352 */\n dup6\n /* \"#utility.yul\":9339:9361 */\n add\n /* \"#utility.yul\":9307:9367 */\n tag_66\n jump\t// in\ntag_187:\n /* \"#utility.yul\":9300:9304 */\n 0x20\n /* \"#utility.yul\":9293:9298 */\n dup4\n /* \"#utility.yul\":9289:9305 */\n add\n /* \"#utility.yul\":9282:9368 */\n mstore\n /* \"#utility.yul\":9210:9379 */\n pop\n /* \"#utility.yul\":9449:9451 */\n 0x40\n /* \"#utility.yul\":9490:9550 */\n tag_188\n /* \"#utility.yul\":9546:9549 */\n dup5\n /* \"#utility.yul\":9537:9543 */\n dup3\n /* \"#utility.yul\":9526:9535 */\n dup6\n /* \"#utility.yul\":9522:9544 */\n add\n /* \"#utility.yul\":9490:9550 */\n tag_66\n jump\t// in\ntag_188:\n /* \"#utility.yul\":9483:9487 */\n 0x40\n /* \"#utility.yul\":9476:9481 */\n dup4\n /* \"#utility.yul\":9472:9488 */\n add\n /* \"#utility.yul\":9465:9551 */\n mstore\n /* \"#utility.yul\":9389:9562 */\n pop\n /* \"#utility.yul\":9630:9632 */\n 0x60\n /* \"#utility.yul\":9671:9731 */\n tag_189\n /* \"#utility.yul\":9727:9730 */\n dup5\n /* \"#utility.yul\":9718:9724 */\n dup3\n /* \"#utility.yul\":9707:9716 */\n dup6\n /* \"#utility.yul\":9703:9725 */\n add\n /* \"#utility.yul\":9671:9731 */\n tag_66\n jump\t// in\ntag_189:\n /* \"#utility.yul\":9664:9668 */\n 0x60\n /* \"#utility.yul\":9657:9662 */\n dup4\n /* \"#utility.yul\":9653:9669 */\n add\n /* \"#utility.yul\":9646:9732 */\n mstore\n /* \"#utility.yul\":9572:9743 */\n pop\n /* \"#utility.yul\":9812:9815 */\n 0x80\n /* \"#utility.yul\":9854:9914 */\n tag_190\n /* \"#utility.yul\":9910:9913 */\n dup5\n /* \"#utility.yul\":9901:9907 */\n dup3\n /* \"#utility.yul\":9890:9899 */\n dup6\n /* \"#utility.yul\":9886:9908 */\n add\n /* \"#utility.yul\":9854:9914 */\n tag_66\n jump\t// in\ntag_190:\n /* \"#utility.yul\":9847:9851 */\n 0x80\n /* \"#utility.yul\":9840:9845 */\n dup4\n /* \"#utility.yul\":9836:9852 */\n add\n /* \"#utility.yul\":9829:9915 */\n mstore\n /* \"#utility.yul\":9753:9926 */\n pop\n /* \"#utility.yul\":9994:9997 */\n 0xa0\n /* \"#utility.yul\":10036:10096 */\n tag_191\n /* \"#utility.yul\":10092:10095 */\n dup5\n /* \"#utility.yul\":10083:10089 */\n dup3\n /* \"#utility.yul\":10072:10081 */\n dup6\n /* \"#utility.yul\":10068:10090 */\n add\n /* \"#utility.yul\":10036:10096 */\n tag_66\n jump\t// in\ntag_191:\n /* \"#utility.yul\":10029:10033 */\n 0xa0\n /* \"#utility.yul\":10022:10027 */\n dup4\n /* \"#utility.yul\":10018:10034 */\n add\n /* \"#utility.yul\":10011:10097 */\n mstore\n /* \"#utility.yul\":9936:10108 */\n pop\n /* \"#utility.yul\":10181:10184 */\n 0xc0\n /* \"#utility.yul\":10223:10283 */\n tag_192\n /* \"#utility.yul\":10279:10282 */\n dup5\n /* \"#utility.yul\":10270:10276 */\n dup3\n /* \"#utility.yul\":10259:10268 */\n dup6\n /* \"#utility.yul\":10255:10277 */\n add\n /* \"#utility.yul\":10223:10283 */\n tag_66\n jump\t// in\ntag_192:\n /* \"#utility.yul\":10216:10220 */\n 0xc0\n /* \"#utility.yul\":10209:10214 */\n dup4\n /* \"#utility.yul\":10205:10221 */\n add\n /* \"#utility.yul\":10198:10284 */\n mstore\n /* \"#utility.yul\":10118:10295 */\n pop\n /* \"#utility.yul\":10382:10385 */\n 0xe0\n /* \"#utility.yul\":10371:10380 */\n dup3\n /* \"#utility.yul\":10367:10386 */\n add\n /* \"#utility.yul\":10361:10387 */\n mload\n /* \"#utility.yul\":10414:10432 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10406:10412 */\n dup2\n /* \"#utility.yul\":10403:10433 */\n gt\n /* \"#utility.yul\":10400:10517 */\n iszero\n tag_193\n jumpi\n /* \"#utility.yul\":10436:10515 */\n tag_194\n tag_63\n jump\t// in\ntag_194:\n /* \"#utility.yul\":10400:10517 */\ntag_193:\n /* \"#utility.yul\":10556:10625 */\n tag_195\n /* \"#utility.yul\":10621:10624 */\n dup5\n /* \"#utility.yul\":10612:10618 */\n dup3\n /* \"#utility.yul\":10601:10610 */\n dup6\n /* \"#utility.yul\":10597:10619 */\n add\n /* \"#utility.yul\":10556:10625 */\n tag_69\n jump\t// in\ntag_195:\n /* \"#utility.yul\":10549:10553 */\n 0xe0\n /* \"#utility.yul\":10542:10547 */\n dup4\n /* \"#utility.yul\":10538:10554 */\n add\n /* \"#utility.yul\":10531:10626 */\n mstore\n /* \"#utility.yul\":10305:10637 */\n pop\n /* \"#utility.yul\":10723:10726 */\n 0x0100\n /* \"#utility.yul\":10712:10721 */\n dup3\n /* \"#utility.yul\":10708:10727 */\n add\n /* \"#utility.yul\":10702:10728 */\n mload\n /* \"#utility.yul\":10755:10773 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10747:10753 */\n dup2\n /* \"#utility.yul\":10744:10774 */\n gt\n /* \"#utility.yul\":10741:10858 */\n iszero\n tag_196\n jumpi\n /* \"#utility.yul\":10777:10856 */\n tag_197\n tag_63\n jump\t// in\ntag_197:\n /* \"#utility.yul\":10741:10858 */\ntag_196:\n /* \"#utility.yul\":10899:10968 */\n tag_198\n /* \"#utility.yul\":10964:10967 */\n dup5\n /* \"#utility.yul\":10955:10961 */\n dup3\n /* \"#utility.yul\":10944:10953 */\n dup6\n /* \"#utility.yul\":10940:10962 */\n add\n /* \"#utility.yul\":10899:10968 */\n tag_69\n jump\t// in\ntag_198:\n /* \"#utility.yul\":10890:10896 */\n 0x0100\n /* \"#utility.yul\":10883:10888 */\n dup4\n /* \"#utility.yul\":10879:10897 */\n add\n /* \"#utility.yul\":10872:10969 */\n mstore\n /* \"#utility.yul\":10647:10980 */\n pop\n /* \"#utility.yul\":8604:10987 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10993:11549 */\ntag_27:\n /* \"#utility.yul\":11089:11095 */\n 0x00\n /* \"#utility.yul\":11138:11140 */\n 0x20\n /* \"#utility.yul\":11126:11135 */\n dup3\n /* \"#utility.yul\":11117:11124 */\n dup5\n /* \"#utility.yul\":11113:11136 */\n sub\n /* \"#utility.yul\":11109:11141 */\n slt\n /* \"#utility.yul\":11106:11225 */\n iszero\n tag_200\n jumpi\n /* \"#utility.yul\":11144:11223 */\n tag_201\n tag_39\n jump\t// in\ntag_201:\n /* \"#utility.yul\":11106:11225 */\ntag_200:\n /* \"#utility.yul\":11285:11286 */\n 0x00\n /* \"#utility.yul\":11274:11283 */\n dup3\n /* \"#utility.yul\":11270:11287 */\n add\n /* \"#utility.yul\":11264:11288 */\n mload\n /* \"#utility.yul\":11315:11333 */\n 0xffffffffffffffff\n /* \"#utility.yul\":11307:11313 */\n dup2\n /* \"#utility.yul\":11304:11334 */\n gt\n /* \"#utility.yul\":11301:11418 */\n iszero\n tag_202\n jumpi\n /* \"#utility.yul\":11337:11416 */\n tag_203\n tag_40\n jump\t// in\ntag_203:\n /* \"#utility.yul\":11301:11418 */\ntag_202:\n /* \"#utility.yul\":11442:11532 */\n tag_204\n /* \"#utility.yul\":11524:11531 */\n dup5\n /* \"#utility.yul\":11515:11521 */\n dup3\n /* \"#utility.yul\":11504:11513 */\n dup6\n /* \"#utility.yul\":11500:11522 */\n add\n /* \"#utility.yul\":11442:11532 */\n tag_70\n jump\t// in\ntag_204:\n /* \"#utility.yul\":11432:11532 */\n swap2\n pop\n /* \"#utility.yul\":11235:11542 */\n pop\n /* \"#utility.yul\":10993:11549 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11555:11654 */\ntag_71:\n /* \"#utility.yul\":11607:11613 */\n 0x00\n /* \"#utility.yul\":11641:11646 */\n dup2\n /* \"#utility.yul\":11635:11647 */\n mload\n /* \"#utility.yul\":11625:11647 */\n swap1\n pop\n /* \"#utility.yul\":11555:11654 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":11660:11808 */\ntag_72:\n /* \"#utility.yul\":11762:11773 */\n 0x00\n /* \"#utility.yul\":11799:11802 */\n dup2\n /* \"#utility.yul\":11784:11802 */\n swap1\n pop\n /* \"#utility.yul\":11660:11808 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11814:12204 */\ntag_73:\n /* \"#utility.yul\":11920:11923 */\n 0x00\n /* \"#utility.yul\":11948:11987 */\n tag_208\n /* \"#utility.yul\":11981:11986 */\n dup3\n /* \"#utility.yul\":11948:11987 */\n tag_71\n jump\t// in\ntag_208:\n /* \"#utility.yul\":12003:12092 */\n tag_209\n /* \"#utility.yul\":12085:12091 */\n dup2\n /* \"#utility.yul\":12080:12083 */\n dup6\n /* \"#utility.yul\":12003:12092 */\n tag_72\n jump\t// in\ntag_209:\n /* \"#utility.yul\":11996:12092 */\n swap4\n pop\n /* \"#utility.yul\":12101:12166 */\n tag_210\n /* \"#utility.yul\":12159:12165 */\n dup2\n /* \"#utility.yul\":12154:12157 */\n dup6\n /* \"#utility.yul\":12147:12151 */\n 0x20\n /* \"#utility.yul\":12140:12145 */\n dup7\n /* \"#utility.yul\":12136:12152 */\n add\n /* \"#utility.yul\":12101:12166 */\n tag_48\n jump\t// in\ntag_210:\n /* \"#utility.yul\":12191:12197 */\n dup1\n /* \"#utility.yul\":12186:12189 */\n dup5\n /* \"#utility.yul\":12182:12198 */\n add\n /* \"#utility.yul\":12175:12198 */\n swap2\n pop\n /* \"#utility.yul\":11924:12204 */\n pop\n /* \"#utility.yul\":11814:12204 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12210:12485 */\ntag_29:\n /* \"#utility.yul\":12342:12345 */\n 0x00\n /* \"#utility.yul\":12364:12459 */\n tag_212\n /* \"#utility.yul\":12455:12458 */\n dup3\n /* \"#utility.yul\":12446:12452 */\n dup5\n /* \"#utility.yul\":12364:12459 */\n tag_73\n jump\t// in\ntag_212:\n /* \"#utility.yul\":12357:12459 */\n swap2\n pop\n /* \"#utility.yul\":12476:12479 */\n dup2\n /* \"#utility.yul\":12469:12479 */\n swap1\n pop\n /* \"#utility.yul\":12210:12485 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12491:12671 */\ntag_74:\n /* \"#utility.yul\":12539:12616 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":12536:12537 */\n 0x00\n /* \"#utility.yul\":12529:12617 */\n mstore\n /* \"#utility.yul\":12636:12640 */\n 0x11\n /* \"#utility.yul\":12633:12634 */\n 0x04\n /* \"#utility.yul\":12626:12641 */\n mstore\n /* \"#utility.yul\":12660:12664 */\n 0x24\n /* \"#utility.yul\":12657:12658 */\n 0x00\n /* \"#utility.yul\":12650:12665 */\n revert\n /* \"#utility.yul\":12677:12910 */\ntag_35:\n /* \"#utility.yul\":12716:12719 */\n 0x00\n /* \"#utility.yul\":12739:12763 */\n tag_215\n /* \"#utility.yul\":12757:12762 */\n dup3\n /* \"#utility.yul\":12739:12763 */\n tag_64\n jump\t// in\ntag_215:\n /* \"#utility.yul\":12730:12763 */\n swap2\n pop\n /* \"#utility.yul\":12785:12851 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":12778:12783 */\n dup3\n /* \"#utility.yul\":12775:12852 */\n sub\n /* \"#utility.yul\":12772:12875 */\n tag_216\n jumpi\n /* \"#utility.yul\":12855:12873 */\n tag_217\n tag_74\n jump\t// in\ntag_217:\n /* \"#utility.yul\":12772:12875 */\ntag_216:\n /* \"#utility.yul\":12902:12903 */\n 0x01\n /* \"#utility.yul\":12895:12900 */\n dup3\n /* \"#utility.yul\":12891:12904 */\n add\n /* \"#utility.yul\":12884:12904 */\n swap1\n pop\n /* \"#utility.yul\":12677:12910 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":12916:13085 */\ntag_75:\n /* \"#utility.yul\":13000:13011 */\n 0x00\n /* \"#utility.yul\":13034:13040 */\n dup3\n /* \"#utility.yul\":13029:13032 */\n dup3\n /* \"#utility.yul\":13022:13041 */\n mstore\n /* \"#utility.yul\":13074:13078 */\n 0x20\n /* \"#utility.yul\":13069:13072 */\n dup3\n /* \"#utility.yul\":13065:13079 */\n add\n /* \"#utility.yul\":13050:13079 */\n swap1\n pop\n /* \"#utility.yul\":12916:13085 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":13091:13260 */\ntag_76:\n /* \"#utility.yul\":13231:13252 */\n 0x436f756c646e27742066696e6420747261636b00000000000000000000000000\n /* \"#utility.yul\":13227:13228 */\n 0x00\n /* \"#utility.yul\":13219:13225 */\n dup3\n /* \"#utility.yul\":13215:13229 */\n add\n /* \"#utility.yul\":13208:13253 */\n mstore\n /* \"#utility.yul\":13091:13260 */\n pop\n jump\t// out\n /* \"#utility.yul\":13266:13632 */\ntag_77:\n /* \"#utility.yul\":13408:13411 */\n 0x00\n /* \"#utility.yul\":13429:13496 */\n tag_221\n /* \"#utility.yul\":13493:13495 */\n 0x13\n /* \"#utility.yul\":13488:13491 */\n dup4\n /* \"#utility.yul\":13429:13496 */\n tag_75\n jump\t// in\ntag_221:\n /* \"#utility.yul\":13422:13496 */\n swap2\n pop\n /* \"#utility.yul\":13505:13598 */\n tag_222\n /* \"#utility.yul\":13594:13597 */\n dup3\n /* \"#utility.yul\":13505:13598 */\n tag_76\n jump\t// in\ntag_222:\n /* \"#utility.yul\":13623:13625 */\n 0x20\n /* \"#utility.yul\":13618:13621 */\n dup3\n /* \"#utility.yul\":13614:13626 */\n add\n /* \"#utility.yul\":13607:13626 */\n swap1\n pop\n /* \"#utility.yul\":13266:13632 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":13638:14057 */\ntag_37:\n /* \"#utility.yul\":13804:13808 */\n 0x00\n /* \"#utility.yul\":13842:13844 */\n 0x20\n /* \"#utility.yul\":13831:13840 */\n dup3\n /* \"#utility.yul\":13827:13845 */\n add\n /* \"#utility.yul\":13819:13845 */\n swap1\n pop\n /* \"#utility.yul\":13891:13900 */\n dup2\n /* \"#utility.yul\":13885:13889 */\n dup2\n /* \"#utility.yul\":13881:13901 */\n sub\n /* \"#utility.yul\":13877:13878 */\n 0x00\n /* \"#utility.yul\":13866:13875 */\n dup4\n /* \"#utility.yul\":13862:13879 */\n add\n /* \"#utility.yul\":13855:13902 */\n mstore\n /* \"#utility.yul\":13919:14050 */\n tag_224\n /* \"#utility.yul\":14045:14049 */\n dup2\n /* \"#utility.yul\":13919:14050 */\n tag_77\n jump\t// in\ntag_224:\n /* \"#utility.yul\":13911:14050 */\n swap1\n pop\n /* \"#utility.yul\":13638:14057 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"main.sol\":3607:3899 contract ReferendaAutoUpgradeDemoV2 is ReferendaAutoUpgradeDemo {... */\ntag_10:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"main.sol\":3607:3899 contract ReferendaAutoUpgradeDemoV2 is ReferendaAutoUpgradeDemo {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x54fd4d50\n eq\n tag_3\n jumpi\n dup1\n 0x6d72ffb6\n eq\n tag_4\n jumpi\n dup1\n 0x79688e99\n eq\n tag_5\n jumpi\n dup1\n 0x920e0c03\n eq\n tag_6\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"main.sol\":3821:3897 function version() external pure returns (uint256) {... */\n tag_3:\n tag_7\n tag_8\n jump\t// in\n tag_7:\n mload(0x40)\n tag_9\n swap2\n swap1\n tag_10\n jump\t// in\n tag_9:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":476:501 uint16 public rootTrackId */\n tag_4:\n tag_11\n tag_12\n jump\t// in\n tag_11:\n mload(0x40)\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n tag_5:\n tag_15\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_16\n swap2\n swap1\n tag_17\n jump\t// in\n tag_16:\n tag_18\n jump\t// in\n tag_15:\n stop\n /* \"main.sol\":609:642 bytes2 public setStorageCallIndex */\n tag_6:\n tag_19\n tag_20\n jump\t// in\n tag_19:\n mload(0x40)\n tag_21\n swap2\n swap1\n tag_22\n jump\t// in\n tag_21:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":3821:3897 function version() external pure returns (uint256) {... */\n tag_8:\n /* \"main.sol\":3863:3870 uint256 */\n 0x00\n /* \"main.sol\":3889:3890 2 */\n 0x02\n /* \"main.sol\":3882:3890 return 2 */\n swap1\n pop\n /* \"main.sol\":3821:3897 function version() external pure returns (uint256) {... */\n swap1\n jump\t// out\n /* \"main.sol\":476:501 uint16 public rootTrackId */\n tag_12:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n dup2\n jump\t// out\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n tag_18:\n /* \"main.sol\":2300:2327 bytes memory setStorageCall */\n 0x00\n /* \"main.sol\":2330:2436 SubstrateTools.buildSetStorageProposal(... */\n tag_25\n /* \"main.sol\":2382:2400 contractStorageKey */\n dup3\n /* \"main.sol\":2414:2426 contractCode */\n dup5\n /* \"main.sol\":2330:2368 SubstrateTools.buildSetStorageProposal */\n tag_26\n /* \"main.sol\":2330:2436 SubstrateTools.buildSetStorageProposal(... */\n jump\t// in\n tag_25:\n /* \"main.sol\":2300:2436 bytes memory setStorageCall = SubstrateTools.buildSetStorageProposal(... */\n swap1\n pop\n /* \"main.sol\":2446:2466 bytes32 preimageHash */\n 0x00\n /* \"precompiles/preimage/Preimage.sol\":145:187 */\n 0x0813\n /* \"main.sol\":2469:2499 PREIMAGE_CONTRACT.notePreimage */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xcb00f603\n /* \"main.sol\":2500:2514 setStorageCall */\n dup4\n /* \"main.sol\":2469:2515 PREIMAGE_CONTRACT.notePreimage(setStorageCall) */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\n tag_27:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_30\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_30:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_31\n swap2\n swap1\n tag_32\n jump\t// in\n tag_31:\n /* \"main.sol\":2446:2515 bytes32 preimageHash = PREIMAGE_CONTRACT.notePreimage(setStorageCall) */\n swap1\n pop\n /* \"main.sol\":2658:2675 uint32 blockCount */\n 0x00\n /* \"main.sol\":2678:2679 1 */\n 0x01\n /* \"main.sol\":2658:2679 uint32 blockCount = 1 */\n swap1\n pop\n /* \"main.sol\":2689:2708 uint32 referendumId */\n 0x00\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":2711:2741 REFERENDA_CONTRACT.submitAfter */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x5b2479db\n /* \"main.sol\":2755:2766 rootTrackId */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n /* \"main.sol\":2780:2792 preimageHash */\n dup6\n /* \"main.sol\":2813:2827 setStorageCall */\n dup8\n /* \"main.sol\":2813:2834 setStorageCall.length */\n mload\n /* \"main.sol\":2849:2859 blockCount */\n dup7\n /* \"main.sol\":2711:2869 REFERENDA_CONTRACT.submitAfter(... */\n mload(0x40)\n dup6\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_33\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_34\n jump\t// in\n tag_33:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_36\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_36:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_37\n swap2\n swap1\n tag_38\n jump\t// in\n tag_37:\n /* \"main.sol\":2689:2869 uint32 referendumId = REFERENDA_CONTRACT.submitAfter(... */\n swap1\n pop\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":2919:2958 REFERENDA_CONTRACT.placeDecisionDeposit */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x245ce18d\n /* \"main.sol\":2959:2971 referendumId */\n dup3\n /* \"main.sol\":2919:2972 REFERENDA_CONTRACT.placeDecisionDeposit(referendumId) */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_39\n swap2\n swap1\n tag_40\n jump\t// in\n tag_39:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_41\n jumpi\n 0x00\n dup1\n revert\n tag_41:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_43\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_43:\n pop\n pop\n pop\n pop\n /* \"precompiles/conviction-voting/ConvictionVoting.sol\":163:205 */\n 0x0812\n /* \"main.sol\":3019:3053 CONVICTION_VOTING_CONTRACT.voteYes */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xda9df518\n /* \"main.sol\":3067:3079 referendumId */\n dup3\n /* \"main.sol\":3093:3114 address(this).balance */\n selfbalance\n /* \"main.sol\":3171:3207 ConvictionVoting.Conviction.Locked1x */\n 0x01\n /* \"main.sol\":3019:3217 CONVICTION_VOTING_CONTRACT.voteYes(... */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_44\n swap4\n swap3\n swap2\n swap1\n tag_45\n jump\t// in\n tag_44:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_46\n jumpi\n 0x00\n dup1\n revert\n tag_46:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_48\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_48:\n pop\n pop\n pop\n pop\n /* \"main.sol\":2290:3224 {... */\n pop\n pop\n pop\n pop\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n pop\n pop\n jump\t// out\n /* \"main.sol\":609:642 bytes2 public setStorageCallIndex */\n tag_20:\n 0x00\n 0x02\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xf0\n shl\n dup2\n jump\t// out\n /* \"SubstrateTools.sol\":1402:1812 */\n tag_26:\n /* \"SubstrateTools.sol\":1532:1544 */\n 0x60\n /* \"SubstrateTools.sol\":1605:1623 */\n 0x04000000000000000000000000000000000000000000000000000000000000\n /* \"SubstrateTools.sol\":1681:1686 */\n 0x04\n /* \"SubstrateTools.sol\":1668:1688 */\n 0xf8\n shl\n /* \"SubstrateTools.sol\":1746:1791 */\n tag_50\n /* \"SubstrateTools.sol\":1766:1776 */\n dup6\n /* \"SubstrateTools.sol\":1778:1790 */\n dup6\n /* \"SubstrateTools.sol\":1746:1765 */\n tag_51\n /* \"SubstrateTools.sol\":1746:1791 */\n jump\t// in\n tag_50:\n /* \"SubstrateTools.sol\":1575:1805 */\n add(0x20, mload(0x40))\n tag_52\n swap4\n swap3\n swap2\n swap1\n tag_53\n jump\t// in\n tag_52:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":1556:1805 */\n swap1\n pop\n /* \"SubstrateTools.sol\":1402:1812 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":858:1140 */\n tag_51:\n /* \"SubstrateTools.sol\":972:984 */\n 0x60\n /* \"SubstrateTools.sol\":1049:1074 */\n tag_55\n /* \"SubstrateTools.sol\":1070:1073 */\n dup4\n /* \"SubstrateTools.sol\":1049:1069 */\n tag_56\n /* \"SubstrateTools.sol\":1049:1074 */\n jump\t// in\n tag_55:\n /* \"SubstrateTools.sol\":1092:1119 */\n tag_57\n /* \"SubstrateTools.sol\":1113:1118 */\n dup4\n /* \"SubstrateTools.sol\":1092:1112 */\n tag_56\n /* \"SubstrateTools.sol\":1092:1119 */\n jump\t// in\n tag_57:\n /* \"SubstrateTools.sol\":1019:1133 */\n add(0x20, mload(0x40))\n tag_58\n swap3\n swap2\n swap1\n tag_59\n jump\t// in\n tag_58:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":1000:1133 */\n swap1\n pop\n /* \"SubstrateTools.sol\":858:1140 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":298:711 */\n tag_56:\n /* \"SubstrateTools.sol\":394:406 */\n 0x60\n /* \"SubstrateTools.sol\":453:466 */\n 0x00\n /* \"SubstrateTools.sol\":495:496 */\n 0x01\n /* \"SubstrateTools.sol\":490:491 */\n 0x04\n /* \"SubstrateTools.sol\":476:480 */\n dup5\n /* \"SubstrateTools.sol\":476:487 */\n mload\n /* \"SubstrateTools.sol\":476:491 */\n tag_61\n swap2\n swap1\n tag_62\n jump\t// in\n tag_61:\n /* \"SubstrateTools.sol\":469:496 */\n tag_63\n swap2\n swap1\n tag_64\n jump\t// in\n tag_63:\n /* \"SubstrateTools.sol\":453:496 */\n swap1\n pop\n /* \"SubstrateTools.sol\":542:563 */\n 0x00\n /* \"SubstrateTools.sol\":594:595 */\n 0x08\n /* \"SubstrateTools.sol\":584:590 */\n dup3\n /* \"SubstrateTools.sol\":584:595 */\n 0xffff\n and\n swap1\n shl\n /* \"SubstrateTools.sol\":578:579 */\n 0x08\n /* \"SubstrateTools.sol\":568:574 */\n dup4\n /* \"SubstrateTools.sol\":568:579 */\n 0xffff\n and\n swap1\n shr\n /* \"SubstrateTools.sol\":567:596 */\n or\n /* \"SubstrateTools.sol\":542:597 */\n swap1\n pop\n /* \"SubstrateTools.sol\":682:696 */\n dup1\n /* \"SubstrateTools.sol\":675:697 */\n 0xf0\n shl\n /* \"SubstrateTools.sol\":699:703 */\n dup5\n /* \"SubstrateTools.sol\":662:704 */\n add(0x20, mload(0x40))\n tag_65\n swap3\n swap2\n swap1\n tag_66\n jump\t// in\n tag_65:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":655:704 */\n swap3\n pop\n pop\n pop\n /* \"SubstrateTools.sol\":298:711 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:84 */\n tag_67:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":73:78 */\n dup2\n /* \"#utility.yul\":62:78 */\n swap1\n pop\n /* \"#utility.yul\":7:84 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":90:208 */\n tag_68:\n /* \"#utility.yul\":177:201 */\n tag_114\n /* \"#utility.yul\":195:200 */\n dup2\n /* \"#utility.yul\":177:201 */\n tag_67\n jump\t// in\n tag_114:\n /* \"#utility.yul\":172:175 */\n dup3\n /* \"#utility.yul\":165:202 */\n mstore\n /* \"#utility.yul\":90:208 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":214:436 */\n tag_10:\n /* \"#utility.yul\":307:311 */\n 0x00\n /* \"#utility.yul\":345:347 */\n 0x20\n /* \"#utility.yul\":334:343 */\n dup3\n /* \"#utility.yul\":330:348 */\n add\n /* \"#utility.yul\":322:348 */\n swap1\n pop\n /* \"#utility.yul\":358:429 */\n tag_116\n /* \"#utility.yul\":426:427 */\n 0x00\n /* \"#utility.yul\":415:424 */\n dup4\n /* \"#utility.yul\":411:428 */\n add\n /* \"#utility.yul\":402:408 */\n dup5\n /* \"#utility.yul\":358:429 */\n tag_68\n jump\t// in\n tag_116:\n /* \"#utility.yul\":214:436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":442:531 */\n tag_69:\n /* \"#utility.yul\":478:485 */\n 0x00\n /* \"#utility.yul\":518:524 */\n 0xffff\n /* \"#utility.yul\":511:516 */\n dup3\n /* \"#utility.yul\":507:525 */\n and\n /* \"#utility.yul\":496:525 */\n swap1\n pop\n /* \"#utility.yul\":442:531 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":537:652 */\n tag_70:\n /* \"#utility.yul\":622:645 */\n tag_119\n /* \"#utility.yul\":639:644 */\n dup2\n /* \"#utility.yul\":622:645 */\n tag_69\n jump\t// in\n tag_119:\n /* \"#utility.yul\":617:620 */\n dup3\n /* \"#utility.yul\":610:646 */\n mstore\n /* \"#utility.yul\":537:652 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":658:876 */\n tag_14:\n /* \"#utility.yul\":749:753 */\n 0x00\n /* \"#utility.yul\":787:789 */\n 0x20\n /* \"#utility.yul\":776:785 */\n dup3\n /* \"#utility.yul\":772:790 */\n add\n /* \"#utility.yul\":764:790 */\n swap1\n pop\n /* \"#utility.yul\":800:869 */\n tag_121\n /* \"#utility.yul\":866:867 */\n 0x00\n /* \"#utility.yul\":855:864 */\n dup4\n /* \"#utility.yul\":851:868 */\n add\n /* \"#utility.yul\":842:848 */\n dup5\n /* \"#utility.yul\":800:869 */\n tag_70\n jump\t// in\n tag_121:\n /* \"#utility.yul\":658:876 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":882:957 */\n tag_71:\n /* \"#utility.yul\":915:921 */\n 0x00\n /* \"#utility.yul\":948:950 */\n 0x40\n /* \"#utility.yul\":942:951 */\n mload\n /* \"#utility.yul\":932:951 */\n swap1\n pop\n /* \"#utility.yul\":882:957 */\n swap1\n jump\t// out\n /* \"#utility.yul\":963:1080 */\n tag_72:\n /* \"#utility.yul\":1072:1073 */\n 0x00\n /* \"#utility.yul\":1069:1070 */\n dup1\n /* \"#utility.yul\":1062:1074 */\n revert\n /* \"#utility.yul\":1086:1203 */\n tag_73:\n /* \"#utility.yul\":1195:1196 */\n 0x00\n /* \"#utility.yul\":1192:1193 */\n dup1\n /* \"#utility.yul\":1185:1197 */\n revert\n /* \"#utility.yul\":1209:1326 */\n tag_74:\n /* \"#utility.yul\":1318:1319 */\n 0x00\n /* \"#utility.yul\":1315:1316 */\n dup1\n /* \"#utility.yul\":1308:1320 */\n revert\n /* \"#utility.yul\":1332:1449 */\n tag_75:\n /* \"#utility.yul\":1441:1442 */\n 0x00\n /* \"#utility.yul\":1438:1439 */\n dup1\n /* \"#utility.yul\":1431:1443 */\n revert\n /* \"#utility.yul\":1455:1557 */\n tag_76:\n /* \"#utility.yul\":1496:1502 */\n 0x00\n /* \"#utility.yul\":1547:1549 */\n 0x1f\n /* \"#utility.yul\":1543:1550 */\n not\n /* \"#utility.yul\":1538:1540 */\n 0x1f\n /* \"#utility.yul\":1531:1536 */\n dup4\n /* \"#utility.yul\":1527:1541 */\n add\n /* \"#utility.yul\":1523:1551 */\n and\n /* \"#utility.yul\":1513:1551 */\n swap1\n pop\n /* \"#utility.yul\":1455:1557 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1563:1743 */\n tag_77:\n /* \"#utility.yul\":1611:1688 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1608:1609 */\n 0x00\n /* \"#utility.yul\":1601:1689 */\n mstore\n /* \"#utility.yul\":1708:1712 */\n 0x41\n /* \"#utility.yul\":1705:1706 */\n 0x04\n /* \"#utility.yul\":1698:1713 */\n mstore\n /* \"#utility.yul\":1732:1736 */\n 0x24\n /* \"#utility.yul\":1729:1730 */\n 0x00\n /* \"#utility.yul\":1722:1737 */\n revert\n /* \"#utility.yul\":1749:2030 */\n tag_78:\n /* \"#utility.yul\":1832:1859 */\n tag_130\n /* \"#utility.yul\":1854:1858 */\n dup3\n /* \"#utility.yul\":1832:1859 */\n tag_76\n jump\t// in\n tag_130:\n /* \"#utility.yul\":1824:1830 */\n dup2\n /* \"#utility.yul\":1820:1860 */\n add\n /* \"#utility.yul\":1962:1968 */\n dup2\n /* \"#utility.yul\":1950:1960 */\n dup2\n /* \"#utility.yul\":1947:1969 */\n lt\n /* \"#utility.yul\":1926:1944 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1914:1924 */\n dup3\n /* \"#utility.yul\":1911:1945 */\n gt\n /* \"#utility.yul\":1908:1970 */\n or\n /* \"#utility.yul\":1905:1993 */\n iszero\n tag_131\n jumpi\n /* \"#utility.yul\":1973:1991 */\n tag_132\n tag_77\n jump\t// in\n tag_132:\n /* \"#utility.yul\":1905:1993 */\n tag_131:\n /* \"#utility.yul\":2013:2023 */\n dup1\n /* \"#utility.yul\":2009:2011 */\n 0x40\n /* \"#utility.yul\":2002:2024 */\n mstore\n /* \"#utility.yul\":1792:2030 */\n pop\n /* \"#utility.yul\":1749:2030 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2036:2165 */\n tag_79:\n /* \"#utility.yul\":2070:2076 */\n 0x00\n /* \"#utility.yul\":2097:2117 */\n tag_134\n tag_71\n jump\t// in\n tag_134:\n /* \"#utility.yul\":2087:2117 */\n swap1\n pop\n /* \"#utility.yul\":2126:2159 */\n tag_135\n /* \"#utility.yul\":2154:2158 */\n dup3\n /* \"#utility.yul\":2146:2152 */\n dup3\n /* \"#utility.yul\":2126:2159 */\n tag_78\n jump\t// in\n tag_135:\n /* \"#utility.yul\":2036:2165 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2171:2478 */\n tag_80:\n /* \"#utility.yul\":2232:2236 */\n 0x00\n /* \"#utility.yul\":2322:2340 */\n 0xffffffffffffffff\n /* \"#utility.yul\":2314:2320 */\n dup3\n /* \"#utility.yul\":2311:2341 */\n gt\n /* \"#utility.yul\":2308:2364 */\n iszero\n tag_137\n jumpi\n /* \"#utility.yul\":2344:2362 */\n tag_138\n tag_77\n jump\t// in\n tag_138:\n /* \"#utility.yul\":2308:2364 */\n tag_137:\n /* \"#utility.yul\":2382:2411 */\n tag_139\n /* \"#utility.yul\":2404:2410 */\n dup3\n /* \"#utility.yul\":2382:2411 */\n tag_76\n jump\t// in\n tag_139:\n /* \"#utility.yul\":2374:2411 */\n swap1\n pop\n /* \"#utility.yul\":2466:2470 */\n 0x20\n /* \"#utility.yul\":2460:2464 */\n dup2\n /* \"#utility.yul\":2456:2471 */\n add\n /* \"#utility.yul\":2448:2471 */\n swap1\n pop\n /* \"#utility.yul\":2171:2478 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2484:2630 */\n tag_81:\n /* \"#utility.yul\":2581:2587 */\n dup3\n /* \"#utility.yul\":2576:2579 */\n dup2\n /* \"#utility.yul\":2571:2574 */\n dup4\n /* \"#utility.yul\":2558:2588 */\n calldatacopy\n /* \"#utility.yul\":2622:2623 */\n 0x00\n /* \"#utility.yul\":2613:2619 */\n dup4\n /* \"#utility.yul\":2608:2611 */\n dup4\n /* \"#utility.yul\":2604:2620 */\n add\n /* \"#utility.yul\":2597:2624 */\n mstore\n /* \"#utility.yul\":2484:2630 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2636:3059 */\n tag_82:\n /* \"#utility.yul\":2713:2718 */\n 0x00\n /* \"#utility.yul\":2738:2803 */\n tag_142\n /* \"#utility.yul\":2754:2802 */\n tag_143\n /* \"#utility.yul\":2795:2801 */\n dup5\n /* \"#utility.yul\":2754:2802 */\n tag_80\n jump\t// in\n tag_143:\n /* \"#utility.yul\":2738:2803 */\n tag_79\n jump\t// in\n tag_142:\n /* \"#utility.yul\":2729:2803 */\n swap1\n pop\n /* \"#utility.yul\":2826:2832 */\n dup3\n /* \"#utility.yul\":2819:2824 */\n dup2\n /* \"#utility.yul\":2812:2833 */\n mstore\n /* \"#utility.yul\":2864:2868 */\n 0x20\n /* \"#utility.yul\":2857:2862 */\n dup2\n /* \"#utility.yul\":2853:2869 */\n add\n /* \"#utility.yul\":2902:2905 */\n dup5\n /* \"#utility.yul\":2893:2899 */\n dup5\n /* \"#utility.yul\":2888:2891 */\n dup5\n /* \"#utility.yul\":2884:2900 */\n add\n /* \"#utility.yul\":2881:2906 */\n gt\n /* \"#utility.yul\":2878:2990 */\n iszero\n tag_144\n jumpi\n /* \"#utility.yul\":2909:2988 */\n tag_145\n tag_75\n jump\t// in\n tag_145:\n /* \"#utility.yul\":2878:2990 */\n tag_144:\n /* \"#utility.yul\":2999:3053 */\n tag_146\n /* \"#utility.yul\":3046:3052 */\n dup5\n /* \"#utility.yul\":3041:3044 */\n dup3\n /* \"#utility.yul\":3036:3039 */\n dup6\n /* \"#utility.yul\":2999:3053 */\n tag_81\n jump\t// in\n tag_146:\n /* \"#utility.yul\":2719:3059 */\n pop\n /* \"#utility.yul\":2636:3059 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3078:3416 */\n tag_83:\n /* \"#utility.yul\":3133:3138 */\n 0x00\n /* \"#utility.yul\":3182:3185 */\n dup3\n /* \"#utility.yul\":3175:3179 */\n 0x1f\n /* \"#utility.yul\":3167:3173 */\n dup4\n /* \"#utility.yul\":3163:3180 */\n add\n /* \"#utility.yul\":3159:3186 */\n slt\n /* \"#utility.yul\":3149:3271 */\n tag_148\n jumpi\n /* \"#utility.yul\":3190:3269 */\n tag_149\n tag_74\n jump\t// in\n tag_149:\n /* \"#utility.yul\":3149:3271 */\n tag_148:\n /* \"#utility.yul\":3307:3313 */\n dup2\n /* \"#utility.yul\":3294:3314 */\n calldataload\n /* \"#utility.yul\":3332:3410 */\n tag_150\n /* \"#utility.yul\":3406:3409 */\n dup5\n /* \"#utility.yul\":3398:3404 */\n dup3\n /* \"#utility.yul\":3391:3395 */\n 0x20\n /* \"#utility.yul\":3383:3389 */\n dup7\n /* \"#utility.yul\":3379:3396 */\n add\n /* \"#utility.yul\":3332:3410 */\n tag_82\n jump\t// in\n tag_150:\n /* \"#utility.yul\":3323:3410 */\n swap2\n pop\n /* \"#utility.yul\":3139:3416 */\n pop\n /* \"#utility.yul\":3078:3416 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3422:4252 */\n tag_17:\n /* \"#utility.yul\":3508:3514 */\n 0x00\n /* \"#utility.yul\":3516:3522 */\n dup1\n /* \"#utility.yul\":3565:3567 */\n 0x40\n /* \"#utility.yul\":3553:3562 */\n dup4\n /* \"#utility.yul\":3544:3551 */\n dup6\n /* \"#utility.yul\":3540:3563 */\n sub\n /* \"#utility.yul\":3536:3568 */\n slt\n /* \"#utility.yul\":3533:3652 */\n iszero\n tag_152\n jumpi\n /* \"#utility.yul\":3571:3650 */\n tag_153\n tag_72\n jump\t// in\n tag_153:\n /* \"#utility.yul\":3533:3652 */\n tag_152:\n /* \"#utility.yul\":3719:3720 */\n 0x00\n /* \"#utility.yul\":3708:3717 */\n dup4\n /* \"#utility.yul\":3704:3721 */\n add\n /* \"#utility.yul\":3691:3722 */\n calldataload\n /* \"#utility.yul\":3749:3767 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3741:3747 */\n dup2\n /* \"#utility.yul\":3738:3768 */\n gt\n /* \"#utility.yul\":3735:3852 */\n iszero\n tag_154\n jumpi\n /* \"#utility.yul\":3771:3850 */\n tag_155\n tag_73\n jump\t// in\n tag_155:\n /* \"#utility.yul\":3735:3852 */\n tag_154:\n /* \"#utility.yul\":3876:3938 */\n tag_156\n /* \"#utility.yul\":3930:3937 */\n dup6\n /* \"#utility.yul\":3921:3927 */\n dup3\n /* \"#utility.yul\":3910:3919 */\n dup7\n /* \"#utility.yul\":3906:3928 */\n add\n /* \"#utility.yul\":3876:3938 */\n tag_83\n jump\t// in\n tag_156:\n /* \"#utility.yul\":3866:3938 */\n swap3\n pop\n /* \"#utility.yul\":3662:3948 */\n pop\n /* \"#utility.yul\":4015:4017 */\n 0x20\n /* \"#utility.yul\":4004:4013 */\n dup4\n /* \"#utility.yul\":4000:4018 */\n add\n /* \"#utility.yul\":3987:4019 */\n calldataload\n /* \"#utility.yul\":4046:4064 */\n 0xffffffffffffffff\n /* \"#utility.yul\":4038:4044 */\n dup2\n /* \"#utility.yul\":4035:4065 */\n gt\n /* \"#utility.yul\":4032:4149 */\n iszero\n tag_157\n jumpi\n /* \"#utility.yul\":4068:4147 */\n tag_158\n tag_73\n jump\t// in\n tag_158:\n /* \"#utility.yul\":4032:4149 */\n tag_157:\n /* \"#utility.yul\":4173:4235 */\n tag_159\n /* \"#utility.yul\":4227:4234 */\n dup6\n /* \"#utility.yul\":4218:4224 */\n dup3\n /* \"#utility.yul\":4207:4216 */\n dup7\n /* \"#utility.yul\":4203:4225 */\n add\n /* \"#utility.yul\":4173:4235 */\n tag_83\n jump\t// in\n tag_159:\n /* \"#utility.yul\":4163:4235 */\n swap2\n pop\n /* \"#utility.yul\":3958:4245 */\n pop\n /* \"#utility.yul\":3422:4252 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4258:4407 */\n tag_84:\n /* \"#utility.yul\":4294:4301 */\n 0x00\n /* \"#utility.yul\":4334:4400 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":4327:4332 */\n dup3\n /* \"#utility.yul\":4323:4401 */\n and\n /* \"#utility.yul\":4312:4401 */\n swap1\n pop\n /* \"#utility.yul\":4258:4407 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4413:4528 */\n tag_85:\n /* \"#utility.yul\":4498:4521 */\n tag_162\n /* \"#utility.yul\":4515:4520 */\n dup2\n /* \"#utility.yul\":4498:4521 */\n tag_84\n jump\t// in\n tag_162:\n /* \"#utility.yul\":4493:4496 */\n dup3\n /* \"#utility.yul\":4486:4522 */\n mstore\n /* \"#utility.yul\":4413:4528 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4534:4752 */\n tag_22:\n /* \"#utility.yul\":4625:4629 */\n 0x00\n /* \"#utility.yul\":4663:4665 */\n 0x20\n /* \"#utility.yul\":4652:4661 */\n dup3\n /* \"#utility.yul\":4648:4666 */\n add\n /* \"#utility.yul\":4640:4666 */\n swap1\n pop\n /* \"#utility.yul\":4676:4745 */\n tag_164\n /* \"#utility.yul\":4742:4743 */\n 0x00\n /* \"#utility.yul\":4731:4740 */\n dup4\n /* \"#utility.yul\":4727:4744 */\n add\n /* \"#utility.yul\":4718:4724 */\n dup5\n /* \"#utility.yul\":4676:4745 */\n tag_85\n jump\t// in\n tag_164:\n /* \"#utility.yul\":4534:4752 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4758:4856 */\n tag_86:\n /* \"#utility.yul\":4809:4815 */\n 0x00\n /* \"#utility.yul\":4843:4848 */\n dup2\n /* \"#utility.yul\":4837:4849 */\n mload\n /* \"#utility.yul\":4827:4849 */\n swap1\n pop\n /* \"#utility.yul\":4758:4856 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4862:5030 */\n tag_87:\n /* \"#utility.yul\":4945:4956 */\n 0x00\n /* \"#utility.yul\":4979:4985 */\n dup3\n /* \"#utility.yul\":4974:4977 */\n dup3\n /* \"#utility.yul\":4967:4986 */\n mstore\n /* \"#utility.yul\":5019:5023 */\n 0x20\n /* \"#utility.yul\":5014:5017 */\n dup3\n /* \"#utility.yul\":5010:5024 */\n add\n /* \"#utility.yul\":4995:5024 */\n swap1\n pop\n /* \"#utility.yul\":4862:5030 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5036:5282 */\n tag_88:\n /* \"#utility.yul\":5117:5118 */\n 0x00\n /* \"#utility.yul\":5127:5240 */\n tag_168:\n /* \"#utility.yul\":5141:5147 */\n dup4\n /* \"#utility.yul\":5138:5139 */\n dup2\n /* \"#utility.yul\":5135:5148 */\n lt\n /* \"#utility.yul\":5127:5240 */\n iszero\n tag_170\n jumpi\n /* \"#utility.yul\":5226:5227 */\n dup1\n /* \"#utility.yul\":5221:5224 */\n dup3\n /* \"#utility.yul\":5217:5228 */\n add\n /* \"#utility.yul\":5211:5229 */\n mload\n /* \"#utility.yul\":5207:5208 */\n dup2\n /* \"#utility.yul\":5202:5205 */\n dup5\n /* \"#utility.yul\":5198:5209 */\n add\n /* \"#utility.yul\":5191:5230 */\n mstore\n /* \"#utility.yul\":5163:5165 */\n 0x20\n /* \"#utility.yul\":5160:5161 */\n dup2\n /* \"#utility.yul\":5156:5166 */\n add\n /* \"#utility.yul\":5151:5166 */\n swap1\n pop\n /* \"#utility.yul\":5127:5240 */\n jump(tag_168)\n tag_170:\n /* \"#utility.yul\":5274:5275 */\n 0x00\n /* \"#utility.yul\":5265:5271 */\n dup5\n /* \"#utility.yul\":5260:5263 */\n dup5\n /* \"#utility.yul\":5256:5272 */\n add\n /* \"#utility.yul\":5249:5276 */\n mstore\n /* \"#utility.yul\":5098:5282 */\n pop\n /* \"#utility.yul\":5036:5282 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5288:5661 */\n tag_89:\n /* \"#utility.yul\":5374:5377 */\n 0x00\n /* \"#utility.yul\":5402:5440 */\n tag_172\n /* \"#utility.yul\":5434:5439 */\n dup3\n /* \"#utility.yul\":5402:5440 */\n tag_86\n jump\t// in\n tag_172:\n /* \"#utility.yul\":5456:5526 */\n tag_173\n /* \"#utility.yul\":5519:5525 */\n dup2\n /* \"#utility.yul\":5514:5517 */\n dup6\n /* \"#utility.yul\":5456:5526 */\n tag_87\n jump\t// in\n tag_173:\n /* \"#utility.yul\":5449:5526 */\n swap4\n pop\n /* \"#utility.yul\":5535:5600 */\n tag_174\n /* \"#utility.yul\":5593:5599 */\n dup2\n /* \"#utility.yul\":5588:5591 */\n dup6\n /* \"#utility.yul\":5581:5585 */\n 0x20\n /* \"#utility.yul\":5574:5579 */\n dup7\n /* \"#utility.yul\":5570:5586 */\n add\n /* \"#utility.yul\":5535:5600 */\n tag_88\n jump\t// in\n tag_174:\n /* \"#utility.yul\":5625:5654 */\n tag_175\n /* \"#utility.yul\":5647:5653 */\n dup2\n /* \"#utility.yul\":5625:5654 */\n tag_76\n jump\t// in\n tag_175:\n /* \"#utility.yul\":5620:5623 */\n dup5\n /* \"#utility.yul\":5616:5655 */\n add\n /* \"#utility.yul\":5609:5655 */\n swap2\n pop\n /* \"#utility.yul\":5378:5661 */\n pop\n /* \"#utility.yul\":5288:5661 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5667:5976 */\n tag_28:\n /* \"#utility.yul\":5778:5782 */\n 0x00\n /* \"#utility.yul\":5816:5818 */\n 0x20\n /* \"#utility.yul\":5805:5814 */\n dup3\n /* \"#utility.yul\":5801:5819 */\n add\n /* \"#utility.yul\":5793:5819 */\n swap1\n pop\n /* \"#utility.yul\":5865:5874 */\n dup2\n /* \"#utility.yul\":5859:5863 */\n dup2\n /* \"#utility.yul\":5855:5875 */\n sub\n /* \"#utility.yul\":5851:5852 */\n 0x00\n /* \"#utility.yul\":5840:5849 */\n dup4\n /* \"#utility.yul\":5836:5853 */\n add\n /* \"#utility.yul\":5829:5876 */\n mstore\n /* \"#utility.yul\":5893:5969 */\n tag_177\n /* \"#utility.yul\":5964:5968 */\n dup2\n /* \"#utility.yul\":5955:5961 */\n dup5\n /* \"#utility.yul\":5893:5969 */\n tag_89\n jump\t// in\n tag_177:\n /* \"#utility.yul\":5885:5969 */\n swap1\n pop\n /* \"#utility.yul\":5667:5976 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5982:6059 */\n tag_90:\n /* \"#utility.yul\":6019:6026 */\n 0x00\n /* \"#utility.yul\":6048:6053 */\n dup2\n /* \"#utility.yul\":6037:6053 */\n swap1\n pop\n /* \"#utility.yul\":5982:6059 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6065:6187 */\n tag_91:\n /* \"#utility.yul\":6138:6162 */\n tag_180\n /* \"#utility.yul\":6156:6161 */\n dup2\n /* \"#utility.yul\":6138:6162 */\n tag_90\n jump\t// in\n tag_180:\n /* \"#utility.yul\":6131:6136 */\n dup2\n /* \"#utility.yul\":6128:6163 */\n eq\n /* \"#utility.yul\":6118:6181 */\n tag_181\n jumpi\n /* \"#utility.yul\":6177:6178 */\n 0x00\n /* \"#utility.yul\":6174:6175 */\n dup1\n /* \"#utility.yul\":6167:6179 */\n revert\n /* \"#utility.yul\":6118:6181 */\n tag_181:\n /* \"#utility.yul\":6065:6187 */\n pop\n jump\t// out\n /* \"#utility.yul\":6193:6336 */\n tag_92:\n /* \"#utility.yul\":6250:6255 */\n 0x00\n /* \"#utility.yul\":6281:6287 */\n dup2\n /* \"#utility.yul\":6275:6288 */\n mload\n /* \"#utility.yul\":6266:6288 */\n swap1\n pop\n /* \"#utility.yul\":6297:6330 */\n tag_183\n /* \"#utility.yul\":6324:6329 */\n dup2\n /* \"#utility.yul\":6297:6330 */\n tag_91\n jump\t// in\n tag_183:\n /* \"#utility.yul\":6193:6336 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6342:6693 */\n tag_32:\n /* \"#utility.yul\":6412:6418 */\n 0x00\n /* \"#utility.yul\":6461:6463 */\n 0x20\n /* \"#utility.yul\":6449:6458 */\n dup3\n /* \"#utility.yul\":6440:6447 */\n dup5\n /* \"#utility.yul\":6436:6459 */\n sub\n /* \"#utility.yul\":6432:6464 */\n slt\n /* \"#utility.yul\":6429:6548 */\n iszero\n tag_185\n jumpi\n /* \"#utility.yul\":6467:6546 */\n tag_186\n tag_72\n jump\t// in\n tag_186:\n /* \"#utility.yul\":6429:6548 */\n tag_185:\n /* \"#utility.yul\":6587:6588 */\n 0x00\n /* \"#utility.yul\":6612:6676 */\n tag_187\n /* \"#utility.yul\":6668:6675 */\n dup5\n /* \"#utility.yul\":6659:6665 */\n dup3\n /* \"#utility.yul\":6648:6657 */\n dup6\n /* \"#utility.yul\":6644:6666 */\n add\n /* \"#utility.yul\":6612:6676 */\n tag_92\n jump\t// in\n tag_187:\n /* \"#utility.yul\":6602:6676 */\n swap2\n pop\n /* \"#utility.yul\":6558:6686 */\n pop\n /* \"#utility.yul\":6342:6693 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6699:6817 */\n tag_93:\n /* \"#utility.yul\":6786:6810 */\n tag_189\n /* \"#utility.yul\":6804:6809 */\n dup2\n /* \"#utility.yul\":6786:6810 */\n tag_90\n jump\t// in\n tag_189:\n /* \"#utility.yul\":6781:6784 */\n dup3\n /* \"#utility.yul\":6774:6811 */\n mstore\n /* \"#utility.yul\":6699:6817 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6823:6916 */\n tag_94:\n /* \"#utility.yul\":6859:6866 */\n 0x00\n /* \"#utility.yul\":6899:6909 */\n 0xffffffff\n /* \"#utility.yul\":6892:6897 */\n dup3\n /* \"#utility.yul\":6888:6910 */\n and\n /* \"#utility.yul\":6877:6910 */\n swap1\n pop\n /* \"#utility.yul\":6823:6916 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6922:7037 */\n tag_95:\n /* \"#utility.yul\":7007:7030 */\n tag_192\n /* \"#utility.yul\":7024:7029 */\n dup2\n /* \"#utility.yul\":7007:7030 */\n tag_94\n jump\t// in\n tag_192:\n /* \"#utility.yul\":7002:7005 */\n dup3\n /* \"#utility.yul\":6995:7031 */\n mstore\n /* \"#utility.yul\":6922:7037 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7043:7584 */\n tag_34:\n /* \"#utility.yul\":7214:7218 */\n 0x00\n /* \"#utility.yul\":7252:7255 */\n 0x80\n /* \"#utility.yul\":7241:7250 */\n dup3\n /* \"#utility.yul\":7237:7256 */\n add\n /* \"#utility.yul\":7229:7256 */\n swap1\n pop\n /* \"#utility.yul\":7266:7335 */\n tag_194\n /* \"#utility.yul\":7332:7333 */\n 0x00\n /* \"#utility.yul\":7321:7330 */\n dup4\n /* \"#utility.yul\":7317:7334 */\n add\n /* \"#utility.yul\":7308:7314 */\n dup8\n /* \"#utility.yul\":7266:7335 */\n tag_70\n jump\t// in\n tag_194:\n /* \"#utility.yul\":7345:7417 */\n tag_195\n /* \"#utility.yul\":7413:7415 */\n 0x20\n /* \"#utility.yul\":7402:7411 */\n dup4\n /* \"#utility.yul\":7398:7416 */\n add\n /* \"#utility.yul\":7389:7395 */\n dup7\n /* \"#utility.yul\":7345:7417 */\n tag_93\n jump\t// in\n tag_195:\n /* \"#utility.yul\":7427:7497 */\n tag_196\n /* \"#utility.yul\":7493:7495 */\n 0x40\n /* \"#utility.yul\":7482:7491 */\n dup4\n /* \"#utility.yul\":7478:7496 */\n add\n /* \"#utility.yul\":7469:7475 */\n dup6\n /* \"#utility.yul\":7427:7497 */\n tag_95\n jump\t// in\n tag_196:\n /* \"#utility.yul\":7507:7577 */\n tag_197\n /* \"#utility.yul\":7573:7575 */\n 0x60\n /* \"#utility.yul\":7562:7571 */\n dup4\n /* \"#utility.yul\":7558:7576 */\n add\n /* \"#utility.yul\":7549:7555 */\n dup5\n /* \"#utility.yul\":7507:7577 */\n tag_95\n jump\t// in\n tag_197:\n /* \"#utility.yul\":7043:7584 */\n swap6\n swap5\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7590:7710 */\n tag_96:\n /* \"#utility.yul\":7662:7685 */\n tag_199\n /* \"#utility.yul\":7679:7684 */\n dup2\n /* \"#utility.yul\":7662:7685 */\n tag_94\n jump\t// in\n tag_199:\n /* \"#utility.yul\":7655:7660 */\n dup2\n /* \"#utility.yul\":7652:7686 */\n eq\n /* \"#utility.yul\":7642:7704 */\n tag_200\n jumpi\n /* \"#utility.yul\":7700:7701 */\n 0x00\n /* \"#utility.yul\":7697:7698 */\n dup1\n /* \"#utility.yul\":7690:7702 */\n revert\n /* \"#utility.yul\":7642:7704 */\n tag_200:\n /* \"#utility.yul\":7590:7710 */\n pop\n jump\t// out\n /* \"#utility.yul\":7716:7857 */\n tag_97:\n /* \"#utility.yul\":7772:7777 */\n 0x00\n /* \"#utility.yul\":7803:7809 */\n dup2\n /* \"#utility.yul\":7797:7810 */\n mload\n /* \"#utility.yul\":7788:7810 */\n swap1\n pop\n /* \"#utility.yul\":7819:7851 */\n tag_202\n /* \"#utility.yul\":7845:7850 */\n dup2\n /* \"#utility.yul\":7819:7851 */\n tag_96\n jump\t// in\n tag_202:\n /* \"#utility.yul\":7716:7857 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7863:8212 */\n tag_38:\n /* \"#utility.yul\":7932:7938 */\n 0x00\n /* \"#utility.yul\":7981:7983 */\n 0x20\n /* \"#utility.yul\":7969:7978 */\n dup3\n /* \"#utility.yul\":7960:7967 */\n dup5\n /* \"#utility.yul\":7956:7979 */\n sub\n /* \"#utility.yul\":7952:7984 */\n slt\n /* \"#utility.yul\":7949:8068 */\n iszero\n tag_204\n jumpi\n /* \"#utility.yul\":7987:8066 */\n tag_205\n tag_72\n jump\t// in\n tag_205:\n /* \"#utility.yul\":7949:8068 */\n tag_204:\n /* \"#utility.yul\":8107:8108 */\n 0x00\n /* \"#utility.yul\":8132:8195 */\n tag_206\n /* \"#utility.yul\":8187:8194 */\n dup5\n /* \"#utility.yul\":8178:8184 */\n dup3\n /* \"#utility.yul\":8167:8176 */\n dup6\n /* \"#utility.yul\":8163:8185 */\n add\n /* \"#utility.yul\":8132:8195 */\n tag_97\n jump\t// in\n tag_206:\n /* \"#utility.yul\":8122:8195 */\n swap2\n pop\n /* \"#utility.yul\":8078:8205 */\n pop\n /* \"#utility.yul\":7863:8212 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8218:8436 */\n tag_40:\n /* \"#utility.yul\":8309:8313 */\n 0x00\n /* \"#utility.yul\":8347:8349 */\n 0x20\n /* \"#utility.yul\":8336:8345 */\n dup3\n /* \"#utility.yul\":8332:8350 */\n add\n /* \"#utility.yul\":8324:8350 */\n swap1\n pop\n /* \"#utility.yul\":8360:8429 */\n tag_208\n /* \"#utility.yul\":8426:8427 */\n 0x00\n /* \"#utility.yul\":8415:8424 */\n dup4\n /* \"#utility.yul\":8411:8428 */\n add\n /* \"#utility.yul\":8402:8408 */\n dup5\n /* \"#utility.yul\":8360:8429 */\n tag_95\n jump\t// in\n tag_208:\n /* \"#utility.yul\":8218:8436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8442:8622 */\n tag_98:\n /* \"#utility.yul\":8490:8567 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":8487:8488 */\n 0x00\n /* \"#utility.yul\":8480:8568 */\n mstore\n /* \"#utility.yul\":8587:8591 */\n 0x21\n /* \"#utility.yul\":8584:8585 */\n 0x04\n /* \"#utility.yul\":8577:8592 */\n mstore\n /* \"#utility.yul\":8611:8615 */\n 0x24\n /* \"#utility.yul\":8608:8609 */\n 0x00\n /* \"#utility.yul\":8601:8616 */\n revert\n /* \"#utility.yul\":8628:8747 */\n tag_99:\n /* \"#utility.yul\":8715:8716 */\n 0x07\n /* \"#utility.yul\":8708:8713 */\n dup2\n /* \"#utility.yul\":8705:8717 */\n lt\n /* \"#utility.yul\":8695:8741 */\n tag_211\n jumpi\n /* \"#utility.yul\":8721:8739 */\n tag_212\n tag_98\n jump\t// in\n tag_212:\n /* \"#utility.yul\":8695:8741 */\n tag_211:\n /* \"#utility.yul\":8628:8747 */\n pop\n jump\t// out\n /* \"#utility.yul\":8753:8892 */\n tag_100:\n /* \"#utility.yul\":8804:8811 */\n 0x00\n /* \"#utility.yul\":8833:8838 */\n dup2\n /* \"#utility.yul\":8822:8838 */\n swap1\n pop\n /* \"#utility.yul\":8839:8886 */\n tag_214\n /* \"#utility.yul\":8880:8885 */\n dup3\n /* \"#utility.yul\":8839:8886 */\n tag_99\n jump\t// in\n tag_214:\n /* \"#utility.yul\":8753:8892 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8898:9037 */\n tag_101:\n /* \"#utility.yul\":8960:8969 */\n 0x00\n /* \"#utility.yul\":8993:9031 */\n tag_216\n /* \"#utility.yul\":9025:9030 */\n dup3\n /* \"#utility.yul\":8993:9031 */\n tag_100\n jump\t// in\n tag_216:\n /* \"#utility.yul\":8980:9031 */\n swap1\n pop\n /* \"#utility.yul\":8898:9037 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9043:9198 */\n tag_102:\n /* \"#utility.yul\":9142:9191 */\n tag_218\n /* \"#utility.yul\":9185:9190 */\n dup2\n /* \"#utility.yul\":9142:9191 */\n tag_101\n jump\t// in\n tag_218:\n /* \"#utility.yul\":9137:9140 */\n dup3\n /* \"#utility.yul\":9130:9192 */\n mstore\n /* \"#utility.yul\":9043:9198 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9204:9666 */\n tag_45:\n /* \"#utility.yul\":9363:9367 */\n 0x00\n /* \"#utility.yul\":9401:9403 */\n 0x60\n /* \"#utility.yul\":9390:9399 */\n dup3\n /* \"#utility.yul\":9386:9404 */\n add\n /* \"#utility.yul\":9378:9404 */\n swap1\n pop\n /* \"#utility.yul\":9414:9483 */\n tag_220\n /* \"#utility.yul\":9480:9481 */\n 0x00\n /* \"#utility.yul\":9469:9478 */\n dup4\n /* \"#utility.yul\":9465:9482 */\n add\n /* \"#utility.yul\":9456:9462 */\n dup7\n /* \"#utility.yul\":9414:9483 */\n tag_95\n jump\t// in\n tag_220:\n /* \"#utility.yul\":9493:9565 */\n tag_221\n /* \"#utility.yul\":9561:9563 */\n 0x20\n /* \"#utility.yul\":9550:9559 */\n dup4\n /* \"#utility.yul\":9546:9564 */\n add\n /* \"#utility.yul\":9537:9543 */\n dup6\n /* \"#utility.yul\":9493:9565 */\n tag_68\n jump\t// in\n tag_221:\n /* \"#utility.yul\":9575:9659 */\n tag_222\n /* \"#utility.yul\":9655:9657 */\n 0x40\n /* \"#utility.yul\":9644:9653 */\n dup4\n /* \"#utility.yul\":9640:9658 */\n add\n /* \"#utility.yul\":9631:9637 */\n dup5\n /* \"#utility.yul\":9575:9659 */\n tag_102\n jump\t// in\n tag_222:\n /* \"#utility.yul\":9204:9666 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9672:9750 */\n tag_103:\n /* \"#utility.yul\":9710:9717 */\n 0x00\n /* \"#utility.yul\":9739:9744 */\n dup2\n /* \"#utility.yul\":9728:9744 */\n swap1\n pop\n /* \"#utility.yul\":9672:9750 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9756:9909 */\n tag_104:\n /* \"#utility.yul\":9859:9902 */\n tag_225\n /* \"#utility.yul\":9878:9901 */\n tag_226\n /* \"#utility.yul\":9895:9900 */\n dup3\n /* \"#utility.yul\":9878:9901 */\n tag_84\n jump\t// in\n tag_226:\n /* \"#utility.yul\":9859:9902 */\n tag_103\n jump\t// in\n tag_225:\n /* \"#utility.yul\":9854:9857 */\n dup3\n /* \"#utility.yul\":9847:9903 */\n mstore\n /* \"#utility.yul\":9756:9909 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9915:10064 */\n tag_105:\n /* \"#utility.yul\":9951:9958 */\n 0x00\n /* \"#utility.yul\":9991:10057 */\n 0xff00000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":9984:9989 */\n dup3\n /* \"#utility.yul\":9980:10058 */\n and\n /* \"#utility.yul\":9969:10058 */\n swap1\n pop\n /* \"#utility.yul\":9915:10064 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":10070:10148 */\n tag_106:\n /* \"#utility.yul\":10108:10115 */\n 0x00\n /* \"#utility.yul\":10137:10142 */\n dup2\n /* \"#utility.yul\":10126:10142 */\n swap1\n pop\n /* \"#utility.yul\":10070:10148 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":10154:10307 */\n tag_107:\n /* \"#utility.yul\":10257:10300 */\n tag_230\n /* \"#utility.yul\":10276:10299 */\n tag_231\n /* \"#utility.yul\":10293:10298 */\n dup3\n /* \"#utility.yul\":10276:10299 */\n tag_105\n jump\t// in\n tag_231:\n /* \"#utility.yul\":10257:10300 */\n tag_106\n jump\t// in\n tag_230:\n /* \"#utility.yul\":10252:10255 */\n dup3\n /* \"#utility.yul\":10245:10301 */\n mstore\n /* \"#utility.yul\":10154:10307 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10313:10460 */\n tag_108:\n /* \"#utility.yul\":10414:10425 */\n 0x00\n /* \"#utility.yul\":10451:10454 */\n dup2\n /* \"#utility.yul\":10436:10454 */\n swap1\n pop\n /* \"#utility.yul\":10313:10460 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10466:10852 */\n tag_109:\n /* \"#utility.yul\":10570:10573 */\n 0x00\n /* \"#utility.yul\":10598:10636 */\n tag_234\n /* \"#utility.yul\":10630:10635 */\n dup3\n /* \"#utility.yul\":10598:10636 */\n tag_86\n jump\t// in\n tag_234:\n /* \"#utility.yul\":10652:10740 */\n tag_235\n /* \"#utility.yul\":10733:10739 */\n dup2\n /* \"#utility.yul\":10728:10731 */\n dup6\n /* \"#utility.yul\":10652:10740 */\n tag_108\n jump\t// in\n tag_235:\n /* \"#utility.yul\":10645:10740 */\n swap4\n pop\n /* \"#utility.yul\":10749:10814 */\n tag_236\n /* \"#utility.yul\":10807:10813 */\n dup2\n /* \"#utility.yul\":10802:10805 */\n dup6\n /* \"#utility.yul\":10795:10799 */\n 0x20\n /* \"#utility.yul\":10788:10793 */\n dup7\n /* \"#utility.yul\":10784:10800 */\n add\n /* \"#utility.yul\":10749:10814 */\n tag_88\n jump\t// in\n tag_236:\n /* \"#utility.yul\":10839:10845 */\n dup1\n /* \"#utility.yul\":10834:10837 */\n dup5\n /* \"#utility.yul\":10830:10846 */\n add\n /* \"#utility.yul\":10823:10846 */\n swap2\n pop\n /* \"#utility.yul\":10574:10852 */\n pop\n /* \"#utility.yul\":10466:10852 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10858:11401 */\n tag_53:\n /* \"#utility.yul\":11040:11043 */\n 0x00\n /* \"#utility.yul\":11055:11128 */\n tag_238\n /* \"#utility.yul\":11124:11127 */\n dup3\n /* \"#utility.yul\":11115:11121 */\n dup7\n /* \"#utility.yul\":11055:11128 */\n tag_104\n jump\t// in\n tag_238:\n /* \"#utility.yul\":11153:11154 */\n 0x02\n /* \"#utility.yul\":11148:11151 */\n dup3\n /* \"#utility.yul\":11144:11155 */\n add\n /* \"#utility.yul\":11137:11155 */\n swap2\n pop\n /* \"#utility.yul\":11165:11238 */\n tag_239\n /* \"#utility.yul\":11234:11237 */\n dup3\n /* \"#utility.yul\":11225:11231 */\n dup6\n /* \"#utility.yul\":11165:11238 */\n tag_107\n jump\t// in\n tag_239:\n /* \"#utility.yul\":11263:11264 */\n 0x01\n /* \"#utility.yul\":11258:11261 */\n dup3\n /* \"#utility.yul\":11254:11265 */\n add\n /* \"#utility.yul\":11247:11265 */\n swap2\n pop\n /* \"#utility.yul\":11282:11375 */\n tag_240\n /* \"#utility.yul\":11371:11374 */\n dup3\n /* \"#utility.yul\":11362:11368 */\n dup5\n /* \"#utility.yul\":11282:11375 */\n tag_109\n jump\t// in\n tag_240:\n /* \"#utility.yul\":11275:11375 */\n swap2\n pop\n /* \"#utility.yul\":11392:11395 */\n dup2\n /* \"#utility.yul\":11385:11395 */\n swap1\n pop\n /* \"#utility.yul\":10858:11401 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11407:11834 */\n tag_59:\n /* \"#utility.yul\":11583:11586 */\n 0x00\n /* \"#utility.yul\":11605:11698 */\n tag_242\n /* \"#utility.yul\":11694:11697 */\n dup3\n /* \"#utility.yul\":11685:11691 */\n dup6\n /* \"#utility.yul\":11605:11698 */\n tag_109\n jump\t// in\n tag_242:\n /* \"#utility.yul\":11598:11698 */\n swap2\n pop\n /* \"#utility.yul\":11715:11808 */\n tag_243\n /* \"#utility.yul\":11804:11807 */\n dup3\n /* \"#utility.yul\":11795:11801 */\n dup5\n /* \"#utility.yul\":11715:11808 */\n tag_109\n jump\t// in\n tag_243:\n /* \"#utility.yul\":11708:11808 */\n swap2\n pop\n /* \"#utility.yul\":11825:11828 */\n dup2\n /* \"#utility.yul\":11818:11828 */\n swap1\n pop\n /* \"#utility.yul\":11407:11834 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11840:12020 */\n tag_110:\n /* \"#utility.yul\":11888:11965 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":11885:11886 */\n 0x00\n /* \"#utility.yul\":11878:11966 */\n mstore\n /* \"#utility.yul\":11985:11989 */\n 0x11\n /* \"#utility.yul\":11982:11983 */\n 0x04\n /* \"#utility.yul\":11975:11990 */\n mstore\n /* \"#utility.yul\":12009:12013 */\n 0x24\n /* \"#utility.yul\":12006:12007 */\n 0x00\n /* \"#utility.yul\":11999:12014 */\n revert\n /* \"#utility.yul\":12026:12436 */\n tag_62:\n /* \"#utility.yul\":12066:12073 */\n 0x00\n /* \"#utility.yul\":12089:12109 */\n tag_246\n /* \"#utility.yul\":12107:12108 */\n dup3\n /* \"#utility.yul\":12089:12109 */\n tag_67\n jump\t// in\n tag_246:\n /* \"#utility.yul\":12084:12109 */\n swap2\n pop\n /* \"#utility.yul\":12123:12143 */\n tag_247\n /* \"#utility.yul\":12141:12142 */\n dup4\n /* \"#utility.yul\":12123:12143 */\n tag_67\n jump\t// in\n tag_247:\n /* \"#utility.yul\":12118:12143 */\n swap3\n pop\n /* \"#utility.yul\":12178:12179 */\n dup3\n /* \"#utility.yul\":12175:12176 */\n dup3\n /* \"#utility.yul\":12171:12180 */\n mul\n /* \"#utility.yul\":12200:12230 */\n tag_248\n /* \"#utility.yul\":12218:12229 */\n dup2\n /* \"#utility.yul\":12200:12230 */\n tag_67\n jump\t// in\n tag_248:\n /* \"#utility.yul\":12189:12230 */\n swap2\n pop\n /* \"#utility.yul\":12379:12380 */\n dup3\n /* \"#utility.yul\":12370:12377 */\n dup3\n /* \"#utility.yul\":12366:12381 */\n div\n /* \"#utility.yul\":12363:12364 */\n dup5\n /* \"#utility.yul\":12360:12382 */\n eq\n /* \"#utility.yul\":12340:12341 */\n dup4\n /* \"#utility.yul\":12333:12342 */\n iszero\n /* \"#utility.yul\":12313:12396 */\n or\n /* \"#utility.yul\":12290:12429 */\n tag_249\n jumpi\n /* \"#utility.yul\":12409:12427 */\n tag_250\n tag_110\n jump\t// in\n tag_250:\n /* \"#utility.yul\":12290:12429 */\n tag_249:\n /* \"#utility.yul\":12074:12436 */\n pop\n /* \"#utility.yul\":12026:12436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12442:12635 */\n tag_64:\n /* \"#utility.yul\":12481:12484 */\n 0x00\n /* \"#utility.yul\":12500:12519 */\n tag_252\n /* \"#utility.yul\":12517:12518 */\n dup3\n /* \"#utility.yul\":12500:12519 */\n tag_69\n jump\t// in\n tag_252:\n /* \"#utility.yul\":12495:12519 */\n swap2\n pop\n /* \"#utility.yul\":12533:12552 */\n tag_253\n /* \"#utility.yul\":12550:12551 */\n dup4\n /* \"#utility.yul\":12533:12552 */\n tag_69\n jump\t// in\n tag_253:\n /* \"#utility.yul\":12528:12552 */\n swap3\n pop\n /* \"#utility.yul\":12575:12576 */\n dup3\n /* \"#utility.yul\":12572:12573 */\n dup3\n /* \"#utility.yul\":12568:12577 */\n add\n /* \"#utility.yul\":12561:12577 */\n swap1\n pop\n /* \"#utility.yul\":12598:12604 */\n 0xffff\n /* \"#utility.yul\":12593:12596 */\n dup2\n /* \"#utility.yul\":12590:12605 */\n gt\n /* \"#utility.yul\":12587:12628 */\n iszero\n tag_254\n jumpi\n /* \"#utility.yul\":12608:12626 */\n tag_255\n tag_110\n jump\t// in\n tag_255:\n /* \"#utility.yul\":12587:12628 */\n tag_254:\n /* \"#utility.yul\":12442:12635 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12641:13048 */\n tag_66:\n /* \"#utility.yul\":12797:12800 */\n 0x00\n /* \"#utility.yul\":12812:12885 */\n tag_257\n /* \"#utility.yul\":12881:12884 */\n dup3\n /* \"#utility.yul\":12872:12878 */\n dup6\n /* \"#utility.yul\":12812:12885 */\n tag_104\n jump\t// in\n tag_257:\n /* \"#utility.yul\":12910:12911 */\n 0x02\n /* \"#utility.yul\":12905:12908 */\n dup3\n /* \"#utility.yul\":12901:12912 */\n add\n /* \"#utility.yul\":12894:12912 */\n swap2\n pop\n /* \"#utility.yul\":12929:13022 */\n tag_258\n /* \"#utility.yul\":13018:13021 */\n dup3\n /* \"#utility.yul\":13009:13015 */\n dup5\n /* \"#utility.yul\":12929:13022 */\n tag_109\n jump\t// in\n tag_258:\n /* \"#utility.yul\":12922:13022 */\n swap2\n pop\n /* \"#utility.yul\":13039:13042 */\n dup2\n /* \"#utility.yul\":13032:13042 */\n swap1\n pop\n /* \"#utility.yul\":12641:13048 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220bdad4453aa6d78c958487815d182ffb6eaf3664add23e66e161304f251fc382864736f6c63430008110033\n}\n", + "assembly": " /* \"main.sol\":3607:3899 contract ReferendaAutoUpgradeDemoV2 is ReferendaAutoUpgradeDemo {... */\n mstore(0x40, 0x80)\n /* \"main.sol\":3677:3815 constructor(string memory trackName, bytes2 pSetStorageCallIndex)... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\ntag_2:\n /* \"main.sol\":3776:3785 trackName */\n dup2\n /* \"main.sol\":3787:3807 pSetStorageCallIndex */\n dup2\n /* \"main.sol\":834:854 pSetStorageCallIndex */\n dup1\n /* \"main.sol\":812:831 setStorageCallIndex */\n 0x00\n 0x02\n /* \"main.sol\":812:854 setStorageCallIndex = pSetStorageCallIndex */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffff\n mul\n not\n and\n swap1\n dup4\n 0xf0\n shr\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":1161:1182 getTrackId(trackName) */\n tag_7\n /* \"main.sol\":1172:1181 trackName */\n dup3\n /* \"main.sol\":1161:1171 getTrackId */\n shl(0x20, tag_8)\n /* \"main.sol\":1161:1182 getTrackId(trackName) */\n 0x20\n shr\n jump\t// in\ntag_7:\n /* \"main.sol\":1147:1158 rootTrackId */\n 0x00\n dup1\n /* \"main.sol\":1147:1182 rootTrackId = getTrackId(trackName) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffff\n mul\n not\n and\n swap1\n dup4\n 0xffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":736:1189 constructor(string memory trackName, bytes2 pSetStorageCallIndex) {... */\n pop\n pop\n /* \"main.sol\":3677:3815 constructor(string memory trackName, bytes2 pSetStorageCallIndex)... */\n pop\n pop\n /* \"main.sol\":3607:3899 contract ReferendaAutoUpgradeDemoV2 is ReferendaAutoUpgradeDemo {... */\n jump(tag_10)\n /* \"main.sol\":1319:1946 function getTrackId(string memory trackName)... */\ntag_8:\n /* \"main.sol\":1411:1417 uint16 */\n 0x00\n /* \"main.sol\":1433:1457 uint16[] memory trackIds */\n dup1\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":1460:1487 REFERENDA_CONTRACT.trackIds */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xcc17da14\n /* \"main.sol\":1460:1489 REFERENDA_CONTRACT.trackIds() */\n mload(0x40)\n dup2\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup7\n gas\n staticcall\n iszero\n dup1\n iszero\n tag_13\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_13:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n 0x00\n dup3\n returndatacopy\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_14\n swap2\n swap1\n tag_15\n jump\t// in\ntag_14:\n /* \"main.sol\":1433:1489 uint16[] memory trackIds = REFERENDA_CONTRACT.trackIds() */\n swap1\n pop\n /* \"main.sol\":1504:1513 uint256 i */\n 0x00\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\ntag_16:\n /* \"main.sol\":1523:1531 trackIds */\n dup2\n /* \"main.sol\":1523:1538 trackIds.length */\n mload\n /* \"main.sol\":1519:1520 i */\n dup2\n /* \"main.sol\":1519:1538 i < trackIds.length */\n lt\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\n iszero\n tag_17\n jumpi\n /* \"main.sol\":1559:1590 Referenda.TrackInfo memory info */\n 0x00\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":1593:1621 REFERENDA_CONTRACT.trackInfo */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x34038146\n /* \"main.sol\":1639:1647 trackIds */\n dup5\n /* \"main.sol\":1648:1649 i */\n dup5\n /* \"main.sol\":1639:1650 trackIds[i] */\n dup2\n mload\n dup2\n lt\n tag_19\n jumpi\n tag_20\n tag_21\n jump\t// in\ntag_20:\ntag_19:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"main.sol\":1593:1664 REFERENDA_CONTRACT.trackInfo(... */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_22\n swap2\n swap1\n tag_23\n jump\t// in\ntag_22:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup7\n gas\n staticcall\n iszero\n dup1\n iszero\n tag_25\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_25:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n 0x00\n dup3\n returndatacopy\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_26\n swap2\n swap1\n tag_27\n jump\t// in\ntag_26:\n /* \"main.sol\":1559:1664 Referenda.TrackInfo memory info = REFERENDA_CONTRACT.trackInfo(... */\n swap1\n pop\n /* \"main.sol\":1788:1797 trackName */\n dup5\n /* \"main.sol\":1770:1799 abi.encodePacked((trackName)) */\n add(0x20, mload(0x40))\n tag_28\n swap2\n swap1\n tag_29\n jump\t// in\ntag_28:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"main.sol\":1760:1800 keccak256(abi.encodePacked((trackName))) */\n dup1\n mload\n swap1\n 0x20\n add\n keccak256\n /* \"main.sol\":1728:1732 info */\n dup2\n /* \"main.sol\":1728:1737 info.name */\n 0x00\n add\n mload\n /* \"main.sol\":1710:1739 abi.encodePacked((info.name)) */\n add(0x20, mload(0x40))\n tag_30\n swap2\n swap1\n tag_29\n jump\t// in\ntag_30:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"main.sol\":1700:1740 keccak256(abi.encodePacked((info.name))) */\n dup1\n mload\n swap1\n 0x20\n add\n keccak256\n /* \"main.sol\":1700:1800 keccak256(abi.encodePacked((info.name))) ==... */\n sub\n /* \"main.sol\":1679:1891 if (... */\n tag_31\n jumpi\n /* \"main.sol\":1865:1873 trackIds */\n dup3\n /* \"main.sol\":1874:1875 i */\n dup3\n /* \"main.sol\":1865:1876 trackIds[i] */\n dup2\n mload\n dup2\n lt\n tag_32\n jumpi\n tag_33\n tag_21\n jump\t// in\ntag_33:\ntag_32:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"main.sol\":1858:1876 return trackIds[i] */\n swap4\n pop\n pop\n pop\n pop\n jump(tag_11)\n /* \"main.sol\":1679:1891 if (... */\ntag_31:\n /* \"main.sol\":1545:1901 {... */\n pop\n /* \"main.sol\":1540:1543 i++ */\n dup1\n dup1\n tag_34\n swap1\n tag_35\n jump\t// in\ntag_34:\n swap2\n pop\n pop\n /* \"main.sol\":1499:1901 for (uint256 i = 0; i < trackIds.length; i++) {... */\n jump(tag_16)\ntag_17:\n pop\n /* \"main.sol\":1910:1939 revert(\"Couldn't find track\") */\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_36\n swap1\n tag_37\n jump\t// in\ntag_36:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"main.sol\":1319:1946 function getTrackId(string memory trackName)... */\ntag_11:\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:82 */\ntag_38:\n /* \"#utility.yul\":40:46 */\n 0x00\n /* \"#utility.yul\":73:75 */\n 0x40\n /* \"#utility.yul\":67:76 */\n mload\n /* \"#utility.yul\":57:76 */\n swap1\n pop\n /* \"#utility.yul\":7:82 */\n swap1\n jump\t// out\n /* \"#utility.yul\":88:205 */\ntag_39:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\ntag_40:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:451 */\ntag_41:\n /* \"#utility.yul\":443:444 */\n 0x00\n /* \"#utility.yul\":440:441 */\n dup1\n /* \"#utility.yul\":433:445 */\n revert\n /* \"#utility.yul\":457:574 */\ntag_42:\n /* \"#utility.yul\":566:567 */\n 0x00\n /* \"#utility.yul\":563:564 */\n dup1\n /* \"#utility.yul\":556:568 */\n revert\n /* \"#utility.yul\":580:682 */\ntag_43:\n /* \"#utility.yul\":621:627 */\n 0x00\n /* \"#utility.yul\":672:674 */\n 0x1f\n /* \"#utility.yul\":668:675 */\n not\n /* \"#utility.yul\":663:665 */\n 0x1f\n /* \"#utility.yul\":656:661 */\n dup4\n /* \"#utility.yul\":652:666 */\n add\n /* \"#utility.yul\":648:676 */\n and\n /* \"#utility.yul\":638:676 */\n swap1\n pop\n /* \"#utility.yul\":580:682 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":688:868 */\ntag_44:\n /* \"#utility.yul\":736:813 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":733:734 */\n 0x00\n /* \"#utility.yul\":726:814 */\n mstore\n /* \"#utility.yul\":833:837 */\n 0x41\n /* \"#utility.yul\":830:831 */\n 0x04\n /* \"#utility.yul\":823:838 */\n mstore\n /* \"#utility.yul\":857:861 */\n 0x24\n /* \"#utility.yul\":854:855 */\n 0x00\n /* \"#utility.yul\":847:862 */\n revert\n /* \"#utility.yul\":874:1155 */\ntag_45:\n /* \"#utility.yul\":957:984 */\n tag_87\n /* \"#utility.yul\":979:983 */\n dup3\n /* \"#utility.yul\":957:984 */\n tag_43\n jump\t// in\ntag_87:\n /* \"#utility.yul\":949:955 */\n dup2\n /* \"#utility.yul\":945:985 */\n add\n /* \"#utility.yul\":1087:1093 */\n dup2\n /* \"#utility.yul\":1075:1085 */\n dup2\n /* \"#utility.yul\":1072:1094 */\n lt\n /* \"#utility.yul\":1051:1069 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1039:1049 */\n dup3\n /* \"#utility.yul\":1036:1070 */\n gt\n /* \"#utility.yul\":1033:1095 */\n or\n /* \"#utility.yul\":1030:1118 */\n iszero\n tag_88\n jumpi\n /* \"#utility.yul\":1098:1116 */\n tag_89\n tag_44\n jump\t// in\ntag_89:\n /* \"#utility.yul\":1030:1118 */\ntag_88:\n /* \"#utility.yul\":1138:1148 */\n dup1\n /* \"#utility.yul\":1134:1136 */\n 0x40\n /* \"#utility.yul\":1127:1149 */\n mstore\n /* \"#utility.yul\":917:1155 */\n pop\n /* \"#utility.yul\":874:1155 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1161:1290 */\ntag_46:\n /* \"#utility.yul\":1195:1201 */\n 0x00\n /* \"#utility.yul\":1222:1242 */\n tag_91\n tag_38\n jump\t// in\ntag_91:\n /* \"#utility.yul\":1212:1242 */\n swap1\n pop\n /* \"#utility.yul\":1251:1284 */\n tag_92\n /* \"#utility.yul\":1279:1283 */\n dup3\n /* \"#utility.yul\":1271:1277 */\n dup3\n /* \"#utility.yul\":1251:1284 */\n tag_45\n jump\t// in\ntag_92:\n /* \"#utility.yul\":1161:1290 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1296:1604 */\ntag_47:\n /* \"#utility.yul\":1358:1362 */\n 0x00\n /* \"#utility.yul\":1448:1466 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1440:1446 */\n dup3\n /* \"#utility.yul\":1437:1467 */\n gt\n /* \"#utility.yul\":1434:1490 */\n iszero\n tag_94\n jumpi\n /* \"#utility.yul\":1470:1488 */\n tag_95\n tag_44\n jump\t// in\ntag_95:\n /* \"#utility.yul\":1434:1490 */\ntag_94:\n /* \"#utility.yul\":1508:1537 */\n tag_96\n /* \"#utility.yul\":1530:1536 */\n dup3\n /* \"#utility.yul\":1508:1537 */\n tag_43\n jump\t// in\ntag_96:\n /* \"#utility.yul\":1500:1537 */\n swap1\n pop\n /* \"#utility.yul\":1592:1596 */\n 0x20\n /* \"#utility.yul\":1586:1590 */\n dup2\n /* \"#utility.yul\":1582:1597 */\n add\n /* \"#utility.yul\":1574:1597 */\n swap1\n pop\n /* \"#utility.yul\":1296:1604 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1610:1856 */\ntag_48:\n /* \"#utility.yul\":1691:1692 */\n 0x00\n /* \"#utility.yul\":1701:1814 */\ntag_98:\n /* \"#utility.yul\":1715:1721 */\n dup4\n /* \"#utility.yul\":1712:1713 */\n dup2\n /* \"#utility.yul\":1709:1722 */\n lt\n /* \"#utility.yul\":1701:1814 */\n iszero\n tag_100\n jumpi\n /* \"#utility.yul\":1800:1801 */\n dup1\n /* \"#utility.yul\":1795:1798 */\n dup3\n /* \"#utility.yul\":1791:1802 */\n add\n /* \"#utility.yul\":1785:1803 */\n mload\n /* \"#utility.yul\":1781:1782 */\n dup2\n /* \"#utility.yul\":1776:1779 */\n dup5\n /* \"#utility.yul\":1772:1783 */\n add\n /* \"#utility.yul\":1765:1804 */\n mstore\n /* \"#utility.yul\":1737:1739 */\n 0x20\n /* \"#utility.yul\":1734:1735 */\n dup2\n /* \"#utility.yul\":1730:1740 */\n add\n /* \"#utility.yul\":1725:1740 */\n swap1\n pop\n /* \"#utility.yul\":1701:1814 */\n jump(tag_98)\ntag_100:\n /* \"#utility.yul\":1848:1849 */\n 0x00\n /* \"#utility.yul\":1839:1845 */\n dup5\n /* \"#utility.yul\":1834:1837 */\n dup5\n /* \"#utility.yul\":1830:1846 */\n add\n /* \"#utility.yul\":1823:1850 */\n mstore\n /* \"#utility.yul\":1672:1856 */\n pop\n /* \"#utility.yul\":1610:1856 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1862:2296 */\ntag_49:\n /* \"#utility.yul\":1951:1956 */\n 0x00\n /* \"#utility.yul\":1976:2042 */\n tag_102\n /* \"#utility.yul\":1992:2041 */\n tag_103\n /* \"#utility.yul\":2034:2040 */\n dup5\n /* \"#utility.yul\":1992:2041 */\n tag_47\n jump\t// in\ntag_103:\n /* \"#utility.yul\":1976:2042 */\n tag_46\n jump\t// in\ntag_102:\n /* \"#utility.yul\":1967:2042 */\n swap1\n pop\n /* \"#utility.yul\":2065:2071 */\n dup3\n /* \"#utility.yul\":2058:2063 */\n dup2\n /* \"#utility.yul\":2051:2072 */\n mstore\n /* \"#utility.yul\":2103:2107 */\n 0x20\n /* \"#utility.yul\":2096:2101 */\n dup2\n /* \"#utility.yul\":2092:2108 */\n add\n /* \"#utility.yul\":2141:2144 */\n dup5\n /* \"#utility.yul\":2132:2138 */\n dup5\n /* \"#utility.yul\":2127:2130 */\n dup5\n /* \"#utility.yul\":2123:2139 */\n add\n /* \"#utility.yul\":2120:2145 */\n gt\n /* \"#utility.yul\":2117:2229 */\n iszero\n tag_104\n jumpi\n /* \"#utility.yul\":2148:2227 */\n tag_105\n tag_42\n jump\t// in\ntag_105:\n /* \"#utility.yul\":2117:2229 */\ntag_104:\n /* \"#utility.yul\":2238:2290 */\n tag_106\n /* \"#utility.yul\":2283:2289 */\n dup5\n /* \"#utility.yul\":2278:2281 */\n dup3\n /* \"#utility.yul\":2273:2276 */\n dup6\n /* \"#utility.yul\":2238:2290 */\n tag_48\n jump\t// in\ntag_106:\n /* \"#utility.yul\":1957:2296 */\n pop\n /* \"#utility.yul\":1862:2296 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2316:2671 */\ntag_50:\n /* \"#utility.yul\":2383:2388 */\n 0x00\n /* \"#utility.yul\":2432:2435 */\n dup3\n /* \"#utility.yul\":2425:2429 */\n 0x1f\n /* \"#utility.yul\":2417:2423 */\n dup4\n /* \"#utility.yul\":2413:2430 */\n add\n /* \"#utility.yul\":2409:2436 */\n slt\n /* \"#utility.yul\":2399:2521 */\n tag_108\n jumpi\n /* \"#utility.yul\":2440:2519 */\n tag_109\n tag_41\n jump\t// in\ntag_109:\n /* \"#utility.yul\":2399:2521 */\ntag_108:\n /* \"#utility.yul\":2550:2556 */\n dup2\n /* \"#utility.yul\":2544:2557 */\n mload\n /* \"#utility.yul\":2575:2665 */\n tag_110\n /* \"#utility.yul\":2661:2664 */\n dup5\n /* \"#utility.yul\":2653:2659 */\n dup3\n /* \"#utility.yul\":2646:2650 */\n 0x20\n /* \"#utility.yul\":2638:2644 */\n dup7\n /* \"#utility.yul\":2634:2651 */\n add\n /* \"#utility.yul\":2575:2665 */\n tag_49\n jump\t// in\ntag_110:\n /* \"#utility.yul\":2566:2665 */\n swap2\n pop\n /* \"#utility.yul\":2389:2671 */\n pop\n /* \"#utility.yul\":2316:2671 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2677:2826 */\ntag_51:\n /* \"#utility.yul\":2713:2720 */\n 0x00\n /* \"#utility.yul\":2753:2819 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2746:2751 */\n dup3\n /* \"#utility.yul\":2742:2820 */\n and\n /* \"#utility.yul\":2731:2820 */\n swap1\n pop\n /* \"#utility.yul\":2677:2826 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2832:2952 */\ntag_52:\n /* \"#utility.yul\":2904:2927 */\n tag_113\n /* \"#utility.yul\":2921:2926 */\n dup2\n /* \"#utility.yul\":2904:2927 */\n tag_51\n jump\t// in\ntag_113:\n /* \"#utility.yul\":2897:2902 */\n dup2\n /* \"#utility.yul\":2894:2928 */\n eq\n /* \"#utility.yul\":2884:2946 */\n tag_114\n jumpi\n /* \"#utility.yul\":2942:2943 */\n 0x00\n /* \"#utility.yul\":2939:2940 */\n dup1\n /* \"#utility.yul\":2932:2944 */\n revert\n /* \"#utility.yul\":2884:2946 */\ntag_114:\n /* \"#utility.yul\":2832:2952 */\n pop\n jump\t// out\n /* \"#utility.yul\":2958:3099 */\ntag_53:\n /* \"#utility.yul\":3014:3019 */\n 0x00\n /* \"#utility.yul\":3045:3051 */\n dup2\n /* \"#utility.yul\":3039:3052 */\n mload\n /* \"#utility.yul\":3030:3052 */\n swap1\n pop\n /* \"#utility.yul\":3061:3093 */\n tag_116\n /* \"#utility.yul\":3087:3092 */\n dup2\n /* \"#utility.yul\":3061:3093 */\n tag_52\n jump\t// in\ntag_116:\n /* \"#utility.yul\":2958:3099 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3105:3783 */\ntag_3:\n /* \"#utility.yul\":3193:3199 */\n 0x00\n /* \"#utility.yul\":3201:3207 */\n dup1\n /* \"#utility.yul\":3250:3252 */\n 0x40\n /* \"#utility.yul\":3238:3247 */\n dup4\n /* \"#utility.yul\":3229:3236 */\n dup6\n /* \"#utility.yul\":3225:3248 */\n sub\n /* \"#utility.yul\":3221:3253 */\n slt\n /* \"#utility.yul\":3218:3337 */\n iszero\n tag_118\n jumpi\n /* \"#utility.yul\":3256:3335 */\n tag_119\n tag_39\n jump\t// in\ntag_119:\n /* \"#utility.yul\":3218:3337 */\ntag_118:\n /* \"#utility.yul\":3397:3398 */\n 0x00\n /* \"#utility.yul\":3386:3395 */\n dup4\n /* \"#utility.yul\":3382:3399 */\n add\n /* \"#utility.yul\":3376:3400 */\n mload\n /* \"#utility.yul\":3427:3445 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3419:3425 */\n dup2\n /* \"#utility.yul\":3416:3446 */\n gt\n /* \"#utility.yul\":3413:3530 */\n iszero\n tag_120\n jumpi\n /* \"#utility.yul\":3449:3528 */\n tag_121\n tag_40\n jump\t// in\ntag_121:\n /* \"#utility.yul\":3413:3530 */\ntag_120:\n /* \"#utility.yul\":3554:3628 */\n tag_122\n /* \"#utility.yul\":3620:3627 */\n dup6\n /* \"#utility.yul\":3611:3617 */\n dup3\n /* \"#utility.yul\":3600:3609 */\n dup7\n /* \"#utility.yul\":3596:3618 */\n add\n /* \"#utility.yul\":3554:3628 */\n tag_50\n jump\t// in\ntag_122:\n /* \"#utility.yul\":3544:3628 */\n swap3\n pop\n /* \"#utility.yul\":3347:3638 */\n pop\n /* \"#utility.yul\":3677:3679 */\n 0x20\n /* \"#utility.yul\":3703:3766 */\n tag_123\n /* \"#utility.yul\":3758:3765 */\n dup6\n /* \"#utility.yul\":3749:3755 */\n dup3\n /* \"#utility.yul\":3738:3747 */\n dup7\n /* \"#utility.yul\":3734:3756 */\n add\n /* \"#utility.yul\":3703:3766 */\n tag_53\n jump\t// in\ntag_123:\n /* \"#utility.yul\":3693:3766 */\n swap2\n pop\n /* \"#utility.yul\":3648:3776 */\n pop\n /* \"#utility.yul\":3105:3783 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3789:4099 */\ntag_54:\n /* \"#utility.yul\":3865:3869 */\n 0x00\n /* \"#utility.yul\":3955:3973 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3947:3953 */\n dup3\n /* \"#utility.yul\":3944:3974 */\n gt\n /* \"#utility.yul\":3941:3997 */\n iszero\n tag_125\n jumpi\n /* \"#utility.yul\":3977:3995 */\n tag_126\n tag_44\n jump\t// in\ntag_126:\n /* \"#utility.yul\":3941:3997 */\ntag_125:\n /* \"#utility.yul\":4027:4031 */\n 0x20\n /* \"#utility.yul\":4019:4025 */\n dup3\n /* \"#utility.yul\":4015:4032 */\n mul\n /* \"#utility.yul\":4007:4032 */\n swap1\n pop\n /* \"#utility.yul\":4087:4091 */\n 0x20\n /* \"#utility.yul\":4081:4085 */\n dup2\n /* \"#utility.yul\":4077:4092 */\n add\n /* \"#utility.yul\":4069:4092 */\n swap1\n pop\n /* \"#utility.yul\":3789:4099 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4105:4222 */\ntag_55:\n /* \"#utility.yul\":4214:4215 */\n 0x00\n /* \"#utility.yul\":4211:4212 */\n dup1\n /* \"#utility.yul\":4204:4216 */\n revert\n /* \"#utility.yul\":4228:4317 */\ntag_56:\n /* \"#utility.yul\":4264:4271 */\n 0x00\n /* \"#utility.yul\":4304:4310 */\n 0xffff\n /* \"#utility.yul\":4297:4302 */\n dup3\n /* \"#utility.yul\":4293:4311 */\n and\n /* \"#utility.yul\":4282:4311 */\n swap1\n pop\n /* \"#utility.yul\":4228:4317 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4323:4443 */\ntag_57:\n /* \"#utility.yul\":4395:4418 */\n tag_130\n /* \"#utility.yul\":4412:4417 */\n dup2\n /* \"#utility.yul\":4395:4418 */\n tag_56\n jump\t// in\ntag_130:\n /* \"#utility.yul\":4388:4393 */\n dup2\n /* \"#utility.yul\":4385:4419 */\n eq\n /* \"#utility.yul\":4375:4437 */\n tag_131\n jumpi\n /* \"#utility.yul\":4433:4434 */\n 0x00\n /* \"#utility.yul\":4430:4431 */\n dup1\n /* \"#utility.yul\":4423:4435 */\n revert\n /* \"#utility.yul\":4375:4437 */\ntag_131:\n /* \"#utility.yul\":4323:4443 */\n pop\n jump\t// out\n /* \"#utility.yul\":4449:4590 */\ntag_58:\n /* \"#utility.yul\":4505:4510 */\n 0x00\n /* \"#utility.yul\":4536:4542 */\n dup2\n /* \"#utility.yul\":4530:4543 */\n mload\n /* \"#utility.yul\":4521:4543 */\n swap1\n pop\n /* \"#utility.yul\":4552:4584 */\n tag_133\n /* \"#utility.yul\":4578:4583 */\n dup2\n /* \"#utility.yul\":4552:4584 */\n tag_57\n jump\t// in\ntag_133:\n /* \"#utility.yul\":4449:4590 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4612:5341 */\ntag_59:\n /* \"#utility.yul\":4718:4723 */\n 0x00\n /* \"#utility.yul\":4743:4823 */\n tag_135\n /* \"#utility.yul\":4759:4822 */\n tag_136\n /* \"#utility.yul\":4815:4821 */\n dup5\n /* \"#utility.yul\":4759:4822 */\n tag_54\n jump\t// in\ntag_136:\n /* \"#utility.yul\":4743:4823 */\n tag_46\n jump\t// in\ntag_135:\n /* \"#utility.yul\":4734:4823 */\n swap1\n pop\n /* \"#utility.yul\":4843:4848 */\n dup1\n /* \"#utility.yul\":4872:4878 */\n dup4\n /* \"#utility.yul\":4865:4870 */\n dup3\n /* \"#utility.yul\":4858:4879 */\n mstore\n /* \"#utility.yul\":4906:4910 */\n 0x20\n /* \"#utility.yul\":4899:4904 */\n dup3\n /* \"#utility.yul\":4895:4911 */\n add\n /* \"#utility.yul\":4888:4911 */\n swap1\n pop\n /* \"#utility.yul\":4959:4963 */\n 0x20\n /* \"#utility.yul\":4951:4957 */\n dup5\n /* \"#utility.yul\":4947:4964 */\n mul\n /* \"#utility.yul\":4939:4945 */\n dup4\n /* \"#utility.yul\":4935:4965 */\n add\n /* \"#utility.yul\":4988:4991 */\n dup6\n /* \"#utility.yul\":4980:4986 */\n dup2\n /* \"#utility.yul\":4977:4992 */\n gt\n /* \"#utility.yul\":4974:5096 */\n iszero\n tag_137\n jumpi\n /* \"#utility.yul\":5007:5086 */\n tag_138\n tag_55\n jump\t// in\ntag_138:\n /* \"#utility.yul\":4974:5096 */\ntag_137:\n /* \"#utility.yul\":5122:5128 */\n dup4\n /* \"#utility.yul\":5105:5335 */\ntag_139:\n /* \"#utility.yul\":5139:5145 */\n dup2\n /* \"#utility.yul\":5134:5137 */\n dup2\n /* \"#utility.yul\":5131:5146 */\n lt\n /* \"#utility.yul\":5105:5335 */\n iszero\n tag_141\n jumpi\n /* \"#utility.yul\":5214:5217 */\n dup1\n /* \"#utility.yul\":5243:5290 */\n tag_142\n /* \"#utility.yul\":5286:5289 */\n dup9\n /* \"#utility.yul\":5274:5284 */\n dup3\n /* \"#utility.yul\":5243:5290 */\n tag_58\n jump\t// in\ntag_142:\n /* \"#utility.yul\":5238:5241 */\n dup5\n /* \"#utility.yul\":5231:5291 */\n mstore\n /* \"#utility.yul\":5320:5324 */\n 0x20\n /* \"#utility.yul\":5315:5318 */\n dup5\n /* \"#utility.yul\":5311:5325 */\n add\n /* \"#utility.yul\":5304:5325 */\n swap4\n pop\n /* \"#utility.yul\":5181:5335 */\n pop\n /* \"#utility.yul\":5165:5169 */\n 0x20\n /* \"#utility.yul\":5160:5163 */\n dup2\n /* \"#utility.yul\":5156:5170 */\n add\n /* \"#utility.yul\":5149:5170 */\n swap1\n pop\n /* \"#utility.yul\":5105:5335 */\n jump(tag_139)\ntag_141:\n /* \"#utility.yul\":5109:5130 */\n pop\n /* \"#utility.yul\":4724:5341 */\n pop\n pop\n /* \"#utility.yul\":4612:5341 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5363:5746 */\ntag_60:\n /* \"#utility.yul\":5444:5449 */\n 0x00\n /* \"#utility.yul\":5493:5496 */\n dup3\n /* \"#utility.yul\":5486:5490 */\n 0x1f\n /* \"#utility.yul\":5478:5484 */\n dup4\n /* \"#utility.yul\":5474:5491 */\n add\n /* \"#utility.yul\":5470:5497 */\n slt\n /* \"#utility.yul\":5460:5582 */\n tag_144\n jumpi\n /* \"#utility.yul\":5501:5580 */\n tag_145\n tag_41\n jump\t// in\ntag_145:\n /* \"#utility.yul\":5460:5582 */\ntag_144:\n /* \"#utility.yul\":5611:5617 */\n dup2\n /* \"#utility.yul\":5605:5618 */\n mload\n /* \"#utility.yul\":5636:5740 */\n tag_146\n /* \"#utility.yul\":5736:5739 */\n dup5\n /* \"#utility.yul\":5728:5734 */\n dup3\n /* \"#utility.yul\":5721:5725 */\n 0x20\n /* \"#utility.yul\":5713:5719 */\n dup7\n /* \"#utility.yul\":5709:5726 */\n add\n /* \"#utility.yul\":5636:5740 */\n tag_59\n jump\t// in\ntag_146:\n /* \"#utility.yul\":5627:5740 */\n swap2\n pop\n /* \"#utility.yul\":5450:5746 */\n pop\n /* \"#utility.yul\":5363:5746 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5752:6304 */\ntag_15:\n /* \"#utility.yul\":5846:5852 */\n 0x00\n /* \"#utility.yul\":5895:5897 */\n 0x20\n /* \"#utility.yul\":5883:5892 */\n dup3\n /* \"#utility.yul\":5874:5881 */\n dup5\n /* \"#utility.yul\":5870:5893 */\n sub\n /* \"#utility.yul\":5866:5898 */\n slt\n /* \"#utility.yul\":5863:5982 */\n iszero\n tag_148\n jumpi\n /* \"#utility.yul\":5901:5980 */\n tag_149\n tag_39\n jump\t// in\ntag_149:\n /* \"#utility.yul\":5863:5982 */\ntag_148:\n /* \"#utility.yul\":6042:6043 */\n 0x00\n /* \"#utility.yul\":6031:6040 */\n dup3\n /* \"#utility.yul\":6027:6044 */\n add\n /* \"#utility.yul\":6021:6045 */\n mload\n /* \"#utility.yul\":6072:6090 */\n 0xffffffffffffffff\n /* \"#utility.yul\":6064:6070 */\n dup2\n /* \"#utility.yul\":6061:6091 */\n gt\n /* \"#utility.yul\":6058:6175 */\n iszero\n tag_150\n jumpi\n /* \"#utility.yul\":6094:6173 */\n tag_151\n tag_40\n jump\t// in\ntag_151:\n /* \"#utility.yul\":6058:6175 */\ntag_150:\n /* \"#utility.yul\":6199:6287 */\n tag_152\n /* \"#utility.yul\":6279:6286 */\n dup5\n /* \"#utility.yul\":6270:6276 */\n dup3\n /* \"#utility.yul\":6259:6268 */\n dup6\n /* \"#utility.yul\":6255:6277 */\n add\n /* \"#utility.yul\":6199:6287 */\n tag_60\n jump\t// in\ntag_152:\n /* \"#utility.yul\":6189:6287 */\n swap2\n pop\n /* \"#utility.yul\":5992:6297 */\n pop\n /* \"#utility.yul\":5752:6304 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6310:6490 */\ntag_21:\n /* \"#utility.yul\":6358:6435 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":6355:6356 */\n 0x00\n /* \"#utility.yul\":6348:6436 */\n mstore\n /* \"#utility.yul\":6455:6459 */\n 0x32\n /* \"#utility.yul\":6452:6453 */\n 0x04\n /* \"#utility.yul\":6445:6460 */\n mstore\n /* \"#utility.yul\":6479:6483 */\n 0x24\n /* \"#utility.yul\":6476:6477 */\n 0x00\n /* \"#utility.yul\":6469:6484 */\n revert\n /* \"#utility.yul\":6496:6611 */\ntag_61:\n /* \"#utility.yul\":6581:6604 */\n tag_155\n /* \"#utility.yul\":6598:6603 */\n dup2\n /* \"#utility.yul\":6581:6604 */\n tag_56\n jump\t// in\ntag_155:\n /* \"#utility.yul\":6576:6579 */\n dup3\n /* \"#utility.yul\":6569:6605 */\n mstore\n /* \"#utility.yul\":6496:6611 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6617:6835 */\ntag_23:\n /* \"#utility.yul\":6708:6712 */\n 0x00\n /* \"#utility.yul\":6746:6748 */\n 0x20\n /* \"#utility.yul\":6735:6744 */\n dup3\n /* \"#utility.yul\":6731:6749 */\n add\n /* \"#utility.yul\":6723:6749 */\n swap1\n pop\n /* \"#utility.yul\":6759:6828 */\n tag_157\n /* \"#utility.yul\":6825:6826 */\n 0x00\n /* \"#utility.yul\":6814:6823 */\n dup4\n /* \"#utility.yul\":6810:6827 */\n add\n /* \"#utility.yul\":6801:6807 */\n dup5\n /* \"#utility.yul\":6759:6828 */\n tag_61\n jump\t// in\ntag_157:\n /* \"#utility.yul\":6617:6835 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6841:6958 */\ntag_62:\n /* \"#utility.yul\":6950:6951 */\n 0x00\n /* \"#utility.yul\":6947:6948 */\n dup1\n /* \"#utility.yul\":6940:6952 */\n revert\n /* \"#utility.yul\":6964:7081 */\ntag_63:\n /* \"#utility.yul\":7073:7074 */\n 0x00\n /* \"#utility.yul\":7070:7071 */\n dup1\n /* \"#utility.yul\":7063:7075 */\n revert\n /* \"#utility.yul\":7087:7164 */\ntag_64:\n /* \"#utility.yul\":7124:7131 */\n 0x00\n /* \"#utility.yul\":7153:7158 */\n dup2\n /* \"#utility.yul\":7142:7158 */\n swap1\n pop\n /* \"#utility.yul\":7087:7164 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7170:7292 */\ntag_65:\n /* \"#utility.yul\":7243:7267 */\n tag_162\n /* \"#utility.yul\":7261:7266 */\n dup2\n /* \"#utility.yul\":7243:7267 */\n tag_64\n jump\t// in\ntag_162:\n /* \"#utility.yul\":7236:7241 */\n dup2\n /* \"#utility.yul\":7233:7268 */\n eq\n /* \"#utility.yul\":7223:7286 */\n tag_163\n jumpi\n /* \"#utility.yul\":7282:7283 */\n 0x00\n /* \"#utility.yul\":7279:7280 */\n dup1\n /* \"#utility.yul\":7272:7284 */\n revert\n /* \"#utility.yul\":7223:7286 */\ntag_163:\n /* \"#utility.yul\":7170:7292 */\n pop\n jump\t// out\n /* \"#utility.yul\":7298:7441 */\ntag_66:\n /* \"#utility.yul\":7355:7360 */\n 0x00\n /* \"#utility.yul\":7386:7392 */\n dup2\n /* \"#utility.yul\":7380:7393 */\n mload\n /* \"#utility.yul\":7371:7393 */\n swap1\n pop\n /* \"#utility.yul\":7402:7435 */\n tag_165\n /* \"#utility.yul\":7429:7434 */\n dup2\n /* \"#utility.yul\":7402:7435 */\n tag_65\n jump\t// in\ntag_165:\n /* \"#utility.yul\":7298:7441 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7447:7754 */\ntag_67:\n /* \"#utility.yul\":7508:7512 */\n 0x00\n /* \"#utility.yul\":7598:7616 */\n 0xffffffffffffffff\n /* \"#utility.yul\":7590:7596 */\n dup3\n /* \"#utility.yul\":7587:7617 */\n gt\n /* \"#utility.yul\":7584:7640 */\n iszero\n tag_167\n jumpi\n /* \"#utility.yul\":7620:7638 */\n tag_168\n tag_44\n jump\t// in\ntag_168:\n /* \"#utility.yul\":7584:7640 */\ntag_167:\n /* \"#utility.yul\":7658:7687 */\n tag_169\n /* \"#utility.yul\":7680:7686 */\n dup3\n /* \"#utility.yul\":7658:7687 */\n tag_43\n jump\t// in\ntag_169:\n /* \"#utility.yul\":7650:7687 */\n swap1\n pop\n /* \"#utility.yul\":7742:7746 */\n 0x20\n /* \"#utility.yul\":7736:7740 */\n dup2\n /* \"#utility.yul\":7732:7747 */\n add\n /* \"#utility.yul\":7724:7747 */\n swap1\n pop\n /* \"#utility.yul\":7447:7754 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7760:8192 */\ntag_68:\n /* \"#utility.yul\":7848:7853 */\n 0x00\n /* \"#utility.yul\":7873:7938 */\n tag_171\n /* \"#utility.yul\":7889:7937 */\n tag_172\n /* \"#utility.yul\":7930:7936 */\n dup5\n /* \"#utility.yul\":7889:7937 */\n tag_67\n jump\t// in\ntag_172:\n /* \"#utility.yul\":7873:7938 */\n tag_46\n jump\t// in\ntag_171:\n /* \"#utility.yul\":7864:7938 */\n swap1\n pop\n /* \"#utility.yul\":7961:7967 */\n dup3\n /* \"#utility.yul\":7954:7959 */\n dup2\n /* \"#utility.yul\":7947:7968 */\n mstore\n /* \"#utility.yul\":7999:8003 */\n 0x20\n /* \"#utility.yul\":7992:7997 */\n dup2\n /* \"#utility.yul\":7988:8004 */\n add\n /* \"#utility.yul\":8037:8040 */\n dup5\n /* \"#utility.yul\":8028:8034 */\n dup5\n /* \"#utility.yul\":8023:8026 */\n dup5\n /* \"#utility.yul\":8019:8035 */\n add\n /* \"#utility.yul\":8016:8041 */\n gt\n /* \"#utility.yul\":8013:8125 */\n iszero\n tag_173\n jumpi\n /* \"#utility.yul\":8044:8123 */\n tag_174\n tag_42\n jump\t// in\ntag_174:\n /* \"#utility.yul\":8013:8125 */\ntag_173:\n /* \"#utility.yul\":8134:8186 */\n tag_175\n /* \"#utility.yul\":8179:8185 */\n dup5\n /* \"#utility.yul\":8174:8177 */\n dup3\n /* \"#utility.yul\":8169:8172 */\n dup6\n /* \"#utility.yul\":8134:8186 */\n tag_48\n jump\t// in\ntag_175:\n /* \"#utility.yul\":7854:8192 */\n pop\n /* \"#utility.yul\":7760:8192 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8211:8564 */\ntag_69:\n /* \"#utility.yul\":8277:8282 */\n 0x00\n /* \"#utility.yul\":8326:8329 */\n dup3\n /* \"#utility.yul\":8319:8323 */\n 0x1f\n /* \"#utility.yul\":8311:8317 */\n dup4\n /* \"#utility.yul\":8307:8324 */\n add\n /* \"#utility.yul\":8303:8330 */\n slt\n /* \"#utility.yul\":8293:8415 */\n tag_177\n jumpi\n /* \"#utility.yul\":8334:8413 */\n tag_178\n tag_41\n jump\t// in\ntag_178:\n /* \"#utility.yul\":8293:8415 */\ntag_177:\n /* \"#utility.yul\":8444:8450 */\n dup2\n /* \"#utility.yul\":8438:8451 */\n mload\n /* \"#utility.yul\":8469:8558 */\n tag_179\n /* \"#utility.yul\":8554:8557 */\n dup5\n /* \"#utility.yul\":8546:8552 */\n dup3\n /* \"#utility.yul\":8539:8543 */\n 0x20\n /* \"#utility.yul\":8531:8537 */\n dup7\n /* \"#utility.yul\":8527:8544 */\n add\n /* \"#utility.yul\":8469:8558 */\n tag_68\n jump\t// in\ntag_179:\n /* \"#utility.yul\":8460:8558 */\n swap2\n pop\n /* \"#utility.yul\":8283:8564 */\n pop\n /* \"#utility.yul\":8211:8564 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8604:10987 */\ntag_70:\n /* \"#utility.yul\":8690:8695 */\n 0x00\n /* \"#utility.yul\":8734:8740 */\n 0x0120\n /* \"#utility.yul\":8722:8731 */\n dup3\n /* \"#utility.yul\":8717:8720 */\n dup5\n /* \"#utility.yul\":8713:8732 */\n sub\n /* \"#utility.yul\":8709:8741 */\n slt\n /* \"#utility.yul\":8706:8825 */\n iszero\n tag_181\n jumpi\n /* \"#utility.yul\":8744:8823 */\n tag_182\n tag_62\n jump\t// in\ntag_182:\n /* \"#utility.yul\":8706:8825 */\ntag_181:\n /* \"#utility.yul\":8843:8866 */\n tag_183\n /* \"#utility.yul\":8859:8865 */\n 0x0120\n /* \"#utility.yul\":8843:8866 */\n tag_46\n jump\t// in\ntag_183:\n /* \"#utility.yul\":8834:8866 */\n swap1\n pop\n /* \"#utility.yul\":8946:8947 */\n 0x00\n /* \"#utility.yul\":8935:8944 */\n dup3\n /* \"#utility.yul\":8931:8948 */\n add\n /* \"#utility.yul\":8925:8949 */\n mload\n /* \"#utility.yul\":8976:8994 */\n 0xffffffffffffffff\n /* \"#utility.yul\":8968:8974 */\n dup2\n /* \"#utility.yul\":8965:8995 */\n gt\n /* \"#utility.yul\":8962:9079 */\n iszero\n tag_184\n jumpi\n /* \"#utility.yul\":8998:9077 */\n tag_185\n tag_63\n jump\t// in\ntag_185:\n /* \"#utility.yul\":8962:9079 */\ntag_184:\n /* \"#utility.yul\":9118:9188 */\n tag_186\n /* \"#utility.yul\":9184:9187 */\n dup5\n /* \"#utility.yul\":9175:9181 */\n dup3\n /* \"#utility.yul\":9164:9173 */\n dup6\n /* \"#utility.yul\":9160:9182 */\n add\n /* \"#utility.yul\":9118:9188 */\n tag_50\n jump\t// in\ntag_186:\n /* \"#utility.yul\":9111:9115 */\n 0x00\n /* \"#utility.yul\":9104:9109 */\n dup4\n /* \"#utility.yul\":9100:9116 */\n add\n /* \"#utility.yul\":9093:9189 */\n mstore\n /* \"#utility.yul\":8876:9200 */\n pop\n /* \"#utility.yul\":9266:9268 */\n 0x20\n /* \"#utility.yul\":9307:9367 */\n tag_187\n /* \"#utility.yul\":9363:9366 */\n dup5\n /* \"#utility.yul\":9354:9360 */\n dup3\n /* \"#utility.yul\":9343:9352 */\n dup6\n /* \"#utility.yul\":9339:9361 */\n add\n /* \"#utility.yul\":9307:9367 */\n tag_66\n jump\t// in\ntag_187:\n /* \"#utility.yul\":9300:9304 */\n 0x20\n /* \"#utility.yul\":9293:9298 */\n dup4\n /* \"#utility.yul\":9289:9305 */\n add\n /* \"#utility.yul\":9282:9368 */\n mstore\n /* \"#utility.yul\":9210:9379 */\n pop\n /* \"#utility.yul\":9449:9451 */\n 0x40\n /* \"#utility.yul\":9490:9550 */\n tag_188\n /* \"#utility.yul\":9546:9549 */\n dup5\n /* \"#utility.yul\":9537:9543 */\n dup3\n /* \"#utility.yul\":9526:9535 */\n dup6\n /* \"#utility.yul\":9522:9544 */\n add\n /* \"#utility.yul\":9490:9550 */\n tag_66\n jump\t// in\ntag_188:\n /* \"#utility.yul\":9483:9487 */\n 0x40\n /* \"#utility.yul\":9476:9481 */\n dup4\n /* \"#utility.yul\":9472:9488 */\n add\n /* \"#utility.yul\":9465:9551 */\n mstore\n /* \"#utility.yul\":9389:9562 */\n pop\n /* \"#utility.yul\":9630:9632 */\n 0x60\n /* \"#utility.yul\":9671:9731 */\n tag_189\n /* \"#utility.yul\":9727:9730 */\n dup5\n /* \"#utility.yul\":9718:9724 */\n dup3\n /* \"#utility.yul\":9707:9716 */\n dup6\n /* \"#utility.yul\":9703:9725 */\n add\n /* \"#utility.yul\":9671:9731 */\n tag_66\n jump\t// in\ntag_189:\n /* \"#utility.yul\":9664:9668 */\n 0x60\n /* \"#utility.yul\":9657:9662 */\n dup4\n /* \"#utility.yul\":9653:9669 */\n add\n /* \"#utility.yul\":9646:9732 */\n mstore\n /* \"#utility.yul\":9572:9743 */\n pop\n /* \"#utility.yul\":9812:9815 */\n 0x80\n /* \"#utility.yul\":9854:9914 */\n tag_190\n /* \"#utility.yul\":9910:9913 */\n dup5\n /* \"#utility.yul\":9901:9907 */\n dup3\n /* \"#utility.yul\":9890:9899 */\n dup6\n /* \"#utility.yul\":9886:9908 */\n add\n /* \"#utility.yul\":9854:9914 */\n tag_66\n jump\t// in\ntag_190:\n /* \"#utility.yul\":9847:9851 */\n 0x80\n /* \"#utility.yul\":9840:9845 */\n dup4\n /* \"#utility.yul\":9836:9852 */\n add\n /* \"#utility.yul\":9829:9915 */\n mstore\n /* \"#utility.yul\":9753:9926 */\n pop\n /* \"#utility.yul\":9994:9997 */\n 0xa0\n /* \"#utility.yul\":10036:10096 */\n tag_191\n /* \"#utility.yul\":10092:10095 */\n dup5\n /* \"#utility.yul\":10083:10089 */\n dup3\n /* \"#utility.yul\":10072:10081 */\n dup6\n /* \"#utility.yul\":10068:10090 */\n add\n /* \"#utility.yul\":10036:10096 */\n tag_66\n jump\t// in\ntag_191:\n /* \"#utility.yul\":10029:10033 */\n 0xa0\n /* \"#utility.yul\":10022:10027 */\n dup4\n /* \"#utility.yul\":10018:10034 */\n add\n /* \"#utility.yul\":10011:10097 */\n mstore\n /* \"#utility.yul\":9936:10108 */\n pop\n /* \"#utility.yul\":10181:10184 */\n 0xc0\n /* \"#utility.yul\":10223:10283 */\n tag_192\n /* \"#utility.yul\":10279:10282 */\n dup5\n /* \"#utility.yul\":10270:10276 */\n dup3\n /* \"#utility.yul\":10259:10268 */\n dup6\n /* \"#utility.yul\":10255:10277 */\n add\n /* \"#utility.yul\":10223:10283 */\n tag_66\n jump\t// in\ntag_192:\n /* \"#utility.yul\":10216:10220 */\n 0xc0\n /* \"#utility.yul\":10209:10214 */\n dup4\n /* \"#utility.yul\":10205:10221 */\n add\n /* \"#utility.yul\":10198:10284 */\n mstore\n /* \"#utility.yul\":10118:10295 */\n pop\n /* \"#utility.yul\":10382:10385 */\n 0xe0\n /* \"#utility.yul\":10371:10380 */\n dup3\n /* \"#utility.yul\":10367:10386 */\n add\n /* \"#utility.yul\":10361:10387 */\n mload\n /* \"#utility.yul\":10414:10432 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10406:10412 */\n dup2\n /* \"#utility.yul\":10403:10433 */\n gt\n /* \"#utility.yul\":10400:10517 */\n iszero\n tag_193\n jumpi\n /* \"#utility.yul\":10436:10515 */\n tag_194\n tag_63\n jump\t// in\ntag_194:\n /* \"#utility.yul\":10400:10517 */\ntag_193:\n /* \"#utility.yul\":10556:10625 */\n tag_195\n /* \"#utility.yul\":10621:10624 */\n dup5\n /* \"#utility.yul\":10612:10618 */\n dup3\n /* \"#utility.yul\":10601:10610 */\n dup6\n /* \"#utility.yul\":10597:10619 */\n add\n /* \"#utility.yul\":10556:10625 */\n tag_69\n jump\t// in\ntag_195:\n /* \"#utility.yul\":10549:10553 */\n 0xe0\n /* \"#utility.yul\":10542:10547 */\n dup4\n /* \"#utility.yul\":10538:10554 */\n add\n /* \"#utility.yul\":10531:10626 */\n mstore\n /* \"#utility.yul\":10305:10637 */\n pop\n /* \"#utility.yul\":10723:10726 */\n 0x0100\n /* \"#utility.yul\":10712:10721 */\n dup3\n /* \"#utility.yul\":10708:10727 */\n add\n /* \"#utility.yul\":10702:10728 */\n mload\n /* \"#utility.yul\":10755:10773 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10747:10753 */\n dup2\n /* \"#utility.yul\":10744:10774 */\n gt\n /* \"#utility.yul\":10741:10858 */\n iszero\n tag_196\n jumpi\n /* \"#utility.yul\":10777:10856 */\n tag_197\n tag_63\n jump\t// in\ntag_197:\n /* \"#utility.yul\":10741:10858 */\ntag_196:\n /* \"#utility.yul\":10899:10968 */\n tag_198\n /* \"#utility.yul\":10964:10967 */\n dup5\n /* \"#utility.yul\":10955:10961 */\n dup3\n /* \"#utility.yul\":10944:10953 */\n dup6\n /* \"#utility.yul\":10940:10962 */\n add\n /* \"#utility.yul\":10899:10968 */\n tag_69\n jump\t// in\ntag_198:\n /* \"#utility.yul\":10890:10896 */\n 0x0100\n /* \"#utility.yul\":10883:10888 */\n dup4\n /* \"#utility.yul\":10879:10897 */\n add\n /* \"#utility.yul\":10872:10969 */\n mstore\n /* \"#utility.yul\":10647:10980 */\n pop\n /* \"#utility.yul\":8604:10987 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10993:11549 */\ntag_27:\n /* \"#utility.yul\":11089:11095 */\n 0x00\n /* \"#utility.yul\":11138:11140 */\n 0x20\n /* \"#utility.yul\":11126:11135 */\n dup3\n /* \"#utility.yul\":11117:11124 */\n dup5\n /* \"#utility.yul\":11113:11136 */\n sub\n /* \"#utility.yul\":11109:11141 */\n slt\n /* \"#utility.yul\":11106:11225 */\n iszero\n tag_200\n jumpi\n /* \"#utility.yul\":11144:11223 */\n tag_201\n tag_39\n jump\t// in\ntag_201:\n /* \"#utility.yul\":11106:11225 */\ntag_200:\n /* \"#utility.yul\":11285:11286 */\n 0x00\n /* \"#utility.yul\":11274:11283 */\n dup3\n /* \"#utility.yul\":11270:11287 */\n add\n /* \"#utility.yul\":11264:11288 */\n mload\n /* \"#utility.yul\":11315:11333 */\n 0xffffffffffffffff\n /* \"#utility.yul\":11307:11313 */\n dup2\n /* \"#utility.yul\":11304:11334 */\n gt\n /* \"#utility.yul\":11301:11418 */\n iszero\n tag_202\n jumpi\n /* \"#utility.yul\":11337:11416 */\n tag_203\n tag_40\n jump\t// in\ntag_203:\n /* \"#utility.yul\":11301:11418 */\ntag_202:\n /* \"#utility.yul\":11442:11532 */\n tag_204\n /* \"#utility.yul\":11524:11531 */\n dup5\n /* \"#utility.yul\":11515:11521 */\n dup3\n /* \"#utility.yul\":11504:11513 */\n dup6\n /* \"#utility.yul\":11500:11522 */\n add\n /* \"#utility.yul\":11442:11532 */\n tag_70\n jump\t// in\ntag_204:\n /* \"#utility.yul\":11432:11532 */\n swap2\n pop\n /* \"#utility.yul\":11235:11542 */\n pop\n /* \"#utility.yul\":10993:11549 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11555:11654 */\ntag_71:\n /* \"#utility.yul\":11607:11613 */\n 0x00\n /* \"#utility.yul\":11641:11646 */\n dup2\n /* \"#utility.yul\":11635:11647 */\n mload\n /* \"#utility.yul\":11625:11647 */\n swap1\n pop\n /* \"#utility.yul\":11555:11654 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":11660:11808 */\ntag_72:\n /* \"#utility.yul\":11762:11773 */\n 0x00\n /* \"#utility.yul\":11799:11802 */\n dup2\n /* \"#utility.yul\":11784:11802 */\n swap1\n pop\n /* \"#utility.yul\":11660:11808 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11814:12204 */\ntag_73:\n /* \"#utility.yul\":11920:11923 */\n 0x00\n /* \"#utility.yul\":11948:11987 */\n tag_208\n /* \"#utility.yul\":11981:11986 */\n dup3\n /* \"#utility.yul\":11948:11987 */\n tag_71\n jump\t// in\ntag_208:\n /* \"#utility.yul\":12003:12092 */\n tag_209\n /* \"#utility.yul\":12085:12091 */\n dup2\n /* \"#utility.yul\":12080:12083 */\n dup6\n /* \"#utility.yul\":12003:12092 */\n tag_72\n jump\t// in\ntag_209:\n /* \"#utility.yul\":11996:12092 */\n swap4\n pop\n /* \"#utility.yul\":12101:12166 */\n tag_210\n /* \"#utility.yul\":12159:12165 */\n dup2\n /* \"#utility.yul\":12154:12157 */\n dup6\n /* \"#utility.yul\":12147:12151 */\n 0x20\n /* \"#utility.yul\":12140:12145 */\n dup7\n /* \"#utility.yul\":12136:12152 */\n add\n /* \"#utility.yul\":12101:12166 */\n tag_48\n jump\t// in\ntag_210:\n /* \"#utility.yul\":12191:12197 */\n dup1\n /* \"#utility.yul\":12186:12189 */\n dup5\n /* \"#utility.yul\":12182:12198 */\n add\n /* \"#utility.yul\":12175:12198 */\n swap2\n pop\n /* \"#utility.yul\":11924:12204 */\n pop\n /* \"#utility.yul\":11814:12204 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12210:12485 */\ntag_29:\n /* \"#utility.yul\":12342:12345 */\n 0x00\n /* \"#utility.yul\":12364:12459 */\n tag_212\n /* \"#utility.yul\":12455:12458 */\n dup3\n /* \"#utility.yul\":12446:12452 */\n dup5\n /* \"#utility.yul\":12364:12459 */\n tag_73\n jump\t// in\ntag_212:\n /* \"#utility.yul\":12357:12459 */\n swap2\n pop\n /* \"#utility.yul\":12476:12479 */\n dup2\n /* \"#utility.yul\":12469:12479 */\n swap1\n pop\n /* \"#utility.yul\":12210:12485 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12491:12671 */\ntag_74:\n /* \"#utility.yul\":12539:12616 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":12536:12537 */\n 0x00\n /* \"#utility.yul\":12529:12617 */\n mstore\n /* \"#utility.yul\":12636:12640 */\n 0x11\n /* \"#utility.yul\":12633:12634 */\n 0x04\n /* \"#utility.yul\":12626:12641 */\n mstore\n /* \"#utility.yul\":12660:12664 */\n 0x24\n /* \"#utility.yul\":12657:12658 */\n 0x00\n /* \"#utility.yul\":12650:12665 */\n revert\n /* \"#utility.yul\":12677:12910 */\ntag_35:\n /* \"#utility.yul\":12716:12719 */\n 0x00\n /* \"#utility.yul\":12739:12763 */\n tag_215\n /* \"#utility.yul\":12757:12762 */\n dup3\n /* \"#utility.yul\":12739:12763 */\n tag_64\n jump\t// in\ntag_215:\n /* \"#utility.yul\":12730:12763 */\n swap2\n pop\n /* \"#utility.yul\":12785:12851 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":12778:12783 */\n dup3\n /* \"#utility.yul\":12775:12852 */\n sub\n /* \"#utility.yul\":12772:12875 */\n tag_216\n jumpi\n /* \"#utility.yul\":12855:12873 */\n tag_217\n tag_74\n jump\t// in\ntag_217:\n /* \"#utility.yul\":12772:12875 */\ntag_216:\n /* \"#utility.yul\":12902:12903 */\n 0x01\n /* \"#utility.yul\":12895:12900 */\n dup3\n /* \"#utility.yul\":12891:12904 */\n add\n /* \"#utility.yul\":12884:12904 */\n swap1\n pop\n /* \"#utility.yul\":12677:12910 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":12916:13085 */\ntag_75:\n /* \"#utility.yul\":13000:13011 */\n 0x00\n /* \"#utility.yul\":13034:13040 */\n dup3\n /* \"#utility.yul\":13029:13032 */\n dup3\n /* \"#utility.yul\":13022:13041 */\n mstore\n /* \"#utility.yul\":13074:13078 */\n 0x20\n /* \"#utility.yul\":13069:13072 */\n dup3\n /* \"#utility.yul\":13065:13079 */\n add\n /* \"#utility.yul\":13050:13079 */\n swap1\n pop\n /* \"#utility.yul\":12916:13085 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":13091:13260 */\ntag_76:\n /* \"#utility.yul\":13231:13252 */\n 0x436f756c646e27742066696e6420747261636b00000000000000000000000000\n /* \"#utility.yul\":13227:13228 */\n 0x00\n /* \"#utility.yul\":13219:13225 */\n dup3\n /* \"#utility.yul\":13215:13229 */\n add\n /* \"#utility.yul\":13208:13253 */\n mstore\n /* \"#utility.yul\":13091:13260 */\n pop\n jump\t// out\n /* \"#utility.yul\":13266:13632 */\ntag_77:\n /* \"#utility.yul\":13408:13411 */\n 0x00\n /* \"#utility.yul\":13429:13496 */\n tag_221\n /* \"#utility.yul\":13493:13495 */\n 0x13\n /* \"#utility.yul\":13488:13491 */\n dup4\n /* \"#utility.yul\":13429:13496 */\n tag_75\n jump\t// in\ntag_221:\n /* \"#utility.yul\":13422:13496 */\n swap2\n pop\n /* \"#utility.yul\":13505:13598 */\n tag_222\n /* \"#utility.yul\":13594:13597 */\n dup3\n /* \"#utility.yul\":13505:13598 */\n tag_76\n jump\t// in\ntag_222:\n /* \"#utility.yul\":13623:13625 */\n 0x20\n /* \"#utility.yul\":13618:13621 */\n dup3\n /* \"#utility.yul\":13614:13626 */\n add\n /* \"#utility.yul\":13607:13626 */\n swap1\n pop\n /* \"#utility.yul\":13266:13632 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":13638:14057 */\ntag_37:\n /* \"#utility.yul\":13804:13808 */\n 0x00\n /* \"#utility.yul\":13842:13844 */\n 0x20\n /* \"#utility.yul\":13831:13840 */\n dup3\n /* \"#utility.yul\":13827:13845 */\n add\n /* \"#utility.yul\":13819:13845 */\n swap1\n pop\n /* \"#utility.yul\":13891:13900 */\n dup2\n /* \"#utility.yul\":13885:13889 */\n dup2\n /* \"#utility.yul\":13881:13901 */\n sub\n /* \"#utility.yul\":13877:13878 */\n 0x00\n /* \"#utility.yul\":13866:13875 */\n dup4\n /* \"#utility.yul\":13862:13879 */\n add\n /* \"#utility.yul\":13855:13902 */\n mstore\n /* \"#utility.yul\":13919:14050 */\n tag_224\n /* \"#utility.yul\":14045:14049 */\n dup2\n /* \"#utility.yul\":13919:14050 */\n tag_77\n jump\t// in\ntag_224:\n /* \"#utility.yul\":13911:14050 */\n swap1\n pop\n /* \"#utility.yul\":13638:14057 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"main.sol\":3607:3899 contract ReferendaAutoUpgradeDemoV2 is ReferendaAutoUpgradeDemo {... */\ntag_10:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"main.sol\":3607:3899 contract ReferendaAutoUpgradeDemoV2 is ReferendaAutoUpgradeDemo {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x54fd4d50\n eq\n tag_3\n jumpi\n dup1\n 0x6d72ffb6\n eq\n tag_4\n jumpi\n dup1\n 0x79688e99\n eq\n tag_5\n jumpi\n dup1\n 0x920e0c03\n eq\n tag_6\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"main.sol\":3821:3897 function version() external pure returns (uint256) {... */\n tag_3:\n tag_7\n tag_8\n jump\t// in\n tag_7:\n mload(0x40)\n tag_9\n swap2\n swap1\n tag_10\n jump\t// in\n tag_9:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":476:501 uint16 public rootTrackId */\n tag_4:\n tag_11\n tag_12\n jump\t// in\n tag_11:\n mload(0x40)\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n tag_5:\n tag_15\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_16\n swap2\n swap1\n tag_17\n jump\t// in\n tag_16:\n tag_18\n jump\t// in\n tag_15:\n stop\n /* \"main.sol\":609:642 bytes2 public setStorageCallIndex */\n tag_6:\n tag_19\n tag_20\n jump\t// in\n tag_19:\n mload(0x40)\n tag_21\n swap2\n swap1\n tag_22\n jump\t// in\n tag_21:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":3821:3897 function version() external pure returns (uint256) {... */\n tag_8:\n /* \"main.sol\":3863:3870 uint256 */\n 0x00\n /* \"main.sol\":3889:3890 2 */\n 0x02\n /* \"main.sol\":3882:3890 return 2 */\n swap1\n pop\n /* \"main.sol\":3821:3897 function version() external pure returns (uint256) {... */\n swap1\n jump\t// out\n /* \"main.sol\":476:501 uint16 public rootTrackId */\n tag_12:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n dup2\n jump\t// out\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n tag_18:\n /* \"main.sol\":2300:2327 bytes memory setStorageCall */\n 0x00\n /* \"main.sol\":2330:2436 SubstrateTools.buildSetStorageProposal(... */\n tag_25\n /* \"main.sol\":2382:2400 contractStorageKey */\n dup3\n /* \"main.sol\":2414:2426 contractCode */\n dup5\n /* \"main.sol\":2330:2368 SubstrateTools.buildSetStorageProposal */\n tag_26\n /* \"main.sol\":2330:2436 SubstrateTools.buildSetStorageProposal(... */\n jump\t// in\n tag_25:\n /* \"main.sol\":2300:2436 bytes memory setStorageCall = SubstrateTools.buildSetStorageProposal(... */\n swap1\n pop\n /* \"main.sol\":2446:2466 bytes32 preimageHash */\n 0x00\n /* \"precompiles/preimage/Preimage.sol\":145:187 */\n 0x0813\n /* \"main.sol\":2469:2499 PREIMAGE_CONTRACT.notePreimage */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xcb00f603\n /* \"main.sol\":2500:2514 setStorageCall */\n dup4\n /* \"main.sol\":2469:2515 PREIMAGE_CONTRACT.notePreimage(setStorageCall) */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\n tag_27:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_30\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_30:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_31\n swap2\n swap1\n tag_32\n jump\t// in\n tag_31:\n /* \"main.sol\":2446:2515 bytes32 preimageHash = PREIMAGE_CONTRACT.notePreimage(setStorageCall) */\n swap1\n pop\n /* \"main.sol\":2658:2675 uint32 blockCount */\n 0x00\n /* \"main.sol\":2678:2679 1 */\n 0x01\n /* \"main.sol\":2658:2679 uint32 blockCount = 1 */\n swap1\n pop\n /* \"main.sol\":2689:2708 uint32 referendumId */\n 0x00\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":2711:2741 REFERENDA_CONTRACT.submitAfter */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x5b2479db\n /* \"main.sol\":2755:2766 rootTrackId */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n /* \"main.sol\":2780:2792 preimageHash */\n dup6\n /* \"main.sol\":2813:2827 setStorageCall */\n dup8\n /* \"main.sol\":2813:2834 setStorageCall.length */\n mload\n /* \"main.sol\":2849:2859 blockCount */\n dup7\n /* \"main.sol\":2711:2869 REFERENDA_CONTRACT.submitAfter(... */\n mload(0x40)\n dup6\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_33\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_34\n jump\t// in\n tag_33:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_36\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_36:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_37\n swap2\n swap1\n tag_38\n jump\t// in\n tag_37:\n /* \"main.sol\":2689:2869 uint32 referendumId = REFERENDA_CONTRACT.submitAfter(... */\n swap1\n pop\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":2919:2958 REFERENDA_CONTRACT.placeDecisionDeposit */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x245ce18d\n /* \"main.sol\":2959:2971 referendumId */\n dup3\n /* \"main.sol\":2919:2972 REFERENDA_CONTRACT.placeDecisionDeposit(referendumId) */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_39\n swap2\n swap1\n tag_40\n jump\t// in\n tag_39:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_41\n jumpi\n 0x00\n dup1\n revert\n tag_41:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_43\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_43:\n pop\n pop\n pop\n pop\n /* \"precompiles/conviction-voting/ConvictionVoting.sol\":163:205 */\n 0x0812\n /* \"main.sol\":3019:3053 CONVICTION_VOTING_CONTRACT.voteYes */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xda9df518\n /* \"main.sol\":3067:3079 referendumId */\n dup3\n /* \"main.sol\":3093:3114 address(this).balance */\n selfbalance\n /* \"main.sol\":3171:3207 ConvictionVoting.Conviction.Locked1x */\n 0x01\n /* \"main.sol\":3019:3217 CONVICTION_VOTING_CONTRACT.voteYes(... */\n mload(0x40)\n dup5\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_44\n swap4\n swap3\n swap2\n swap1\n tag_45\n jump\t// in\n tag_44:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_46\n jumpi\n 0x00\n dup1\n revert\n tag_46:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_48\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_48:\n pop\n pop\n pop\n pop\n /* \"main.sol\":2290:3224 {... */\n pop\n pop\n pop\n pop\n /* \"main.sol\":2180:3224 function autoUpgrade(... */\n pop\n pop\n jump\t// out\n /* \"main.sol\":609:642 bytes2 public setStorageCallIndex */\n tag_20:\n 0x00\n 0x02\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xf0\n shl\n dup2\n jump\t// out\n /* \"SubstrateTools.sol\":1402:1812 */\n tag_26:\n /* \"SubstrateTools.sol\":1532:1544 */\n 0x60\n /* \"SubstrateTools.sol\":1605:1623 */\n 0x04000000000000000000000000000000000000000000000000000000000000\n /* \"SubstrateTools.sol\":1681:1686 */\n 0x04\n /* \"SubstrateTools.sol\":1668:1688 */\n 0xf8\n shl\n /* \"SubstrateTools.sol\":1746:1791 */\n tag_50\n /* \"SubstrateTools.sol\":1766:1776 */\n dup6\n /* \"SubstrateTools.sol\":1778:1790 */\n dup6\n /* \"SubstrateTools.sol\":1746:1765 */\n tag_51\n /* \"SubstrateTools.sol\":1746:1791 */\n jump\t// in\n tag_50:\n /* \"SubstrateTools.sol\":1575:1805 */\n add(0x20, mload(0x40))\n tag_52\n swap4\n swap3\n swap2\n swap1\n tag_53\n jump\t// in\n tag_52:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":1556:1805 */\n swap1\n pop\n /* \"SubstrateTools.sol\":1402:1812 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":858:1140 */\n tag_51:\n /* \"SubstrateTools.sol\":972:984 */\n 0x60\n /* \"SubstrateTools.sol\":1049:1074 */\n tag_55\n /* \"SubstrateTools.sol\":1070:1073 */\n dup4\n /* \"SubstrateTools.sol\":1049:1069 */\n tag_56\n /* \"SubstrateTools.sol\":1049:1074 */\n jump\t// in\n tag_55:\n /* \"SubstrateTools.sol\":1092:1119 */\n tag_57\n /* \"SubstrateTools.sol\":1113:1118 */\n dup4\n /* \"SubstrateTools.sol\":1092:1112 */\n tag_56\n /* \"SubstrateTools.sol\":1092:1119 */\n jump\t// in\n tag_57:\n /* \"SubstrateTools.sol\":1019:1133 */\n add(0x20, mload(0x40))\n tag_58\n swap3\n swap2\n swap1\n tag_59\n jump\t// in\n tag_58:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":1000:1133 */\n swap1\n pop\n /* \"SubstrateTools.sol\":858:1140 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":298:711 */\n tag_56:\n /* \"SubstrateTools.sol\":394:406 */\n 0x60\n /* \"SubstrateTools.sol\":453:466 */\n 0x00\n /* \"SubstrateTools.sol\":495:496 */\n 0x01\n /* \"SubstrateTools.sol\":490:491 */\n 0x04\n /* \"SubstrateTools.sol\":476:480 */\n dup5\n /* \"SubstrateTools.sol\":476:487 */\n mload\n /* \"SubstrateTools.sol\":476:491 */\n tag_61\n swap2\n swap1\n tag_62\n jump\t// in\n tag_61:\n /* \"SubstrateTools.sol\":469:496 */\n tag_63\n swap2\n swap1\n tag_64\n jump\t// in\n tag_63:\n /* \"SubstrateTools.sol\":453:496 */\n swap1\n pop\n /* \"SubstrateTools.sol\":542:563 */\n 0x00\n /* \"SubstrateTools.sol\":594:595 */\n 0x08\n /* \"SubstrateTools.sol\":584:590 */\n dup3\n /* \"SubstrateTools.sol\":584:595 */\n 0xffff\n and\n swap1\n shl\n /* \"SubstrateTools.sol\":578:579 */\n 0x08\n /* \"SubstrateTools.sol\":568:574 */\n dup4\n /* \"SubstrateTools.sol\":568:579 */\n 0xffff\n and\n swap1\n shr\n /* \"SubstrateTools.sol\":567:596 */\n or\n /* \"SubstrateTools.sol\":542:597 */\n swap1\n pop\n /* \"SubstrateTools.sol\":682:696 */\n dup1\n /* \"SubstrateTools.sol\":675:697 */\n 0xf0\n shl\n /* \"SubstrateTools.sol\":699:703 */\n dup5\n /* \"SubstrateTools.sol\":662:704 */\n add(0x20, mload(0x40))\n tag_65\n swap3\n swap2\n swap1\n tag_66\n jump\t// in\n tag_65:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":655:704 */\n swap3\n pop\n pop\n pop\n /* \"SubstrateTools.sol\":298:711 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:84 */\n tag_67:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":73:78 */\n dup2\n /* \"#utility.yul\":62:78 */\n swap1\n pop\n /* \"#utility.yul\":7:84 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":90:208 */\n tag_68:\n /* \"#utility.yul\":177:201 */\n tag_114\n /* \"#utility.yul\":195:200 */\n dup2\n /* \"#utility.yul\":177:201 */\n tag_67\n jump\t// in\n tag_114:\n /* \"#utility.yul\":172:175 */\n dup3\n /* \"#utility.yul\":165:202 */\n mstore\n /* \"#utility.yul\":90:208 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":214:436 */\n tag_10:\n /* \"#utility.yul\":307:311 */\n 0x00\n /* \"#utility.yul\":345:347 */\n 0x20\n /* \"#utility.yul\":334:343 */\n dup3\n /* \"#utility.yul\":330:348 */\n add\n /* \"#utility.yul\":322:348 */\n swap1\n pop\n /* \"#utility.yul\":358:429 */\n tag_116\n /* \"#utility.yul\":426:427 */\n 0x00\n /* \"#utility.yul\":415:424 */\n dup4\n /* \"#utility.yul\":411:428 */\n add\n /* \"#utility.yul\":402:408 */\n dup5\n /* \"#utility.yul\":358:429 */\n tag_68\n jump\t// in\n tag_116:\n /* \"#utility.yul\":214:436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":442:531 */\n tag_69:\n /* \"#utility.yul\":478:485 */\n 0x00\n /* \"#utility.yul\":518:524 */\n 0xffff\n /* \"#utility.yul\":511:516 */\n dup3\n /* \"#utility.yul\":507:525 */\n and\n /* \"#utility.yul\":496:525 */\n swap1\n pop\n /* \"#utility.yul\":442:531 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":537:652 */\n tag_70:\n /* \"#utility.yul\":622:645 */\n tag_119\n /* \"#utility.yul\":639:644 */\n dup2\n /* \"#utility.yul\":622:645 */\n tag_69\n jump\t// in\n tag_119:\n /* \"#utility.yul\":617:620 */\n dup3\n /* \"#utility.yul\":610:646 */\n mstore\n /* \"#utility.yul\":537:652 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":658:876 */\n tag_14:\n /* \"#utility.yul\":749:753 */\n 0x00\n /* \"#utility.yul\":787:789 */\n 0x20\n /* \"#utility.yul\":776:785 */\n dup3\n /* \"#utility.yul\":772:790 */\n add\n /* \"#utility.yul\":764:790 */\n swap1\n pop\n /* \"#utility.yul\":800:869 */\n tag_121\n /* \"#utility.yul\":866:867 */\n 0x00\n /* \"#utility.yul\":855:864 */\n dup4\n /* \"#utility.yul\":851:868 */\n add\n /* \"#utility.yul\":842:848 */\n dup5\n /* \"#utility.yul\":800:869 */\n tag_70\n jump\t// in\n tag_121:\n /* \"#utility.yul\":658:876 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":882:957 */\n tag_71:\n /* \"#utility.yul\":915:921 */\n 0x00\n /* \"#utility.yul\":948:950 */\n 0x40\n /* \"#utility.yul\":942:951 */\n mload\n /* \"#utility.yul\":932:951 */\n swap1\n pop\n /* \"#utility.yul\":882:957 */\n swap1\n jump\t// out\n /* \"#utility.yul\":963:1080 */\n tag_72:\n /* \"#utility.yul\":1072:1073 */\n 0x00\n /* \"#utility.yul\":1069:1070 */\n dup1\n /* \"#utility.yul\":1062:1074 */\n revert\n /* \"#utility.yul\":1086:1203 */\n tag_73:\n /* \"#utility.yul\":1195:1196 */\n 0x00\n /* \"#utility.yul\":1192:1193 */\n dup1\n /* \"#utility.yul\":1185:1197 */\n revert\n /* \"#utility.yul\":1209:1326 */\n tag_74:\n /* \"#utility.yul\":1318:1319 */\n 0x00\n /* \"#utility.yul\":1315:1316 */\n dup1\n /* \"#utility.yul\":1308:1320 */\n revert\n /* \"#utility.yul\":1332:1449 */\n tag_75:\n /* \"#utility.yul\":1441:1442 */\n 0x00\n /* \"#utility.yul\":1438:1439 */\n dup1\n /* \"#utility.yul\":1431:1443 */\n revert\n /* \"#utility.yul\":1455:1557 */\n tag_76:\n /* \"#utility.yul\":1496:1502 */\n 0x00\n /* \"#utility.yul\":1547:1549 */\n 0x1f\n /* \"#utility.yul\":1543:1550 */\n not\n /* \"#utility.yul\":1538:1540 */\n 0x1f\n /* \"#utility.yul\":1531:1536 */\n dup4\n /* \"#utility.yul\":1527:1541 */\n add\n /* \"#utility.yul\":1523:1551 */\n and\n /* \"#utility.yul\":1513:1551 */\n swap1\n pop\n /* \"#utility.yul\":1455:1557 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1563:1743 */\n tag_77:\n /* \"#utility.yul\":1611:1688 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1608:1609 */\n 0x00\n /* \"#utility.yul\":1601:1689 */\n mstore\n /* \"#utility.yul\":1708:1712 */\n 0x41\n /* \"#utility.yul\":1705:1706 */\n 0x04\n /* \"#utility.yul\":1698:1713 */\n mstore\n /* \"#utility.yul\":1732:1736 */\n 0x24\n /* \"#utility.yul\":1729:1730 */\n 0x00\n /* \"#utility.yul\":1722:1737 */\n revert\n /* \"#utility.yul\":1749:2030 */\n tag_78:\n /* \"#utility.yul\":1832:1859 */\n tag_130\n /* \"#utility.yul\":1854:1858 */\n dup3\n /* \"#utility.yul\":1832:1859 */\n tag_76\n jump\t// in\n tag_130:\n /* \"#utility.yul\":1824:1830 */\n dup2\n /* \"#utility.yul\":1820:1860 */\n add\n /* \"#utility.yul\":1962:1968 */\n dup2\n /* \"#utility.yul\":1950:1960 */\n dup2\n /* \"#utility.yul\":1947:1969 */\n lt\n /* \"#utility.yul\":1926:1944 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1914:1924 */\n dup3\n /* \"#utility.yul\":1911:1945 */\n gt\n /* \"#utility.yul\":1908:1970 */\n or\n /* \"#utility.yul\":1905:1993 */\n iszero\n tag_131\n jumpi\n /* \"#utility.yul\":1973:1991 */\n tag_132\n tag_77\n jump\t// in\n tag_132:\n /* \"#utility.yul\":1905:1993 */\n tag_131:\n /* \"#utility.yul\":2013:2023 */\n dup1\n /* \"#utility.yul\":2009:2011 */\n 0x40\n /* \"#utility.yul\":2002:2024 */\n mstore\n /* \"#utility.yul\":1792:2030 */\n pop\n /* \"#utility.yul\":1749:2030 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2036:2165 */\n tag_79:\n /* \"#utility.yul\":2070:2076 */\n 0x00\n /* \"#utility.yul\":2097:2117 */\n tag_134\n tag_71\n jump\t// in\n tag_134:\n /* \"#utility.yul\":2087:2117 */\n swap1\n pop\n /* \"#utility.yul\":2126:2159 */\n tag_135\n /* \"#utility.yul\":2154:2158 */\n dup3\n /* \"#utility.yul\":2146:2152 */\n dup3\n /* \"#utility.yul\":2126:2159 */\n tag_78\n jump\t// in\n tag_135:\n /* \"#utility.yul\":2036:2165 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2171:2478 */\n tag_80:\n /* \"#utility.yul\":2232:2236 */\n 0x00\n /* \"#utility.yul\":2322:2340 */\n 0xffffffffffffffff\n /* \"#utility.yul\":2314:2320 */\n dup3\n /* \"#utility.yul\":2311:2341 */\n gt\n /* \"#utility.yul\":2308:2364 */\n iszero\n tag_137\n jumpi\n /* \"#utility.yul\":2344:2362 */\n tag_138\n tag_77\n jump\t// in\n tag_138:\n /* \"#utility.yul\":2308:2364 */\n tag_137:\n /* \"#utility.yul\":2382:2411 */\n tag_139\n /* \"#utility.yul\":2404:2410 */\n dup3\n /* \"#utility.yul\":2382:2411 */\n tag_76\n jump\t// in\n tag_139:\n /* \"#utility.yul\":2374:2411 */\n swap1\n pop\n /* \"#utility.yul\":2466:2470 */\n 0x20\n /* \"#utility.yul\":2460:2464 */\n dup2\n /* \"#utility.yul\":2456:2471 */\n add\n /* \"#utility.yul\":2448:2471 */\n swap1\n pop\n /* \"#utility.yul\":2171:2478 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2484:2630 */\n tag_81:\n /* \"#utility.yul\":2581:2587 */\n dup3\n /* \"#utility.yul\":2576:2579 */\n dup2\n /* \"#utility.yul\":2571:2574 */\n dup4\n /* \"#utility.yul\":2558:2588 */\n calldatacopy\n /* \"#utility.yul\":2622:2623 */\n 0x00\n /* \"#utility.yul\":2613:2619 */\n dup4\n /* \"#utility.yul\":2608:2611 */\n dup4\n /* \"#utility.yul\":2604:2620 */\n add\n /* \"#utility.yul\":2597:2624 */\n mstore\n /* \"#utility.yul\":2484:2630 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2636:3059 */\n tag_82:\n /* \"#utility.yul\":2713:2718 */\n 0x00\n /* \"#utility.yul\":2738:2803 */\n tag_142\n /* \"#utility.yul\":2754:2802 */\n tag_143\n /* \"#utility.yul\":2795:2801 */\n dup5\n /* \"#utility.yul\":2754:2802 */\n tag_80\n jump\t// in\n tag_143:\n /* \"#utility.yul\":2738:2803 */\n tag_79\n jump\t// in\n tag_142:\n /* \"#utility.yul\":2729:2803 */\n swap1\n pop\n /* \"#utility.yul\":2826:2832 */\n dup3\n /* \"#utility.yul\":2819:2824 */\n dup2\n /* \"#utility.yul\":2812:2833 */\n mstore\n /* \"#utility.yul\":2864:2868 */\n 0x20\n /* \"#utility.yul\":2857:2862 */\n dup2\n /* \"#utility.yul\":2853:2869 */\n add\n /* \"#utility.yul\":2902:2905 */\n dup5\n /* \"#utility.yul\":2893:2899 */\n dup5\n /* \"#utility.yul\":2888:2891 */\n dup5\n /* \"#utility.yul\":2884:2900 */\n add\n /* \"#utility.yul\":2881:2906 */\n gt\n /* \"#utility.yul\":2878:2990 */\n iszero\n tag_144\n jumpi\n /* \"#utility.yul\":2909:2988 */\n tag_145\n tag_75\n jump\t// in\n tag_145:\n /* \"#utility.yul\":2878:2990 */\n tag_144:\n /* \"#utility.yul\":2999:3053 */\n tag_146\n /* \"#utility.yul\":3046:3052 */\n dup5\n /* \"#utility.yul\":3041:3044 */\n dup3\n /* \"#utility.yul\":3036:3039 */\n dup6\n /* \"#utility.yul\":2999:3053 */\n tag_81\n jump\t// in\n tag_146:\n /* \"#utility.yul\":2719:3059 */\n pop\n /* \"#utility.yul\":2636:3059 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3078:3416 */\n tag_83:\n /* \"#utility.yul\":3133:3138 */\n 0x00\n /* \"#utility.yul\":3182:3185 */\n dup3\n /* \"#utility.yul\":3175:3179 */\n 0x1f\n /* \"#utility.yul\":3167:3173 */\n dup4\n /* \"#utility.yul\":3163:3180 */\n add\n /* \"#utility.yul\":3159:3186 */\n slt\n /* \"#utility.yul\":3149:3271 */\n tag_148\n jumpi\n /* \"#utility.yul\":3190:3269 */\n tag_149\n tag_74\n jump\t// in\n tag_149:\n /* \"#utility.yul\":3149:3271 */\n tag_148:\n /* \"#utility.yul\":3307:3313 */\n dup2\n /* \"#utility.yul\":3294:3314 */\n calldataload\n /* \"#utility.yul\":3332:3410 */\n tag_150\n /* \"#utility.yul\":3406:3409 */\n dup5\n /* \"#utility.yul\":3398:3404 */\n dup3\n /* \"#utility.yul\":3391:3395 */\n 0x20\n /* \"#utility.yul\":3383:3389 */\n dup7\n /* \"#utility.yul\":3379:3396 */\n add\n /* \"#utility.yul\":3332:3410 */\n tag_82\n jump\t// in\n tag_150:\n /* \"#utility.yul\":3323:3410 */\n swap2\n pop\n /* \"#utility.yul\":3139:3416 */\n pop\n /* \"#utility.yul\":3078:3416 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3422:4252 */\n tag_17:\n /* \"#utility.yul\":3508:3514 */\n 0x00\n /* \"#utility.yul\":3516:3522 */\n dup1\n /* \"#utility.yul\":3565:3567 */\n 0x40\n /* \"#utility.yul\":3553:3562 */\n dup4\n /* \"#utility.yul\":3544:3551 */\n dup6\n /* \"#utility.yul\":3540:3563 */\n sub\n /* \"#utility.yul\":3536:3568 */\n slt\n /* \"#utility.yul\":3533:3652 */\n iszero\n tag_152\n jumpi\n /* \"#utility.yul\":3571:3650 */\n tag_153\n tag_72\n jump\t// in\n tag_153:\n /* \"#utility.yul\":3533:3652 */\n tag_152:\n /* \"#utility.yul\":3719:3720 */\n 0x00\n /* \"#utility.yul\":3708:3717 */\n dup4\n /* \"#utility.yul\":3704:3721 */\n add\n /* \"#utility.yul\":3691:3722 */\n calldataload\n /* \"#utility.yul\":3749:3767 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3741:3747 */\n dup2\n /* \"#utility.yul\":3738:3768 */\n gt\n /* \"#utility.yul\":3735:3852 */\n iszero\n tag_154\n jumpi\n /* \"#utility.yul\":3771:3850 */\n tag_155\n tag_73\n jump\t// in\n tag_155:\n /* \"#utility.yul\":3735:3852 */\n tag_154:\n /* \"#utility.yul\":3876:3938 */\n tag_156\n /* \"#utility.yul\":3930:3937 */\n dup6\n /* \"#utility.yul\":3921:3927 */\n dup3\n /* \"#utility.yul\":3910:3919 */\n dup7\n /* \"#utility.yul\":3906:3928 */\n add\n /* \"#utility.yul\":3876:3938 */\n tag_83\n jump\t// in\n tag_156:\n /* \"#utility.yul\":3866:3938 */\n swap3\n pop\n /* \"#utility.yul\":3662:3948 */\n pop\n /* \"#utility.yul\":4015:4017 */\n 0x20\n /* \"#utility.yul\":4004:4013 */\n dup4\n /* \"#utility.yul\":4000:4018 */\n add\n /* \"#utility.yul\":3987:4019 */\n calldataload\n /* \"#utility.yul\":4046:4064 */\n 0xffffffffffffffff\n /* \"#utility.yul\":4038:4044 */\n dup2\n /* \"#utility.yul\":4035:4065 */\n gt\n /* \"#utility.yul\":4032:4149 */\n iszero\n tag_157\n jumpi\n /* \"#utility.yul\":4068:4147 */\n tag_158\n tag_73\n jump\t// in\n tag_158:\n /* \"#utility.yul\":4032:4149 */\n tag_157:\n /* \"#utility.yul\":4173:4235 */\n tag_159\n /* \"#utility.yul\":4227:4234 */\n dup6\n /* \"#utility.yul\":4218:4224 */\n dup3\n /* \"#utility.yul\":4207:4216 */\n dup7\n /* \"#utility.yul\":4203:4225 */\n add\n /* \"#utility.yul\":4173:4235 */\n tag_83\n jump\t// in\n tag_159:\n /* \"#utility.yul\":4163:4235 */\n swap2\n pop\n /* \"#utility.yul\":3958:4245 */\n pop\n /* \"#utility.yul\":3422:4252 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4258:4407 */\n tag_84:\n /* \"#utility.yul\":4294:4301 */\n 0x00\n /* \"#utility.yul\":4334:4400 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":4327:4332 */\n dup3\n /* \"#utility.yul\":4323:4401 */\n and\n /* \"#utility.yul\":4312:4401 */\n swap1\n pop\n /* \"#utility.yul\":4258:4407 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4413:4528 */\n tag_85:\n /* \"#utility.yul\":4498:4521 */\n tag_162\n /* \"#utility.yul\":4515:4520 */\n dup2\n /* \"#utility.yul\":4498:4521 */\n tag_84\n jump\t// in\n tag_162:\n /* \"#utility.yul\":4493:4496 */\n dup3\n /* \"#utility.yul\":4486:4522 */\n mstore\n /* \"#utility.yul\":4413:4528 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4534:4752 */\n tag_22:\n /* \"#utility.yul\":4625:4629 */\n 0x00\n /* \"#utility.yul\":4663:4665 */\n 0x20\n /* \"#utility.yul\":4652:4661 */\n dup3\n /* \"#utility.yul\":4648:4666 */\n add\n /* \"#utility.yul\":4640:4666 */\n swap1\n pop\n /* \"#utility.yul\":4676:4745 */\n tag_164\n /* \"#utility.yul\":4742:4743 */\n 0x00\n /* \"#utility.yul\":4731:4740 */\n dup4\n /* \"#utility.yul\":4727:4744 */\n add\n /* \"#utility.yul\":4718:4724 */\n dup5\n /* \"#utility.yul\":4676:4745 */\n tag_85\n jump\t// in\n tag_164:\n /* \"#utility.yul\":4534:4752 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4758:4856 */\n tag_86:\n /* \"#utility.yul\":4809:4815 */\n 0x00\n /* \"#utility.yul\":4843:4848 */\n dup2\n /* \"#utility.yul\":4837:4849 */\n mload\n /* \"#utility.yul\":4827:4849 */\n swap1\n pop\n /* \"#utility.yul\":4758:4856 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4862:5030 */\n tag_87:\n /* \"#utility.yul\":4945:4956 */\n 0x00\n /* \"#utility.yul\":4979:4985 */\n dup3\n /* \"#utility.yul\":4974:4977 */\n dup3\n /* \"#utility.yul\":4967:4986 */\n mstore\n /* \"#utility.yul\":5019:5023 */\n 0x20\n /* \"#utility.yul\":5014:5017 */\n dup3\n /* \"#utility.yul\":5010:5024 */\n add\n /* \"#utility.yul\":4995:5024 */\n swap1\n pop\n /* \"#utility.yul\":4862:5030 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5036:5282 */\n tag_88:\n /* \"#utility.yul\":5117:5118 */\n 0x00\n /* \"#utility.yul\":5127:5240 */\n tag_168:\n /* \"#utility.yul\":5141:5147 */\n dup4\n /* \"#utility.yul\":5138:5139 */\n dup2\n /* \"#utility.yul\":5135:5148 */\n lt\n /* \"#utility.yul\":5127:5240 */\n iszero\n tag_170\n jumpi\n /* \"#utility.yul\":5226:5227 */\n dup1\n /* \"#utility.yul\":5221:5224 */\n dup3\n /* \"#utility.yul\":5217:5228 */\n add\n /* \"#utility.yul\":5211:5229 */\n mload\n /* \"#utility.yul\":5207:5208 */\n dup2\n /* \"#utility.yul\":5202:5205 */\n dup5\n /* \"#utility.yul\":5198:5209 */\n add\n /* \"#utility.yul\":5191:5230 */\n mstore\n /* \"#utility.yul\":5163:5165 */\n 0x20\n /* \"#utility.yul\":5160:5161 */\n dup2\n /* \"#utility.yul\":5156:5166 */\n add\n /* \"#utility.yul\":5151:5166 */\n swap1\n pop\n /* \"#utility.yul\":5127:5240 */\n jump(tag_168)\n tag_170:\n /* \"#utility.yul\":5274:5275 */\n 0x00\n /* \"#utility.yul\":5265:5271 */\n dup5\n /* \"#utility.yul\":5260:5263 */\n dup5\n /* \"#utility.yul\":5256:5272 */\n add\n /* \"#utility.yul\":5249:5276 */\n mstore\n /* \"#utility.yul\":5098:5282 */\n pop\n /* \"#utility.yul\":5036:5282 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5288:5661 */\n tag_89:\n /* \"#utility.yul\":5374:5377 */\n 0x00\n /* \"#utility.yul\":5402:5440 */\n tag_172\n /* \"#utility.yul\":5434:5439 */\n dup3\n /* \"#utility.yul\":5402:5440 */\n tag_86\n jump\t// in\n tag_172:\n /* \"#utility.yul\":5456:5526 */\n tag_173\n /* \"#utility.yul\":5519:5525 */\n dup2\n /* \"#utility.yul\":5514:5517 */\n dup6\n /* \"#utility.yul\":5456:5526 */\n tag_87\n jump\t// in\n tag_173:\n /* \"#utility.yul\":5449:5526 */\n swap4\n pop\n /* \"#utility.yul\":5535:5600 */\n tag_174\n /* \"#utility.yul\":5593:5599 */\n dup2\n /* \"#utility.yul\":5588:5591 */\n dup6\n /* \"#utility.yul\":5581:5585 */\n 0x20\n /* \"#utility.yul\":5574:5579 */\n dup7\n /* \"#utility.yul\":5570:5586 */\n add\n /* \"#utility.yul\":5535:5600 */\n tag_88\n jump\t// in\n tag_174:\n /* \"#utility.yul\":5625:5654 */\n tag_175\n /* \"#utility.yul\":5647:5653 */\n dup2\n /* \"#utility.yul\":5625:5654 */\n tag_76\n jump\t// in\n tag_175:\n /* \"#utility.yul\":5620:5623 */\n dup5\n /* \"#utility.yul\":5616:5655 */\n add\n /* \"#utility.yul\":5609:5655 */\n swap2\n pop\n /* \"#utility.yul\":5378:5661 */\n pop\n /* \"#utility.yul\":5288:5661 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5667:5976 */\n tag_28:\n /* \"#utility.yul\":5778:5782 */\n 0x00\n /* \"#utility.yul\":5816:5818 */\n 0x20\n /* \"#utility.yul\":5805:5814 */\n dup3\n /* \"#utility.yul\":5801:5819 */\n add\n /* \"#utility.yul\":5793:5819 */\n swap1\n pop\n /* \"#utility.yul\":5865:5874 */\n dup2\n /* \"#utility.yul\":5859:5863 */\n dup2\n /* \"#utility.yul\":5855:5875 */\n sub\n /* \"#utility.yul\":5851:5852 */\n 0x00\n /* \"#utility.yul\":5840:5849 */\n dup4\n /* \"#utility.yul\":5836:5853 */\n add\n /* \"#utility.yul\":5829:5876 */\n mstore\n /* \"#utility.yul\":5893:5969 */\n tag_177\n /* \"#utility.yul\":5964:5968 */\n dup2\n /* \"#utility.yul\":5955:5961 */\n dup5\n /* \"#utility.yul\":5893:5969 */\n tag_89\n jump\t// in\n tag_177:\n /* \"#utility.yul\":5885:5969 */\n swap1\n pop\n /* \"#utility.yul\":5667:5976 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5982:6059 */\n tag_90:\n /* \"#utility.yul\":6019:6026 */\n 0x00\n /* \"#utility.yul\":6048:6053 */\n dup2\n /* \"#utility.yul\":6037:6053 */\n swap1\n pop\n /* \"#utility.yul\":5982:6059 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6065:6187 */\n tag_91:\n /* \"#utility.yul\":6138:6162 */\n tag_180\n /* \"#utility.yul\":6156:6161 */\n dup2\n /* \"#utility.yul\":6138:6162 */\n tag_90\n jump\t// in\n tag_180:\n /* \"#utility.yul\":6131:6136 */\n dup2\n /* \"#utility.yul\":6128:6163 */\n eq\n /* \"#utility.yul\":6118:6181 */\n tag_181\n jumpi\n /* \"#utility.yul\":6177:6178 */\n 0x00\n /* \"#utility.yul\":6174:6175 */\n dup1\n /* \"#utility.yul\":6167:6179 */\n revert\n /* \"#utility.yul\":6118:6181 */\n tag_181:\n /* \"#utility.yul\":6065:6187 */\n pop\n jump\t// out\n /* \"#utility.yul\":6193:6336 */\n tag_92:\n /* \"#utility.yul\":6250:6255 */\n 0x00\n /* \"#utility.yul\":6281:6287 */\n dup2\n /* \"#utility.yul\":6275:6288 */\n mload\n /* \"#utility.yul\":6266:6288 */\n swap1\n pop\n /* \"#utility.yul\":6297:6330 */\n tag_183\n /* \"#utility.yul\":6324:6329 */\n dup2\n /* \"#utility.yul\":6297:6330 */\n tag_91\n jump\t// in\n tag_183:\n /* \"#utility.yul\":6193:6336 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6342:6693 */\n tag_32:\n /* \"#utility.yul\":6412:6418 */\n 0x00\n /* \"#utility.yul\":6461:6463 */\n 0x20\n /* \"#utility.yul\":6449:6458 */\n dup3\n /* \"#utility.yul\":6440:6447 */\n dup5\n /* \"#utility.yul\":6436:6459 */\n sub\n /* \"#utility.yul\":6432:6464 */\n slt\n /* \"#utility.yul\":6429:6548 */\n iszero\n tag_185\n jumpi\n /* \"#utility.yul\":6467:6546 */\n tag_186\n tag_72\n jump\t// in\n tag_186:\n /* \"#utility.yul\":6429:6548 */\n tag_185:\n /* \"#utility.yul\":6587:6588 */\n 0x00\n /* \"#utility.yul\":6612:6676 */\n tag_187\n /* \"#utility.yul\":6668:6675 */\n dup5\n /* \"#utility.yul\":6659:6665 */\n dup3\n /* \"#utility.yul\":6648:6657 */\n dup6\n /* \"#utility.yul\":6644:6666 */\n add\n /* \"#utility.yul\":6612:6676 */\n tag_92\n jump\t// in\n tag_187:\n /* \"#utility.yul\":6602:6676 */\n swap2\n pop\n /* \"#utility.yul\":6558:6686 */\n pop\n /* \"#utility.yul\":6342:6693 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6699:6817 */\n tag_93:\n /* \"#utility.yul\":6786:6810 */\n tag_189\n /* \"#utility.yul\":6804:6809 */\n dup2\n /* \"#utility.yul\":6786:6810 */\n tag_90\n jump\t// in\n tag_189:\n /* \"#utility.yul\":6781:6784 */\n dup3\n /* \"#utility.yul\":6774:6811 */\n mstore\n /* \"#utility.yul\":6699:6817 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6823:6916 */\n tag_94:\n /* \"#utility.yul\":6859:6866 */\n 0x00\n /* \"#utility.yul\":6899:6909 */\n 0xffffffff\n /* \"#utility.yul\":6892:6897 */\n dup3\n /* \"#utility.yul\":6888:6910 */\n and\n /* \"#utility.yul\":6877:6910 */\n swap1\n pop\n /* \"#utility.yul\":6823:6916 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6922:7037 */\n tag_95:\n /* \"#utility.yul\":7007:7030 */\n tag_192\n /* \"#utility.yul\":7024:7029 */\n dup2\n /* \"#utility.yul\":7007:7030 */\n tag_94\n jump\t// in\n tag_192:\n /* \"#utility.yul\":7002:7005 */\n dup3\n /* \"#utility.yul\":6995:7031 */\n mstore\n /* \"#utility.yul\":6922:7037 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7043:7584 */\n tag_34:\n /* \"#utility.yul\":7214:7218 */\n 0x00\n /* \"#utility.yul\":7252:7255 */\n 0x80\n /* \"#utility.yul\":7241:7250 */\n dup3\n /* \"#utility.yul\":7237:7256 */\n add\n /* \"#utility.yul\":7229:7256 */\n swap1\n pop\n /* \"#utility.yul\":7266:7335 */\n tag_194\n /* \"#utility.yul\":7332:7333 */\n 0x00\n /* \"#utility.yul\":7321:7330 */\n dup4\n /* \"#utility.yul\":7317:7334 */\n add\n /* \"#utility.yul\":7308:7314 */\n dup8\n /* \"#utility.yul\":7266:7335 */\n tag_70\n jump\t// in\n tag_194:\n /* \"#utility.yul\":7345:7417 */\n tag_195\n /* \"#utility.yul\":7413:7415 */\n 0x20\n /* \"#utility.yul\":7402:7411 */\n dup4\n /* \"#utility.yul\":7398:7416 */\n add\n /* \"#utility.yul\":7389:7395 */\n dup7\n /* \"#utility.yul\":7345:7417 */\n tag_93\n jump\t// in\n tag_195:\n /* \"#utility.yul\":7427:7497 */\n tag_196\n /* \"#utility.yul\":7493:7495 */\n 0x40\n /* \"#utility.yul\":7482:7491 */\n dup4\n /* \"#utility.yul\":7478:7496 */\n add\n /* \"#utility.yul\":7469:7475 */\n dup6\n /* \"#utility.yul\":7427:7497 */\n tag_95\n jump\t// in\n tag_196:\n /* \"#utility.yul\":7507:7577 */\n tag_197\n /* \"#utility.yul\":7573:7575 */\n 0x60\n /* \"#utility.yul\":7562:7571 */\n dup4\n /* \"#utility.yul\":7558:7576 */\n add\n /* \"#utility.yul\":7549:7555 */\n dup5\n /* \"#utility.yul\":7507:7577 */\n tag_95\n jump\t// in\n tag_197:\n /* \"#utility.yul\":7043:7584 */\n swap6\n swap5\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7590:7710 */\n tag_96:\n /* \"#utility.yul\":7662:7685 */\n tag_199\n /* \"#utility.yul\":7679:7684 */\n dup2\n /* \"#utility.yul\":7662:7685 */\n tag_94\n jump\t// in\n tag_199:\n /* \"#utility.yul\":7655:7660 */\n dup2\n /* \"#utility.yul\":7652:7686 */\n eq\n /* \"#utility.yul\":7642:7704 */\n tag_200\n jumpi\n /* \"#utility.yul\":7700:7701 */\n 0x00\n /* \"#utility.yul\":7697:7698 */\n dup1\n /* \"#utility.yul\":7690:7702 */\n revert\n /* \"#utility.yul\":7642:7704 */\n tag_200:\n /* \"#utility.yul\":7590:7710 */\n pop\n jump\t// out\n /* \"#utility.yul\":7716:7857 */\n tag_97:\n /* \"#utility.yul\":7772:7777 */\n 0x00\n /* \"#utility.yul\":7803:7809 */\n dup2\n /* \"#utility.yul\":7797:7810 */\n mload\n /* \"#utility.yul\":7788:7810 */\n swap1\n pop\n /* \"#utility.yul\":7819:7851 */\n tag_202\n /* \"#utility.yul\":7845:7850 */\n dup2\n /* \"#utility.yul\":7819:7851 */\n tag_96\n jump\t// in\n tag_202:\n /* \"#utility.yul\":7716:7857 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7863:8212 */\n tag_38:\n /* \"#utility.yul\":7932:7938 */\n 0x00\n /* \"#utility.yul\":7981:7983 */\n 0x20\n /* \"#utility.yul\":7969:7978 */\n dup3\n /* \"#utility.yul\":7960:7967 */\n dup5\n /* \"#utility.yul\":7956:7979 */\n sub\n /* \"#utility.yul\":7952:7984 */\n slt\n /* \"#utility.yul\":7949:8068 */\n iszero\n tag_204\n jumpi\n /* \"#utility.yul\":7987:8066 */\n tag_205\n tag_72\n jump\t// in\n tag_205:\n /* \"#utility.yul\":7949:8068 */\n tag_204:\n /* \"#utility.yul\":8107:8108 */\n 0x00\n /* \"#utility.yul\":8132:8195 */\n tag_206\n /* \"#utility.yul\":8187:8194 */\n dup5\n /* \"#utility.yul\":8178:8184 */\n dup3\n /* \"#utility.yul\":8167:8176 */\n dup6\n /* \"#utility.yul\":8163:8185 */\n add\n /* \"#utility.yul\":8132:8195 */\n tag_97\n jump\t// in\n tag_206:\n /* \"#utility.yul\":8122:8195 */\n swap2\n pop\n /* \"#utility.yul\":8078:8205 */\n pop\n /* \"#utility.yul\":7863:8212 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8218:8436 */\n tag_40:\n /* \"#utility.yul\":8309:8313 */\n 0x00\n /* \"#utility.yul\":8347:8349 */\n 0x20\n /* \"#utility.yul\":8336:8345 */\n dup3\n /* \"#utility.yul\":8332:8350 */\n add\n /* \"#utility.yul\":8324:8350 */\n swap1\n pop\n /* \"#utility.yul\":8360:8429 */\n tag_208\n /* \"#utility.yul\":8426:8427 */\n 0x00\n /* \"#utility.yul\":8415:8424 */\n dup4\n /* \"#utility.yul\":8411:8428 */\n add\n /* \"#utility.yul\":8402:8408 */\n dup5\n /* \"#utility.yul\":8360:8429 */\n tag_95\n jump\t// in\n tag_208:\n /* \"#utility.yul\":8218:8436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8442:8622 */\n tag_98:\n /* \"#utility.yul\":8490:8567 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":8487:8488 */\n 0x00\n /* \"#utility.yul\":8480:8568 */\n mstore\n /* \"#utility.yul\":8587:8591 */\n 0x21\n /* \"#utility.yul\":8584:8585 */\n 0x04\n /* \"#utility.yul\":8577:8592 */\n mstore\n /* \"#utility.yul\":8611:8615 */\n 0x24\n /* \"#utility.yul\":8608:8609 */\n 0x00\n /* \"#utility.yul\":8601:8616 */\n revert\n /* \"#utility.yul\":8628:8747 */\n tag_99:\n /* \"#utility.yul\":8715:8716 */\n 0x07\n /* \"#utility.yul\":8708:8713 */\n dup2\n /* \"#utility.yul\":8705:8717 */\n lt\n /* \"#utility.yul\":8695:8741 */\n tag_211\n jumpi\n /* \"#utility.yul\":8721:8739 */\n tag_212\n tag_98\n jump\t// in\n tag_212:\n /* \"#utility.yul\":8695:8741 */\n tag_211:\n /* \"#utility.yul\":8628:8747 */\n pop\n jump\t// out\n /* \"#utility.yul\":8753:8892 */\n tag_100:\n /* \"#utility.yul\":8804:8811 */\n 0x00\n /* \"#utility.yul\":8833:8838 */\n dup2\n /* \"#utility.yul\":8822:8838 */\n swap1\n pop\n /* \"#utility.yul\":8839:8886 */\n tag_214\n /* \"#utility.yul\":8880:8885 */\n dup3\n /* \"#utility.yul\":8839:8886 */\n tag_99\n jump\t// in\n tag_214:\n /* \"#utility.yul\":8753:8892 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8898:9037 */\n tag_101:\n /* \"#utility.yul\":8960:8969 */\n 0x00\n /* \"#utility.yul\":8993:9031 */\n tag_216\n /* \"#utility.yul\":9025:9030 */\n dup3\n /* \"#utility.yul\":8993:9031 */\n tag_100\n jump\t// in\n tag_216:\n /* \"#utility.yul\":8980:9031 */\n swap1\n pop\n /* \"#utility.yul\":8898:9037 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9043:9198 */\n tag_102:\n /* \"#utility.yul\":9142:9191 */\n tag_218\n /* \"#utility.yul\":9185:9190 */\n dup2\n /* \"#utility.yul\":9142:9191 */\n tag_101\n jump\t// in\n tag_218:\n /* \"#utility.yul\":9137:9140 */\n dup3\n /* \"#utility.yul\":9130:9192 */\n mstore\n /* \"#utility.yul\":9043:9198 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9204:9666 */\n tag_45:\n /* \"#utility.yul\":9363:9367 */\n 0x00\n /* \"#utility.yul\":9401:9403 */\n 0x60\n /* \"#utility.yul\":9390:9399 */\n dup3\n /* \"#utility.yul\":9386:9404 */\n add\n /* \"#utility.yul\":9378:9404 */\n swap1\n pop\n /* \"#utility.yul\":9414:9483 */\n tag_220\n /* \"#utility.yul\":9480:9481 */\n 0x00\n /* \"#utility.yul\":9469:9478 */\n dup4\n /* \"#utility.yul\":9465:9482 */\n add\n /* \"#utility.yul\":9456:9462 */\n dup7\n /* \"#utility.yul\":9414:9483 */\n tag_95\n jump\t// in\n tag_220:\n /* \"#utility.yul\":9493:9565 */\n tag_221\n /* \"#utility.yul\":9561:9563 */\n 0x20\n /* \"#utility.yul\":9550:9559 */\n dup4\n /* \"#utility.yul\":9546:9564 */\n add\n /* \"#utility.yul\":9537:9543 */\n dup6\n /* \"#utility.yul\":9493:9565 */\n tag_68\n jump\t// in\n tag_221:\n /* \"#utility.yul\":9575:9659 */\n tag_222\n /* \"#utility.yul\":9655:9657 */\n 0x40\n /* \"#utility.yul\":9644:9653 */\n dup4\n /* \"#utility.yul\":9640:9658 */\n add\n /* \"#utility.yul\":9631:9637 */\n dup5\n /* \"#utility.yul\":9575:9659 */\n tag_102\n jump\t// in\n tag_222:\n /* \"#utility.yul\":9204:9666 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9672:9750 */\n tag_103:\n /* \"#utility.yul\":9710:9717 */\n 0x00\n /* \"#utility.yul\":9739:9744 */\n dup2\n /* \"#utility.yul\":9728:9744 */\n swap1\n pop\n /* \"#utility.yul\":9672:9750 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9756:9909 */\n tag_104:\n /* \"#utility.yul\":9859:9902 */\n tag_225\n /* \"#utility.yul\":9878:9901 */\n tag_226\n /* \"#utility.yul\":9895:9900 */\n dup3\n /* \"#utility.yul\":9878:9901 */\n tag_84\n jump\t// in\n tag_226:\n /* \"#utility.yul\":9859:9902 */\n tag_103\n jump\t// in\n tag_225:\n /* \"#utility.yul\":9854:9857 */\n dup3\n /* \"#utility.yul\":9847:9903 */\n mstore\n /* \"#utility.yul\":9756:9909 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9915:10064 */\n tag_105:\n /* \"#utility.yul\":9951:9958 */\n 0x00\n /* \"#utility.yul\":9991:10057 */\n 0xff00000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":9984:9989 */\n dup3\n /* \"#utility.yul\":9980:10058 */\n and\n /* \"#utility.yul\":9969:10058 */\n swap1\n pop\n /* \"#utility.yul\":9915:10064 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":10070:10148 */\n tag_106:\n /* \"#utility.yul\":10108:10115 */\n 0x00\n /* \"#utility.yul\":10137:10142 */\n dup2\n /* \"#utility.yul\":10126:10142 */\n swap1\n pop\n /* \"#utility.yul\":10070:10148 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":10154:10307 */\n tag_107:\n /* \"#utility.yul\":10257:10300 */\n tag_230\n /* \"#utility.yul\":10276:10299 */\n tag_231\n /* \"#utility.yul\":10293:10298 */\n dup3\n /* \"#utility.yul\":10276:10299 */\n tag_105\n jump\t// in\n tag_231:\n /* \"#utility.yul\":10257:10300 */\n tag_106\n jump\t// in\n tag_230:\n /* \"#utility.yul\":10252:10255 */\n dup3\n /* \"#utility.yul\":10245:10301 */\n mstore\n /* \"#utility.yul\":10154:10307 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10313:10460 */\n tag_108:\n /* \"#utility.yul\":10414:10425 */\n 0x00\n /* \"#utility.yul\":10451:10454 */\n dup2\n /* \"#utility.yul\":10436:10454 */\n swap1\n pop\n /* \"#utility.yul\":10313:10460 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10466:10852 */\n tag_109:\n /* \"#utility.yul\":10570:10573 */\n 0x00\n /* \"#utility.yul\":10598:10636 */\n tag_234\n /* \"#utility.yul\":10630:10635 */\n dup3\n /* \"#utility.yul\":10598:10636 */\n tag_86\n jump\t// in\n tag_234:\n /* \"#utility.yul\":10652:10740 */\n tag_235\n /* \"#utility.yul\":10733:10739 */\n dup2\n /* \"#utility.yul\":10728:10731 */\n dup6\n /* \"#utility.yul\":10652:10740 */\n tag_108\n jump\t// in\n tag_235:\n /* \"#utility.yul\":10645:10740 */\n swap4\n pop\n /* \"#utility.yul\":10749:10814 */\n tag_236\n /* \"#utility.yul\":10807:10813 */\n dup2\n /* \"#utility.yul\":10802:10805 */\n dup6\n /* \"#utility.yul\":10795:10799 */\n 0x20\n /* \"#utility.yul\":10788:10793 */\n dup7\n /* \"#utility.yul\":10784:10800 */\n add\n /* \"#utility.yul\":10749:10814 */\n tag_88\n jump\t// in\n tag_236:\n /* \"#utility.yul\":10839:10845 */\n dup1\n /* \"#utility.yul\":10834:10837 */\n dup5\n /* \"#utility.yul\":10830:10846 */\n add\n /* \"#utility.yul\":10823:10846 */\n swap2\n pop\n /* \"#utility.yul\":10574:10852 */\n pop\n /* \"#utility.yul\":10466:10852 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10858:11401 */\n tag_53:\n /* \"#utility.yul\":11040:11043 */\n 0x00\n /* \"#utility.yul\":11055:11128 */\n tag_238\n /* \"#utility.yul\":11124:11127 */\n dup3\n /* \"#utility.yul\":11115:11121 */\n dup7\n /* \"#utility.yul\":11055:11128 */\n tag_104\n jump\t// in\n tag_238:\n /* \"#utility.yul\":11153:11154 */\n 0x02\n /* \"#utility.yul\":11148:11151 */\n dup3\n /* \"#utility.yul\":11144:11155 */\n add\n /* \"#utility.yul\":11137:11155 */\n swap2\n pop\n /* \"#utility.yul\":11165:11238 */\n tag_239\n /* \"#utility.yul\":11234:11237 */\n dup3\n /* \"#utility.yul\":11225:11231 */\n dup6\n /* \"#utility.yul\":11165:11238 */\n tag_107\n jump\t// in\n tag_239:\n /* \"#utility.yul\":11263:11264 */\n 0x01\n /* \"#utility.yul\":11258:11261 */\n dup3\n /* \"#utility.yul\":11254:11265 */\n add\n /* \"#utility.yul\":11247:11265 */\n swap2\n pop\n /* \"#utility.yul\":11282:11375 */\n tag_240\n /* \"#utility.yul\":11371:11374 */\n dup3\n /* \"#utility.yul\":11362:11368 */\n dup5\n /* \"#utility.yul\":11282:11375 */\n tag_109\n jump\t// in\n tag_240:\n /* \"#utility.yul\":11275:11375 */\n swap2\n pop\n /* \"#utility.yul\":11392:11395 */\n dup2\n /* \"#utility.yul\":11385:11395 */\n swap1\n pop\n /* \"#utility.yul\":10858:11401 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11407:11834 */\n tag_59:\n /* \"#utility.yul\":11583:11586 */\n 0x00\n /* \"#utility.yul\":11605:11698 */\n tag_242\n /* \"#utility.yul\":11694:11697 */\n dup3\n /* \"#utility.yul\":11685:11691 */\n dup6\n /* \"#utility.yul\":11605:11698 */\n tag_109\n jump\t// in\n tag_242:\n /* \"#utility.yul\":11598:11698 */\n swap2\n pop\n /* \"#utility.yul\":11715:11808 */\n tag_243\n /* \"#utility.yul\":11804:11807 */\n dup3\n /* \"#utility.yul\":11795:11801 */\n dup5\n /* \"#utility.yul\":11715:11808 */\n tag_109\n jump\t// in\n tag_243:\n /* \"#utility.yul\":11708:11808 */\n swap2\n pop\n /* \"#utility.yul\":11825:11828 */\n dup2\n /* \"#utility.yul\":11818:11828 */\n swap1\n pop\n /* \"#utility.yul\":11407:11834 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11840:12020 */\n tag_110:\n /* \"#utility.yul\":11888:11965 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":11885:11886 */\n 0x00\n /* \"#utility.yul\":11878:11966 */\n mstore\n /* \"#utility.yul\":11985:11989 */\n 0x11\n /* \"#utility.yul\":11982:11983 */\n 0x04\n /* \"#utility.yul\":11975:11990 */\n mstore\n /* \"#utility.yul\":12009:12013 */\n 0x24\n /* \"#utility.yul\":12006:12007 */\n 0x00\n /* \"#utility.yul\":11999:12014 */\n revert\n /* \"#utility.yul\":12026:12436 */\n tag_62:\n /* \"#utility.yul\":12066:12073 */\n 0x00\n /* \"#utility.yul\":12089:12109 */\n tag_246\n /* \"#utility.yul\":12107:12108 */\n dup3\n /* \"#utility.yul\":12089:12109 */\n tag_67\n jump\t// in\n tag_246:\n /* \"#utility.yul\":12084:12109 */\n swap2\n pop\n /* \"#utility.yul\":12123:12143 */\n tag_247\n /* \"#utility.yul\":12141:12142 */\n dup4\n /* \"#utility.yul\":12123:12143 */\n tag_67\n jump\t// in\n tag_247:\n /* \"#utility.yul\":12118:12143 */\n swap3\n pop\n /* \"#utility.yul\":12178:12179 */\n dup3\n /* \"#utility.yul\":12175:12176 */\n dup3\n /* \"#utility.yul\":12171:12180 */\n mul\n /* \"#utility.yul\":12200:12230 */\n tag_248\n /* \"#utility.yul\":12218:12229 */\n dup2\n /* \"#utility.yul\":12200:12230 */\n tag_67\n jump\t// in\n tag_248:\n /* \"#utility.yul\":12189:12230 */\n swap2\n pop\n /* \"#utility.yul\":12379:12380 */\n dup3\n /* \"#utility.yul\":12370:12377 */\n dup3\n /* \"#utility.yul\":12366:12381 */\n div\n /* \"#utility.yul\":12363:12364 */\n dup5\n /* \"#utility.yul\":12360:12382 */\n eq\n /* \"#utility.yul\":12340:12341 */\n dup4\n /* \"#utility.yul\":12333:12342 */\n iszero\n /* \"#utility.yul\":12313:12396 */\n or\n /* \"#utility.yul\":12290:12429 */\n tag_249\n jumpi\n /* \"#utility.yul\":12409:12427 */\n tag_250\n tag_110\n jump\t// in\n tag_250:\n /* \"#utility.yul\":12290:12429 */\n tag_249:\n /* \"#utility.yul\":12074:12436 */\n pop\n /* \"#utility.yul\":12026:12436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12442:12635 */\n tag_64:\n /* \"#utility.yul\":12481:12484 */\n 0x00\n /* \"#utility.yul\":12500:12519 */\n tag_252\n /* \"#utility.yul\":12517:12518 */\n dup3\n /* \"#utility.yul\":12500:12519 */\n tag_69\n jump\t// in\n tag_252:\n /* \"#utility.yul\":12495:12519 */\n swap2\n pop\n /* \"#utility.yul\":12533:12552 */\n tag_253\n /* \"#utility.yul\":12550:12551 */\n dup4\n /* \"#utility.yul\":12533:12552 */\n tag_69\n jump\t// in\n tag_253:\n /* \"#utility.yul\":12528:12552 */\n swap3\n pop\n /* \"#utility.yul\":12575:12576 */\n dup3\n /* \"#utility.yul\":12572:12573 */\n dup3\n /* \"#utility.yul\":12568:12577 */\n add\n /* \"#utility.yul\":12561:12577 */\n swap1\n pop\n /* \"#utility.yul\":12598:12604 */\n 0xffff\n /* \"#utility.yul\":12593:12596 */\n dup2\n /* \"#utility.yul\":12590:12605 */\n gt\n /* \"#utility.yul\":12587:12628 */\n iszero\n tag_254\n jumpi\n /* \"#utility.yul\":12608:12626 */\n tag_255\n tag_110\n jump\t// in\n tag_255:\n /* \"#utility.yul\":12587:12628 */\n tag_254:\n /* \"#utility.yul\":12442:12635 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12641:13048 */\n tag_66:\n /* \"#utility.yul\":12797:12800 */\n 0x00\n /* \"#utility.yul\":12812:12885 */\n tag_257\n /* \"#utility.yul\":12881:12884 */\n dup3\n /* \"#utility.yul\":12872:12878 */\n dup6\n /* \"#utility.yul\":12812:12885 */\n tag_104\n jump\t// in\n tag_257:\n /* \"#utility.yul\":12910:12911 */\n 0x02\n /* \"#utility.yul\":12905:12908 */\n dup3\n /* \"#utility.yul\":12901:12912 */\n add\n /* \"#utility.yul\":12894:12912 */\n swap2\n pop\n /* \"#utility.yul\":12929:13022 */\n tag_258\n /* \"#utility.yul\":13018:13021 */\n dup3\n /* \"#utility.yul\":13009:13015 */\n dup5\n /* \"#utility.yul\":12929:13022 */\n tag_109\n jump\t// in\n tag_258:\n /* \"#utility.yul\":12922:13022 */\n swap2\n pop\n /* \"#utility.yul\":13039:13042 */\n dup2\n /* \"#utility.yul\":13032:13042 */\n swap1\n pop\n /* \"#utility.yul\":12641:13048 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220b36604818933d234e033ae1863fe2be2c5258a09a0fa7c42dc19933bc22c08ca64736f6c63430008110033\n}\n", "bytecode": { "functionDebugData": { "@_202": { @@ -128,7 +128,7 @@ "parameterSlots": 2, "returnSlots": 1 }, - "abi_decode_t_struct$_TrackInfo_$556_memory_ptr_fromMemory": { + "abi_decode_t_struct$_TrackInfo_$563_memory_ptr_fromMemory": { "entryPoint": 1971, "id": null, "parameterSlots": 2, @@ -158,7 +158,7 @@ "parameterSlots": 2, "returnSlots": 2 }, - "abi_decode_tuple_t_struct$_TrackInfo_$556_memory_ptr_fromMemory": { + "abi_decode_tuple_t_struct$_TrackInfo_$563_memory_ptr_fromMemory": { "entryPoint": 2311, "id": null, "parameterSlots": 2, @@ -6018,7 +6018,7 @@ } ] }, - "name": "abi_decode_t_struct$_TrackInfo_$556_memory_ptr_fromMemory", + "name": "abi_decode_t_struct$_TrackInfo_$563_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -6242,7 +6242,7 @@ } ], "functionName": { - "name": "abi_decode_t_struct$_TrackInfo_$556_memory_ptr_fromMemory", + "name": "abi_decode_t_struct$_TrackInfo_$563_memory_ptr_fromMemory", "nodeType": "YulIdentifier", "src": "11442:57:5" }, @@ -6261,7 +6261,7 @@ } ] }, - "name": "abi_decode_tuple_t_struct$_TrackInfo_$556_memory_ptr_fromMemory", + "name": "abi_decode_tuple_t_struct$_TrackInfo_$563_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -7298,15 +7298,15 @@ } ] }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_bytes2(value) -> cleaned {\n cleaned := and(value, 0xffff000000000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes2(value) {\n if iszero(eq(value, cleanup_t_bytes2(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes2_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes2(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_bytes2_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes2_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_uint16_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint16(value) -> cleaned {\n cleaned := and(value, 0xffff)\n }\n\n function validator_revert_t_uint16(value) {\n if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint16_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint16(value)\n }\n\n // uint16[]\n function abi_decode_available_length_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint16_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint16_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint16[]\n function abi_decode_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint16(value))\n }\n\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint16_to_t_uint16_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n // struct Referenda.TrackInfo\n function abi_decode_t_struct$_TrackInfo_$556_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x0120) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x0120)\n\n {\n // name\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // maxDeciding\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // decisionDeposit\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // preparePeriod\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // decisionPeriod\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // confirmPeriod\n\n let offset := 160\n\n mstore(add(value, 0xa0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minEnactmentPeriod\n\n let offset := 192\n\n mstore(add(value, 0xc0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minApproval\n\n let offset := mload(add(headStart, 224))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0xe0), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minSupport\n\n let offset := mload(add(headStart, 256))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x0100), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_TrackInfo_$556_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_TrackInfo_$556_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59(memPtr) {\n\n mstore(add(memPtr, 0), \"Couldn't find track\")\n\n }\n\n function abi_encode_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_bytes2(value) -> cleaned {\n cleaned := and(value, 0xffff000000000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes2(value) {\n if iszero(eq(value, cleanup_t_bytes2(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes2_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes2(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_bytes2_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes2_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_uint16_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint16(value) -> cleaned {\n cleaned := and(value, 0xffff)\n }\n\n function validator_revert_t_uint16(value) {\n if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint16_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint16(value)\n }\n\n // uint16[]\n function abi_decode_available_length_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint16_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint16_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint16[]\n function abi_decode_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_uint16_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint16(value))\n }\n\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint16_to_t_uint16_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n // struct Referenda.TrackInfo\n function abi_decode_t_struct$_TrackInfo_$563_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x0120) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x0120)\n\n {\n // name\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // maxDeciding\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // decisionDeposit\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // preparePeriod\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // decisionPeriod\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // confirmPeriod\n\n let offset := 160\n\n mstore(add(value, 0xa0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minEnactmentPeriod\n\n let offset := 192\n\n mstore(add(value, 0xc0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minApproval\n\n let offset := mload(add(headStart, 224))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0xe0), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // minSupport\n\n let offset := mload(add(headStart, 256))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x0100), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_TrackInfo_$563_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_TrackInfo_$563_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59(memPtr) {\n\n mstore(add(memPtr, 0), \"Couldn't find track\")\n\n }\n\n function abi_encode_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_26e0dc03d25b93a21bcbd1253c7a98201a96ee699b89a36943adfe220bbdbe59_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 5, "language": "Yul", "name": "#utility.yul" } ], "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b506040516200160a3803806200160a83398181016040528101906200003791906200048c565b818180600060026101000a81548161ffff021916908360f01c021790555062000066826200008b60201b60201c565b6000806101000a81548161ffff021916908361ffff1602179055505050505062000abd565b60008061081173ffffffffffffffffffffffffffffffffffffffff1663cc17da146040518163ffffffff1660e01b8152600401600060405180830381865afa158015620000dc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906200010791906200060c565b905060005b81518110156200025957600061081173ffffffffffffffffffffffffffffffffffffffff1663340381468484815181106200014c576200014b6200065d565b5b60200260200101516040518263ffffffff1660e01b81526004016200017291906200069d565b600060405180830381865afa15801562000190573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620001bb919062000907565b905084604051602001620001d09190620009a5565b604051602081830303815290604052805190602001208160000151604051602001620001fd9190620009a5565b604051602081830303815290604052805190602001200362000242578282815181106200022f576200022e6200065d565b5b6020026020010151935050505062000297565b5080806200025090620009ed565b9150506200010c565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200028e9062000a9b565b60405180910390fd5b919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200030582620002ba565b810181811067ffffffffffffffff82111715620003275762000326620002cb565b5b80604052505050565b60006200033c6200029c565b90506200034a8282620002fa565b919050565b600067ffffffffffffffff8211156200036d576200036c620002cb565b5b6200037882620002ba565b9050602081019050919050565b60005b83811015620003a557808201518184015260208101905062000388565b60008484015250505050565b6000620003c8620003c2846200034f565b62000330565b905082815260208101848484011115620003e757620003e6620002b5565b5b620003f484828562000385565b509392505050565b600082601f830112620004145762000413620002b0565b5b815162000426848260208601620003b1565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b62000466816200042f565b81146200047257600080fd5b50565b60008151905062000486816200045b565b92915050565b60008060408385031215620004a657620004a5620002a6565b5b600083015167ffffffffffffffff811115620004c757620004c6620002ab565b5b620004d585828601620003fc565b9250506020620004e88582860162000475565b9150509250929050565b600067ffffffffffffffff82111562000510576200050f620002cb565b5b602082029050602081019050919050565b600080fd5b600061ffff82169050919050565b6200053f8162000526565b81146200054b57600080fd5b50565b6000815190506200055f8162000534565b92915050565b60006200057c6200057684620004f2565b62000330565b90508083825260208201905060208402830185811115620005a257620005a162000521565b5b835b81811015620005cf5780620005ba88826200054e565b845260208401935050602081019050620005a4565b5050509392505050565b600082601f830112620005f157620005f0620002b0565b5b81516200060384826020860162000565565b91505092915050565b600060208284031215620006255762000624620002a6565b5b600082015167ffffffffffffffff811115620006465762000645620002ab565b5b6200065484828501620005d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b620006978162000526565b82525050565b6000602082019050620006b460008301846200068c565b92915050565b600080fd5b600080fd5b6000819050919050565b620006d981620006c4565b8114620006e557600080fd5b50565b600081519050620006f981620006ce565b92915050565b600067ffffffffffffffff8211156200071d576200071c620002cb565b5b6200072882620002ba565b9050602081019050919050565b60006200074c6200074684620006ff565b62000330565b9050828152602081018484840111156200076b576200076a620002b5565b5b6200077884828562000385565b509392505050565b600082601f830112620007985762000797620002b0565b5b8151620007aa84826020860162000735565b91505092915050565b60006101208284031215620007cd57620007cc620006ba565b5b620007da61012062000330565b9050600082015167ffffffffffffffff811115620007fd57620007fc620006bf565b5b6200080b84828501620003fc565b60008301525060206200082184828501620006e8565b60208301525060406200083784828501620006e8565b60408301525060606200084d84828501620006e8565b60608301525060806200086384828501620006e8565b60808301525060a06200087984828501620006e8565b60a08301525060c06200088f84828501620006e8565b60c08301525060e082015167ffffffffffffffff811115620008b657620008b5620006bf565b5b620008c48482850162000780565b60e08301525061010082015167ffffffffffffffff811115620008ec57620008eb620006bf565b5b620008fa8482850162000780565b6101008301525092915050565b60006020828403121562000920576200091f620002a6565b5b600082015167ffffffffffffffff811115620009415762000940620002ab565b5b6200094f84828501620007b3565b91505092915050565b600081519050919050565b600081905092915050565b60006200097b8262000958565b62000987818562000963565b93506200099981856020860162000385565b80840191505092915050565b6000620009b382846200096e565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009fa82620006c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a2f5762000a2e620009be565b5b600182019050919050565b600082825260208201905092915050565b7f436f756c646e27742066696e6420747261636b00000000000000000000000000600082015250565b600062000a8360138362000a3a565b915062000a908262000a4b565b602082019050919050565b6000602082019050818103600083015262000ab68162000a74565b9050919050565b610b3d8062000acd6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006002905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea2646970667358221220bdad4453aa6d78c958487815d182ffb6eaf3664add23e66e161304f251fc382864736f6c63430008110033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x160A CODESIZE SUB DUP1 PUSH3 0x160A DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x48C JUMP JUMPDEST DUP2 DUP2 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP PUSH3 0x66 DUP3 PUSH3 0x8B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP PUSH3 0xABD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCC17DA14 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0xDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x107 SWAP2 SWAP1 PUSH3 0x60C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0x259 JUMPI PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x34038146 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH3 0x14C JUMPI PUSH3 0x14B PUSH3 0x65D JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x172 SWAP2 SWAP1 PUSH3 0x69D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x190 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x1BB SWAP2 SWAP1 PUSH3 0x907 JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x1D0 SWAP2 SWAP1 PUSH3 0x9A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x1FD SWAP2 SWAP1 PUSH3 0x9A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SUB PUSH3 0x242 JUMPI DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH3 0x22F JUMPI PUSH3 0x22E PUSH3 0x65D JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP4 POP POP POP POP PUSH3 0x297 JUMP JUMPDEST POP DUP1 DUP1 PUSH3 0x250 SWAP1 PUSH3 0x9ED JUMP JUMPDEST SWAP2 POP POP PUSH3 0x10C JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x28E SWAP1 PUSH3 0xA9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x305 DUP3 PUSH3 0x2BA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x327 JUMPI PUSH3 0x326 PUSH3 0x2CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x33C PUSH3 0x29C JUMP JUMPDEST SWAP1 POP PUSH3 0x34A DUP3 DUP3 PUSH3 0x2FA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x36D JUMPI PUSH3 0x36C PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH3 0x378 DUP3 PUSH3 0x2BA JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x3A5 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x388 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3C8 PUSH3 0x3C2 DUP5 PUSH3 0x34F JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x3E7 JUMPI PUSH3 0x3E6 PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x3F4 DUP5 DUP3 DUP6 PUSH3 0x385 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x414 JUMPI PUSH3 0x413 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x426 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x3B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x466 DUP2 PUSH3 0x42F JUMP JUMPDEST DUP2 EQ PUSH3 0x472 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x486 DUP2 PUSH3 0x45B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x4A6 JUMPI PUSH3 0x4A5 PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4C7 JUMPI PUSH3 0x4C6 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x4D5 DUP6 DUP3 DUP7 ADD PUSH3 0x3FC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x4E8 DUP6 DUP3 DUP7 ADD PUSH3 0x475 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x510 JUMPI PUSH3 0x50F PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x53F DUP2 PUSH3 0x526 JUMP JUMPDEST DUP2 EQ PUSH3 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x55F DUP2 PUSH3 0x534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x57C PUSH3 0x576 DUP5 PUSH3 0x4F2 JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH3 0x5A2 JUMPI PUSH3 0x5A1 PUSH3 0x521 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x5CF JUMPI DUP1 PUSH3 0x5BA DUP9 DUP3 PUSH3 0x54E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x5A4 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x5F1 JUMPI PUSH3 0x5F0 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x603 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x565 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x625 JUMPI PUSH3 0x624 PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x646 JUMPI PUSH3 0x645 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x654 DUP5 DUP3 DUP6 ADD PUSH3 0x5D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x697 DUP2 PUSH3 0x526 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x6B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x68C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x6D9 DUP2 PUSH3 0x6C4 JUMP JUMPDEST DUP2 EQ PUSH3 0x6E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x6F9 DUP2 PUSH3 0x6CE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x71D JUMPI PUSH3 0x71C PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH3 0x728 DUP3 PUSH3 0x2BA JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x74C PUSH3 0x746 DUP5 PUSH3 0x6FF JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x76B JUMPI PUSH3 0x76A PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x778 DUP5 DUP3 DUP6 PUSH3 0x385 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x798 JUMPI PUSH3 0x797 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x7AA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x735 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x7CD JUMPI PUSH3 0x7CC PUSH3 0x6BA JUMP JUMPDEST JUMPDEST PUSH3 0x7DA PUSH2 0x120 PUSH3 0x330 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x7FD JUMPI PUSH3 0x7FC PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x80B DUP5 DUP3 DUP6 ADD PUSH3 0x3FC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH3 0x821 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH3 0x837 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH3 0x84D DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH3 0x863 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH3 0x879 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH3 0x88F DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x8B6 JUMPI PUSH3 0x8B5 PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x8C4 DUP5 DUP3 DUP6 ADD PUSH3 0x780 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x8EC JUMPI PUSH3 0x8EB PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x8FA DUP5 DUP3 DUP6 ADD PUSH3 0x780 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x920 JUMPI PUSH3 0x91F PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x941 JUMPI PUSH3 0x940 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x94F DUP5 DUP3 DUP6 ADD PUSH3 0x7B3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x97B DUP3 PUSH3 0x958 JUMP JUMPDEST PUSH3 0x987 DUP2 DUP6 PUSH3 0x963 JUMP JUMPDEST SWAP4 POP PUSH3 0x999 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x385 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9B3 DUP3 DUP5 PUSH3 0x96E JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x9FA DUP3 PUSH3 0x6C4 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH3 0xA2F JUMPI PUSH3 0xA2E PUSH3 0x9BE JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x436F756C646E27742066696E6420747261636B00000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA83 PUSH1 0x13 DUP4 PUSH3 0xA3A JUMP JUMPDEST SWAP2 POP PUSH3 0xA90 DUP3 PUSH3 0xA4B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0xAB6 DUP2 PUSH3 0xA74 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB3D DUP1 PUSH3 0xACD PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x79688E99 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x920E0C03 EQ PUSH2 0xA9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x67D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE DUP3 DUP5 PUSH2 0x309 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x813 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCB00F603 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D SWAP2 SWAP1 PUSH2 0x717 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x76F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B2479DB PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP6 DUP8 MLOAD DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x83B JUMP JUMPDEST SWAP1 POP PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x245CE18D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x868 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x278 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x812 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDA9DF518 DUP3 SELFBALANCE PUSH1 0x1 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x8FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x4000000000000000000000000000000000000000000000000000000000000 PUSH1 0x4 PUSH1 0xF8 SHL PUSH2 0x33A DUP6 DUP6 PUSH2 0x363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x34C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x36E DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x377 DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x388 SWAP3 SWAP2 SWAP1 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0xA67 JUMP JUMPDEST PUSH2 0x3BD SWAP2 SWAP1 PUSH2 0xAA9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3EC SWAP3 SWAP2 SWAP1 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x417 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x432 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x40E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x44F DUP2 PUSH2 0x438 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x46A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4D7 DUP3 PUSH2 0x48E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4F6 JUMPI PUSH2 0x4F5 PUSH2 0x49F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x509 PUSH2 0x470 JUMP JUMPDEST SWAP1 POP PUSH2 0x515 DUP3 DUP3 PUSH2 0x4CE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x535 JUMPI PUSH2 0x534 PUSH2 0x49F JUMP JUMPDEST JUMPDEST PUSH2 0x53E DUP3 PUSH2 0x48E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56D PUSH2 0x568 DUP5 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x4FF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x489 JUMP JUMPDEST JUMPDEST PUSH2 0x594 DUP5 DUP3 DUP6 PUSH2 0x54B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5B1 JUMPI PUSH2 0x5B0 PUSH2 0x484 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5C1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x55A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5E1 JUMPI PUSH2 0x5E0 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5FF JUMPI PUSH2 0x5FE PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x60B DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x62C JUMPI PUSH2 0x62B PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x638 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x677 DUP2 PUSH2 0x642 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x692 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x66E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E9 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x6F3 DUP2 DUP6 PUSH2 0x6A3 JUMP JUMPDEST SWAP4 POP PUSH2 0x703 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x70C DUP2 PUSH2 0x48E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x731 DUP2 DUP5 PUSH2 0x6DE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x74C DUP2 PUSH2 0x739 JUMP JUMPDEST DUP2 EQ PUSH2 0x757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x769 DUP2 PUSH2 0x743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x785 JUMPI PUSH2 0x784 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x793 DUP5 DUP3 DUP6 ADD PUSH2 0x75A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7A5 DUP2 PUSH2 0x739 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7C4 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x7DF PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x446 JUMP JUMPDEST PUSH2 0x7EC PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x7F9 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x806 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x818 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP2 EQ PUSH2 0x823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x835 DUP2 PUSH2 0x80F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x851 JUMPI PUSH2 0x850 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x85F DUP5 DUP3 DUP6 ADD PUSH2 0x826 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x87D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0x883 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x8D4 DUP3 PUSH2 0x8B2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E4 DUP3 PUSH2 0x8C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8F4 DUP2 PUSH2 0x8D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x90F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x91C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x40E JUMP JUMPDEST PUSH2 0x929 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8EB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94C PUSH2 0x947 DUP3 PUSH2 0x642 JUMP JUMPDEST PUSH2 0x931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x999 PUSH2 0x994 DUP3 PUSH2 0x952 JUMP JUMPDEST PUSH2 0x97E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9B5 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x9BF DUP2 DUP6 PUSH2 0x99F JUMP JUMPDEST SWAP4 POP PUSH2 0x9CF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E7 DUP3 DUP7 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x9F7 DUP3 DUP6 PUSH2 0x988 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0xA07 DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA20 DUP3 DUP6 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP PUSH2 0xA2C DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0xA7D DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xA8B DUP2 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB4 DUP3 PUSH2 0x438 JUMP JUMPDEST SWAP2 POP PUSH2 0xABF DUP4 PUSH2 0x438 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEB DUP3 DUP6 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0xAFB DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBD 0xAD DIFFICULTY MSTORE8 0xAA PUSH14 0x78C958487815D182FFB6EAF3664A 0xDD 0x23 0xE6 PUSH15 0x161304F251FC382864736F6C634300 ADDMOD GT STOP CALLER ", + "object": "60806040523480156200001157600080fd5b506040516200160a3803806200160a83398181016040528101906200003791906200048c565b818180600060026101000a81548161ffff021916908360f01c021790555062000066826200008b60201b60201c565b6000806101000a81548161ffff021916908361ffff1602179055505050505062000abd565b60008061081173ffffffffffffffffffffffffffffffffffffffff1663cc17da146040518163ffffffff1660e01b8152600401600060405180830381865afa158015620000dc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906200010791906200060c565b905060005b81518110156200025957600061081173ffffffffffffffffffffffffffffffffffffffff1663340381468484815181106200014c576200014b6200065d565b5b60200260200101516040518263ffffffff1660e01b81526004016200017291906200069d565b600060405180830381865afa15801562000190573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620001bb919062000907565b905084604051602001620001d09190620009a5565b604051602081830303815290604052805190602001208160000151604051602001620001fd9190620009a5565b604051602081830303815290604052805190602001200362000242578282815181106200022f576200022e6200065d565b5b6020026020010151935050505062000297565b5080806200025090620009ed565b9150506200010c565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200028e9062000a9b565b60405180910390fd5b919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200030582620002ba565b810181811067ffffffffffffffff82111715620003275762000326620002cb565b5b80604052505050565b60006200033c6200029c565b90506200034a8282620002fa565b919050565b600067ffffffffffffffff8211156200036d576200036c620002cb565b5b6200037882620002ba565b9050602081019050919050565b60005b83811015620003a557808201518184015260208101905062000388565b60008484015250505050565b6000620003c8620003c2846200034f565b62000330565b905082815260208101848484011115620003e757620003e6620002b5565b5b620003f484828562000385565b509392505050565b600082601f830112620004145762000413620002b0565b5b815162000426848260208601620003b1565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b62000466816200042f565b81146200047257600080fd5b50565b60008151905062000486816200045b565b92915050565b60008060408385031215620004a657620004a5620002a6565b5b600083015167ffffffffffffffff811115620004c757620004c6620002ab565b5b620004d585828601620003fc565b9250506020620004e88582860162000475565b9150509250929050565b600067ffffffffffffffff82111562000510576200050f620002cb565b5b602082029050602081019050919050565b600080fd5b600061ffff82169050919050565b6200053f8162000526565b81146200054b57600080fd5b50565b6000815190506200055f8162000534565b92915050565b60006200057c6200057684620004f2565b62000330565b90508083825260208201905060208402830185811115620005a257620005a162000521565b5b835b81811015620005cf5780620005ba88826200054e565b845260208401935050602081019050620005a4565b5050509392505050565b600082601f830112620005f157620005f0620002b0565b5b81516200060384826020860162000565565b91505092915050565b600060208284031215620006255762000624620002a6565b5b600082015167ffffffffffffffff811115620006465762000645620002ab565b5b6200065484828501620005d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b620006978162000526565b82525050565b6000602082019050620006b460008301846200068c565b92915050565b600080fd5b600080fd5b6000819050919050565b620006d981620006c4565b8114620006e557600080fd5b50565b600081519050620006f981620006ce565b92915050565b600067ffffffffffffffff8211156200071d576200071c620002cb565b5b6200072882620002ba565b9050602081019050919050565b60006200074c6200074684620006ff565b62000330565b9050828152602081018484840111156200076b576200076a620002b5565b5b6200077884828562000385565b509392505050565b600082601f830112620007985762000797620002b0565b5b8151620007aa84826020860162000735565b91505092915050565b60006101208284031215620007cd57620007cc620006ba565b5b620007da61012062000330565b9050600082015167ffffffffffffffff811115620007fd57620007fc620006bf565b5b6200080b84828501620003fc565b60008301525060206200082184828501620006e8565b60208301525060406200083784828501620006e8565b60408301525060606200084d84828501620006e8565b60608301525060806200086384828501620006e8565b60808301525060a06200087984828501620006e8565b60a08301525060c06200088f84828501620006e8565b60c08301525060e082015167ffffffffffffffff811115620008b657620008b5620006bf565b5b620008c48482850162000780565b60e08301525061010082015167ffffffffffffffff811115620008ec57620008eb620006bf565b5b620008fa8482850162000780565b6101008301525092915050565b60006020828403121562000920576200091f620002a6565b5b600082015167ffffffffffffffff811115620009415762000940620002ab565b5b6200094f84828501620007b3565b91505092915050565b600081519050919050565b600081905092915050565b60006200097b8262000958565b62000987818562000963565b93506200099981856020860162000385565b80840191505092915050565b6000620009b382846200096e565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009fa82620006c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a2f5762000a2e620009be565b5b600182019050919050565b600082825260208201905092915050565b7f436f756c646e27742066696e6420747261636b00000000000000000000000000600082015250565b600062000a8360138362000a3a565b915062000a908262000a4b565b602082019050919050565b6000602082019050818103600083015262000ab68162000a74565b9050919050565b610b3d8062000acd6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006002905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea2646970667358221220b36604818933d234e033ae1863fe2be2c5258a09a0fa7c42dc19933bc22c08ca64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x160A CODESIZE SUB DUP1 PUSH3 0x160A DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x48C JUMP JUMPDEST DUP2 DUP2 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP PUSH3 0x66 DUP3 PUSH3 0x8B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP PUSH3 0xABD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCC17DA14 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0xDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x107 SWAP2 SWAP1 PUSH3 0x60C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0x259 JUMPI PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x34038146 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH3 0x14C JUMPI PUSH3 0x14B PUSH3 0x65D JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x172 SWAP2 SWAP1 PUSH3 0x69D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x190 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x1BB SWAP2 SWAP1 PUSH3 0x907 JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x1D0 SWAP2 SWAP1 PUSH3 0x9A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x1FD SWAP2 SWAP1 PUSH3 0x9A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SUB PUSH3 0x242 JUMPI DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH3 0x22F JUMPI PUSH3 0x22E PUSH3 0x65D JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP4 POP POP POP POP PUSH3 0x297 JUMP JUMPDEST POP DUP1 DUP1 PUSH3 0x250 SWAP1 PUSH3 0x9ED JUMP JUMPDEST SWAP2 POP POP PUSH3 0x10C JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x28E SWAP1 PUSH3 0xA9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x305 DUP3 PUSH3 0x2BA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x327 JUMPI PUSH3 0x326 PUSH3 0x2CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x33C PUSH3 0x29C JUMP JUMPDEST SWAP1 POP PUSH3 0x34A DUP3 DUP3 PUSH3 0x2FA JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x36D JUMPI PUSH3 0x36C PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH3 0x378 DUP3 PUSH3 0x2BA JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x3A5 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x388 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3C8 PUSH3 0x3C2 DUP5 PUSH3 0x34F JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x3E7 JUMPI PUSH3 0x3E6 PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x3F4 DUP5 DUP3 DUP6 PUSH3 0x385 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x414 JUMPI PUSH3 0x413 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x426 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x3B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x466 DUP2 PUSH3 0x42F JUMP JUMPDEST DUP2 EQ PUSH3 0x472 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x486 DUP2 PUSH3 0x45B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x4A6 JUMPI PUSH3 0x4A5 PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4C7 JUMPI PUSH3 0x4C6 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x4D5 DUP6 DUP3 DUP7 ADD PUSH3 0x3FC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x4E8 DUP6 DUP3 DUP7 ADD PUSH3 0x475 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x510 JUMPI PUSH3 0x50F PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x53F DUP2 PUSH3 0x526 JUMP JUMPDEST DUP2 EQ PUSH3 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x55F DUP2 PUSH3 0x534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x57C PUSH3 0x576 DUP5 PUSH3 0x4F2 JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH3 0x5A2 JUMPI PUSH3 0x5A1 PUSH3 0x521 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x5CF JUMPI DUP1 PUSH3 0x5BA DUP9 DUP3 PUSH3 0x54E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x5A4 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x5F1 JUMPI PUSH3 0x5F0 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x603 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x565 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x625 JUMPI PUSH3 0x624 PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x646 JUMPI PUSH3 0x645 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x654 DUP5 DUP3 DUP6 ADD PUSH3 0x5D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x697 DUP2 PUSH3 0x526 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x6B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x68C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x6D9 DUP2 PUSH3 0x6C4 JUMP JUMPDEST DUP2 EQ PUSH3 0x6E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x6F9 DUP2 PUSH3 0x6CE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x71D JUMPI PUSH3 0x71C PUSH3 0x2CB JUMP JUMPDEST JUMPDEST PUSH3 0x728 DUP3 PUSH3 0x2BA JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x74C PUSH3 0x746 DUP5 PUSH3 0x6FF JUMP JUMPDEST PUSH3 0x330 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x76B JUMPI PUSH3 0x76A PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x778 DUP5 DUP3 DUP6 PUSH3 0x385 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x798 JUMPI PUSH3 0x797 PUSH3 0x2B0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x7AA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x735 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x7CD JUMPI PUSH3 0x7CC PUSH3 0x6BA JUMP JUMPDEST JUMPDEST PUSH3 0x7DA PUSH2 0x120 PUSH3 0x330 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x7FD JUMPI PUSH3 0x7FC PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x80B DUP5 DUP3 DUP6 ADD PUSH3 0x3FC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH3 0x821 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH3 0x837 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH3 0x84D DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH3 0x863 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH3 0x879 DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH3 0x88F DUP5 DUP3 DUP6 ADD PUSH3 0x6E8 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x8B6 JUMPI PUSH3 0x8B5 PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x8C4 DUP5 DUP3 DUP6 ADD PUSH3 0x780 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x8EC JUMPI PUSH3 0x8EB PUSH3 0x6BF JUMP JUMPDEST JUMPDEST PUSH3 0x8FA DUP5 DUP3 DUP6 ADD PUSH3 0x780 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x920 JUMPI PUSH3 0x91F PUSH3 0x2A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x941 JUMPI PUSH3 0x940 PUSH3 0x2AB JUMP JUMPDEST JUMPDEST PUSH3 0x94F DUP5 DUP3 DUP6 ADD PUSH3 0x7B3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x97B DUP3 PUSH3 0x958 JUMP JUMPDEST PUSH3 0x987 DUP2 DUP6 PUSH3 0x963 JUMP JUMPDEST SWAP4 POP PUSH3 0x999 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x385 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9B3 DUP3 DUP5 PUSH3 0x96E JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x9FA DUP3 PUSH3 0x6C4 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH3 0xA2F JUMPI PUSH3 0xA2E PUSH3 0x9BE JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x436F756C646E27742066696E6420747261636B00000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA83 PUSH1 0x13 DUP4 PUSH3 0xA3A JUMP JUMPDEST SWAP2 POP PUSH3 0xA90 DUP3 PUSH3 0xA4B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0xAB6 DUP2 PUSH3 0xA74 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB3D DUP1 PUSH3 0xACD PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x79688E99 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x920E0C03 EQ PUSH2 0xA9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x67D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE DUP3 DUP5 PUSH2 0x309 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x813 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCB00F603 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D SWAP2 SWAP1 PUSH2 0x717 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x76F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B2479DB PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP6 DUP8 MLOAD DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x83B JUMP JUMPDEST SWAP1 POP PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x245CE18D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x868 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x278 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x812 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDA9DF518 DUP3 SELFBALANCE PUSH1 0x1 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x8FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x4000000000000000000000000000000000000000000000000000000000000 PUSH1 0x4 PUSH1 0xF8 SHL PUSH2 0x33A DUP6 DUP6 PUSH2 0x363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x34C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x36E DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x377 DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x388 SWAP3 SWAP2 SWAP1 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0xA67 JUMP JUMPDEST PUSH2 0x3BD SWAP2 SWAP1 PUSH2 0xAA9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3EC SWAP3 SWAP2 SWAP1 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x417 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x432 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x40E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x44F DUP2 PUSH2 0x438 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x46A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4D7 DUP3 PUSH2 0x48E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4F6 JUMPI PUSH2 0x4F5 PUSH2 0x49F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x509 PUSH2 0x470 JUMP JUMPDEST SWAP1 POP PUSH2 0x515 DUP3 DUP3 PUSH2 0x4CE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x535 JUMPI PUSH2 0x534 PUSH2 0x49F JUMP JUMPDEST JUMPDEST PUSH2 0x53E DUP3 PUSH2 0x48E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56D PUSH2 0x568 DUP5 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x4FF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x489 JUMP JUMPDEST JUMPDEST PUSH2 0x594 DUP5 DUP3 DUP6 PUSH2 0x54B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5B1 JUMPI PUSH2 0x5B0 PUSH2 0x484 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5C1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x55A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5E1 JUMPI PUSH2 0x5E0 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5FF JUMPI PUSH2 0x5FE PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x60B DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x62C JUMPI PUSH2 0x62B PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x638 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x677 DUP2 PUSH2 0x642 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x692 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x66E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E9 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x6F3 DUP2 DUP6 PUSH2 0x6A3 JUMP JUMPDEST SWAP4 POP PUSH2 0x703 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x70C DUP2 PUSH2 0x48E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x731 DUP2 DUP5 PUSH2 0x6DE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x74C DUP2 PUSH2 0x739 JUMP JUMPDEST DUP2 EQ PUSH2 0x757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x769 DUP2 PUSH2 0x743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x785 JUMPI PUSH2 0x784 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x793 DUP5 DUP3 DUP6 ADD PUSH2 0x75A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7A5 DUP2 PUSH2 0x739 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7C4 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x7DF PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x446 JUMP JUMPDEST PUSH2 0x7EC PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x7F9 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x806 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x818 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP2 EQ PUSH2 0x823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x835 DUP2 PUSH2 0x80F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x851 JUMPI PUSH2 0x850 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x85F DUP5 DUP3 DUP6 ADD PUSH2 0x826 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x87D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0x883 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x8D4 DUP3 PUSH2 0x8B2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E4 DUP3 PUSH2 0x8C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8F4 DUP2 PUSH2 0x8D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x90F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x91C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x40E JUMP JUMPDEST PUSH2 0x929 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8EB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94C PUSH2 0x947 DUP3 PUSH2 0x642 JUMP JUMPDEST PUSH2 0x931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x999 PUSH2 0x994 DUP3 PUSH2 0x952 JUMP JUMPDEST PUSH2 0x97E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9B5 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x9BF DUP2 DUP6 PUSH2 0x99F JUMP JUMPDEST SWAP4 POP PUSH2 0x9CF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E7 DUP3 DUP7 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x9F7 DUP3 DUP6 PUSH2 0x988 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0xA07 DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA20 DUP3 DUP6 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP PUSH2 0xA2C DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0xA7D DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xA8B DUP2 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB4 DUP3 PUSH2 0x438 JUMP JUMPDEST SWAP2 POP PUSH2 0xABF DUP4 PUSH2 0x438 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEB DUP3 DUP6 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0xAFB DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB3 PUSH7 0x4818933D234E0 CALLER 0xAE XOR PUSH4 0xFE2BE2C5 0x25 DUP11 MULMOD LOG0 STATICCALL PUSH29 0x42DC19933BC22C08CA64736F6C63430008110033000000000000000000 ", "sourceMap": "3607:292:1:-:0;;;3677:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3776:9;3787:20;834;812:19;;:42;;;;;;;;;;;;;;;;;;1161:21;1172:9;1161:10;;;:21;;:::i;:::-;1147:11;;:35;;;;;;;;;;;;;;;;;;736:453;;3677:138;;3607:292;;1319:627;1411:6;1433:24;147:42:4;1460:27:1;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1433:56;;1504:9;1499:402;1523:8;:15;1519:1;:19;1499:402;;;1559:31;147:42:4;1593:28:1;;;1639:8;1648:1;1639:11;;;;;;;;:::i;:::-;;;;;;;;1593:71;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1559:105;;1788:9;1770:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;1760:40;;;;;;1728:4;:9;;;1710:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;1700:40;;;;;;:100;1679:212;;1865:8;1874:1;1865:11;;;;;;;;:::i;:::-;;;;;;;;1858:18;;;;;;;1679:212;1545:356;1540:3;;;;;:::i;:::-;;;;1499:402;;;;1910:29;;;;;;;;;;:::i;:::-;;;;;;;;1319:627;;;;:::o;7:75:5:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:149::-;2713:7;2753:66;2746:5;2742:78;2731:89;;2677:149;;;:::o;2832:120::-;2904:23;2921:5;2904:23;:::i;:::-;2897:5;2894:34;2884:62;;2942:1;2939;2932:12;2884:62;2832:120;:::o;2958:141::-;3014:5;3045:6;3039:13;3030:22;;3061:32;3087:5;3061:32;:::i;:::-;2958:141;;;;:::o;3105:678::-;3193:6;3201;3250:2;3238:9;3229:7;3225:23;3221:32;3218:119;;;3256:79;;:::i;:::-;3218:119;3397:1;3386:9;3382:17;3376:24;3427:18;3419:6;3416:30;3413:117;;;3449:79;;:::i;:::-;3413:117;3554:74;3620:7;3611:6;3600:9;3596:22;3554:74;:::i;:::-;3544:84;;3347:291;3677:2;3703:63;3758:7;3749:6;3738:9;3734:22;3703:63;:::i;:::-;3693:73;;3648:128;3105:678;;;;;:::o;3789:310::-;3865:4;3955:18;3947:6;3944:30;3941:56;;;3977:18;;:::i;:::-;3941:56;4027:4;4019:6;4015:17;4007:25;;4087:4;4081;4077:15;4069:23;;3789:310;;;:::o;4105:117::-;4214:1;4211;4204:12;4228:89;4264:7;4304:6;4297:5;4293:18;4282:29;;4228:89;;;:::o;4323:120::-;4395:23;4412:5;4395:23;:::i;:::-;4388:5;4385:34;4375:62;;4433:1;4430;4423:12;4375:62;4323:120;:::o;4449:141::-;4505:5;4536:6;4530:13;4521:22;;4552:32;4578:5;4552:32;:::i;:::-;4449:141;;;;:::o;4612:729::-;4718:5;4743:80;4759:63;4815:6;4759:63;:::i;:::-;4743:80;:::i;:::-;4734:89;;4843:5;4872:6;4865:5;4858:21;4906:4;4899:5;4895:16;4888:23;;4959:4;4951:6;4947:17;4939:6;4935:30;4988:3;4980:6;4977:15;4974:122;;;5007:79;;:::i;:::-;4974:122;5122:6;5105:230;5139:6;5134:3;5131:15;5105:230;;;5214:3;5243:47;5286:3;5274:10;5243:47;:::i;:::-;5238:3;5231:60;5320:4;5315:3;5311:14;5304:21;;5181:154;5165:4;5160:3;5156:14;5149:21;;5105:230;;;5109:21;4724:617;;4612:729;;;;;:::o;5363:383::-;5444:5;5493:3;5486:4;5478:6;5474:17;5470:27;5460:122;;5501:79;;:::i;:::-;5460:122;5611:6;5605:13;5636:104;5736:3;5728:6;5721:4;5713:6;5709:17;5636:104;:::i;:::-;5627:113;;5450:296;5363:383;;;;:::o;5752:552::-;5846:6;5895:2;5883:9;5874:7;5870:23;5866:32;5863:119;;;5901:79;;:::i;:::-;5863:119;6042:1;6031:9;6027:17;6021:24;6072:18;6064:6;6061:30;6058:117;;;6094:79;;:::i;:::-;6058:117;6199:88;6279:7;6270:6;6259:9;6255:22;6199:88;:::i;:::-;6189:98;;5992:305;5752:552;;;;:::o;6310:180::-;6358:77;6355:1;6348:88;6455:4;6452:1;6445:15;6479:4;6476:1;6469:15;6496:115;6581:23;6598:5;6581:23;:::i;:::-;6576:3;6569:36;6496:115;;:::o;6617:218::-;6708:4;6746:2;6735:9;6731:18;6723:26;;6759:69;6825:1;6814:9;6810:17;6801:6;6759:69;:::i;:::-;6617:218;;;;:::o;6841:117::-;6950:1;6947;6940:12;6964:117;7073:1;7070;7063:12;7087:77;7124:7;7153:5;7142:16;;7087:77;;;:::o;7170:122::-;7243:24;7261:5;7243:24;:::i;:::-;7236:5;7233:35;7223:63;;7282:1;7279;7272:12;7223:63;7170:122;:::o;7298:143::-;7355:5;7386:6;7380:13;7371:22;;7402:33;7429:5;7402:33;:::i;:::-;7298:143;;;;:::o;7447:307::-;7508:4;7598:18;7590:6;7587:30;7584:56;;;7620:18;;:::i;:::-;7584:56;7658:29;7680:6;7658:29;:::i;:::-;7650:37;;7742:4;7736;7732:15;7724:23;;7447:307;;;:::o;7760:432::-;7848:5;7873:65;7889:48;7930:6;7889:48;:::i;:::-;7873:65;:::i;:::-;7864:74;;7961:6;7954:5;7947:21;7999:4;7992:5;7988:16;8037:3;8028:6;8023:3;8019:16;8016:25;8013:112;;;8044:79;;:::i;:::-;8013:112;8134:52;8179:6;8174:3;8169;8134:52;:::i;:::-;7854:338;7760:432;;;;;:::o;8211:353::-;8277:5;8326:3;8319:4;8311:6;8307:17;8303:27;8293:122;;8334:79;;:::i;:::-;8293:122;8444:6;8438:13;8469:89;8554:3;8546:6;8539:4;8531:6;8527:17;8469:89;:::i;:::-;8460:98;;8283:281;8211:353;;;;:::o;8604:2383::-;8690:5;8734:6;8722:9;8717:3;8713:19;8709:32;8706:119;;;8744:79;;:::i;:::-;8706:119;8843:23;8859:6;8843:23;:::i;:::-;8834:32;;8946:1;8935:9;8931:17;8925:24;8976:18;8968:6;8965:30;8962:117;;;8998:79;;:::i;:::-;8962:117;9118:70;9184:3;9175:6;9164:9;9160:22;9118:70;:::i;:::-;9111:4;9104:5;9100:16;9093:96;8876:324;9266:2;9307:60;9363:3;9354:6;9343:9;9339:22;9307:60;:::i;:::-;9300:4;9293:5;9289:16;9282:86;9210:169;9449:2;9490:60;9546:3;9537:6;9526:9;9522:22;9490:60;:::i;:::-;9483:4;9476:5;9472:16;9465:86;9389:173;9630:2;9671:60;9727:3;9718:6;9707:9;9703:22;9671:60;:::i;:::-;9664:4;9657:5;9653:16;9646:86;9572:171;9812:3;9854:60;9910:3;9901:6;9890:9;9886:22;9854:60;:::i;:::-;9847:4;9840:5;9836:16;9829:86;9753:173;9994:3;10036:60;10092:3;10083:6;10072:9;10068:22;10036:60;:::i;:::-;10029:4;10022:5;10018:16;10011:86;9936:172;10181:3;10223:60;10279:3;10270:6;10259:9;10255:22;10223:60;:::i;:::-;10216:4;10209:5;10205:16;10198:86;10118:177;10382:3;10371:9;10367:19;10361:26;10414:18;10406:6;10403:30;10400:117;;;10436:79;;:::i;:::-;10400:117;10556:69;10621:3;10612:6;10601:9;10597:22;10556:69;:::i;:::-;10549:4;10542:5;10538:16;10531:95;10305:332;10723:3;10712:9;10708:19;10702:26;10755:18;10747:6;10744:30;10741:117;;;10777:79;;:::i;:::-;10741:117;10899:69;10964:3;10955:6;10944:9;10940:22;10899:69;:::i;:::-;10890:6;10883:5;10879:18;10872:97;10647:333;8604:2383;;;;:::o;10993:556::-;11089:6;11138:2;11126:9;11117:7;11113:23;11109:32;11106:119;;;11144:79;;:::i;:::-;11106:119;11285:1;11274:9;11270:17;11264:24;11315:18;11307:6;11304:30;11301:117;;;11337:79;;:::i;:::-;11301:117;11442:90;11524:7;11515:6;11504:9;11500:22;11442:90;:::i;:::-;11432:100;;11235:307;10993:556;;;;:::o;11555:99::-;11607:6;11641:5;11635:12;11625:22;;11555:99;;;:::o;11660:148::-;11762:11;11799:3;11784:18;;11660:148;;;;:::o;11814:390::-;11920:3;11948:39;11981:5;11948:39;:::i;:::-;12003:89;12085:6;12080:3;12003:89;:::i;:::-;11996:96;;12101:65;12159:6;12154:3;12147:4;12140:5;12136:16;12101:65;:::i;:::-;12191:6;12186:3;12182:16;12175:23;;11924:280;11814:390;;;;:::o;12210:275::-;12342:3;12364:95;12455:3;12446:6;12364:95;:::i;:::-;12357:102;;12476:3;12469:10;;12210:275;;;;:::o;12491:180::-;12539:77;12536:1;12529:88;12636:4;12633:1;12626:15;12660:4;12657:1;12650:15;12677:233;12716:3;12739:24;12757:5;12739:24;:::i;:::-;12730:33;;12785:66;12778:5;12775:77;12772:103;;12855:18;;:::i;:::-;12772:103;12902:1;12895:5;12891:13;12884:20;;12677:233;;;:::o;12916:169::-;13000:11;13034:6;13029:3;13022:19;13074:4;13069:3;13065:14;13050:29;;12916:169;;;;:::o;13091:::-;13231:21;13227:1;13219:6;13215:14;13208:45;13091:169;:::o;13266:366::-;13408:3;13429:67;13493:2;13488:3;13429:67;:::i;:::-;13422:74;;13505:93;13594:3;13505:93;:::i;:::-;13623:2;13618:3;13614:12;13607:19;;13266:366;;;:::o;13638:419::-;13804:4;13842:2;13831:9;13827:18;13819:26;;13891:9;13885:4;13881:20;13877:1;13866:9;13862:17;13855:47;13919:131;14045:4;13919:131;:::i;:::-;13911:139;;13638:419;;;:::o;3607:292:1:-;;;;;;;" }, "deployedBytecode": { @@ -14177,8 +14177,8 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006002905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea2646970667358221220bdad4453aa6d78c958487815d182ffb6eaf3664add23e66e161304f251fc382864736f6c63430008110033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x79688E99 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x920E0C03 EQ PUSH2 0xA9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x67D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE DUP3 DUP5 PUSH2 0x309 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x813 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCB00F603 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D SWAP2 SWAP1 PUSH2 0x717 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x76F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B2479DB PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP6 DUP8 MLOAD DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x83B JUMP JUMPDEST SWAP1 POP PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x245CE18D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x868 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x278 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x812 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDA9DF518 DUP3 SELFBALANCE PUSH1 0x1 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x8FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x4000000000000000000000000000000000000000000000000000000000000 PUSH1 0x4 PUSH1 0xF8 SHL PUSH2 0x33A DUP6 DUP6 PUSH2 0x363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x34C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x36E DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x377 DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x388 SWAP3 SWAP2 SWAP1 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0xA67 JUMP JUMPDEST PUSH2 0x3BD SWAP2 SWAP1 PUSH2 0xAA9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3EC SWAP3 SWAP2 SWAP1 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x417 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x432 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x40E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x44F DUP2 PUSH2 0x438 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x46A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4D7 DUP3 PUSH2 0x48E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4F6 JUMPI PUSH2 0x4F5 PUSH2 0x49F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x509 PUSH2 0x470 JUMP JUMPDEST SWAP1 POP PUSH2 0x515 DUP3 DUP3 PUSH2 0x4CE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x535 JUMPI PUSH2 0x534 PUSH2 0x49F JUMP JUMPDEST JUMPDEST PUSH2 0x53E DUP3 PUSH2 0x48E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56D PUSH2 0x568 DUP5 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x4FF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x489 JUMP JUMPDEST JUMPDEST PUSH2 0x594 DUP5 DUP3 DUP6 PUSH2 0x54B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5B1 JUMPI PUSH2 0x5B0 PUSH2 0x484 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5C1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x55A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5E1 JUMPI PUSH2 0x5E0 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5FF JUMPI PUSH2 0x5FE PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x60B DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x62C JUMPI PUSH2 0x62B PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x638 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x677 DUP2 PUSH2 0x642 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x692 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x66E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E9 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x6F3 DUP2 DUP6 PUSH2 0x6A3 JUMP JUMPDEST SWAP4 POP PUSH2 0x703 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x70C DUP2 PUSH2 0x48E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x731 DUP2 DUP5 PUSH2 0x6DE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x74C DUP2 PUSH2 0x739 JUMP JUMPDEST DUP2 EQ PUSH2 0x757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x769 DUP2 PUSH2 0x743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x785 JUMPI PUSH2 0x784 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x793 DUP5 DUP3 DUP6 ADD PUSH2 0x75A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7A5 DUP2 PUSH2 0x739 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7C4 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x7DF PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x446 JUMP JUMPDEST PUSH2 0x7EC PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x7F9 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x806 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x818 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP2 EQ PUSH2 0x823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x835 DUP2 PUSH2 0x80F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x851 JUMPI PUSH2 0x850 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x85F DUP5 DUP3 DUP6 ADD PUSH2 0x826 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x87D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0x883 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x8D4 DUP3 PUSH2 0x8B2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E4 DUP3 PUSH2 0x8C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8F4 DUP2 PUSH2 0x8D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x90F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x91C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x40E JUMP JUMPDEST PUSH2 0x929 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8EB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94C PUSH2 0x947 DUP3 PUSH2 0x642 JUMP JUMPDEST PUSH2 0x931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x999 PUSH2 0x994 DUP3 PUSH2 0x952 JUMP JUMPDEST PUSH2 0x97E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9B5 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x9BF DUP2 DUP6 PUSH2 0x99F JUMP JUMPDEST SWAP4 POP PUSH2 0x9CF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E7 DUP3 DUP7 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x9F7 DUP3 DUP6 PUSH2 0x988 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0xA07 DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA20 DUP3 DUP6 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP PUSH2 0xA2C DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0xA7D DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xA8B DUP2 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB4 DUP3 PUSH2 0x438 JUMP JUMPDEST SWAP2 POP PUSH2 0xABF DUP4 PUSH2 0x438 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEB DUP3 DUP6 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0xAFB DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBD 0xAD DIFFICULTY MSTORE8 0xAA PUSH14 0x78C958487815D182FFB6EAF3664A 0xDD 0x23 0xE6 PUSH15 0x161304F251FC382864736F6C634300 ADDMOD GT STOP CALLER ", + "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c806354fd4d50146100515780636d72ffb61461006f57806379688e991461008d578063920e0c03146100a9575b600080fd5b6100596100c7565b604051610066919061041d565b60405180910390f35b6100776100d0565b6040516100849190610455565b60405180910390f35b6100a760048036038101906100a291906105ca565b6100e2565b005b6100b16102f6565b6040516100be919061067d565b60405180910390f35b60006002905090565b60008054906101000a900461ffff1681565b60006100ee8284610309565b9050600061081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603836040518263ffffffff1660e01b815260040161012d9190610717565b6020604051808303816000875af115801561014c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610170919061076f565b9050600060019050600061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff16858751866040518563ffffffff1660e01b81526004016101ca94939291906107ca565b6020604051808303816000875af11580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061083b565b905061081173ffffffffffffffffffffffffffffffffffffffff1663245ce18d826040518263ffffffff1660e01b815260040161024a9190610868565b600060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b5050505061081273ffffffffffffffffffffffffffffffffffffffff1663da9df518824760016040518463ffffffff1660e01b81526004016102bc939291906108fa565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50505050505050505050565b600060029054906101000a900460f01b81565b60607e04000000000000000000000000000000000000000000000000000000000000600460f81b61033a8585610363565b60405160200161034c939291906109db565b604051602081830303815290604052905092915050565b606061036e8361039f565b6103778361039f565b604051602001610388929190610a14565b604051602081830303815290604052905092915050565b606060006001600484516103b39190610a67565b6103bd9190610aa9565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b846040516020016103ec929190610adf565b60405160208183030381529060405292505050919050565b6000819050919050565b61041781610404565b82525050565b6000602082019050610432600083018461040e565b92915050565b600061ffff82169050919050565b61044f81610438565b82525050565b600060208201905061046a6000830184610446565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104d78261048e565b810181811067ffffffffffffffff821117156104f6576104f561049f565b5b80604052505050565b6000610509610470565b905061051582826104ce565b919050565b600067ffffffffffffffff8211156105355761053461049f565b5b61053e8261048e565b9050602081019050919050565b82818337600083830152505050565b600061056d6105688461051a565b6104ff565b90508281526020810184848401111561058957610588610489565b5b61059484828561054b565b509392505050565b600082601f8301126105b1576105b0610484565b5b81356105c184826020860161055a565b91505092915050565b600080604083850312156105e1576105e061047a565b5b600083013567ffffffffffffffff8111156105ff576105fe61047f565b5b61060b8582860161059c565b925050602083013567ffffffffffffffff81111561062c5761062b61047f565b5b6106388582860161059c565b9150509250929050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b61067781610642565b82525050565b6000602082019050610692600083018461066e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106d25780820151818401526020810190506106b7565b60008484015250505050565b60006106e982610698565b6106f381856106a3565b93506107038185602086016106b4565b61070c8161048e565b840191505092915050565b6000602082019050818103600083015261073181846106de565b905092915050565b6000819050919050565b61074c81610739565b811461075757600080fd5b50565b60008151905061076981610743565b92915050565b6000602082840312156107855761078461047a565b5b60006107938482850161075a565b91505092915050565b6107a581610739565b82525050565b600063ffffffff82169050919050565b6107c4816107ab565b82525050565b60006080820190506107df6000830187610446565b6107ec602083018661079c565b6107f960408301856107bb565b61080660608301846107bb565b95945050505050565b610818816107ab565b811461082357600080fd5b50565b6000815190506108358161080f565b92915050565b6000602082840312156108515761085061047a565b5b600061085f84828501610826565b91505092915050565b600060208201905061087d60008301846107bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600781106108c3576108c2610883565b5b50565b60008190506108d4826108b2565b919050565b60006108e4826108c6565b9050919050565b6108f4816108d9565b82525050565b600060608201905061090f60008301866107bb565b61091c602083018561040e565b61092960408301846108eb565b949350505050565b6000819050919050565b61094c61094782610642565b610931565b82525050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b61099961099482610952565b61097e565b82525050565b600081905092915050565b60006109b582610698565b6109bf818561099f565b93506109cf8185602086016106b4565b80840191505092915050565b60006109e7828661093b565b6002820191506109f78285610988565b600182019150610a0782846109aa565b9150819050949350505050565b6000610a2082856109aa565b9150610a2c82846109aa565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7282610404565b9150610a7d83610404565b9250828202610a8b81610404565b91508282048414831517610aa257610aa1610a38565b5b5092915050565b6000610ab482610438565b9150610abf83610438565b9250828201905061ffff811115610ad957610ad8610a38565b5b92915050565b6000610aeb828561093b565b600282019150610afb82846109aa565b9150819050939250505056fea2646970667358221220b36604818933d234e033ae1863fe2be2c5258a09a0fa7c42dc19933bc22c08ca64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x79688E99 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x920E0C03 EQ PUSH2 0xA9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0xD0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x67D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE DUP3 DUP5 PUSH2 0x309 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x813 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCB00F603 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D SWAP2 SWAP1 PUSH2 0x717 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x76F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B2479DB PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP6 DUP8 MLOAD DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x83B JUMP JUMPDEST SWAP1 POP PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x245CE18D DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x868 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x278 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x812 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDA9DF518 DUP3 SELFBALANCE PUSH1 0x1 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x8FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x4000000000000000000000000000000000000000000000000000000000000 PUSH1 0x4 PUSH1 0xF8 SHL PUSH2 0x33A DUP6 DUP6 PUSH2 0x363 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x34C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x36E DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x377 DUP4 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x388 SWAP3 SWAP2 SWAP1 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0xA67 JUMP JUMPDEST PUSH2 0x3BD SWAP2 SWAP1 PUSH2 0xAA9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3EC SWAP3 SWAP2 SWAP1 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x417 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x432 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x40E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x44F DUP2 PUSH2 0x438 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x46A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4D7 DUP3 PUSH2 0x48E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4F6 JUMPI PUSH2 0x4F5 PUSH2 0x49F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x509 PUSH2 0x470 JUMP JUMPDEST SWAP1 POP PUSH2 0x515 DUP3 DUP3 PUSH2 0x4CE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x535 JUMPI PUSH2 0x534 PUSH2 0x49F JUMP JUMPDEST JUMPDEST PUSH2 0x53E DUP3 PUSH2 0x48E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56D PUSH2 0x568 DUP5 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x4FF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x489 JUMP JUMPDEST JUMPDEST PUSH2 0x594 DUP5 DUP3 DUP6 PUSH2 0x54B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5B1 JUMPI PUSH2 0x5B0 PUSH2 0x484 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5C1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x55A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5E1 JUMPI PUSH2 0x5E0 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5FF JUMPI PUSH2 0x5FE PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x60B DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x62C JUMPI PUSH2 0x62B PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x638 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x677 DUP2 PUSH2 0x642 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x692 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x66E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E9 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x6F3 DUP2 DUP6 PUSH2 0x6A3 JUMP JUMPDEST SWAP4 POP PUSH2 0x703 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST PUSH2 0x70C DUP2 PUSH2 0x48E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x731 DUP2 DUP5 PUSH2 0x6DE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x74C DUP2 PUSH2 0x739 JUMP JUMPDEST DUP2 EQ PUSH2 0x757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x769 DUP2 PUSH2 0x743 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x785 JUMPI PUSH2 0x784 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x793 DUP5 DUP3 DUP6 ADD PUSH2 0x75A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7A5 DUP2 PUSH2 0x739 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7C4 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x7DF PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x446 JUMP JUMPDEST PUSH2 0x7EC PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x7F9 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x806 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x818 DUP2 PUSH2 0x7AB JUMP JUMPDEST DUP2 EQ PUSH2 0x823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x835 DUP2 PUSH2 0x80F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x851 JUMPI PUSH2 0x850 PUSH2 0x47A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x85F DUP5 DUP3 DUP6 ADD PUSH2 0x826 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x87D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0x883 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x8D4 DUP3 PUSH2 0x8B2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E4 DUP3 PUSH2 0x8C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8F4 DUP2 PUSH2 0x8D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x90F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x91C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x40E JUMP JUMPDEST PUSH2 0x929 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8EB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94C PUSH2 0x947 DUP3 PUSH2 0x642 JUMP JUMPDEST PUSH2 0x931 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x999 PUSH2 0x994 DUP3 PUSH2 0x952 JUMP JUMPDEST PUSH2 0x97E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9B5 DUP3 PUSH2 0x698 JUMP JUMPDEST PUSH2 0x9BF DUP2 DUP6 PUSH2 0x99F JUMP JUMPDEST SWAP4 POP PUSH2 0x9CF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B4 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E7 DUP3 DUP7 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x9F7 DUP3 DUP6 PUSH2 0x988 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0xA07 DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA20 DUP3 DUP6 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP PUSH2 0xA2C DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0xA7D DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xA8B DUP2 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xAA2 JUMPI PUSH2 0xAA1 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB4 DUP3 PUSH2 0x438 JUMP JUMPDEST SWAP2 POP PUSH2 0xABF DUP4 PUSH2 0x438 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0xAD9 JUMPI PUSH2 0xAD8 PUSH2 0xA38 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEB DUP3 DUP6 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0xAFB DUP3 DUP5 PUSH2 0x9AA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB3 PUSH7 0x4818933D234E0 CALLER 0xAE XOR PUSH4 0xFE2BE2C5 0x25 DUP11 MULMOD LOG0 STATICCALL PUSH29 0x42DC19933BC22C08CA64736F6C63430008110033000000000000000000 ", "sourceMap": "3607:292:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3821:76;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;476:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2180:1044;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;609:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3821:76;3863:7;3889:1;3882:8;;3821:76;:::o;476:25::-;;;;;;;;;;;;:::o;2180:1044::-;2300:27;2330:106;2382:18;2414:12;2330:38;:106::i;:::-;2300:136;;2446:20;145:42:3;2469:30:1;;;2500:14;2469:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2446:69;;2658:17;2678:1;2658:21;;2689:19;147:42:4;2711:30:1;;;2755:11;;;;;;;;;;2780:12;2813:14;:21;2849:10;2711:158;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2689:180;;147:42:4;2919:39:1;;;2959:12;2919:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:42:2;3019:34:1;;;3067:12;3093:21;3171:36;3019:198;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2290:934;;;;2180:1044;;:::o;609:33::-;;;;;;;;;;;;;:::o;1402:410:0:-;1532:12;1605:18;1681:5;1668:20;;1746:45;1766:10;1778:12;1746:19;:45::i;:::-;1575:230;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1556:249;;1402:410;;;;:::o;858:282::-;972:12;1049:25;1070:3;1049:20;:25::i;:::-;1092:27;1113:5;1092:20;:27::i;:::-;1019:114;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1000:133;;858:282;;;;:::o;298:413::-;394:12;453:13;495:1;490;476:4;:11;:15;;;;:::i;:::-;469:27;;;;:::i;:::-;453:43;;542:21;594:1;584:6;:11;;;;578:1;568:6;:11;;;;567:29;542:55;;682:14;675:22;;699:4;662:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;655:49;;;;298:413;;;:::o;7:77:5:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:89::-;478:7;518:6;511:5;507:18;496:29;;442:89;;;:::o;537:115::-;622:23;639:5;622:23;:::i;:::-;617:3;610:36;537:115;;:::o;658:218::-;749:4;787:2;776:9;772:18;764:26;;800:69;866:1;855:9;851:17;842:6;800:69;:::i;:::-;658:218;;;;:::o;882:75::-;915:6;948:2;942:9;932:19;;882:75;:::o;963:117::-;1072:1;1069;1062:12;1086:117;1195:1;1192;1185:12;1209:117;1318:1;1315;1308:12;1332:117;1441:1;1438;1431:12;1455:102;1496:6;1547:2;1543:7;1538:2;1531:5;1527:14;1523:28;1513:38;;1455:102;;;:::o;1563:180::-;1611:77;1608:1;1601:88;1708:4;1705:1;1698:15;1732:4;1729:1;1722:15;1749:281;1832:27;1854:4;1832:27;:::i;:::-;1824:6;1820:40;1962:6;1950:10;1947:22;1926:18;1914:10;1911:34;1908:62;1905:88;;;1973:18;;:::i;:::-;1905:88;2013:10;2009:2;2002:22;1792:238;1749:281;;:::o;2036:129::-;2070:6;2097:20;;:::i;:::-;2087:30;;2126:33;2154:4;2146:6;2126:33;:::i;:::-;2036:129;;;:::o;2171:307::-;2232:4;2322:18;2314:6;2311:30;2308:56;;;2344:18;;:::i;:::-;2308:56;2382:29;2404:6;2382:29;:::i;:::-;2374:37;;2466:4;2460;2456:15;2448:23;;2171:307;;;:::o;2484:146::-;2581:6;2576:3;2571;2558:30;2622:1;2613:6;2608:3;2604:16;2597:27;2484:146;;;:::o;2636:423::-;2713:5;2738:65;2754:48;2795:6;2754:48;:::i;:::-;2738:65;:::i;:::-;2729:74;;2826:6;2819:5;2812:21;2864:4;2857:5;2853:16;2902:3;2893:6;2888:3;2884:16;2881:25;2878:112;;;2909:79;;:::i;:::-;2878:112;2999:54;3046:6;3041:3;3036;2999:54;:::i;:::-;2719:340;2636:423;;;;;:::o;3078:338::-;3133:5;3182:3;3175:4;3167:6;3163:17;3159:27;3149:122;;3190:79;;:::i;:::-;3149:122;3307:6;3294:20;3332:78;3406:3;3398:6;3391:4;3383:6;3379:17;3332:78;:::i;:::-;3323:87;;3139:277;3078:338;;;;:::o;3422:830::-;3508:6;3516;3565:2;3553:9;3544:7;3540:23;3536:32;3533:119;;;3571:79;;:::i;:::-;3533:119;3719:1;3708:9;3704:17;3691:31;3749:18;3741:6;3738:30;3735:117;;;3771:79;;:::i;:::-;3735:117;3876:62;3930:7;3921:6;3910:9;3906:22;3876:62;:::i;:::-;3866:72;;3662:286;4015:2;4004:9;4000:18;3987:32;4046:18;4038:6;4035:30;4032:117;;;4068:79;;:::i;:::-;4032:117;4173:62;4227:7;4218:6;4207:9;4203:22;4173:62;:::i;:::-;4163:72;;3958:287;3422:830;;;;;:::o;4258:149::-;4294:7;4334:66;4327:5;4323:78;4312:89;;4258:149;;;:::o;4413:115::-;4498:23;4515:5;4498:23;:::i;:::-;4493:3;4486:36;4413:115;;:::o;4534:218::-;4625:4;4663:2;4652:9;4648:18;4640:26;;4676:69;4742:1;4731:9;4727:17;4718:6;4676:69;:::i;:::-;4534:218;;;;:::o;4758:98::-;4809:6;4843:5;4837:12;4827:22;;4758:98;;;:::o;4862:168::-;4945:11;4979:6;4974:3;4967:19;5019:4;5014:3;5010:14;4995:29;;4862:168;;;;:::o;5036:246::-;5117:1;5127:113;5141:6;5138:1;5135:13;5127:113;;;5226:1;5221:3;5217:11;5211:18;5207:1;5202:3;5198:11;5191:39;5163:2;5160:1;5156:10;5151:15;;5127:113;;;5274:1;5265:6;5260:3;5256:16;5249:27;5098:184;5036:246;;;:::o;5288:373::-;5374:3;5402:38;5434:5;5402:38;:::i;:::-;5456:70;5519:6;5514:3;5456:70;:::i;:::-;5449:77;;5535:65;5593:6;5588:3;5581:4;5574:5;5570:16;5535:65;:::i;:::-;5625:29;5647:6;5625:29;:::i;:::-;5620:3;5616:39;5609:46;;5378:283;5288:373;;;;:::o;5667:309::-;5778:4;5816:2;5805:9;5801:18;5793:26;;5865:9;5859:4;5855:20;5851:1;5840:9;5836:17;5829:47;5893:76;5964:4;5955:6;5893:76;:::i;:::-;5885:84;;5667:309;;;;:::o;5982:77::-;6019:7;6048:5;6037:16;;5982:77;;;:::o;6065:122::-;6138:24;6156:5;6138:24;:::i;:::-;6131:5;6128:35;6118:63;;6177:1;6174;6167:12;6118:63;6065:122;:::o;6193:143::-;6250:5;6281:6;6275:13;6266:22;;6297:33;6324:5;6297:33;:::i;:::-;6193:143;;;;:::o;6342:351::-;6412:6;6461:2;6449:9;6440:7;6436:23;6432:32;6429:119;;;6467:79;;:::i;:::-;6429:119;6587:1;6612:64;6668:7;6659:6;6648:9;6644:22;6612:64;:::i;:::-;6602:74;;6558:128;6342:351;;;;:::o;6699:118::-;6786:24;6804:5;6786:24;:::i;:::-;6781:3;6774:37;6699:118;;:::o;6823:93::-;6859:7;6899:10;6892:5;6888:22;6877:33;;6823:93;;;:::o;6922:115::-;7007:23;7024:5;7007:23;:::i;:::-;7002:3;6995:36;6922:115;;:::o;7043:541::-;7214:4;7252:3;7241:9;7237:19;7229:27;;7266:69;7332:1;7321:9;7317:17;7308:6;7266:69;:::i;:::-;7345:72;7413:2;7402:9;7398:18;7389:6;7345:72;:::i;:::-;7427:70;7493:2;7482:9;7478:18;7469:6;7427:70;:::i;:::-;7507;7573:2;7562:9;7558:18;7549:6;7507:70;:::i;:::-;7043:541;;;;;;;:::o;7590:120::-;7662:23;7679:5;7662:23;:::i;:::-;7655:5;7652:34;7642:62;;7700:1;7697;7690:12;7642:62;7590:120;:::o;7716:141::-;7772:5;7803:6;7797:13;7788:22;;7819:32;7845:5;7819:32;:::i;:::-;7716:141;;;;:::o;7863:349::-;7932:6;7981:2;7969:9;7960:7;7956:23;7952:32;7949:119;;;7987:79;;:::i;:::-;7949:119;8107:1;8132:63;8187:7;8178:6;8167:9;8163:22;8132:63;:::i;:::-;8122:73;;8078:127;7863:349;;;;:::o;8218:218::-;8309:4;8347:2;8336:9;8332:18;8324:26;;8360:69;8426:1;8415:9;8411:17;8402:6;8360:69;:::i;:::-;8218:218;;;;:::o;8442:180::-;8490:77;8487:1;8480:88;8587:4;8584:1;8577:15;8611:4;8608:1;8601:15;8628:119;8715:1;8708:5;8705:12;8695:46;;8721:18;;:::i;:::-;8695:46;8628:119;:::o;8753:139::-;8804:7;8833:5;8822:16;;8839:47;8880:5;8839:47;:::i;:::-;8753:139;;;:::o;8898:::-;8960:9;8993:38;9025:5;8993:38;:::i;:::-;8980:51;;8898:139;;;:::o;9043:155::-;9142:49;9185:5;9142:49;:::i;:::-;9137:3;9130:62;9043:155;;:::o;9204:462::-;9363:4;9401:2;9390:9;9386:18;9378:26;;9414:69;9480:1;9469:9;9465:17;9456:6;9414:69;:::i;:::-;9493:72;9561:2;9550:9;9546:18;9537:6;9493:72;:::i;:::-;9575:84;9655:2;9644:9;9640:18;9631:6;9575:84;:::i;:::-;9204:462;;;;;;:::o;9672:78::-;9710:7;9739:5;9728:16;;9672:78;;;:::o;9756:153::-;9859:43;9878:23;9895:5;9878:23;:::i;:::-;9859:43;:::i;:::-;9854:3;9847:56;9756:153;;:::o;9915:149::-;9951:7;9991:66;9984:5;9980:78;9969:89;;9915:149;;;:::o;10070:78::-;10108:7;10137:5;10126:16;;10070:78;;;:::o;10154:153::-;10257:43;10276:23;10293:5;10276:23;:::i;:::-;10257:43;:::i;:::-;10252:3;10245:56;10154:153;;:::o;10313:147::-;10414:11;10451:3;10436:18;;10313:147;;;;:::o;10466:386::-;10570:3;10598:38;10630:5;10598:38;:::i;:::-;10652:88;10733:6;10728:3;10652:88;:::i;:::-;10645:95;;10749:65;10807:6;10802:3;10795:4;10788:5;10784:16;10749:65;:::i;:::-;10839:6;10834:3;10830:16;10823:23;;10574:278;10466:386;;;;:::o;10858:543::-;11040:3;11055:73;11124:3;11115:6;11055:73;:::i;:::-;11153:1;11148:3;11144:11;11137:18;;11165:73;11234:3;11225:6;11165:73;:::i;:::-;11263:1;11258:3;11254:11;11247:18;;11282:93;11371:3;11362:6;11282:93;:::i;:::-;11275:100;;11392:3;11385:10;;10858:543;;;;;;:::o;11407:427::-;11583:3;11605:93;11694:3;11685:6;11605:93;:::i;:::-;11598:100;;11715:93;11804:3;11795:6;11715:93;:::i;:::-;11708:100;;11825:3;11818:10;;11407:427;;;;;:::o;11840:180::-;11888:77;11885:1;11878:88;11985:4;11982:1;11975:15;12009:4;12006:1;11999:15;12026:410;12066:7;12089:20;12107:1;12089:20;:::i;:::-;12084:25;;12123:20;12141:1;12123:20;:::i;:::-;12118:25;;12178:1;12175;12171:9;12200:30;12218:11;12200:30;:::i;:::-;12189:41;;12379:1;12370:7;12366:15;12363:1;12360:22;12340:1;12333:9;12313:83;12290:139;;12409:18;;:::i;:::-;12290:139;12074:362;12026:410;;;;:::o;12442:193::-;12481:3;12500:19;12517:1;12500:19;:::i;:::-;12495:24;;12533:19;12550:1;12533:19;:::i;:::-;12528:24;;12575:1;12572;12568:9;12561:16;;12598:6;12593:3;12590:15;12587:41;;;12608:18;;:::i;:::-;12587:41;12442:193;;;;:::o;12641:407::-;12797:3;12812:73;12881:3;12872:6;12812:73;:::i;:::-;12910:1;12905:3;12901:11;12894:18;;12929:93;13018:3;13009:6;12929:93;:::i;:::-;12922:100;;13039:3;13032:10;;12641:407;;;;;:::o" }, "gasEstimates": { @@ -20096,7 +20096,7 @@ ], ".data": { "0": { - ".auxdata": "a2646970667358221220bdad4453aa6d78c958487815d182ffb6eaf3664add23e66e161304f251fc382864736f6c63430008110033", + ".auxdata": "a2646970667358221220b36604818933d234e033ae1863fe2be2c5258a09a0fa7c42dc19933bc22c08ca64736f6c63430008110033", ".code": [ { "begin": 3607, @@ -27018,7 +27018,7 @@ } }, "ewasm": { "wasm": "" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"trackName\",\"type\":\"string\"},{\"internalType\":\"bytes2\",\"name\":\"pSetStorageCallIndex\",\"type\":\"bytes2\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"contractStorageKey\",\"type\":\"bytes\"}],\"name\":\"autoUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootTrackId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setStorageCallIndex\",\"outputs\":[{\"internalType\":\"bytes2\",\"name\":\"\",\"type\":\"bytes2\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"params\":{\"contractCode\":\"The code as deployed of the new contract\",\"contractStorageKey\":\"The storage key associated with the current smart contract\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"notice\":\"submits to upgrade contract for given storage key\"},\"rootTrackId()\":{\"notice\":\"The id of the track used for root execution\"},\"setStorageCallIndex()\":{\"notice\":\"SetStorageCall index (pallet Index concatenated with call index, usually \\\"\\\\x00\\\\x04\\\")\"}},\"notice\":\"Second version of the contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"ReferendaAutoUpgradeDemoV2\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"SubstrateTools.sol\":{\"keccak256\":\"0xb79c6a9b3a694dfa362268f87e5598b95c048c5e8f1a053a5c5e9dd81e6345a1\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://ecbf04ed9eaca008ec155d5041ce28cab434f8f15368a4db7a5d3ad653f12e1b\",\"dweb:/ipfs/QmPuCTURp9BwkyR6otvbs2mQhiToSheANZiTpw7AvXAdnR\"]},\"main.sol\":{\"keccak256\":\"0x952cd5c14bbd014c37b67fda6f4b52dae7aaf888fe3476d9575fd5ea76fa15a0\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://550273857d8f5f99a118fe8686cb69e92d16a03f9209ff8b841b0fb9a341ccba\",\"dweb:/ipfs/QmRWX8vaQjKhcgrHP2YcpJV7fGqnDmLP2Roj8ehYHYXD4T\"]},\"precompiles/conviction-voting/ConvictionVoting.sol\":{\"keccak256\":\"0x2ee018e2de05f175dc13f1eada66c145ee9b86c79eabcea8475681d840e2374d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://9f57de4887b65be5bb52e848513bd3471c4275ff6df34d2a647dc421054122b3\",\"dweb:/ipfs/QmYt2F5e6VHUc5MdhsaSsTcZbctSNeUH9ncgCihSx37uc3\"]},\"precompiles/preimage/Preimage.sol\":{\"keccak256\":\"0x8b0a12d239d2226ae5d5d79761b0e66c3aa9bdbe2fb41d512478bbd8b5d516ec\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://8405c679cdc5ecc4725e1869c620910ed303dfdab74a617af60e6b4c6df6ca3e\",\"dweb:/ipfs/QmPsXz13YLPKX2FjaLTZTW1cEBeVL1cKt4GoJewtiHjv2P\"]},\"precompiles/referenda/Referenda.sol\":{\"keccak256\":\"0x6d7b2c4c6e5f54ca4bbd935e37581c587b058b34145f6380a35c405bd9f981f4\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://27b062d76058c253b7534f6a3782599dd80cb533474290f557435d4a31e8de81\",\"dweb:/ipfs/QmRV57137PdX3JKE6Hi5BS7n3o624xT8GbjG3dVwod1Q5P\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"trackName\",\"type\":\"string\"},{\"internalType\":\"bytes2\",\"name\":\"pSetStorageCallIndex\",\"type\":\"bytes2\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"contractStorageKey\",\"type\":\"bytes\"}],\"name\":\"autoUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootTrackId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setStorageCallIndex\",\"outputs\":[{\"internalType\":\"bytes2\",\"name\":\"\",\"type\":\"bytes2\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"params\":{\"contractCode\":\"The code as deployed of the new contract\",\"contractStorageKey\":\"The storage key associated with the current smart contract\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"autoUpgrade(bytes,bytes)\":{\"notice\":\"submits to upgrade contract for given storage key\"},\"rootTrackId()\":{\"notice\":\"The id of the track used for root execution\"},\"setStorageCallIndex()\":{\"notice\":\"SetStorageCall index (pallet Index concatenated with call index, usually \\\"\\\\x00\\\\x04\\\")\"}},\"notice\":\"Second version of the contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"ReferendaAutoUpgradeDemoV2\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"SubstrateTools.sol\":{\"keccak256\":\"0xb79c6a9b3a694dfa362268f87e5598b95c048c5e8f1a053a5c5e9dd81e6345a1\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://ecbf04ed9eaca008ec155d5041ce28cab434f8f15368a4db7a5d3ad653f12e1b\",\"dweb:/ipfs/QmPuCTURp9BwkyR6otvbs2mQhiToSheANZiTpw7AvXAdnR\"]},\"main.sol\":{\"keccak256\":\"0x952cd5c14bbd014c37b67fda6f4b52dae7aaf888fe3476d9575fd5ea76fa15a0\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://550273857d8f5f99a118fe8686cb69e92d16a03f9209ff8b841b0fb9a341ccba\",\"dweb:/ipfs/QmRWX8vaQjKhcgrHP2YcpJV7fGqnDmLP2Roj8ehYHYXD4T\"]},\"precompiles/conviction-voting/ConvictionVoting.sol\":{\"keccak256\":\"0x2ee018e2de05f175dc13f1eada66c145ee9b86c79eabcea8475681d840e2374d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://9f57de4887b65be5bb52e848513bd3471c4275ff6df34d2a647dc421054122b3\",\"dweb:/ipfs/QmYt2F5e6VHUc5MdhsaSsTcZbctSNeUH9ncgCihSx37uc3\"]},\"precompiles/preimage/Preimage.sol\":{\"keccak256\":\"0x8b0a12d239d2226ae5d5d79761b0e66c3aa9bdbe2fb41d512478bbd8b5d516ec\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://8405c679cdc5ecc4725e1869c620910ed303dfdab74a617af60e6b4c6df6ca3e\",\"dweb:/ipfs/QmPsXz13YLPKX2FjaLTZTW1cEBeVL1cKt4GoJewtiHjv2P\"]},\"precompiles/referenda/Referenda.sol\":{\"keccak256\":\"0x1775aed3f3772a4e943ee08c12f42ff5ce2bf528466f33efc36a6447cfbfb594\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://22c54fd60c34e50acf3554a32b11b7e5207f2ad2c16b37cd3c4e607d5ce7827a\",\"dweb:/ipfs/QmSmFZPJ7MH6PjfYKMoLbY2QzhhREvuQyNTztQQ683utC9\"]}},\"version\":1}", "storageLayout": { "storage": [ { diff --git a/tests/contracts/compiled/ReferendaChecker.json b/tests/contracts/compiled/ReferendaChecker.json index d1cfed4352..2a86e55318 100644 --- a/tests/contracts/compiled/ReferendaChecker.json +++ b/tests/contracts/compiled/ReferendaChecker.json @@ -1,5 +1,5 @@ { - "byteCode": "0x60806040523480156200001157600080fd5b5060006200005f6040518060400160405280601781526020017f5265666572656e6461205465737420436f6e7472616374000000000000000000815250620001a360201b620000b61760201c565b905061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff1661081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603856040518263ffffffff1660e01b8152600401620000cb919062000304565b6020604051808303816000875af1158015620000eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000111919062000368565b845160016040518563ffffffff1660e01b815260040162000136949392919062000438565b6020604051808303816000875af115801562000156573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017c9190620004b6565b600060026101000a81548163ffffffff021916908363ffffffff1602179055505062000668565b60607e01000000000000000000000000000000000000000000000000000000000000620001d683620001ff60201b60201c565b604051602001620001e99291906200057b565b6040516020818303038152906040529050919050565b60606000600160048451620002159190620005e0565b6200022191906200062b565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b84604051602001620002529291906200057b565b60405160208183030381529060405292505050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620002a657808201518184015260208101905062000289565b60008484015250505050565b6000601f19601f8301169050919050565b6000620002d0826200026a565b620002dc818562000275565b9350620002ee81856020860162000286565b620002f981620002b2565b840191505092915050565b60006020820190508181036000830152620003208184620002c3565b905092915050565b600080fd5b6000819050919050565b62000342816200032d565b81146200034e57600080fd5b50565b600081519050620003628162000337565b92915050565b60006020828403121562000381576200038062000328565b5b6000620003918482850162000351565b91505092915050565b600061ffff82169050919050565b620003b3816200039a565b82525050565b620003c4816200032d565b82525050565b600063ffffffff82169050919050565b620003e581620003ca565b82525050565b6000819050919050565b6000819050919050565b6000620004206200041a6200041484620003eb565b620003f5565b620003ca565b9050919050565b6200043281620003ff565b82525050565b60006080820190506200044f6000830187620003a8565b6200045e6020830186620003b9565b6200046d6040830185620003da565b6200047c606083018462000427565b95945050505050565b6200049081620003ca565b81146200049c57600080fd5b50565b600081519050620004b08162000485565b92915050565b600060208284031215620004cf57620004ce62000328565b5b6000620004df848285016200049f565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b620005336200052d82620004e8565b62000514565b82525050565b600081905092915050565b600062000551826200026a565b6200055d818562000539565b93506200056f81856020860162000286565b80840191505092915050565b60006200058982856200051e565b6002820191506200059b828462000544565b91508190509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005ed82620005a7565b9150620005fa83620005a7565b92508282026200060a81620005a7565b91508282048414831517620006245762000623620005b1565b5b5092915050565b600062000638826200039a565b915062000645836200039a565b9250828201905061ffff811115620006625762000661620005b1565b5b92915050565b6103ac80620006786000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633ebfa8db146100465780636d72ffb614610050578063cab0b0e61461006e575b600080fd5b61004e61008c565b005b61005861008e565b604051610065919061018a565b60405180910390f35b6100766100a0565b60405161008391906101c4565b60405180910390f35b565b60008054906101000a900461ffff1681565b600060029054906101000a900463ffffffff1681565b60607e010000000000000000000000000000000000000000000000000000000000006100e183610108565b6040516020016100f292919061029d565b6040516020818303038152906040529050919050565b6060600060016004845161011c91906102fe565b6101269190610340565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b8460405160200161015592919061029d565b60405160208183030381529060405292505050919050565b600061ffff82169050919050565b6101848161016d565b82525050565b600060208201905061019f600083018461017b565b92915050565b600063ffffffff82169050919050565b6101be816101a5565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b610226610221826101df565b61020b565b82525050565b600081519050919050565b600081905092915050565b60005b83811015610260578082015181840152602081019050610245565b60008484015250505050565b60006102778261022c565b6102818185610237565b9350610291818560208601610242565b80840191505092915050565b60006102a98285610215565b6002820191506102b9828461026c565b91508190509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610309826102c5565b9150610314836102c5565b9250828202610322816102c5565b91508282048414831517610339576103386102cf565b5b5092915050565b600061034b8261016d565b91506103568361016d565b9250828201905061ffff8111156103705761036f6102cf565b5b9291505056fea264697066735822122003e0d4c9741fec62a57dc600c0c119e8882da3279e0f52ef0cb18a9ce648058f64736f6c63430008110033", + "byteCode": "0x60806040523480156200001157600080fd5b5060006200005f6040518060400160405280601781526020017f5265666572656e6461205465737420436f6e7472616374000000000000000000815250620001a360201b620000b61760201c565b905061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff1661081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603856040518263ffffffff1660e01b8152600401620000cb919062000304565b6020604051808303816000875af1158015620000eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000111919062000368565b845160016040518563ffffffff1660e01b815260040162000136949392919062000438565b6020604051808303816000875af115801562000156573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017c9190620004b6565b600060026101000a81548163ffffffff021916908363ffffffff1602179055505062000668565b60607e01000000000000000000000000000000000000000000000000000000000000620001d683620001ff60201b60201c565b604051602001620001e99291906200057b565b6040516020818303038152906040529050919050565b60606000600160048451620002159190620005e0565b6200022191906200062b565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b84604051602001620002529291906200057b565b60405160208183030381529060405292505050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620002a657808201518184015260208101905062000289565b60008484015250505050565b6000601f19601f8301169050919050565b6000620002d0826200026a565b620002dc818562000275565b9350620002ee81856020860162000286565b620002f981620002b2565b840191505092915050565b60006020820190508181036000830152620003208184620002c3565b905092915050565b600080fd5b6000819050919050565b62000342816200032d565b81146200034e57600080fd5b50565b600081519050620003628162000337565b92915050565b60006020828403121562000381576200038062000328565b5b6000620003918482850162000351565b91505092915050565b600061ffff82169050919050565b620003b3816200039a565b82525050565b620003c4816200032d565b82525050565b600063ffffffff82169050919050565b620003e581620003ca565b82525050565b6000819050919050565b6000819050919050565b6000620004206200041a6200041484620003eb565b620003f5565b620003ca565b9050919050565b6200043281620003ff565b82525050565b60006080820190506200044f6000830187620003a8565b6200045e6020830186620003b9565b6200046d6040830185620003da565b6200047c606083018462000427565b95945050505050565b6200049081620003ca565b81146200049c57600080fd5b50565b600081519050620004b08162000485565b92915050565b600060208284031215620004cf57620004ce62000328565b5b6000620004df848285016200049f565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b620005336200052d82620004e8565b62000514565b82525050565b600081905092915050565b600062000551826200026a565b6200055d818562000539565b93506200056f81856020860162000286565b80840191505092915050565b60006200058982856200051e565b6002820191506200059b828462000544565b91508190509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005ed82620005a7565b9150620005fa83620005a7565b92508282026200060a81620005a7565b91508282048414831517620006245762000623620005b1565b5b5092915050565b600062000638826200039a565b915062000645836200039a565b9250828201905061ffff811115620006625762000661620005b1565b5b92915050565b6103ac80620006786000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633ebfa8db146100465780636d72ffb614610050578063cab0b0e61461006e575b600080fd5b61004e61008c565b005b61005861008e565b604051610065919061018a565b60405180910390f35b6100766100a0565b60405161008391906101c4565b60405180910390f35b565b60008054906101000a900461ffff1681565b600060029054906101000a900463ffffffff1681565b60607e010000000000000000000000000000000000000000000000000000000000006100e183610108565b6040516020016100f292919061029d565b6040516020818303038152906040529050919050565b6060600060016004845161011c91906102fe565b6101269190610340565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b8460405160200161015592919061029d565b60405160208183030381529060405292505050919050565b600061ffff82169050919050565b6101848161016d565b82525050565b600060208201905061019f600083018461017b565b92915050565b600063ffffffff82169050919050565b6101be816101a5565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b610226610221826101df565b61020b565b82525050565b600081519050919050565b600081905092915050565b60005b83811015610260578082015181840152602081019050610245565b60008484015250505050565b60006102778261022c565b6102818185610237565b9350610291818560208601610242565b80840191505092915050565b60006102a98285610215565b6002820191506102b9828461026c565b91508190509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610309826102c5565b9150610314836102c5565b9250828202610322816102c5565b91508282048414831517610339576103386102cf565b5b5092915050565b600061034b8261016d565b91506103568361016d565b9250828201905061ffff8111156103705761036f6102cf565b5b9291505056fea2646970667358221220e72ce06219d7bd81fa8138875a4bcb165706c69e01d997caf674c5d9684219a764736f6c63430008110033", "contract": { "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, @@ -27,7 +27,7 @@ ], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "evm": { - "assembly": " /* \"main.sol\":345:1108 contract ReferendaChecker {... */\n mstore(0x40, 0x80)\n /* \"main.sol\":630:988 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"main.sol\":654:681 bytes memory remarkProposal */\n 0x00\n /* \"main.sol\":684:773 SubstrateTools.buildSystemRemarkProposal(... */\n tag_4\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x17\n dup2\n mstore\n 0x20\n add\n 0x5265666572656e6461205465737420436f6e7472616374000000000000000000\n dup2\n mstore\n pop\n /* \"main.sol\":684:724 SubstrateTools.buildSystemRemarkProposal */\n or(tag_0_16, shl(0x20, tag_5))\n /* \"main.sol\":684:773 SubstrateTools.buildSystemRemarkProposal(... */\n 0x20\n shr\n jump\t// in\ntag_4:\n /* \"main.sol\":654:773 bytes memory remarkProposal = SubstrateTools.buildSystemRemarkProposal(... */\n swap1\n pop\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":798:828 REFERENDA_CONTRACT.submitAfter */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x5b2479db\n /* \"main.sol\":842:853 rootTrackId */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n /* \"precompiles/preimage/Preimage.sol\":145:187 */\n 0x0813\n /* \"main.sol\":867:897 PREIMAGE_CONTRACT.notePreimage */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xcb00f603\n /* \"main.sol\":898:912 remarkProposal */\n dup6\n /* \"main.sol\":867:913 PREIMAGE_CONTRACT.notePreimage(remarkProposal) */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_6\n swap2\n swap1\n tag_7\n jump\t// in\ntag_6:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_9\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_9:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\ntag_10:\n /* \"main.sol\":934:948 remarkProposal */\n dup5\n /* \"main.sol\":934:955 remarkProposal.length */\n mload\n /* \"main.sol\":970:971 1 */\n 0x01\n /* \"main.sol\":798:981 REFERENDA_CONTRACT.submitAfter(... */\n mload(0x40)\n dup6\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_12\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_13\n jump\t// in\ntag_12:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_15\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_15:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_16\n swap2\n swap1\n tag_17\n jump\t// in\ntag_16:\n /* \"main.sol\":783:795 referendumId */\n 0x00\n 0x02\n /* \"main.sol\":783:981 referendumId = REFERENDA_CONTRACT.submitAfter(... */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":644:988 {... */\n pop\n /* \"main.sol\":345:1108 contract ReferendaChecker {... */\n jump(tag_18)\n /* \"SubstrateTools.sol\":1908:2209 */\ntag_5:\n /* \"SubstrateTools.sol\":2012:2024 */\n 0x60\n /* \"SubstrateTools.sol\":2089:2107 */\n 0x01000000000000000000000000000000000000000000000000000000000000\n /* \"SubstrateTools.sol\":2152:2188 */\n tag_20\n /* \"SubstrateTools.sol\":2179:2186 */\n dup4\n /* \"SubstrateTools.sol\":2152:2172 */\n shl(0x20, tag_21)\n /* \"SubstrateTools.sol\":2152:2188 */\n 0x20\n shr\n jump\t// in\ntag_20:\n /* \"SubstrateTools.sol\":2059:2202 */\n add(0x20, mload(0x40))\n tag_22\n swap3\n swap2\n swap1\n tag_23\n jump\t// in\ntag_22:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":2040:2202 */\n swap1\n pop\n /* \"SubstrateTools.sol\":1908:2209 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":298:711 */\ntag_21:\n /* \"SubstrateTools.sol\":394:406 */\n 0x60\n /* \"SubstrateTools.sol\":453:466 */\n 0x00\n /* \"SubstrateTools.sol\":495:496 */\n 0x01\n /* \"SubstrateTools.sol\":490:491 */\n 0x04\n /* \"SubstrateTools.sol\":476:480 */\n dup5\n /* \"SubstrateTools.sol\":476:487 */\n mload\n /* \"SubstrateTools.sol\":476:491 */\n tag_25\n swap2\n swap1\n tag_26\n jump\t// in\ntag_25:\n /* \"SubstrateTools.sol\":469:496 */\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\ntag_27:\n /* \"SubstrateTools.sol\":453:496 */\n swap1\n pop\n /* \"SubstrateTools.sol\":542:563 */\n 0x00\n /* \"SubstrateTools.sol\":594:595 */\n 0x08\n /* \"SubstrateTools.sol\":584:590 */\n dup3\n /* \"SubstrateTools.sol\":584:595 */\n 0xffff\n and\n swap1\n shl\n /* \"SubstrateTools.sol\":578:579 */\n 0x08\n /* \"SubstrateTools.sol\":568:574 */\n dup4\n /* \"SubstrateTools.sol\":568:579 */\n 0xffff\n and\n swap1\n shr\n /* \"SubstrateTools.sol\":567:596 */\n or\n /* \"SubstrateTools.sol\":542:597 */\n swap1\n pop\n /* \"SubstrateTools.sol\":682:696 */\n dup1\n /* \"SubstrateTools.sol\":675:697 */\n 0xf0\n shl\n /* \"SubstrateTools.sol\":699:703 */\n dup5\n /* \"SubstrateTools.sol\":662:704 */\n add(0x20, mload(0x40))\n tag_29\n swap3\n swap2\n swap1\n tag_23\n jump\t// in\ntag_29:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":655:704 */\n swap3\n pop\n pop\n pop\n /* \"SubstrateTools.sol\":298:711 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:105 */\ntag_30:\n /* \"#utility.yul\":58:64 */\n 0x00\n /* \"#utility.yul\":92:97 */\n dup2\n /* \"#utility.yul\":86:98 */\n mload\n /* \"#utility.yul\":76:98 */\n swap1\n pop\n /* \"#utility.yul\":7:105 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":111:279 */\ntag_31:\n /* \"#utility.yul\":194:205 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup3\n /* \"#utility.yul\":223:226 */\n dup3\n /* \"#utility.yul\":216:235 */\n mstore\n /* \"#utility.yul\":268:272 */\n 0x20\n /* \"#utility.yul\":263:266 */\n dup3\n /* \"#utility.yul\":259:273 */\n add\n /* \"#utility.yul\":244:273 */\n swap1\n pop\n /* \"#utility.yul\":111:279 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":285:531 */\ntag_32:\n /* \"#utility.yul\":366:367 */\n 0x00\n /* \"#utility.yul\":376:489 */\ntag_63:\n /* \"#utility.yul\":390:396 */\n dup4\n /* \"#utility.yul\":387:388 */\n dup2\n /* \"#utility.yul\":384:397 */\n lt\n /* \"#utility.yul\":376:489 */\n iszero\n tag_65\n jumpi\n /* \"#utility.yul\":475:476 */\n dup1\n /* \"#utility.yul\":470:473 */\n dup3\n /* \"#utility.yul\":466:477 */\n add\n /* \"#utility.yul\":460:478 */\n mload\n /* \"#utility.yul\":456:457 */\n dup2\n /* \"#utility.yul\":451:454 */\n dup5\n /* \"#utility.yul\":447:458 */\n add\n /* \"#utility.yul\":440:479 */\n mstore\n /* \"#utility.yul\":412:414 */\n 0x20\n /* \"#utility.yul\":409:410 */\n dup2\n /* \"#utility.yul\":405:415 */\n add\n /* \"#utility.yul\":400:415 */\n swap1\n pop\n /* \"#utility.yul\":376:489 */\n jump(tag_63)\ntag_65:\n /* \"#utility.yul\":523:524 */\n 0x00\n /* \"#utility.yul\":514:520 */\n dup5\n /* \"#utility.yul\":509:512 */\n dup5\n /* \"#utility.yul\":505:521 */\n add\n /* \"#utility.yul\":498:525 */\n mstore\n /* \"#utility.yul\":347:531 */\n pop\n /* \"#utility.yul\":285:531 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":537:639 */\ntag_33:\n /* \"#utility.yul\":578:584 */\n 0x00\n /* \"#utility.yul\":629:631 */\n 0x1f\n /* \"#utility.yul\":625:632 */\n not\n /* \"#utility.yul\":620:622 */\n 0x1f\n /* \"#utility.yul\":613:618 */\n dup4\n /* \"#utility.yul\":609:623 */\n add\n /* \"#utility.yul\":605:633 */\n and\n /* \"#utility.yul\":595:633 */\n swap1\n pop\n /* \"#utility.yul\":537:639 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":645:1018 */\ntag_34:\n /* \"#utility.yul\":731:734 */\n 0x00\n /* \"#utility.yul\":759:797 */\n tag_68\n /* \"#utility.yul\":791:796 */\n dup3\n /* \"#utility.yul\":759:797 */\n tag_30\n jump\t// in\ntag_68:\n /* \"#utility.yul\":813:883 */\n tag_69\n /* \"#utility.yul\":876:882 */\n dup2\n /* \"#utility.yul\":871:874 */\n dup6\n /* \"#utility.yul\":813:883 */\n tag_31\n jump\t// in\ntag_69:\n /* \"#utility.yul\":806:883 */\n swap4\n pop\n /* \"#utility.yul\":892:957 */\n tag_70\n /* \"#utility.yul\":950:956 */\n dup2\n /* \"#utility.yul\":945:948 */\n dup6\n /* \"#utility.yul\":938:942 */\n 0x20\n /* \"#utility.yul\":931:936 */\n dup7\n /* \"#utility.yul\":927:943 */\n add\n /* \"#utility.yul\":892:957 */\n tag_32\n jump\t// in\ntag_70:\n /* \"#utility.yul\":982:1011 */\n tag_71\n /* \"#utility.yul\":1004:1010 */\n dup2\n /* \"#utility.yul\":982:1011 */\n tag_33\n jump\t// in\ntag_71:\n /* \"#utility.yul\":977:980 */\n dup5\n /* \"#utility.yul\":973:1012 */\n add\n /* \"#utility.yul\":966:1012 */\n swap2\n pop\n /* \"#utility.yul\":735:1018 */\n pop\n /* \"#utility.yul\":645:1018 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1024:1333 */\ntag_7:\n /* \"#utility.yul\":1135:1139 */\n 0x00\n /* \"#utility.yul\":1173:1175 */\n 0x20\n /* \"#utility.yul\":1162:1171 */\n dup3\n /* \"#utility.yul\":1158:1176 */\n add\n /* \"#utility.yul\":1150:1176 */\n swap1\n pop\n /* \"#utility.yul\":1222:1231 */\n dup2\n /* \"#utility.yul\":1216:1220 */\n dup2\n /* \"#utility.yul\":1212:1232 */\n sub\n /* \"#utility.yul\":1208:1209 */\n 0x00\n /* \"#utility.yul\":1197:1206 */\n dup4\n /* \"#utility.yul\":1193:1210 */\n add\n /* \"#utility.yul\":1186:1233 */\n mstore\n /* \"#utility.yul\":1250:1326 */\n tag_73\n /* \"#utility.yul\":1321:1325 */\n dup2\n /* \"#utility.yul\":1312:1318 */\n dup5\n /* \"#utility.yul\":1250:1326 */\n tag_34\n jump\t// in\ntag_73:\n /* \"#utility.yul\":1242:1326 */\n swap1\n pop\n /* \"#utility.yul\":1024:1333 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1420:1537 */\ntag_36:\n /* \"#utility.yul\":1529:1530 */\n 0x00\n /* \"#utility.yul\":1526:1527 */\n dup1\n /* \"#utility.yul\":1519:1531 */\n revert\n /* \"#utility.yul\":1666:1743 */\ntag_38:\n /* \"#utility.yul\":1703:1710 */\n 0x00\n /* \"#utility.yul\":1732:1737 */\n dup2\n /* \"#utility.yul\":1721:1737 */\n swap1\n pop\n /* \"#utility.yul\":1666:1743 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1749:1871 */\ntag_39:\n /* \"#utility.yul\":1822:1846 */\n tag_79\n /* \"#utility.yul\":1840:1845 */\n dup2\n /* \"#utility.yul\":1822:1846 */\n tag_38\n jump\t// in\ntag_79:\n /* \"#utility.yul\":1815:1820 */\n dup2\n /* \"#utility.yul\":1812:1847 */\n eq\n /* \"#utility.yul\":1802:1865 */\n tag_80\n jumpi\n /* \"#utility.yul\":1861:1862 */\n 0x00\n /* \"#utility.yul\":1858:1859 */\n dup1\n /* \"#utility.yul\":1851:1863 */\n revert\n /* \"#utility.yul\":1802:1865 */\ntag_80:\n /* \"#utility.yul\":1749:1871 */\n pop\n jump\t// out\n /* \"#utility.yul\":1877:2020 */\ntag_40:\n /* \"#utility.yul\":1934:1939 */\n 0x00\n /* \"#utility.yul\":1965:1971 */\n dup2\n /* \"#utility.yul\":1959:1972 */\n mload\n /* \"#utility.yul\":1950:1972 */\n swap1\n pop\n /* \"#utility.yul\":1981:2014 */\n tag_82\n /* \"#utility.yul\":2008:2013 */\n dup2\n /* \"#utility.yul\":1981:2014 */\n tag_39\n jump\t// in\ntag_82:\n /* \"#utility.yul\":1877:2020 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2026:2377 */\ntag_11:\n /* \"#utility.yul\":2096:2102 */\n 0x00\n /* \"#utility.yul\":2145:2147 */\n 0x20\n /* \"#utility.yul\":2133:2142 */\n dup3\n /* \"#utility.yul\":2124:2131 */\n dup5\n /* \"#utility.yul\":2120:2143 */\n sub\n /* \"#utility.yul\":2116:2148 */\n slt\n /* \"#utility.yul\":2113:2232 */\n iszero\n tag_84\n jumpi\n /* \"#utility.yul\":2151:2230 */\n tag_85\n tag_36\n jump\t// in\ntag_85:\n /* \"#utility.yul\":2113:2232 */\ntag_84:\n /* \"#utility.yul\":2271:2272 */\n 0x00\n /* \"#utility.yul\":2296:2360 */\n tag_86\n /* \"#utility.yul\":2352:2359 */\n dup5\n /* \"#utility.yul\":2343:2349 */\n dup3\n /* \"#utility.yul\":2332:2341 */\n dup6\n /* \"#utility.yul\":2328:2350 */\n add\n /* \"#utility.yul\":2296:2360 */\n tag_40\n jump\t// in\ntag_86:\n /* \"#utility.yul\":2286:2360 */\n swap2\n pop\n /* \"#utility.yul\":2242:2370 */\n pop\n /* \"#utility.yul\":2026:2377 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2383:2472 */\ntag_41:\n /* \"#utility.yul\":2419:2426 */\n 0x00\n /* \"#utility.yul\":2459:2465 */\n 0xffff\n /* \"#utility.yul\":2452:2457 */\n dup3\n /* \"#utility.yul\":2448:2466 */\n and\n /* \"#utility.yul\":2437:2466 */\n swap1\n pop\n /* \"#utility.yul\":2383:2472 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2478:2593 */\ntag_42:\n /* \"#utility.yul\":2563:2586 */\n tag_89\n /* \"#utility.yul\":2580:2585 */\n dup2\n /* \"#utility.yul\":2563:2586 */\n tag_41\n jump\t// in\ntag_89:\n /* \"#utility.yul\":2558:2561 */\n dup3\n /* \"#utility.yul\":2551:2587 */\n mstore\n /* \"#utility.yul\":2478:2593 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2599:2717 */\ntag_43:\n /* \"#utility.yul\":2686:2710 */\n tag_91\n /* \"#utility.yul\":2704:2709 */\n dup2\n /* \"#utility.yul\":2686:2710 */\n tag_38\n jump\t// in\ntag_91:\n /* \"#utility.yul\":2681:2684 */\n dup3\n /* \"#utility.yul\":2674:2711 */\n mstore\n /* \"#utility.yul\":2599:2717 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2723:2816 */\ntag_44:\n /* \"#utility.yul\":2759:2766 */\n 0x00\n /* \"#utility.yul\":2799:2809 */\n 0xffffffff\n /* \"#utility.yul\":2792:2797 */\n dup3\n /* \"#utility.yul\":2788:2810 */\n and\n /* \"#utility.yul\":2777:2810 */\n swap1\n pop\n /* \"#utility.yul\":2723:2816 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2822:2937 */\ntag_45:\n /* \"#utility.yul\":2907:2930 */\n tag_94\n /* \"#utility.yul\":2924:2929 */\n dup2\n /* \"#utility.yul\":2907:2930 */\n tag_44\n jump\t// in\ntag_94:\n /* \"#utility.yul\":2902:2905 */\n dup3\n /* \"#utility.yul\":2895:2931 */\n mstore\n /* \"#utility.yul\":2822:2937 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2943:3028 */\ntag_46:\n /* \"#utility.yul\":2988:2995 */\n 0x00\n /* \"#utility.yul\":3017:3022 */\n dup2\n /* \"#utility.yul\":3006:3022 */\n swap1\n pop\n /* \"#utility.yul\":2943:3028 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3034:3094 */\ntag_47:\n /* \"#utility.yul\":3062:3065 */\n 0x00\n /* \"#utility.yul\":3083:3088 */\n dup2\n /* \"#utility.yul\":3076:3088 */\n swap1\n pop\n /* \"#utility.yul\":3034:3094 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3100:3256 */\ntag_48:\n /* \"#utility.yul\":3157:3166 */\n 0x00\n /* \"#utility.yul\":3190:3250 */\n tag_98\n /* \"#utility.yul\":3207:3249 */\n tag_99\n /* \"#utility.yul\":3216:3248 */\n tag_100\n /* \"#utility.yul\":3242:3247 */\n dup5\n /* \"#utility.yul\":3216:3248 */\n tag_46\n jump\t// in\ntag_100:\n /* \"#utility.yul\":3207:3249 */\n tag_47\n jump\t// in\ntag_99:\n /* \"#utility.yul\":3190:3250 */\n tag_44\n jump\t// in\ntag_98:\n /* \"#utility.yul\":3177:3250 */\n swap1\n pop\n /* \"#utility.yul\":3100:3256 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3262:3407 */\ntag_49:\n /* \"#utility.yul\":3356:3400 */\n tag_102\n /* \"#utility.yul\":3394:3399 */\n dup2\n /* \"#utility.yul\":3356:3400 */\n tag_48\n jump\t// in\ntag_102:\n /* \"#utility.yul\":3351:3354 */\n dup3\n /* \"#utility.yul\":3344:3401 */\n mstore\n /* \"#utility.yul\":3262:3407 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3413:3972 */\ntag_13:\n /* \"#utility.yul\":3593:3597 */\n 0x00\n /* \"#utility.yul\":3631:3634 */\n 0x80\n /* \"#utility.yul\":3620:3629 */\n dup3\n /* \"#utility.yul\":3616:3635 */\n add\n /* \"#utility.yul\":3608:3635 */\n swap1\n pop\n /* \"#utility.yul\":3645:3714 */\n tag_104\n /* \"#utility.yul\":3711:3712 */\n 0x00\n /* \"#utility.yul\":3700:3709 */\n dup4\n /* \"#utility.yul\":3696:3713 */\n add\n /* \"#utility.yul\":3687:3693 */\n dup8\n /* \"#utility.yul\":3645:3714 */\n tag_42\n jump\t// in\ntag_104:\n /* \"#utility.yul\":3724:3796 */\n tag_105\n /* \"#utility.yul\":3792:3794 */\n 0x20\n /* \"#utility.yul\":3781:3790 */\n dup4\n /* \"#utility.yul\":3777:3795 */\n add\n /* \"#utility.yul\":3768:3774 */\n dup7\n /* \"#utility.yul\":3724:3796 */\n tag_43\n jump\t// in\ntag_105:\n /* \"#utility.yul\":3806:3876 */\n tag_106\n /* \"#utility.yul\":3872:3874 */\n 0x40\n /* \"#utility.yul\":3861:3870 */\n dup4\n /* \"#utility.yul\":3857:3875 */\n add\n /* \"#utility.yul\":3848:3854 */\n dup6\n /* \"#utility.yul\":3806:3876 */\n tag_45\n jump\t// in\ntag_106:\n /* \"#utility.yul\":3886:3965 */\n tag_107\n /* \"#utility.yul\":3961:3963 */\n 0x60\n /* \"#utility.yul\":3950:3959 */\n dup4\n /* \"#utility.yul\":3946:3964 */\n add\n /* \"#utility.yul\":3937:3943 */\n dup5\n /* \"#utility.yul\":3886:3965 */\n tag_49\n jump\t// in\ntag_107:\n /* \"#utility.yul\":3413:3972 */\n swap6\n swap5\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3978:4098 */\ntag_50:\n /* \"#utility.yul\":4050:4073 */\n tag_109\n /* \"#utility.yul\":4067:4072 */\n dup2\n /* \"#utility.yul\":4050:4073 */\n tag_44\n jump\t// in\ntag_109:\n /* \"#utility.yul\":4043:4048 */\n dup2\n /* \"#utility.yul\":4040:4074 */\n eq\n /* \"#utility.yul\":4030:4092 */\n tag_110\n jumpi\n /* \"#utility.yul\":4088:4089 */\n 0x00\n /* \"#utility.yul\":4085:4086 */\n dup1\n /* \"#utility.yul\":4078:4090 */\n revert\n /* \"#utility.yul\":4030:4092 */\ntag_110:\n /* \"#utility.yul\":3978:4098 */\n pop\n jump\t// out\n /* \"#utility.yul\":4104:4245 */\ntag_51:\n /* \"#utility.yul\":4160:4165 */\n 0x00\n /* \"#utility.yul\":4191:4197 */\n dup2\n /* \"#utility.yul\":4185:4198 */\n mload\n /* \"#utility.yul\":4176:4198 */\n swap1\n pop\n /* \"#utility.yul\":4207:4239 */\n tag_112\n /* \"#utility.yul\":4233:4238 */\n dup2\n /* \"#utility.yul\":4207:4239 */\n tag_50\n jump\t// in\ntag_112:\n /* \"#utility.yul\":4104:4245 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4251:4600 */\ntag_17:\n /* \"#utility.yul\":4320:4326 */\n 0x00\n /* \"#utility.yul\":4369:4371 */\n 0x20\n /* \"#utility.yul\":4357:4366 */\n dup3\n /* \"#utility.yul\":4348:4355 */\n dup5\n /* \"#utility.yul\":4344:4367 */\n sub\n /* \"#utility.yul\":4340:4372 */\n slt\n /* \"#utility.yul\":4337:4456 */\n iszero\n tag_114\n jumpi\n /* \"#utility.yul\":4375:4454 */\n tag_115\n tag_36\n jump\t// in\ntag_115:\n /* \"#utility.yul\":4337:4456 */\ntag_114:\n /* \"#utility.yul\":4495:4496 */\n 0x00\n /* \"#utility.yul\":4520:4583 */\n tag_116\n /* \"#utility.yul\":4575:4582 */\n dup5\n /* \"#utility.yul\":4566:4572 */\n dup3\n /* \"#utility.yul\":4555:4564 */\n dup6\n /* \"#utility.yul\":4551:4573 */\n add\n /* \"#utility.yul\":4520:4583 */\n tag_51\n jump\t// in\ntag_116:\n /* \"#utility.yul\":4510:4583 */\n swap2\n pop\n /* \"#utility.yul\":4466:4593 */\n pop\n /* \"#utility.yul\":4251:4600 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4606:4755 */\ntag_52:\n /* \"#utility.yul\":4642:4649 */\n 0x00\n /* \"#utility.yul\":4682:4748 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":4675:4680 */\n dup3\n /* \"#utility.yul\":4671:4749 */\n and\n /* \"#utility.yul\":4660:4749 */\n swap1\n pop\n /* \"#utility.yul\":4606:4755 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4761:4839 */\ntag_53:\n /* \"#utility.yul\":4799:4806 */\n 0x00\n /* \"#utility.yul\":4828:4833 */\n dup2\n /* \"#utility.yul\":4817:4833 */\n swap1\n pop\n /* \"#utility.yul\":4761:4839 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4845:4998 */\ntag_54:\n /* \"#utility.yul\":4948:4991 */\n tag_120\n /* \"#utility.yul\":4967:4990 */\n tag_121\n /* \"#utility.yul\":4984:4989 */\n dup3\n /* \"#utility.yul\":4967:4990 */\n tag_52\n jump\t// in\ntag_121:\n /* \"#utility.yul\":4948:4991 */\n tag_53\n jump\t// in\ntag_120:\n /* \"#utility.yul\":4943:4946 */\n dup3\n /* \"#utility.yul\":4936:4992 */\n mstore\n /* \"#utility.yul\":4845:4998 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5004:5151 */\ntag_55:\n /* \"#utility.yul\":5105:5116 */\n 0x00\n /* \"#utility.yul\":5142:5145 */\n dup2\n /* \"#utility.yul\":5127:5145 */\n swap1\n pop\n /* \"#utility.yul\":5004:5151 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5157:5543 */\ntag_56:\n /* \"#utility.yul\":5261:5264 */\n 0x00\n /* \"#utility.yul\":5289:5327 */\n tag_124\n /* \"#utility.yul\":5321:5326 */\n dup3\n /* \"#utility.yul\":5289:5327 */\n tag_30\n jump\t// in\ntag_124:\n /* \"#utility.yul\":5343:5431 */\n tag_125\n /* \"#utility.yul\":5424:5430 */\n dup2\n /* \"#utility.yul\":5419:5422 */\n dup6\n /* \"#utility.yul\":5343:5431 */\n tag_55\n jump\t// in\ntag_125:\n /* \"#utility.yul\":5336:5431 */\n swap4\n pop\n /* \"#utility.yul\":5440:5505 */\n tag_126\n /* \"#utility.yul\":5498:5504 */\n dup2\n /* \"#utility.yul\":5493:5496 */\n dup6\n /* \"#utility.yul\":5486:5490 */\n 0x20\n /* \"#utility.yul\":5479:5484 */\n dup7\n /* \"#utility.yul\":5475:5491 */\n add\n /* \"#utility.yul\":5440:5505 */\n tag_32\n jump\t// in\ntag_126:\n /* \"#utility.yul\":5530:5536 */\n dup1\n /* \"#utility.yul\":5525:5528 */\n dup5\n /* \"#utility.yul\":5521:5537 */\n add\n /* \"#utility.yul\":5514:5537 */\n swap2\n pop\n /* \"#utility.yul\":5265:5543 */\n pop\n /* \"#utility.yul\":5157:5543 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5549:5956 */\ntag_23:\n /* \"#utility.yul\":5705:5708 */\n 0x00\n /* \"#utility.yul\":5720:5793 */\n tag_128\n /* \"#utility.yul\":5789:5792 */\n dup3\n /* \"#utility.yul\":5780:5786 */\n dup6\n /* \"#utility.yul\":5720:5793 */\n tag_54\n jump\t// in\ntag_128:\n /* \"#utility.yul\":5818:5819 */\n 0x02\n /* \"#utility.yul\":5813:5816 */\n dup3\n /* \"#utility.yul\":5809:5820 */\n add\n /* \"#utility.yul\":5802:5820 */\n swap2\n pop\n /* \"#utility.yul\":5837:5930 */\n tag_129\n /* \"#utility.yul\":5926:5929 */\n dup3\n /* \"#utility.yul\":5917:5923 */\n dup5\n /* \"#utility.yul\":5837:5930 */\n tag_56\n jump\t// in\ntag_129:\n /* \"#utility.yul\":5830:5930 */\n swap2\n pop\n /* \"#utility.yul\":5947:5950 */\n dup2\n /* \"#utility.yul\":5940:5950 */\n swap1\n pop\n /* \"#utility.yul\":5549:5956 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5962:6039 */\ntag_57:\n /* \"#utility.yul\":5999:6006 */\n 0x00\n /* \"#utility.yul\":6028:6033 */\n dup2\n /* \"#utility.yul\":6017:6033 */\n swap1\n pop\n /* \"#utility.yul\":5962:6039 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6045:6225 */\ntag_58:\n /* \"#utility.yul\":6093:6170 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":6090:6091 */\n 0x00\n /* \"#utility.yul\":6083:6171 */\n mstore\n /* \"#utility.yul\":6190:6194 */\n 0x11\n /* \"#utility.yul\":6187:6188 */\n 0x04\n /* \"#utility.yul\":6180:6195 */\n mstore\n /* \"#utility.yul\":6214:6218 */\n 0x24\n /* \"#utility.yul\":6211:6212 */\n 0x00\n /* \"#utility.yul\":6204:6219 */\n revert\n /* \"#utility.yul\":6231:6641 */\ntag_26:\n /* \"#utility.yul\":6271:6278 */\n 0x00\n /* \"#utility.yul\":6294:6314 */\n tag_133\n /* \"#utility.yul\":6312:6313 */\n dup3\n /* \"#utility.yul\":6294:6314 */\n tag_57\n jump\t// in\ntag_133:\n /* \"#utility.yul\":6289:6314 */\n swap2\n pop\n /* \"#utility.yul\":6328:6348 */\n tag_134\n /* \"#utility.yul\":6346:6347 */\n dup4\n /* \"#utility.yul\":6328:6348 */\n tag_57\n jump\t// in\ntag_134:\n /* \"#utility.yul\":6323:6348 */\n swap3\n pop\n /* \"#utility.yul\":6383:6384 */\n dup3\n /* \"#utility.yul\":6380:6381 */\n dup3\n /* \"#utility.yul\":6376:6385 */\n mul\n /* \"#utility.yul\":6405:6435 */\n tag_135\n /* \"#utility.yul\":6423:6434 */\n dup2\n /* \"#utility.yul\":6405:6435 */\n tag_57\n jump\t// in\ntag_135:\n /* \"#utility.yul\":6394:6435 */\n swap2\n pop\n /* \"#utility.yul\":6584:6585 */\n dup3\n /* \"#utility.yul\":6575:6582 */\n dup3\n /* \"#utility.yul\":6571:6586 */\n div\n /* \"#utility.yul\":6568:6569 */\n dup5\n /* \"#utility.yul\":6565:6587 */\n eq\n /* \"#utility.yul\":6545:6546 */\n dup4\n /* \"#utility.yul\":6538:6547 */\n iszero\n /* \"#utility.yul\":6518:6601 */\n or\n /* \"#utility.yul\":6495:6634 */\n tag_136\n jumpi\n /* \"#utility.yul\":6614:6632 */\n tag_137\n tag_58\n jump\t// in\ntag_137:\n /* \"#utility.yul\":6495:6634 */\ntag_136:\n /* \"#utility.yul\":6279:6641 */\n pop\n /* \"#utility.yul\":6231:6641 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6647:6840 */\ntag_28:\n /* \"#utility.yul\":6686:6689 */\n 0x00\n /* \"#utility.yul\":6705:6724 */\n tag_139\n /* \"#utility.yul\":6722:6723 */\n dup3\n /* \"#utility.yul\":6705:6724 */\n tag_41\n jump\t// in\ntag_139:\n /* \"#utility.yul\":6700:6724 */\n swap2\n pop\n /* \"#utility.yul\":6738:6757 */\n tag_140\n /* \"#utility.yul\":6755:6756 */\n dup4\n /* \"#utility.yul\":6738:6757 */\n tag_41\n jump\t// in\ntag_140:\n /* \"#utility.yul\":6733:6757 */\n swap3\n pop\n /* \"#utility.yul\":6780:6781 */\n dup3\n /* \"#utility.yul\":6777:6778 */\n dup3\n /* \"#utility.yul\":6773:6782 */\n add\n /* \"#utility.yul\":6766:6782 */\n swap1\n pop\n /* \"#utility.yul\":6803:6809 */\n 0xffff\n /* \"#utility.yul\":6798:6801 */\n dup2\n /* \"#utility.yul\":6795:6810 */\n gt\n /* \"#utility.yul\":6792:6833 */\n iszero\n tag_141\n jumpi\n /* \"#utility.yul\":6813:6831 */\n tag_142\n tag_58\n jump\t// in\ntag_142:\n /* \"#utility.yul\":6792:6833 */\ntag_141:\n /* \"#utility.yul\":6647:6840 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"main.sol\":345:1108 contract ReferendaChecker {... */\ntag_18:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"main.sol\":345:1108 contract ReferendaChecker {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x3ebfa8db\n eq\n tag_3\n jumpi\n dup1\n 0x6d72ffb6\n eq\n tag_4\n jumpi\n dup1\n 0xcab0b0e6\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"main.sol\":994:1106 function test_1_check_referendum() external view {... */\n tag_3:\n tag_6\n tag_7\n jump\t// in\n tag_6:\n stop\n /* \"main.sol\":437:462 uint16 public rootTrackId */\n tag_4:\n tag_8\n tag_9\n jump\t// in\n tag_8:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":510:536 uint32 public referendumId */\n tag_5:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n mload(0x40)\n tag_14\n swap2\n swap1\n tag_15\n jump\t// in\n tag_14:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":994:1106 function test_1_check_referendum() external view {... */\n tag_7:\n jump\t// out\n /* \"main.sol\":437:462 uint16 public rootTrackId */\n tag_9:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n dup2\n jump\t// out\n /* \"main.sol\":510:536 uint32 public referendumId */\n tag_13:\n 0x00\n 0x02\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffff\n and\n dup2\n jump\t// out\n /* \"SubstrateTools.sol\":1908:2209 */\n tag_16:\n /* \"SubstrateTools.sol\":2012:2024 */\n 0x60\n /* \"SubstrateTools.sol\":2089:2107 */\n 0x01000000000000000000000000000000000000000000000000000000000000\n /* \"SubstrateTools.sol\":2152:2188 */\n tag_19\n /* \"SubstrateTools.sol\":2179:2186 */\n dup4\n /* \"SubstrateTools.sol\":2152:2172 */\n tag_20\n /* \"SubstrateTools.sol\":2152:2188 */\n jump\t// in\n tag_19:\n /* \"SubstrateTools.sol\":2059:2202 */\n add(0x20, mload(0x40))\n tag_21\n swap3\n swap2\n swap1\n tag_22\n jump\t// in\n tag_21:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":2040:2202 */\n swap1\n pop\n /* \"SubstrateTools.sol\":1908:2209 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":298:711 */\n tag_20:\n /* \"SubstrateTools.sol\":394:406 */\n 0x60\n /* \"SubstrateTools.sol\":453:466 */\n 0x00\n /* \"SubstrateTools.sol\":495:496 */\n 0x01\n /* \"SubstrateTools.sol\":490:491 */\n 0x04\n /* \"SubstrateTools.sol\":476:480 */\n dup5\n /* \"SubstrateTools.sol\":476:487 */\n mload\n /* \"SubstrateTools.sol\":476:491 */\n tag_24\n swap2\n swap1\n tag_25\n jump\t// in\n tag_24:\n /* \"SubstrateTools.sol\":469:496 */\n tag_26\n swap2\n swap1\n tag_27\n jump\t// in\n tag_26:\n /* \"SubstrateTools.sol\":453:496 */\n swap1\n pop\n /* \"SubstrateTools.sol\":542:563 */\n 0x00\n /* \"SubstrateTools.sol\":594:595 */\n 0x08\n /* \"SubstrateTools.sol\":584:590 */\n dup3\n /* \"SubstrateTools.sol\":584:595 */\n 0xffff\n and\n swap1\n shl\n /* \"SubstrateTools.sol\":578:579 */\n 0x08\n /* \"SubstrateTools.sol\":568:574 */\n dup4\n /* \"SubstrateTools.sol\":568:579 */\n 0xffff\n and\n swap1\n shr\n /* \"SubstrateTools.sol\":567:596 */\n or\n /* \"SubstrateTools.sol\":542:597 */\n swap1\n pop\n /* \"SubstrateTools.sol\":682:696 */\n dup1\n /* \"SubstrateTools.sol\":675:697 */\n 0xf0\n shl\n /* \"SubstrateTools.sol\":699:703 */\n dup5\n /* \"SubstrateTools.sol\":662:704 */\n add(0x20, mload(0x40))\n tag_28\n swap3\n swap2\n swap1\n tag_22\n jump\t// in\n tag_28:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":655:704 */\n swap3\n pop\n pop\n pop\n /* \"SubstrateTools.sol\":298:711 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:96 */\n tag_29:\n /* \"#utility.yul\":43:50 */\n 0x00\n /* \"#utility.yul\":83:89 */\n 0xffff\n /* \"#utility.yul\":76:81 */\n dup3\n /* \"#utility.yul\":72:90 */\n and\n /* \"#utility.yul\":61:90 */\n swap1\n pop\n /* \"#utility.yul\":7:96 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":102:217 */\n tag_30:\n /* \"#utility.yul\":187:210 */\n tag_45\n /* \"#utility.yul\":204:209 */\n dup2\n /* \"#utility.yul\":187:210 */\n tag_29\n jump\t// in\n tag_45:\n /* \"#utility.yul\":182:185 */\n dup3\n /* \"#utility.yul\":175:211 */\n mstore\n /* \"#utility.yul\":102:217 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":223:441 */\n tag_11:\n /* \"#utility.yul\":314:318 */\n 0x00\n /* \"#utility.yul\":352:354 */\n 0x20\n /* \"#utility.yul\":341:350 */\n dup3\n /* \"#utility.yul\":337:355 */\n add\n /* \"#utility.yul\":329:355 */\n swap1\n pop\n /* \"#utility.yul\":365:434 */\n tag_47\n /* \"#utility.yul\":431:432 */\n 0x00\n /* \"#utility.yul\":420:429 */\n dup4\n /* \"#utility.yul\":416:433 */\n add\n /* \"#utility.yul\":407:413 */\n dup5\n /* \"#utility.yul\":365:434 */\n tag_30\n jump\t// in\n tag_47:\n /* \"#utility.yul\":223:441 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":447:540 */\n tag_31:\n /* \"#utility.yul\":483:490 */\n 0x00\n /* \"#utility.yul\":523:533 */\n 0xffffffff\n /* \"#utility.yul\":516:521 */\n dup3\n /* \"#utility.yul\":512:534 */\n and\n /* \"#utility.yul\":501:534 */\n swap1\n pop\n /* \"#utility.yul\":447:540 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":546:661 */\n tag_32:\n /* \"#utility.yul\":631:654 */\n tag_50\n /* \"#utility.yul\":648:653 */\n dup2\n /* \"#utility.yul\":631:654 */\n tag_31\n jump\t// in\n tag_50:\n /* \"#utility.yul\":626:629 */\n dup3\n /* \"#utility.yul\":619:655 */\n mstore\n /* \"#utility.yul\":546:661 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":667:885 */\n tag_15:\n /* \"#utility.yul\":758:762 */\n 0x00\n /* \"#utility.yul\":796:798 */\n 0x20\n /* \"#utility.yul\":785:794 */\n dup3\n /* \"#utility.yul\":781:799 */\n add\n /* \"#utility.yul\":773:799 */\n swap1\n pop\n /* \"#utility.yul\":809:878 */\n tag_52\n /* \"#utility.yul\":875:876 */\n 0x00\n /* \"#utility.yul\":864:873 */\n dup4\n /* \"#utility.yul\":860:877 */\n add\n /* \"#utility.yul\":851:857 */\n dup5\n /* \"#utility.yul\":809:878 */\n tag_32\n jump\t// in\n tag_52:\n /* \"#utility.yul\":667:885 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":891:1040 */\n tag_33:\n /* \"#utility.yul\":927:934 */\n 0x00\n /* \"#utility.yul\":967:1033 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":960:965 */\n dup3\n /* \"#utility.yul\":956:1034 */\n and\n /* \"#utility.yul\":945:1034 */\n swap1\n pop\n /* \"#utility.yul\":891:1040 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1046:1124 */\n tag_34:\n /* \"#utility.yul\":1084:1091 */\n 0x00\n /* \"#utility.yul\":1113:1118 */\n dup2\n /* \"#utility.yul\":1102:1118 */\n swap1\n pop\n /* \"#utility.yul\":1046:1124 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1130:1283 */\n tag_35:\n /* \"#utility.yul\":1233:1276 */\n tag_56\n /* \"#utility.yul\":1252:1275 */\n tag_57\n /* \"#utility.yul\":1269:1274 */\n dup3\n /* \"#utility.yul\":1252:1275 */\n tag_33\n jump\t// in\n tag_57:\n /* \"#utility.yul\":1233:1276 */\n tag_34\n jump\t// in\n tag_56:\n /* \"#utility.yul\":1228:1231 */\n dup3\n /* \"#utility.yul\":1221:1277 */\n mstore\n /* \"#utility.yul\":1130:1283 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1289:1387 */\n tag_36:\n /* \"#utility.yul\":1340:1346 */\n 0x00\n /* \"#utility.yul\":1374:1379 */\n dup2\n /* \"#utility.yul\":1368:1380 */\n mload\n /* \"#utility.yul\":1358:1380 */\n swap1\n pop\n /* \"#utility.yul\":1289:1387 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1393:1540 */\n tag_37:\n /* \"#utility.yul\":1494:1505 */\n 0x00\n /* \"#utility.yul\":1531:1534 */\n dup2\n /* \"#utility.yul\":1516:1534 */\n swap1\n pop\n /* \"#utility.yul\":1393:1540 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1546:1792 */\n tag_38:\n /* \"#utility.yul\":1627:1628 */\n 0x00\n /* \"#utility.yul\":1637:1750 */\n tag_61:\n /* \"#utility.yul\":1651:1657 */\n dup4\n /* \"#utility.yul\":1648:1649 */\n dup2\n /* \"#utility.yul\":1645:1658 */\n lt\n /* \"#utility.yul\":1637:1750 */\n iszero\n tag_63\n jumpi\n /* \"#utility.yul\":1736:1737 */\n dup1\n /* \"#utility.yul\":1731:1734 */\n dup3\n /* \"#utility.yul\":1727:1738 */\n add\n /* \"#utility.yul\":1721:1739 */\n mload\n /* \"#utility.yul\":1717:1718 */\n dup2\n /* \"#utility.yul\":1712:1715 */\n dup5\n /* \"#utility.yul\":1708:1719 */\n add\n /* \"#utility.yul\":1701:1740 */\n mstore\n /* \"#utility.yul\":1673:1675 */\n 0x20\n /* \"#utility.yul\":1670:1671 */\n dup2\n /* \"#utility.yul\":1666:1676 */\n add\n /* \"#utility.yul\":1661:1676 */\n swap1\n pop\n /* \"#utility.yul\":1637:1750 */\n jump(tag_61)\n tag_63:\n /* \"#utility.yul\":1784:1785 */\n 0x00\n /* \"#utility.yul\":1775:1781 */\n dup5\n /* \"#utility.yul\":1770:1773 */\n dup5\n /* \"#utility.yul\":1766:1782 */\n add\n /* \"#utility.yul\":1759:1786 */\n mstore\n /* \"#utility.yul\":1608:1792 */\n pop\n /* \"#utility.yul\":1546:1792 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1798:2184 */\n tag_39:\n /* \"#utility.yul\":1902:1905 */\n 0x00\n /* \"#utility.yul\":1930:1968 */\n tag_65\n /* \"#utility.yul\":1962:1967 */\n dup3\n /* \"#utility.yul\":1930:1968 */\n tag_36\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1984:2072 */\n tag_66\n /* \"#utility.yul\":2065:2071 */\n dup2\n /* \"#utility.yul\":2060:2063 */\n dup6\n /* \"#utility.yul\":1984:2072 */\n tag_37\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1977:2072 */\n swap4\n pop\n /* \"#utility.yul\":2081:2146 */\n tag_67\n /* \"#utility.yul\":2139:2145 */\n dup2\n /* \"#utility.yul\":2134:2137 */\n dup6\n /* \"#utility.yul\":2127:2131 */\n 0x20\n /* \"#utility.yul\":2120:2125 */\n dup7\n /* \"#utility.yul\":2116:2132 */\n add\n /* \"#utility.yul\":2081:2146 */\n tag_38\n jump\t// in\n tag_67:\n /* \"#utility.yul\":2171:2177 */\n dup1\n /* \"#utility.yul\":2166:2169 */\n dup5\n /* \"#utility.yul\":2162:2178 */\n add\n /* \"#utility.yul\":2155:2178 */\n swap2\n pop\n /* \"#utility.yul\":1906:2184 */\n pop\n /* \"#utility.yul\":1798:2184 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2190:2597 */\n tag_22:\n /* \"#utility.yul\":2346:2349 */\n 0x00\n /* \"#utility.yul\":2361:2434 */\n tag_69\n /* \"#utility.yul\":2430:2433 */\n dup3\n /* \"#utility.yul\":2421:2427 */\n dup6\n /* \"#utility.yul\":2361:2434 */\n tag_35\n jump\t// in\n tag_69:\n /* \"#utility.yul\":2459:2460 */\n 0x02\n /* \"#utility.yul\":2454:2457 */\n dup3\n /* \"#utility.yul\":2450:2461 */\n add\n /* \"#utility.yul\":2443:2461 */\n swap2\n pop\n /* \"#utility.yul\":2478:2571 */\n tag_70\n /* \"#utility.yul\":2567:2570 */\n dup3\n /* \"#utility.yul\":2558:2564 */\n dup5\n /* \"#utility.yul\":2478:2571 */\n tag_39\n jump\t// in\n tag_70:\n /* \"#utility.yul\":2471:2571 */\n swap2\n pop\n /* \"#utility.yul\":2588:2591 */\n dup2\n /* \"#utility.yul\":2581:2591 */\n swap1\n pop\n /* \"#utility.yul\":2190:2597 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2603:2680 */\n tag_40:\n /* \"#utility.yul\":2640:2647 */\n 0x00\n /* \"#utility.yul\":2669:2674 */\n dup2\n /* \"#utility.yul\":2658:2674 */\n swap1\n pop\n /* \"#utility.yul\":2603:2680 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2686:2866 */\n tag_41:\n /* \"#utility.yul\":2734:2811 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2731:2732 */\n 0x00\n /* \"#utility.yul\":2724:2812 */\n mstore\n /* \"#utility.yul\":2831:2835 */\n 0x11\n /* \"#utility.yul\":2828:2829 */\n 0x04\n /* \"#utility.yul\":2821:2836 */\n mstore\n /* \"#utility.yul\":2855:2859 */\n 0x24\n /* \"#utility.yul\":2852:2853 */\n 0x00\n /* \"#utility.yul\":2845:2860 */\n revert\n /* \"#utility.yul\":2872:3282 */\n tag_25:\n /* \"#utility.yul\":2912:2919 */\n 0x00\n /* \"#utility.yul\":2935:2955 */\n tag_74\n /* \"#utility.yul\":2953:2954 */\n dup3\n /* \"#utility.yul\":2935:2955 */\n tag_40\n jump\t// in\n tag_74:\n /* \"#utility.yul\":2930:2955 */\n swap2\n pop\n /* \"#utility.yul\":2969:2989 */\n tag_75\n /* \"#utility.yul\":2987:2988 */\n dup4\n /* \"#utility.yul\":2969:2989 */\n tag_40\n jump\t// in\n tag_75:\n /* \"#utility.yul\":2964:2989 */\n swap3\n pop\n /* \"#utility.yul\":3024:3025 */\n dup3\n /* \"#utility.yul\":3021:3022 */\n dup3\n /* \"#utility.yul\":3017:3026 */\n mul\n /* \"#utility.yul\":3046:3076 */\n tag_76\n /* \"#utility.yul\":3064:3075 */\n dup2\n /* \"#utility.yul\":3046:3076 */\n tag_40\n jump\t// in\n tag_76:\n /* \"#utility.yul\":3035:3076 */\n swap2\n pop\n /* \"#utility.yul\":3225:3226 */\n dup3\n /* \"#utility.yul\":3216:3223 */\n dup3\n /* \"#utility.yul\":3212:3227 */\n div\n /* \"#utility.yul\":3209:3210 */\n dup5\n /* \"#utility.yul\":3206:3228 */\n eq\n /* \"#utility.yul\":3186:3187 */\n dup4\n /* \"#utility.yul\":3179:3188 */\n iszero\n /* \"#utility.yul\":3159:3242 */\n or\n /* \"#utility.yul\":3136:3275 */\n tag_77\n jumpi\n /* \"#utility.yul\":3255:3273 */\n tag_78\n tag_41\n jump\t// in\n tag_78:\n /* \"#utility.yul\":3136:3275 */\n tag_77:\n /* \"#utility.yul\":2920:3282 */\n pop\n /* \"#utility.yul\":2872:3282 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3288:3481 */\n tag_27:\n /* \"#utility.yul\":3327:3330 */\n 0x00\n /* \"#utility.yul\":3346:3365 */\n tag_80\n /* \"#utility.yul\":3363:3364 */\n dup3\n /* \"#utility.yul\":3346:3365 */\n tag_29\n jump\t// in\n tag_80:\n /* \"#utility.yul\":3341:3365 */\n swap2\n pop\n /* \"#utility.yul\":3379:3398 */\n tag_81\n /* \"#utility.yul\":3396:3397 */\n dup4\n /* \"#utility.yul\":3379:3398 */\n tag_29\n jump\t// in\n tag_81:\n /* \"#utility.yul\":3374:3398 */\n swap3\n pop\n /* \"#utility.yul\":3421:3422 */\n dup3\n /* \"#utility.yul\":3418:3419 */\n dup3\n /* \"#utility.yul\":3414:3423 */\n add\n /* \"#utility.yul\":3407:3423 */\n swap1\n pop\n /* \"#utility.yul\":3444:3450 */\n 0xffff\n /* \"#utility.yul\":3439:3442 */\n dup2\n /* \"#utility.yul\":3436:3451 */\n gt\n /* \"#utility.yul\":3433:3474 */\n iszero\n tag_82\n jumpi\n /* \"#utility.yul\":3454:3472 */\n tag_83\n tag_41\n jump\t// in\n tag_83:\n /* \"#utility.yul\":3433:3474 */\n tag_82:\n /* \"#utility.yul\":3288:3481 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa264697066735822122003e0d4c9741fec62a57dc600c0c119e8882da3279e0f52ef0cb18a9ce648058f64736f6c63430008110033\n}\n", + "assembly": " /* \"main.sol\":345:1108 contract ReferendaChecker {... */\n mstore(0x40, 0x80)\n /* \"main.sol\":630:988 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"main.sol\":654:681 bytes memory remarkProposal */\n 0x00\n /* \"main.sol\":684:773 SubstrateTools.buildSystemRemarkProposal(... */\n tag_4\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x17\n dup2\n mstore\n 0x20\n add\n 0x5265666572656e6461205465737420436f6e7472616374000000000000000000\n dup2\n mstore\n pop\n /* \"main.sol\":684:724 SubstrateTools.buildSystemRemarkProposal */\n or(tag_0_16, shl(0x20, tag_5))\n /* \"main.sol\":684:773 SubstrateTools.buildSystemRemarkProposal(... */\n 0x20\n shr\n jump\t// in\ntag_4:\n /* \"main.sol\":654:773 bytes memory remarkProposal = SubstrateTools.buildSystemRemarkProposal(... */\n swap1\n pop\n /* \"precompiles/referenda/Referenda.sol\":147:189 */\n 0x0811\n /* \"main.sol\":798:828 REFERENDA_CONTRACT.submitAfter */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x5b2479db\n /* \"main.sol\":842:853 rootTrackId */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n /* \"precompiles/preimage/Preimage.sol\":145:187 */\n 0x0813\n /* \"main.sol\":867:897 PREIMAGE_CONTRACT.notePreimage */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xcb00f603\n /* \"main.sol\":898:912 remarkProposal */\n dup6\n /* \"main.sol\":867:913 PREIMAGE_CONTRACT.notePreimage(remarkProposal) */\n mload(0x40)\n dup3\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_6\n swap2\n swap1\n tag_7\n jump\t// in\ntag_6:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_9\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_9:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\ntag_10:\n /* \"main.sol\":934:948 remarkProposal */\n dup5\n /* \"main.sol\":934:955 remarkProposal.length */\n mload\n /* \"main.sol\":970:971 1 */\n 0x01\n /* \"main.sol\":798:981 REFERENDA_CONTRACT.submitAfter(... */\n mload(0x40)\n dup6\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_12\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_13\n jump\t// in\ntag_12:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_15\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_15:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_16\n swap2\n swap1\n tag_17\n jump\t// in\ntag_16:\n /* \"main.sol\":783:795 referendumId */\n 0x00\n 0x02\n /* \"main.sol\":783:981 referendumId = REFERENDA_CONTRACT.submitAfter(... */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"main.sol\":644:988 {... */\n pop\n /* \"main.sol\":345:1108 contract ReferendaChecker {... */\n jump(tag_18)\n /* \"SubstrateTools.sol\":1908:2209 */\ntag_5:\n /* \"SubstrateTools.sol\":2012:2024 */\n 0x60\n /* \"SubstrateTools.sol\":2089:2107 */\n 0x01000000000000000000000000000000000000000000000000000000000000\n /* \"SubstrateTools.sol\":2152:2188 */\n tag_20\n /* \"SubstrateTools.sol\":2179:2186 */\n dup4\n /* \"SubstrateTools.sol\":2152:2172 */\n shl(0x20, tag_21)\n /* \"SubstrateTools.sol\":2152:2188 */\n 0x20\n shr\n jump\t// in\ntag_20:\n /* \"SubstrateTools.sol\":2059:2202 */\n add(0x20, mload(0x40))\n tag_22\n swap3\n swap2\n swap1\n tag_23\n jump\t// in\ntag_22:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":2040:2202 */\n swap1\n pop\n /* \"SubstrateTools.sol\":1908:2209 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":298:711 */\ntag_21:\n /* \"SubstrateTools.sol\":394:406 */\n 0x60\n /* \"SubstrateTools.sol\":453:466 */\n 0x00\n /* \"SubstrateTools.sol\":495:496 */\n 0x01\n /* \"SubstrateTools.sol\":490:491 */\n 0x04\n /* \"SubstrateTools.sol\":476:480 */\n dup5\n /* \"SubstrateTools.sol\":476:487 */\n mload\n /* \"SubstrateTools.sol\":476:491 */\n tag_25\n swap2\n swap1\n tag_26\n jump\t// in\ntag_25:\n /* \"SubstrateTools.sol\":469:496 */\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\ntag_27:\n /* \"SubstrateTools.sol\":453:496 */\n swap1\n pop\n /* \"SubstrateTools.sol\":542:563 */\n 0x00\n /* \"SubstrateTools.sol\":594:595 */\n 0x08\n /* \"SubstrateTools.sol\":584:590 */\n dup3\n /* \"SubstrateTools.sol\":584:595 */\n 0xffff\n and\n swap1\n shl\n /* \"SubstrateTools.sol\":578:579 */\n 0x08\n /* \"SubstrateTools.sol\":568:574 */\n dup4\n /* \"SubstrateTools.sol\":568:579 */\n 0xffff\n and\n swap1\n shr\n /* \"SubstrateTools.sol\":567:596 */\n or\n /* \"SubstrateTools.sol\":542:597 */\n swap1\n pop\n /* \"SubstrateTools.sol\":682:696 */\n dup1\n /* \"SubstrateTools.sol\":675:697 */\n 0xf0\n shl\n /* \"SubstrateTools.sol\":699:703 */\n dup5\n /* \"SubstrateTools.sol\":662:704 */\n add(0x20, mload(0x40))\n tag_29\n swap3\n swap2\n swap1\n tag_23\n jump\t// in\ntag_29:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":655:704 */\n swap3\n pop\n pop\n pop\n /* \"SubstrateTools.sol\":298:711 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:105 */\ntag_30:\n /* \"#utility.yul\":58:64 */\n 0x00\n /* \"#utility.yul\":92:97 */\n dup2\n /* \"#utility.yul\":86:98 */\n mload\n /* \"#utility.yul\":76:98 */\n swap1\n pop\n /* \"#utility.yul\":7:105 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":111:279 */\ntag_31:\n /* \"#utility.yul\":194:205 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup3\n /* \"#utility.yul\":223:226 */\n dup3\n /* \"#utility.yul\":216:235 */\n mstore\n /* \"#utility.yul\":268:272 */\n 0x20\n /* \"#utility.yul\":263:266 */\n dup3\n /* \"#utility.yul\":259:273 */\n add\n /* \"#utility.yul\":244:273 */\n swap1\n pop\n /* \"#utility.yul\":111:279 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":285:531 */\ntag_32:\n /* \"#utility.yul\":366:367 */\n 0x00\n /* \"#utility.yul\":376:489 */\ntag_63:\n /* \"#utility.yul\":390:396 */\n dup4\n /* \"#utility.yul\":387:388 */\n dup2\n /* \"#utility.yul\":384:397 */\n lt\n /* \"#utility.yul\":376:489 */\n iszero\n tag_65\n jumpi\n /* \"#utility.yul\":475:476 */\n dup1\n /* \"#utility.yul\":470:473 */\n dup3\n /* \"#utility.yul\":466:477 */\n add\n /* \"#utility.yul\":460:478 */\n mload\n /* \"#utility.yul\":456:457 */\n dup2\n /* \"#utility.yul\":451:454 */\n dup5\n /* \"#utility.yul\":447:458 */\n add\n /* \"#utility.yul\":440:479 */\n mstore\n /* \"#utility.yul\":412:414 */\n 0x20\n /* \"#utility.yul\":409:410 */\n dup2\n /* \"#utility.yul\":405:415 */\n add\n /* \"#utility.yul\":400:415 */\n swap1\n pop\n /* \"#utility.yul\":376:489 */\n jump(tag_63)\ntag_65:\n /* \"#utility.yul\":523:524 */\n 0x00\n /* \"#utility.yul\":514:520 */\n dup5\n /* \"#utility.yul\":509:512 */\n dup5\n /* \"#utility.yul\":505:521 */\n add\n /* \"#utility.yul\":498:525 */\n mstore\n /* \"#utility.yul\":347:531 */\n pop\n /* \"#utility.yul\":285:531 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":537:639 */\ntag_33:\n /* \"#utility.yul\":578:584 */\n 0x00\n /* \"#utility.yul\":629:631 */\n 0x1f\n /* \"#utility.yul\":625:632 */\n not\n /* \"#utility.yul\":620:622 */\n 0x1f\n /* \"#utility.yul\":613:618 */\n dup4\n /* \"#utility.yul\":609:623 */\n add\n /* \"#utility.yul\":605:633 */\n and\n /* \"#utility.yul\":595:633 */\n swap1\n pop\n /* \"#utility.yul\":537:639 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":645:1018 */\ntag_34:\n /* \"#utility.yul\":731:734 */\n 0x00\n /* \"#utility.yul\":759:797 */\n tag_68\n /* \"#utility.yul\":791:796 */\n dup3\n /* \"#utility.yul\":759:797 */\n tag_30\n jump\t// in\ntag_68:\n /* \"#utility.yul\":813:883 */\n tag_69\n /* \"#utility.yul\":876:882 */\n dup2\n /* \"#utility.yul\":871:874 */\n dup6\n /* \"#utility.yul\":813:883 */\n tag_31\n jump\t// in\ntag_69:\n /* \"#utility.yul\":806:883 */\n swap4\n pop\n /* \"#utility.yul\":892:957 */\n tag_70\n /* \"#utility.yul\":950:956 */\n dup2\n /* \"#utility.yul\":945:948 */\n dup6\n /* \"#utility.yul\":938:942 */\n 0x20\n /* \"#utility.yul\":931:936 */\n dup7\n /* \"#utility.yul\":927:943 */\n add\n /* \"#utility.yul\":892:957 */\n tag_32\n jump\t// in\ntag_70:\n /* \"#utility.yul\":982:1011 */\n tag_71\n /* \"#utility.yul\":1004:1010 */\n dup2\n /* \"#utility.yul\":982:1011 */\n tag_33\n jump\t// in\ntag_71:\n /* \"#utility.yul\":977:980 */\n dup5\n /* \"#utility.yul\":973:1012 */\n add\n /* \"#utility.yul\":966:1012 */\n swap2\n pop\n /* \"#utility.yul\":735:1018 */\n pop\n /* \"#utility.yul\":645:1018 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1024:1333 */\ntag_7:\n /* \"#utility.yul\":1135:1139 */\n 0x00\n /* \"#utility.yul\":1173:1175 */\n 0x20\n /* \"#utility.yul\":1162:1171 */\n dup3\n /* \"#utility.yul\":1158:1176 */\n add\n /* \"#utility.yul\":1150:1176 */\n swap1\n pop\n /* \"#utility.yul\":1222:1231 */\n dup2\n /* \"#utility.yul\":1216:1220 */\n dup2\n /* \"#utility.yul\":1212:1232 */\n sub\n /* \"#utility.yul\":1208:1209 */\n 0x00\n /* \"#utility.yul\":1197:1206 */\n dup4\n /* \"#utility.yul\":1193:1210 */\n add\n /* \"#utility.yul\":1186:1233 */\n mstore\n /* \"#utility.yul\":1250:1326 */\n tag_73\n /* \"#utility.yul\":1321:1325 */\n dup2\n /* \"#utility.yul\":1312:1318 */\n dup5\n /* \"#utility.yul\":1250:1326 */\n tag_34\n jump\t// in\ntag_73:\n /* \"#utility.yul\":1242:1326 */\n swap1\n pop\n /* \"#utility.yul\":1024:1333 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1420:1537 */\ntag_36:\n /* \"#utility.yul\":1529:1530 */\n 0x00\n /* \"#utility.yul\":1526:1527 */\n dup1\n /* \"#utility.yul\":1519:1531 */\n revert\n /* \"#utility.yul\":1666:1743 */\ntag_38:\n /* \"#utility.yul\":1703:1710 */\n 0x00\n /* \"#utility.yul\":1732:1737 */\n dup2\n /* \"#utility.yul\":1721:1737 */\n swap1\n pop\n /* \"#utility.yul\":1666:1743 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1749:1871 */\ntag_39:\n /* \"#utility.yul\":1822:1846 */\n tag_79\n /* \"#utility.yul\":1840:1845 */\n dup2\n /* \"#utility.yul\":1822:1846 */\n tag_38\n jump\t// in\ntag_79:\n /* \"#utility.yul\":1815:1820 */\n dup2\n /* \"#utility.yul\":1812:1847 */\n eq\n /* \"#utility.yul\":1802:1865 */\n tag_80\n jumpi\n /* \"#utility.yul\":1861:1862 */\n 0x00\n /* \"#utility.yul\":1858:1859 */\n dup1\n /* \"#utility.yul\":1851:1863 */\n revert\n /* \"#utility.yul\":1802:1865 */\ntag_80:\n /* \"#utility.yul\":1749:1871 */\n pop\n jump\t// out\n /* \"#utility.yul\":1877:2020 */\ntag_40:\n /* \"#utility.yul\":1934:1939 */\n 0x00\n /* \"#utility.yul\":1965:1971 */\n dup2\n /* \"#utility.yul\":1959:1972 */\n mload\n /* \"#utility.yul\":1950:1972 */\n swap1\n pop\n /* \"#utility.yul\":1981:2014 */\n tag_82\n /* \"#utility.yul\":2008:2013 */\n dup2\n /* \"#utility.yul\":1981:2014 */\n tag_39\n jump\t// in\ntag_82:\n /* \"#utility.yul\":1877:2020 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2026:2377 */\ntag_11:\n /* \"#utility.yul\":2096:2102 */\n 0x00\n /* \"#utility.yul\":2145:2147 */\n 0x20\n /* \"#utility.yul\":2133:2142 */\n dup3\n /* \"#utility.yul\":2124:2131 */\n dup5\n /* \"#utility.yul\":2120:2143 */\n sub\n /* \"#utility.yul\":2116:2148 */\n slt\n /* \"#utility.yul\":2113:2232 */\n iszero\n tag_84\n jumpi\n /* \"#utility.yul\":2151:2230 */\n tag_85\n tag_36\n jump\t// in\ntag_85:\n /* \"#utility.yul\":2113:2232 */\ntag_84:\n /* \"#utility.yul\":2271:2272 */\n 0x00\n /* \"#utility.yul\":2296:2360 */\n tag_86\n /* \"#utility.yul\":2352:2359 */\n dup5\n /* \"#utility.yul\":2343:2349 */\n dup3\n /* \"#utility.yul\":2332:2341 */\n dup6\n /* \"#utility.yul\":2328:2350 */\n add\n /* \"#utility.yul\":2296:2360 */\n tag_40\n jump\t// in\ntag_86:\n /* \"#utility.yul\":2286:2360 */\n swap2\n pop\n /* \"#utility.yul\":2242:2370 */\n pop\n /* \"#utility.yul\":2026:2377 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2383:2472 */\ntag_41:\n /* \"#utility.yul\":2419:2426 */\n 0x00\n /* \"#utility.yul\":2459:2465 */\n 0xffff\n /* \"#utility.yul\":2452:2457 */\n dup3\n /* \"#utility.yul\":2448:2466 */\n and\n /* \"#utility.yul\":2437:2466 */\n swap1\n pop\n /* \"#utility.yul\":2383:2472 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2478:2593 */\ntag_42:\n /* \"#utility.yul\":2563:2586 */\n tag_89\n /* \"#utility.yul\":2580:2585 */\n dup2\n /* \"#utility.yul\":2563:2586 */\n tag_41\n jump\t// in\ntag_89:\n /* \"#utility.yul\":2558:2561 */\n dup3\n /* \"#utility.yul\":2551:2587 */\n mstore\n /* \"#utility.yul\":2478:2593 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2599:2717 */\ntag_43:\n /* \"#utility.yul\":2686:2710 */\n tag_91\n /* \"#utility.yul\":2704:2709 */\n dup2\n /* \"#utility.yul\":2686:2710 */\n tag_38\n jump\t// in\ntag_91:\n /* \"#utility.yul\":2681:2684 */\n dup3\n /* \"#utility.yul\":2674:2711 */\n mstore\n /* \"#utility.yul\":2599:2717 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2723:2816 */\ntag_44:\n /* \"#utility.yul\":2759:2766 */\n 0x00\n /* \"#utility.yul\":2799:2809 */\n 0xffffffff\n /* \"#utility.yul\":2792:2797 */\n dup3\n /* \"#utility.yul\":2788:2810 */\n and\n /* \"#utility.yul\":2777:2810 */\n swap1\n pop\n /* \"#utility.yul\":2723:2816 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2822:2937 */\ntag_45:\n /* \"#utility.yul\":2907:2930 */\n tag_94\n /* \"#utility.yul\":2924:2929 */\n dup2\n /* \"#utility.yul\":2907:2930 */\n tag_44\n jump\t// in\ntag_94:\n /* \"#utility.yul\":2902:2905 */\n dup3\n /* \"#utility.yul\":2895:2931 */\n mstore\n /* \"#utility.yul\":2822:2937 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2943:3028 */\ntag_46:\n /* \"#utility.yul\":2988:2995 */\n 0x00\n /* \"#utility.yul\":3017:3022 */\n dup2\n /* \"#utility.yul\":3006:3022 */\n swap1\n pop\n /* \"#utility.yul\":2943:3028 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3034:3094 */\ntag_47:\n /* \"#utility.yul\":3062:3065 */\n 0x00\n /* \"#utility.yul\":3083:3088 */\n dup2\n /* \"#utility.yul\":3076:3088 */\n swap1\n pop\n /* \"#utility.yul\":3034:3094 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3100:3256 */\ntag_48:\n /* \"#utility.yul\":3157:3166 */\n 0x00\n /* \"#utility.yul\":3190:3250 */\n tag_98\n /* \"#utility.yul\":3207:3249 */\n tag_99\n /* \"#utility.yul\":3216:3248 */\n tag_100\n /* \"#utility.yul\":3242:3247 */\n dup5\n /* \"#utility.yul\":3216:3248 */\n tag_46\n jump\t// in\ntag_100:\n /* \"#utility.yul\":3207:3249 */\n tag_47\n jump\t// in\ntag_99:\n /* \"#utility.yul\":3190:3250 */\n tag_44\n jump\t// in\ntag_98:\n /* \"#utility.yul\":3177:3250 */\n swap1\n pop\n /* \"#utility.yul\":3100:3256 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3262:3407 */\ntag_49:\n /* \"#utility.yul\":3356:3400 */\n tag_102\n /* \"#utility.yul\":3394:3399 */\n dup2\n /* \"#utility.yul\":3356:3400 */\n tag_48\n jump\t// in\ntag_102:\n /* \"#utility.yul\":3351:3354 */\n dup3\n /* \"#utility.yul\":3344:3401 */\n mstore\n /* \"#utility.yul\":3262:3407 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3413:3972 */\ntag_13:\n /* \"#utility.yul\":3593:3597 */\n 0x00\n /* \"#utility.yul\":3631:3634 */\n 0x80\n /* \"#utility.yul\":3620:3629 */\n dup3\n /* \"#utility.yul\":3616:3635 */\n add\n /* \"#utility.yul\":3608:3635 */\n swap1\n pop\n /* \"#utility.yul\":3645:3714 */\n tag_104\n /* \"#utility.yul\":3711:3712 */\n 0x00\n /* \"#utility.yul\":3700:3709 */\n dup4\n /* \"#utility.yul\":3696:3713 */\n add\n /* \"#utility.yul\":3687:3693 */\n dup8\n /* \"#utility.yul\":3645:3714 */\n tag_42\n jump\t// in\ntag_104:\n /* \"#utility.yul\":3724:3796 */\n tag_105\n /* \"#utility.yul\":3792:3794 */\n 0x20\n /* \"#utility.yul\":3781:3790 */\n dup4\n /* \"#utility.yul\":3777:3795 */\n add\n /* \"#utility.yul\":3768:3774 */\n dup7\n /* \"#utility.yul\":3724:3796 */\n tag_43\n jump\t// in\ntag_105:\n /* \"#utility.yul\":3806:3876 */\n tag_106\n /* \"#utility.yul\":3872:3874 */\n 0x40\n /* \"#utility.yul\":3861:3870 */\n dup4\n /* \"#utility.yul\":3857:3875 */\n add\n /* \"#utility.yul\":3848:3854 */\n dup6\n /* \"#utility.yul\":3806:3876 */\n tag_45\n jump\t// in\ntag_106:\n /* \"#utility.yul\":3886:3965 */\n tag_107\n /* \"#utility.yul\":3961:3963 */\n 0x60\n /* \"#utility.yul\":3950:3959 */\n dup4\n /* \"#utility.yul\":3946:3964 */\n add\n /* \"#utility.yul\":3937:3943 */\n dup5\n /* \"#utility.yul\":3886:3965 */\n tag_49\n jump\t// in\ntag_107:\n /* \"#utility.yul\":3413:3972 */\n swap6\n swap5\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3978:4098 */\ntag_50:\n /* \"#utility.yul\":4050:4073 */\n tag_109\n /* \"#utility.yul\":4067:4072 */\n dup2\n /* \"#utility.yul\":4050:4073 */\n tag_44\n jump\t// in\ntag_109:\n /* \"#utility.yul\":4043:4048 */\n dup2\n /* \"#utility.yul\":4040:4074 */\n eq\n /* \"#utility.yul\":4030:4092 */\n tag_110\n jumpi\n /* \"#utility.yul\":4088:4089 */\n 0x00\n /* \"#utility.yul\":4085:4086 */\n dup1\n /* \"#utility.yul\":4078:4090 */\n revert\n /* \"#utility.yul\":4030:4092 */\ntag_110:\n /* \"#utility.yul\":3978:4098 */\n pop\n jump\t// out\n /* \"#utility.yul\":4104:4245 */\ntag_51:\n /* \"#utility.yul\":4160:4165 */\n 0x00\n /* \"#utility.yul\":4191:4197 */\n dup2\n /* \"#utility.yul\":4185:4198 */\n mload\n /* \"#utility.yul\":4176:4198 */\n swap1\n pop\n /* \"#utility.yul\":4207:4239 */\n tag_112\n /* \"#utility.yul\":4233:4238 */\n dup2\n /* \"#utility.yul\":4207:4239 */\n tag_50\n jump\t// in\ntag_112:\n /* \"#utility.yul\":4104:4245 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4251:4600 */\ntag_17:\n /* \"#utility.yul\":4320:4326 */\n 0x00\n /* \"#utility.yul\":4369:4371 */\n 0x20\n /* \"#utility.yul\":4357:4366 */\n dup3\n /* \"#utility.yul\":4348:4355 */\n dup5\n /* \"#utility.yul\":4344:4367 */\n sub\n /* \"#utility.yul\":4340:4372 */\n slt\n /* \"#utility.yul\":4337:4456 */\n iszero\n tag_114\n jumpi\n /* \"#utility.yul\":4375:4454 */\n tag_115\n tag_36\n jump\t// in\ntag_115:\n /* \"#utility.yul\":4337:4456 */\ntag_114:\n /* \"#utility.yul\":4495:4496 */\n 0x00\n /* \"#utility.yul\":4520:4583 */\n tag_116\n /* \"#utility.yul\":4575:4582 */\n dup5\n /* \"#utility.yul\":4566:4572 */\n dup3\n /* \"#utility.yul\":4555:4564 */\n dup6\n /* \"#utility.yul\":4551:4573 */\n add\n /* \"#utility.yul\":4520:4583 */\n tag_51\n jump\t// in\ntag_116:\n /* \"#utility.yul\":4510:4583 */\n swap2\n pop\n /* \"#utility.yul\":4466:4593 */\n pop\n /* \"#utility.yul\":4251:4600 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4606:4755 */\ntag_52:\n /* \"#utility.yul\":4642:4649 */\n 0x00\n /* \"#utility.yul\":4682:4748 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":4675:4680 */\n dup3\n /* \"#utility.yul\":4671:4749 */\n and\n /* \"#utility.yul\":4660:4749 */\n swap1\n pop\n /* \"#utility.yul\":4606:4755 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4761:4839 */\ntag_53:\n /* \"#utility.yul\":4799:4806 */\n 0x00\n /* \"#utility.yul\":4828:4833 */\n dup2\n /* \"#utility.yul\":4817:4833 */\n swap1\n pop\n /* \"#utility.yul\":4761:4839 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4845:4998 */\ntag_54:\n /* \"#utility.yul\":4948:4991 */\n tag_120\n /* \"#utility.yul\":4967:4990 */\n tag_121\n /* \"#utility.yul\":4984:4989 */\n dup3\n /* \"#utility.yul\":4967:4990 */\n tag_52\n jump\t// in\ntag_121:\n /* \"#utility.yul\":4948:4991 */\n tag_53\n jump\t// in\ntag_120:\n /* \"#utility.yul\":4943:4946 */\n dup3\n /* \"#utility.yul\":4936:4992 */\n mstore\n /* \"#utility.yul\":4845:4998 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5004:5151 */\ntag_55:\n /* \"#utility.yul\":5105:5116 */\n 0x00\n /* \"#utility.yul\":5142:5145 */\n dup2\n /* \"#utility.yul\":5127:5145 */\n swap1\n pop\n /* \"#utility.yul\":5004:5151 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5157:5543 */\ntag_56:\n /* \"#utility.yul\":5261:5264 */\n 0x00\n /* \"#utility.yul\":5289:5327 */\n tag_124\n /* \"#utility.yul\":5321:5326 */\n dup3\n /* \"#utility.yul\":5289:5327 */\n tag_30\n jump\t// in\ntag_124:\n /* \"#utility.yul\":5343:5431 */\n tag_125\n /* \"#utility.yul\":5424:5430 */\n dup2\n /* \"#utility.yul\":5419:5422 */\n dup6\n /* \"#utility.yul\":5343:5431 */\n tag_55\n jump\t// in\ntag_125:\n /* \"#utility.yul\":5336:5431 */\n swap4\n pop\n /* \"#utility.yul\":5440:5505 */\n tag_126\n /* \"#utility.yul\":5498:5504 */\n dup2\n /* \"#utility.yul\":5493:5496 */\n dup6\n /* \"#utility.yul\":5486:5490 */\n 0x20\n /* \"#utility.yul\":5479:5484 */\n dup7\n /* \"#utility.yul\":5475:5491 */\n add\n /* \"#utility.yul\":5440:5505 */\n tag_32\n jump\t// in\ntag_126:\n /* \"#utility.yul\":5530:5536 */\n dup1\n /* \"#utility.yul\":5525:5528 */\n dup5\n /* \"#utility.yul\":5521:5537 */\n add\n /* \"#utility.yul\":5514:5537 */\n swap2\n pop\n /* \"#utility.yul\":5265:5543 */\n pop\n /* \"#utility.yul\":5157:5543 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5549:5956 */\ntag_23:\n /* \"#utility.yul\":5705:5708 */\n 0x00\n /* \"#utility.yul\":5720:5793 */\n tag_128\n /* \"#utility.yul\":5789:5792 */\n dup3\n /* \"#utility.yul\":5780:5786 */\n dup6\n /* \"#utility.yul\":5720:5793 */\n tag_54\n jump\t// in\ntag_128:\n /* \"#utility.yul\":5818:5819 */\n 0x02\n /* \"#utility.yul\":5813:5816 */\n dup3\n /* \"#utility.yul\":5809:5820 */\n add\n /* \"#utility.yul\":5802:5820 */\n swap2\n pop\n /* \"#utility.yul\":5837:5930 */\n tag_129\n /* \"#utility.yul\":5926:5929 */\n dup3\n /* \"#utility.yul\":5917:5923 */\n dup5\n /* \"#utility.yul\":5837:5930 */\n tag_56\n jump\t// in\ntag_129:\n /* \"#utility.yul\":5830:5930 */\n swap2\n pop\n /* \"#utility.yul\":5947:5950 */\n dup2\n /* \"#utility.yul\":5940:5950 */\n swap1\n pop\n /* \"#utility.yul\":5549:5956 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5962:6039 */\ntag_57:\n /* \"#utility.yul\":5999:6006 */\n 0x00\n /* \"#utility.yul\":6028:6033 */\n dup2\n /* \"#utility.yul\":6017:6033 */\n swap1\n pop\n /* \"#utility.yul\":5962:6039 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6045:6225 */\ntag_58:\n /* \"#utility.yul\":6093:6170 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":6090:6091 */\n 0x00\n /* \"#utility.yul\":6083:6171 */\n mstore\n /* \"#utility.yul\":6190:6194 */\n 0x11\n /* \"#utility.yul\":6187:6188 */\n 0x04\n /* \"#utility.yul\":6180:6195 */\n mstore\n /* \"#utility.yul\":6214:6218 */\n 0x24\n /* \"#utility.yul\":6211:6212 */\n 0x00\n /* \"#utility.yul\":6204:6219 */\n revert\n /* \"#utility.yul\":6231:6641 */\ntag_26:\n /* \"#utility.yul\":6271:6278 */\n 0x00\n /* \"#utility.yul\":6294:6314 */\n tag_133\n /* \"#utility.yul\":6312:6313 */\n dup3\n /* \"#utility.yul\":6294:6314 */\n tag_57\n jump\t// in\ntag_133:\n /* \"#utility.yul\":6289:6314 */\n swap2\n pop\n /* \"#utility.yul\":6328:6348 */\n tag_134\n /* \"#utility.yul\":6346:6347 */\n dup4\n /* \"#utility.yul\":6328:6348 */\n tag_57\n jump\t// in\ntag_134:\n /* \"#utility.yul\":6323:6348 */\n swap3\n pop\n /* \"#utility.yul\":6383:6384 */\n dup3\n /* \"#utility.yul\":6380:6381 */\n dup3\n /* \"#utility.yul\":6376:6385 */\n mul\n /* \"#utility.yul\":6405:6435 */\n tag_135\n /* \"#utility.yul\":6423:6434 */\n dup2\n /* \"#utility.yul\":6405:6435 */\n tag_57\n jump\t// in\ntag_135:\n /* \"#utility.yul\":6394:6435 */\n swap2\n pop\n /* \"#utility.yul\":6584:6585 */\n dup3\n /* \"#utility.yul\":6575:6582 */\n dup3\n /* \"#utility.yul\":6571:6586 */\n div\n /* \"#utility.yul\":6568:6569 */\n dup5\n /* \"#utility.yul\":6565:6587 */\n eq\n /* \"#utility.yul\":6545:6546 */\n dup4\n /* \"#utility.yul\":6538:6547 */\n iszero\n /* \"#utility.yul\":6518:6601 */\n or\n /* \"#utility.yul\":6495:6634 */\n tag_136\n jumpi\n /* \"#utility.yul\":6614:6632 */\n tag_137\n tag_58\n jump\t// in\ntag_137:\n /* \"#utility.yul\":6495:6634 */\ntag_136:\n /* \"#utility.yul\":6279:6641 */\n pop\n /* \"#utility.yul\":6231:6641 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6647:6840 */\ntag_28:\n /* \"#utility.yul\":6686:6689 */\n 0x00\n /* \"#utility.yul\":6705:6724 */\n tag_139\n /* \"#utility.yul\":6722:6723 */\n dup3\n /* \"#utility.yul\":6705:6724 */\n tag_41\n jump\t// in\ntag_139:\n /* \"#utility.yul\":6700:6724 */\n swap2\n pop\n /* \"#utility.yul\":6738:6757 */\n tag_140\n /* \"#utility.yul\":6755:6756 */\n dup4\n /* \"#utility.yul\":6738:6757 */\n tag_41\n jump\t// in\ntag_140:\n /* \"#utility.yul\":6733:6757 */\n swap3\n pop\n /* \"#utility.yul\":6780:6781 */\n dup3\n /* \"#utility.yul\":6777:6778 */\n dup3\n /* \"#utility.yul\":6773:6782 */\n add\n /* \"#utility.yul\":6766:6782 */\n swap1\n pop\n /* \"#utility.yul\":6803:6809 */\n 0xffff\n /* \"#utility.yul\":6798:6801 */\n dup2\n /* \"#utility.yul\":6795:6810 */\n gt\n /* \"#utility.yul\":6792:6833 */\n iszero\n tag_141\n jumpi\n /* \"#utility.yul\":6813:6831 */\n tag_142\n tag_58\n jump\t// in\ntag_142:\n /* \"#utility.yul\":6792:6833 */\ntag_141:\n /* \"#utility.yul\":6647:6840 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"main.sol\":345:1108 contract ReferendaChecker {... */\ntag_18:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"main.sol\":345:1108 contract ReferendaChecker {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x3ebfa8db\n eq\n tag_3\n jumpi\n dup1\n 0x6d72ffb6\n eq\n tag_4\n jumpi\n dup1\n 0xcab0b0e6\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"main.sol\":994:1106 function test_1_check_referendum() external view {... */\n tag_3:\n tag_6\n tag_7\n jump\t// in\n tag_6:\n stop\n /* \"main.sol\":437:462 uint16 public rootTrackId */\n tag_4:\n tag_8\n tag_9\n jump\t// in\n tag_8:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":510:536 uint32 public referendumId */\n tag_5:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n mload(0x40)\n tag_14\n swap2\n swap1\n tag_15\n jump\t// in\n tag_14:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"main.sol\":994:1106 function test_1_check_referendum() external view {... */\n tag_7:\n jump\t// out\n /* \"main.sol\":437:462 uint16 public rootTrackId */\n tag_9:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffff\n and\n dup2\n jump\t// out\n /* \"main.sol\":510:536 uint32 public referendumId */\n tag_13:\n 0x00\n 0x02\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffff\n and\n dup2\n jump\t// out\n /* \"SubstrateTools.sol\":1908:2209 */\n tag_16:\n /* \"SubstrateTools.sol\":2012:2024 */\n 0x60\n /* \"SubstrateTools.sol\":2089:2107 */\n 0x01000000000000000000000000000000000000000000000000000000000000\n /* \"SubstrateTools.sol\":2152:2188 */\n tag_19\n /* \"SubstrateTools.sol\":2179:2186 */\n dup4\n /* \"SubstrateTools.sol\":2152:2172 */\n tag_20\n /* \"SubstrateTools.sol\":2152:2188 */\n jump\t// in\n tag_19:\n /* \"SubstrateTools.sol\":2059:2202 */\n add(0x20, mload(0x40))\n tag_21\n swap3\n swap2\n swap1\n tag_22\n jump\t// in\n tag_21:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":2040:2202 */\n swap1\n pop\n /* \"SubstrateTools.sol\":1908:2209 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"SubstrateTools.sol\":298:711 */\n tag_20:\n /* \"SubstrateTools.sol\":394:406 */\n 0x60\n /* \"SubstrateTools.sol\":453:466 */\n 0x00\n /* \"SubstrateTools.sol\":495:496 */\n 0x01\n /* \"SubstrateTools.sol\":490:491 */\n 0x04\n /* \"SubstrateTools.sol\":476:480 */\n dup5\n /* \"SubstrateTools.sol\":476:487 */\n mload\n /* \"SubstrateTools.sol\":476:491 */\n tag_24\n swap2\n swap1\n tag_25\n jump\t// in\n tag_24:\n /* \"SubstrateTools.sol\":469:496 */\n tag_26\n swap2\n swap1\n tag_27\n jump\t// in\n tag_26:\n /* \"SubstrateTools.sol\":453:496 */\n swap1\n pop\n /* \"SubstrateTools.sol\":542:563 */\n 0x00\n /* \"SubstrateTools.sol\":594:595 */\n 0x08\n /* \"SubstrateTools.sol\":584:590 */\n dup3\n /* \"SubstrateTools.sol\":584:595 */\n 0xffff\n and\n swap1\n shl\n /* \"SubstrateTools.sol\":578:579 */\n 0x08\n /* \"SubstrateTools.sol\":568:574 */\n dup4\n /* \"SubstrateTools.sol\":568:579 */\n 0xffff\n and\n swap1\n shr\n /* \"SubstrateTools.sol\":567:596 */\n or\n /* \"SubstrateTools.sol\":542:597 */\n swap1\n pop\n /* \"SubstrateTools.sol\":682:696 */\n dup1\n /* \"SubstrateTools.sol\":675:697 */\n 0xf0\n shl\n /* \"SubstrateTools.sol\":699:703 */\n dup5\n /* \"SubstrateTools.sol\":662:704 */\n add(0x20, mload(0x40))\n tag_28\n swap3\n swap2\n swap1\n tag_22\n jump\t// in\n tag_28:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"SubstrateTools.sol\":655:704 */\n swap3\n pop\n pop\n pop\n /* \"SubstrateTools.sol\":298:711 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:96 */\n tag_29:\n /* \"#utility.yul\":43:50 */\n 0x00\n /* \"#utility.yul\":83:89 */\n 0xffff\n /* \"#utility.yul\":76:81 */\n dup3\n /* \"#utility.yul\":72:90 */\n and\n /* \"#utility.yul\":61:90 */\n swap1\n pop\n /* \"#utility.yul\":7:96 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":102:217 */\n tag_30:\n /* \"#utility.yul\":187:210 */\n tag_45\n /* \"#utility.yul\":204:209 */\n dup2\n /* \"#utility.yul\":187:210 */\n tag_29\n jump\t// in\n tag_45:\n /* \"#utility.yul\":182:185 */\n dup3\n /* \"#utility.yul\":175:211 */\n mstore\n /* \"#utility.yul\":102:217 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":223:441 */\n tag_11:\n /* \"#utility.yul\":314:318 */\n 0x00\n /* \"#utility.yul\":352:354 */\n 0x20\n /* \"#utility.yul\":341:350 */\n dup3\n /* \"#utility.yul\":337:355 */\n add\n /* \"#utility.yul\":329:355 */\n swap1\n pop\n /* \"#utility.yul\":365:434 */\n tag_47\n /* \"#utility.yul\":431:432 */\n 0x00\n /* \"#utility.yul\":420:429 */\n dup4\n /* \"#utility.yul\":416:433 */\n add\n /* \"#utility.yul\":407:413 */\n dup5\n /* \"#utility.yul\":365:434 */\n tag_30\n jump\t// in\n tag_47:\n /* \"#utility.yul\":223:441 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":447:540 */\n tag_31:\n /* \"#utility.yul\":483:490 */\n 0x00\n /* \"#utility.yul\":523:533 */\n 0xffffffff\n /* \"#utility.yul\":516:521 */\n dup3\n /* \"#utility.yul\":512:534 */\n and\n /* \"#utility.yul\":501:534 */\n swap1\n pop\n /* \"#utility.yul\":447:540 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":546:661 */\n tag_32:\n /* \"#utility.yul\":631:654 */\n tag_50\n /* \"#utility.yul\":648:653 */\n dup2\n /* \"#utility.yul\":631:654 */\n tag_31\n jump\t// in\n tag_50:\n /* \"#utility.yul\":626:629 */\n dup3\n /* \"#utility.yul\":619:655 */\n mstore\n /* \"#utility.yul\":546:661 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":667:885 */\n tag_15:\n /* \"#utility.yul\":758:762 */\n 0x00\n /* \"#utility.yul\":796:798 */\n 0x20\n /* \"#utility.yul\":785:794 */\n dup3\n /* \"#utility.yul\":781:799 */\n add\n /* \"#utility.yul\":773:799 */\n swap1\n pop\n /* \"#utility.yul\":809:878 */\n tag_52\n /* \"#utility.yul\":875:876 */\n 0x00\n /* \"#utility.yul\":864:873 */\n dup4\n /* \"#utility.yul\":860:877 */\n add\n /* \"#utility.yul\":851:857 */\n dup5\n /* \"#utility.yul\":809:878 */\n tag_32\n jump\t// in\n tag_52:\n /* \"#utility.yul\":667:885 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":891:1040 */\n tag_33:\n /* \"#utility.yul\":927:934 */\n 0x00\n /* \"#utility.yul\":967:1033 */\n 0xffff000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":960:965 */\n dup3\n /* \"#utility.yul\":956:1034 */\n and\n /* \"#utility.yul\":945:1034 */\n swap1\n pop\n /* \"#utility.yul\":891:1040 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1046:1124 */\n tag_34:\n /* \"#utility.yul\":1084:1091 */\n 0x00\n /* \"#utility.yul\":1113:1118 */\n dup2\n /* \"#utility.yul\":1102:1118 */\n swap1\n pop\n /* \"#utility.yul\":1046:1124 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1130:1283 */\n tag_35:\n /* \"#utility.yul\":1233:1276 */\n tag_56\n /* \"#utility.yul\":1252:1275 */\n tag_57\n /* \"#utility.yul\":1269:1274 */\n dup3\n /* \"#utility.yul\":1252:1275 */\n tag_33\n jump\t// in\n tag_57:\n /* \"#utility.yul\":1233:1276 */\n tag_34\n jump\t// in\n tag_56:\n /* \"#utility.yul\":1228:1231 */\n dup3\n /* \"#utility.yul\":1221:1277 */\n mstore\n /* \"#utility.yul\":1130:1283 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1289:1387 */\n tag_36:\n /* \"#utility.yul\":1340:1346 */\n 0x00\n /* \"#utility.yul\":1374:1379 */\n dup2\n /* \"#utility.yul\":1368:1380 */\n mload\n /* \"#utility.yul\":1358:1380 */\n swap1\n pop\n /* \"#utility.yul\":1289:1387 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1393:1540 */\n tag_37:\n /* \"#utility.yul\":1494:1505 */\n 0x00\n /* \"#utility.yul\":1531:1534 */\n dup2\n /* \"#utility.yul\":1516:1534 */\n swap1\n pop\n /* \"#utility.yul\":1393:1540 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1546:1792 */\n tag_38:\n /* \"#utility.yul\":1627:1628 */\n 0x00\n /* \"#utility.yul\":1637:1750 */\n tag_61:\n /* \"#utility.yul\":1651:1657 */\n dup4\n /* \"#utility.yul\":1648:1649 */\n dup2\n /* \"#utility.yul\":1645:1658 */\n lt\n /* \"#utility.yul\":1637:1750 */\n iszero\n tag_63\n jumpi\n /* \"#utility.yul\":1736:1737 */\n dup1\n /* \"#utility.yul\":1731:1734 */\n dup3\n /* \"#utility.yul\":1727:1738 */\n add\n /* \"#utility.yul\":1721:1739 */\n mload\n /* \"#utility.yul\":1717:1718 */\n dup2\n /* \"#utility.yul\":1712:1715 */\n dup5\n /* \"#utility.yul\":1708:1719 */\n add\n /* \"#utility.yul\":1701:1740 */\n mstore\n /* \"#utility.yul\":1673:1675 */\n 0x20\n /* \"#utility.yul\":1670:1671 */\n dup2\n /* \"#utility.yul\":1666:1676 */\n add\n /* \"#utility.yul\":1661:1676 */\n swap1\n pop\n /* \"#utility.yul\":1637:1750 */\n jump(tag_61)\n tag_63:\n /* \"#utility.yul\":1784:1785 */\n 0x00\n /* \"#utility.yul\":1775:1781 */\n dup5\n /* \"#utility.yul\":1770:1773 */\n dup5\n /* \"#utility.yul\":1766:1782 */\n add\n /* \"#utility.yul\":1759:1786 */\n mstore\n /* \"#utility.yul\":1608:1792 */\n pop\n /* \"#utility.yul\":1546:1792 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1798:2184 */\n tag_39:\n /* \"#utility.yul\":1902:1905 */\n 0x00\n /* \"#utility.yul\":1930:1968 */\n tag_65\n /* \"#utility.yul\":1962:1967 */\n dup3\n /* \"#utility.yul\":1930:1968 */\n tag_36\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1984:2072 */\n tag_66\n /* \"#utility.yul\":2065:2071 */\n dup2\n /* \"#utility.yul\":2060:2063 */\n dup6\n /* \"#utility.yul\":1984:2072 */\n tag_37\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1977:2072 */\n swap4\n pop\n /* \"#utility.yul\":2081:2146 */\n tag_67\n /* \"#utility.yul\":2139:2145 */\n dup2\n /* \"#utility.yul\":2134:2137 */\n dup6\n /* \"#utility.yul\":2127:2131 */\n 0x20\n /* \"#utility.yul\":2120:2125 */\n dup7\n /* \"#utility.yul\":2116:2132 */\n add\n /* \"#utility.yul\":2081:2146 */\n tag_38\n jump\t// in\n tag_67:\n /* \"#utility.yul\":2171:2177 */\n dup1\n /* \"#utility.yul\":2166:2169 */\n dup5\n /* \"#utility.yul\":2162:2178 */\n add\n /* \"#utility.yul\":2155:2178 */\n swap2\n pop\n /* \"#utility.yul\":1906:2184 */\n pop\n /* \"#utility.yul\":1798:2184 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2190:2597 */\n tag_22:\n /* \"#utility.yul\":2346:2349 */\n 0x00\n /* \"#utility.yul\":2361:2434 */\n tag_69\n /* \"#utility.yul\":2430:2433 */\n dup3\n /* \"#utility.yul\":2421:2427 */\n dup6\n /* \"#utility.yul\":2361:2434 */\n tag_35\n jump\t// in\n tag_69:\n /* \"#utility.yul\":2459:2460 */\n 0x02\n /* \"#utility.yul\":2454:2457 */\n dup3\n /* \"#utility.yul\":2450:2461 */\n add\n /* \"#utility.yul\":2443:2461 */\n swap2\n pop\n /* \"#utility.yul\":2478:2571 */\n tag_70\n /* \"#utility.yul\":2567:2570 */\n dup3\n /* \"#utility.yul\":2558:2564 */\n dup5\n /* \"#utility.yul\":2478:2571 */\n tag_39\n jump\t// in\n tag_70:\n /* \"#utility.yul\":2471:2571 */\n swap2\n pop\n /* \"#utility.yul\":2588:2591 */\n dup2\n /* \"#utility.yul\":2581:2591 */\n swap1\n pop\n /* \"#utility.yul\":2190:2597 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2603:2680 */\n tag_40:\n /* \"#utility.yul\":2640:2647 */\n 0x00\n /* \"#utility.yul\":2669:2674 */\n dup2\n /* \"#utility.yul\":2658:2674 */\n swap1\n pop\n /* \"#utility.yul\":2603:2680 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2686:2866 */\n tag_41:\n /* \"#utility.yul\":2734:2811 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2731:2732 */\n 0x00\n /* \"#utility.yul\":2724:2812 */\n mstore\n /* \"#utility.yul\":2831:2835 */\n 0x11\n /* \"#utility.yul\":2828:2829 */\n 0x04\n /* \"#utility.yul\":2821:2836 */\n mstore\n /* \"#utility.yul\":2855:2859 */\n 0x24\n /* \"#utility.yul\":2852:2853 */\n 0x00\n /* \"#utility.yul\":2845:2860 */\n revert\n /* \"#utility.yul\":2872:3282 */\n tag_25:\n /* \"#utility.yul\":2912:2919 */\n 0x00\n /* \"#utility.yul\":2935:2955 */\n tag_74\n /* \"#utility.yul\":2953:2954 */\n dup3\n /* \"#utility.yul\":2935:2955 */\n tag_40\n jump\t// in\n tag_74:\n /* \"#utility.yul\":2930:2955 */\n swap2\n pop\n /* \"#utility.yul\":2969:2989 */\n tag_75\n /* \"#utility.yul\":2987:2988 */\n dup4\n /* \"#utility.yul\":2969:2989 */\n tag_40\n jump\t// in\n tag_75:\n /* \"#utility.yul\":2964:2989 */\n swap3\n pop\n /* \"#utility.yul\":3024:3025 */\n dup3\n /* \"#utility.yul\":3021:3022 */\n dup3\n /* \"#utility.yul\":3017:3026 */\n mul\n /* \"#utility.yul\":3046:3076 */\n tag_76\n /* \"#utility.yul\":3064:3075 */\n dup2\n /* \"#utility.yul\":3046:3076 */\n tag_40\n jump\t// in\n tag_76:\n /* \"#utility.yul\":3035:3076 */\n swap2\n pop\n /* \"#utility.yul\":3225:3226 */\n dup3\n /* \"#utility.yul\":3216:3223 */\n dup3\n /* \"#utility.yul\":3212:3227 */\n div\n /* \"#utility.yul\":3209:3210 */\n dup5\n /* \"#utility.yul\":3206:3228 */\n eq\n /* \"#utility.yul\":3186:3187 */\n dup4\n /* \"#utility.yul\":3179:3188 */\n iszero\n /* \"#utility.yul\":3159:3242 */\n or\n /* \"#utility.yul\":3136:3275 */\n tag_77\n jumpi\n /* \"#utility.yul\":3255:3273 */\n tag_78\n tag_41\n jump\t// in\n tag_78:\n /* \"#utility.yul\":3136:3275 */\n tag_77:\n /* \"#utility.yul\":2920:3282 */\n pop\n /* \"#utility.yul\":2872:3282 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3288:3481 */\n tag_27:\n /* \"#utility.yul\":3327:3330 */\n 0x00\n /* \"#utility.yul\":3346:3365 */\n tag_80\n /* \"#utility.yul\":3363:3364 */\n dup3\n /* \"#utility.yul\":3346:3365 */\n tag_29\n jump\t// in\n tag_80:\n /* \"#utility.yul\":3341:3365 */\n swap2\n pop\n /* \"#utility.yul\":3379:3398 */\n tag_81\n /* \"#utility.yul\":3396:3397 */\n dup4\n /* \"#utility.yul\":3379:3398 */\n tag_29\n jump\t// in\n tag_81:\n /* \"#utility.yul\":3374:3398 */\n swap3\n pop\n /* \"#utility.yul\":3421:3422 */\n dup3\n /* \"#utility.yul\":3418:3419 */\n dup3\n /* \"#utility.yul\":3414:3423 */\n add\n /* \"#utility.yul\":3407:3423 */\n swap1\n pop\n /* \"#utility.yul\":3444:3450 */\n 0xffff\n /* \"#utility.yul\":3439:3442 */\n dup2\n /* \"#utility.yul\":3436:3451 */\n gt\n /* \"#utility.yul\":3433:3474 */\n iszero\n tag_82\n jumpi\n /* \"#utility.yul\":3454:3472 */\n tag_83\n tag_41\n jump\t// in\n tag_83:\n /* \"#utility.yul\":3433:3474 */\n tag_82:\n /* \"#utility.yul\":3288:3481 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220e72ce06219d7bd81fa8138875a4bcb165706c69e01d997caf674c5d9684219a764736f6c63430008110033\n}\n", "bytecode": { "functionDebugData": { "@_41": { @@ -3848,8 +3848,8 @@ } ], "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b5060006200005f6040518060400160405280601781526020017f5265666572656e6461205465737420436f6e7472616374000000000000000000815250620001a360201b620000b61760201c565b905061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff1661081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603856040518263ffffffff1660e01b8152600401620000cb919062000304565b6020604051808303816000875af1158015620000eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000111919062000368565b845160016040518563ffffffff1660e01b815260040162000136949392919062000438565b6020604051808303816000875af115801562000156573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017c9190620004b6565b600060026101000a81548163ffffffff021916908363ffffffff1602179055505062000668565b60607e01000000000000000000000000000000000000000000000000000000000000620001d683620001ff60201b60201c565b604051602001620001e99291906200057b565b6040516020818303038152906040529050919050565b60606000600160048451620002159190620005e0565b6200022191906200062b565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b84604051602001620002529291906200057b565b60405160208183030381529060405292505050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620002a657808201518184015260208101905062000289565b60008484015250505050565b6000601f19601f8301169050919050565b6000620002d0826200026a565b620002dc818562000275565b9350620002ee81856020860162000286565b620002f981620002b2565b840191505092915050565b60006020820190508181036000830152620003208184620002c3565b905092915050565b600080fd5b6000819050919050565b62000342816200032d565b81146200034e57600080fd5b50565b600081519050620003628162000337565b92915050565b60006020828403121562000381576200038062000328565b5b6000620003918482850162000351565b91505092915050565b600061ffff82169050919050565b620003b3816200039a565b82525050565b620003c4816200032d565b82525050565b600063ffffffff82169050919050565b620003e581620003ca565b82525050565b6000819050919050565b6000819050919050565b6000620004206200041a6200041484620003eb565b620003f5565b620003ca565b9050919050565b6200043281620003ff565b82525050565b60006080820190506200044f6000830187620003a8565b6200045e6020830186620003b9565b6200046d6040830185620003da565b6200047c606083018462000427565b95945050505050565b6200049081620003ca565b81146200049c57600080fd5b50565b600081519050620004b08162000485565b92915050565b600060208284031215620004cf57620004ce62000328565b5b6000620004df848285016200049f565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b620005336200052d82620004e8565b62000514565b82525050565b600081905092915050565b600062000551826200026a565b6200055d818562000539565b93506200056f81856020860162000286565b80840191505092915050565b60006200058982856200051e565b6002820191506200059b828462000544565b91508190509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005ed82620005a7565b9150620005fa83620005a7565b92508282026200060a81620005a7565b91508282048414831517620006245762000623620005b1565b5b5092915050565b600062000638826200039a565b915062000645836200039a565b9250828201905061ffff811115620006625762000661620005b1565b5b92915050565b6103ac80620006786000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633ebfa8db146100465780636d72ffb614610050578063cab0b0e61461006e575b600080fd5b61004e61008c565b005b61005861008e565b604051610065919061018a565b60405180910390f35b6100766100a0565b60405161008391906101c4565b60405180910390f35b565b60008054906101000a900461ffff1681565b600060029054906101000a900463ffffffff1681565b60607e010000000000000000000000000000000000000000000000000000000000006100e183610108565b6040516020016100f292919061029d565b6040516020818303038152906040529050919050565b6060600060016004845161011c91906102fe565b6101269190610340565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b8460405160200161015592919061029d565b60405160208183030381529060405292505050919050565b600061ffff82169050919050565b6101848161016d565b82525050565b600060208201905061019f600083018461017b565b92915050565b600063ffffffff82169050919050565b6101be816101a5565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b610226610221826101df565b61020b565b82525050565b600081519050919050565b600081905092915050565b60005b83811015610260578082015181840152602081019050610245565b60008484015250505050565b60006102778261022c565b6102818185610237565b9350610291818560208601610242565b80840191505092915050565b60006102a98285610215565b6002820191506102b9828461026c565b91508190509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610309826102c5565b9150610314836102c5565b9250828202610322816102c5565b91508282048414831517610339576103386102cf565b5b5092915050565b600061034b8261016d565b91506103568361016d565b9250828201905061ffff8111156103705761036f6102cf565b5b9291505056fea264697066735822122003e0d4c9741fec62a57dc600c0c119e8882da3279e0f52ef0cb18a9ce648058f64736f6c63430008110033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH3 0x5F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5265666572656E6461205465737420436F6E7472616374000000000000000000 DUP2 MSTORE POP PUSH3 0x1A3 PUSH1 0x20 SHL PUSH3 0xB6 OR PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B2479DB PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x813 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCB00F603 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xCB SWAP2 SWAP1 PUSH3 0x304 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH3 0xEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x111 SWAP2 SWAP1 PUSH3 0x368 JUMP JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x136 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0x438 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH3 0x156 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x17C SWAP2 SWAP1 PUSH3 0x4B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH3 0x668 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x1000000000000000000000000000000000000000000000000000000000000 PUSH3 0x1D6 DUP4 PUSH3 0x1FF PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x1E9 SWAP3 SWAP2 SWAP1 PUSH3 0x57B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH3 0x215 SWAP2 SWAP1 PUSH3 0x5E0 JUMP JUMPDEST PUSH3 0x221 SWAP2 SWAP1 PUSH3 0x62B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x252 SWAP3 SWAP2 SWAP1 PUSH3 0x57B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x2A6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D0 DUP3 PUSH3 0x26A JUMP JUMPDEST PUSH3 0x2DC DUP2 DUP6 PUSH3 0x275 JUMP JUMPDEST SWAP4 POP PUSH3 0x2EE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x286 JUMP JUMPDEST PUSH3 0x2F9 DUP2 PUSH3 0x2B2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x320 DUP2 DUP5 PUSH3 0x2C3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x342 DUP2 PUSH3 0x32D JUMP JUMPDEST DUP2 EQ PUSH3 0x34E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x362 DUP2 PUSH3 0x337 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x381 JUMPI PUSH3 0x380 PUSH3 0x328 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x391 DUP5 DUP3 DUP6 ADD PUSH3 0x351 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3B3 DUP2 PUSH3 0x39A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH3 0x3C4 DUP2 PUSH3 0x32D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3E5 DUP2 PUSH3 0x3CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x420 PUSH3 0x41A PUSH3 0x414 DUP5 PUSH3 0x3EB JUMP JUMPDEST PUSH3 0x3F5 JUMP JUMPDEST PUSH3 0x3CA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x432 DUP2 PUSH3 0x3FF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH3 0x44F PUSH1 0x0 DUP4 ADD DUP8 PUSH3 0x3A8 JUMP JUMPDEST PUSH3 0x45E PUSH1 0x20 DUP4 ADD DUP7 PUSH3 0x3B9 JUMP JUMPDEST PUSH3 0x46D PUSH1 0x40 DUP4 ADD DUP6 PUSH3 0x3DA JUMP JUMPDEST PUSH3 0x47C PUSH1 0x60 DUP4 ADD DUP5 PUSH3 0x427 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH3 0x490 DUP2 PUSH3 0x3CA JUMP JUMPDEST DUP2 EQ PUSH3 0x49C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x4B0 DUP2 PUSH3 0x485 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x4CF JUMPI PUSH3 0x4CE PUSH3 0x328 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x4DF DUP5 DUP3 DUP6 ADD PUSH3 0x49F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x533 PUSH3 0x52D DUP3 PUSH3 0x4E8 JUMP JUMPDEST PUSH3 0x514 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x551 DUP3 PUSH3 0x26A JUMP JUMPDEST PUSH3 0x55D DUP2 DUP6 PUSH3 0x539 JUMP JUMPDEST SWAP4 POP PUSH3 0x56F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x286 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x589 DUP3 DUP6 PUSH3 0x51E JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH3 0x59B DUP3 DUP5 PUSH3 0x544 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x5ED DUP3 PUSH3 0x5A7 JUMP JUMPDEST SWAP2 POP PUSH3 0x5FA DUP4 PUSH3 0x5A7 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH3 0x60A DUP2 PUSH3 0x5A7 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH3 0x624 JUMPI PUSH3 0x623 PUSH3 0x5B1 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x638 DUP3 PUSH3 0x39A JUMP JUMPDEST SWAP2 POP PUSH3 0x645 DUP4 PUSH3 0x39A JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH3 0x662 JUMPI PUSH3 0x661 PUSH3 0x5B1 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3AC DUP1 PUSH3 0x678 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3EBFA8DB EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xCAB0B0E6 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x8E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x65 SWAP2 SWAP1 PUSH2 0x18A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x76 PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x1000000000000000000000000000000000000000000000000000000000000 PUSH2 0xE1 DUP4 PUSH2 0x108 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF2 SWAP3 SWAP2 SWAP1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x11C SWAP2 SWAP1 PUSH2 0x2FE JUMP JUMPDEST PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x340 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x155 SWAP3 SWAP2 SWAP1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x184 DUP2 PUSH2 0x16D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x17B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x1A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x226 PUSH2 0x221 DUP3 PUSH2 0x1DF JUMP JUMPDEST PUSH2 0x20B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x260 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x245 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x277 DUP3 PUSH2 0x22C JUMP JUMPDEST PUSH2 0x281 DUP2 DUP6 PUSH2 0x237 JUMP JUMPDEST SWAP4 POP PUSH2 0x291 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x242 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A9 DUP3 DUP6 PUSH2 0x215 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x2B9 DUP3 DUP5 PUSH2 0x26C JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x309 DUP3 PUSH2 0x2C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x314 DUP4 PUSH2 0x2C5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x322 DUP2 PUSH2 0x2C5 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x339 JUMPI PUSH2 0x338 PUSH2 0x2CF JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B DUP3 PUSH2 0x16D JUMP JUMPDEST SWAP2 POP PUSH2 0x356 DUP4 PUSH2 0x16D JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0x370 JUMPI PUSH2 0x36F PUSH2 0x2CF JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB 0xE0 0xD4 0xC9 PUSH21 0x1FEC62A57DC600C0C119E8882DA3279E0F52EF0CB1 DUP11 SWAP13 0xE6 BASEFEE SDIV DUP16 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "object": "60806040523480156200001157600080fd5b5060006200005f6040518060400160405280601781526020017f5265666572656e6461205465737420436f6e7472616374000000000000000000815250620001a360201b620000b61760201c565b905061081173ffffffffffffffffffffffffffffffffffffffff16635b2479db60008054906101000a900461ffff1661081373ffffffffffffffffffffffffffffffffffffffff1663cb00f603856040518263ffffffff1660e01b8152600401620000cb919062000304565b6020604051808303816000875af1158015620000eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000111919062000368565b845160016040518563ffffffff1660e01b815260040162000136949392919062000438565b6020604051808303816000875af115801562000156573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017c9190620004b6565b600060026101000a81548163ffffffff021916908363ffffffff1602179055505062000668565b60607e01000000000000000000000000000000000000000000000000000000000000620001d683620001ff60201b60201c565b604051602001620001e99291906200057b565b6040516020818303038152906040529050919050565b60606000600160048451620002159190620005e0565b6200022191906200062b565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b84604051602001620002529291906200057b565b60405160208183030381529060405292505050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620002a657808201518184015260208101905062000289565b60008484015250505050565b6000601f19601f8301169050919050565b6000620002d0826200026a565b620002dc818562000275565b9350620002ee81856020860162000286565b620002f981620002b2565b840191505092915050565b60006020820190508181036000830152620003208184620002c3565b905092915050565b600080fd5b6000819050919050565b62000342816200032d565b81146200034e57600080fd5b50565b600081519050620003628162000337565b92915050565b60006020828403121562000381576200038062000328565b5b6000620003918482850162000351565b91505092915050565b600061ffff82169050919050565b620003b3816200039a565b82525050565b620003c4816200032d565b82525050565b600063ffffffff82169050919050565b620003e581620003ca565b82525050565b6000819050919050565b6000819050919050565b6000620004206200041a6200041484620003eb565b620003f5565b620003ca565b9050919050565b6200043281620003ff565b82525050565b60006080820190506200044f6000830187620003a8565b6200045e6020830186620003b9565b6200046d6040830185620003da565b6200047c606083018462000427565b95945050505050565b6200049081620003ca565b81146200049c57600080fd5b50565b600081519050620004b08162000485565b92915050565b600060208284031215620004cf57620004ce62000328565b5b6000620004df848285016200049f565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b620005336200052d82620004e8565b62000514565b82525050565b600081905092915050565b600062000551826200026a565b6200055d818562000539565b93506200056f81856020860162000286565b80840191505092915050565b60006200058982856200051e565b6002820191506200059b828462000544565b91508190509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005ed82620005a7565b9150620005fa83620005a7565b92508282026200060a81620005a7565b91508282048414831517620006245762000623620005b1565b5b5092915050565b600062000638826200039a565b915062000645836200039a565b9250828201905061ffff811115620006625762000661620005b1565b5b92915050565b6103ac80620006786000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633ebfa8db146100465780636d72ffb614610050578063cab0b0e61461006e575b600080fd5b61004e61008c565b005b61005861008e565b604051610065919061018a565b60405180910390f35b6100766100a0565b60405161008391906101c4565b60405180910390f35b565b60008054906101000a900461ffff1681565b600060029054906101000a900463ffffffff1681565b60607e010000000000000000000000000000000000000000000000000000000000006100e183610108565b6040516020016100f292919061029d565b6040516020818303038152906040529050919050565b6060600060016004845161011c91906102fe565b6101269190610340565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b8460405160200161015592919061029d565b60405160208183030381529060405292505050919050565b600061ffff82169050919050565b6101848161016d565b82525050565b600060208201905061019f600083018461017b565b92915050565b600063ffffffff82169050919050565b6101be816101a5565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b610226610221826101df565b61020b565b82525050565b600081519050919050565b600081905092915050565b60005b83811015610260578082015181840152602081019050610245565b60008484015250505050565b60006102778261022c565b6102818185610237565b9350610291818560208601610242565b80840191505092915050565b60006102a98285610215565b6002820191506102b9828461026c565b91508190509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610309826102c5565b9150610314836102c5565b9250828202610322816102c5565b91508282048414831517610339576103386102cf565b5b5092915050565b600061034b8261016d565b91506103568361016d565b9250828201905061ffff8111156103705761036f6102cf565b5b9291505056fea2646970667358221220e72ce06219d7bd81fa8138875a4bcb165706c69e01d997caf674c5d9684219a764736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH3 0x5F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5265666572656E6461205465737420436F6E7472616374000000000000000000 DUP2 MSTORE POP PUSH3 0x1A3 PUSH1 0x20 SHL PUSH3 0xB6 OR PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP PUSH2 0x811 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B2479DB PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x813 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xCB00F603 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xCB SWAP2 SWAP1 PUSH3 0x304 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH3 0xEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x111 SWAP2 SWAP1 PUSH3 0x368 JUMP JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x136 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0x438 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH3 0x156 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x17C SWAP2 SWAP1 PUSH3 0x4B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH3 0x668 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x1000000000000000000000000000000000000000000000000000000000000 PUSH3 0x1D6 DUP4 PUSH3 0x1FF PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x1E9 SWAP3 SWAP2 SWAP1 PUSH3 0x57B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH3 0x215 SWAP2 SWAP1 PUSH3 0x5E0 JUMP JUMPDEST PUSH3 0x221 SWAP2 SWAP1 PUSH3 0x62B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x252 SWAP3 SWAP2 SWAP1 PUSH3 0x57B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x2A6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D0 DUP3 PUSH3 0x26A JUMP JUMPDEST PUSH3 0x2DC DUP2 DUP6 PUSH3 0x275 JUMP JUMPDEST SWAP4 POP PUSH3 0x2EE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x286 JUMP JUMPDEST PUSH3 0x2F9 DUP2 PUSH3 0x2B2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x320 DUP2 DUP5 PUSH3 0x2C3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x342 DUP2 PUSH3 0x32D JUMP JUMPDEST DUP2 EQ PUSH3 0x34E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x362 DUP2 PUSH3 0x337 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x381 JUMPI PUSH3 0x380 PUSH3 0x328 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x391 DUP5 DUP3 DUP6 ADD PUSH3 0x351 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3B3 DUP2 PUSH3 0x39A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH3 0x3C4 DUP2 PUSH3 0x32D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3E5 DUP2 PUSH3 0x3CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x420 PUSH3 0x41A PUSH3 0x414 DUP5 PUSH3 0x3EB JUMP JUMPDEST PUSH3 0x3F5 JUMP JUMPDEST PUSH3 0x3CA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x432 DUP2 PUSH3 0x3FF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH3 0x44F PUSH1 0x0 DUP4 ADD DUP8 PUSH3 0x3A8 JUMP JUMPDEST PUSH3 0x45E PUSH1 0x20 DUP4 ADD DUP7 PUSH3 0x3B9 JUMP JUMPDEST PUSH3 0x46D PUSH1 0x40 DUP4 ADD DUP6 PUSH3 0x3DA JUMP JUMPDEST PUSH3 0x47C PUSH1 0x60 DUP4 ADD DUP5 PUSH3 0x427 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH3 0x490 DUP2 PUSH3 0x3CA JUMP JUMPDEST DUP2 EQ PUSH3 0x49C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x4B0 DUP2 PUSH3 0x485 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x4CF JUMPI PUSH3 0x4CE PUSH3 0x328 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x4DF DUP5 DUP3 DUP6 ADD PUSH3 0x49F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x533 PUSH3 0x52D DUP3 PUSH3 0x4E8 JUMP JUMPDEST PUSH3 0x514 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x551 DUP3 PUSH3 0x26A JUMP JUMPDEST PUSH3 0x55D DUP2 DUP6 PUSH3 0x539 JUMP JUMPDEST SWAP4 POP PUSH3 0x56F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x286 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x589 DUP3 DUP6 PUSH3 0x51E JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH3 0x59B DUP3 DUP5 PUSH3 0x544 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x5ED DUP3 PUSH3 0x5A7 JUMP JUMPDEST SWAP2 POP PUSH3 0x5FA DUP4 PUSH3 0x5A7 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH3 0x60A DUP2 PUSH3 0x5A7 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH3 0x624 JUMPI PUSH3 0x623 PUSH3 0x5B1 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x638 DUP3 PUSH3 0x39A JUMP JUMPDEST SWAP2 POP PUSH3 0x645 DUP4 PUSH3 0x39A JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH3 0x662 JUMPI PUSH3 0x661 PUSH3 0x5B1 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3AC DUP1 PUSH3 0x678 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3EBFA8DB EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xCAB0B0E6 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x8E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x65 SWAP2 SWAP1 PUSH2 0x18A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x76 PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x1000000000000000000000000000000000000000000000000000000000000 PUSH2 0xE1 DUP4 PUSH2 0x108 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF2 SWAP3 SWAP2 SWAP1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x11C SWAP2 SWAP1 PUSH2 0x2FE JUMP JUMPDEST PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x340 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x155 SWAP3 SWAP2 SWAP1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x184 DUP2 PUSH2 0x16D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x17B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x1A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x226 PUSH2 0x221 DUP3 PUSH2 0x1DF JUMP JUMPDEST PUSH2 0x20B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x260 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x245 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x277 DUP3 PUSH2 0x22C JUMP JUMPDEST PUSH2 0x281 DUP2 DUP6 PUSH2 0x237 JUMP JUMPDEST SWAP4 POP PUSH2 0x291 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x242 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A9 DUP3 DUP6 PUSH2 0x215 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x2B9 DUP3 DUP5 PUSH2 0x26C JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x309 DUP3 PUSH2 0x2C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x314 DUP4 PUSH2 0x2C5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x322 DUP2 PUSH2 0x2C5 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x339 JUMPI PUSH2 0x338 PUSH2 0x2CF JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B DUP3 PUSH2 0x16D JUMP JUMPDEST SWAP2 POP PUSH2 0x356 DUP4 PUSH2 0x16D JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0x370 JUMPI PUSH2 0x36F PUSH2 0x2CF JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 0x2C 0xE0 PUSH3 0x19D7BD DUP2 STATICCALL DUP2 CODESIZE DUP8 GAS 0x4B 0xCB AND JUMPI MOD 0xC6 SWAP15 ADD 0xD9 SWAP8 0xCA 0xF6 PUSH21 0xC5D9684219A764736F6C6343000811003300000000 ", "sourceMap": "345:763:1:-:0;;;630:358;;;;;;;;;;654:27;684:89;;;;;;;;;;;;;;;;;;:40;;;;;:89;;:::i;:::-;654:119;;147:42:4;798:30:1;;;842:11;;;;;;;;;;145:42:3;867:30:1;;;898:14;867:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;934:14;:21;970:1;798:183;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;783:12;;:198;;;;;;;;;;;;;;;;;;644:344;345:763;;1908:301:0;2012:12;2089:18;2152:36;2179:7;2152:20;;;:36;;:::i;:::-;2059:143;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2040:162;;1908:301;;;:::o;298:413::-;394:12;453:13;495:1;490;476:4;:11;:15;;;;:::i;:::-;469:27;;;;:::i;:::-;453:43;;542:21;594:1;584:6;:11;;;;578:1;568:6;:11;;;;567:29;542:55;;682:14;675:22;;699:4;662:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;655:49;;;;298:413;;;:::o;7:98:5:-;58:6;92:5;86:12;76:22;;7:98;;;:::o;111:168::-;194:11;228:6;223:3;216:19;268:4;263:3;259:14;244:29;;111:168;;;;:::o;285:246::-;366:1;376:113;390:6;387:1;384:13;376:113;;;475:1;470:3;466:11;460:18;456:1;451:3;447:11;440:39;412:2;409:1;405:10;400:15;;376:113;;;523:1;514:6;509:3;505:16;498:27;347:184;285:246;;;:::o;537:102::-;578:6;629:2;625:7;620:2;613:5;609:14;605:28;595:38;;537:102;;;:::o;645:373::-;731:3;759:38;791:5;759:38;:::i;:::-;813:70;876:6;871:3;813:70;:::i;:::-;806:77;;892:65;950:6;945:3;938:4;931:5;927:16;892:65;:::i;:::-;982:29;1004:6;982:29;:::i;:::-;977:3;973:39;966:46;;735:283;645:373;;;;:::o;1024:309::-;1135:4;1173:2;1162:9;1158:18;1150:26;;1222:9;1216:4;1212:20;1208:1;1197:9;1193:17;1186:47;1250:76;1321:4;1312:6;1250:76;:::i;:::-;1242:84;;1024:309;;;;:::o;1420:117::-;1529:1;1526;1519:12;1666:77;1703:7;1732:5;1721:16;;1666:77;;;:::o;1749:122::-;1822:24;1840:5;1822:24;:::i;:::-;1815:5;1812:35;1802:63;;1861:1;1858;1851:12;1802:63;1749:122;:::o;1877:143::-;1934:5;1965:6;1959:13;1950:22;;1981:33;2008:5;1981:33;:::i;:::-;1877:143;;;;:::o;2026:351::-;2096:6;2145:2;2133:9;2124:7;2120:23;2116:32;2113:119;;;2151:79;;:::i;:::-;2113:119;2271:1;2296:64;2352:7;2343:6;2332:9;2328:22;2296:64;:::i;:::-;2286:74;;2242:128;2026:351;;;;:::o;2383:89::-;2419:7;2459:6;2452:5;2448:18;2437:29;;2383:89;;;:::o;2478:115::-;2563:23;2580:5;2563:23;:::i;:::-;2558:3;2551:36;2478:115;;:::o;2599:118::-;2686:24;2704:5;2686:24;:::i;:::-;2681:3;2674:37;2599:118;;:::o;2723:93::-;2759:7;2799:10;2792:5;2788:22;2777:33;;2723:93;;;:::o;2822:115::-;2907:23;2924:5;2907:23;:::i;:::-;2902:3;2895:36;2822:115;;:::o;2943:85::-;2988:7;3017:5;3006:16;;2943:85;;;:::o;3034:60::-;3062:3;3083:5;3076:12;;3034:60;;;:::o;3100:156::-;3157:9;3190:60;3207:42;3216:32;3242:5;3216:32;:::i;:::-;3207:42;:::i;:::-;3190:60;:::i;:::-;3177:73;;3100:156;;;:::o;3262:145::-;3356:44;3394:5;3356:44;:::i;:::-;3351:3;3344:57;3262:145;;:::o;3413:559::-;3593:4;3631:3;3620:9;3616:19;3608:27;;3645:69;3711:1;3700:9;3696:17;3687:6;3645:69;:::i;:::-;3724:72;3792:2;3781:9;3777:18;3768:6;3724:72;:::i;:::-;3806:70;3872:2;3861:9;3857:18;3848:6;3806:70;:::i;:::-;3886:79;3961:2;3950:9;3946:18;3937:6;3886:79;:::i;:::-;3413:559;;;;;;;:::o;3978:120::-;4050:23;4067:5;4050:23;:::i;:::-;4043:5;4040:34;4030:62;;4088:1;4085;4078:12;4030:62;3978:120;:::o;4104:141::-;4160:5;4191:6;4185:13;4176:22;;4207:32;4233:5;4207:32;:::i;:::-;4104:141;;;;:::o;4251:349::-;4320:6;4369:2;4357:9;4348:7;4344:23;4340:32;4337:119;;;4375:79;;:::i;:::-;4337:119;4495:1;4520:63;4575:7;4566:6;4555:9;4551:22;4520:63;:::i;:::-;4510:73;;4466:127;4251:349;;;;:::o;4606:149::-;4642:7;4682:66;4675:5;4671:78;4660:89;;4606:149;;;:::o;4761:78::-;4799:7;4828:5;4817:16;;4761:78;;;:::o;4845:153::-;4948:43;4967:23;4984:5;4967:23;:::i;:::-;4948:43;:::i;:::-;4943:3;4936:56;4845:153;;:::o;5004:147::-;5105:11;5142:3;5127:18;;5004:147;;;;:::o;5157:386::-;5261:3;5289:38;5321:5;5289:38;:::i;:::-;5343:88;5424:6;5419:3;5343:88;:::i;:::-;5336:95;;5440:65;5498:6;5493:3;5486:4;5479:5;5475:16;5440:65;:::i;:::-;5530:6;5525:3;5521:16;5514:23;;5265:278;5157:386;;;;:::o;5549:407::-;5705:3;5720:73;5789:3;5780:6;5720:73;:::i;:::-;5818:1;5813:3;5809:11;5802:18;;5837:93;5926:3;5917:6;5837:93;:::i;:::-;5830:100;;5947:3;5940:10;;5549:407;;;;;:::o;5962:77::-;5999:7;6028:5;6017:16;;5962:77;;;:::o;6045:180::-;6093:77;6090:1;6083:88;6190:4;6187:1;6180:15;6214:4;6211:1;6204:15;6231:410;6271:7;6294:20;6312:1;6294:20;:::i;:::-;6289:25;;6328:20;6346:1;6328:20;:::i;:::-;6323:25;;6383:1;6380;6376:9;6405:30;6423:11;6405:30;:::i;:::-;6394:41;;6584:1;6575:7;6571:15;6568:1;6565:22;6545:1;6538:9;6518:83;6495:139;;6614:18;;:::i;:::-;6495:139;6279:362;6231:410;;;;:::o;6647:193::-;6686:3;6705:19;6722:1;6705:19;:::i;:::-;6700:24;;6738:19;6755:1;6738:19;:::i;:::-;6733:24;;6780:1;6777;6773:9;6766:16;;6803:6;6798:3;6795:15;6792:41;;;6813:18;;:::i;:::-;6792:41;6647:193;;;;:::o;345:763:1:-;;;;;;;" }, "deployedBytecode": { @@ -5861,8 +5861,8 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633ebfa8db146100465780636d72ffb614610050578063cab0b0e61461006e575b600080fd5b61004e61008c565b005b61005861008e565b604051610065919061018a565b60405180910390f35b6100766100a0565b60405161008391906101c4565b60405180910390f35b565b60008054906101000a900461ffff1681565b600060029054906101000a900463ffffffff1681565b60607e010000000000000000000000000000000000000000000000000000000000006100e183610108565b6040516020016100f292919061029d565b6040516020818303038152906040529050919050565b6060600060016004845161011c91906102fe565b6101269190610340565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b8460405160200161015592919061029d565b60405160208183030381529060405292505050919050565b600061ffff82169050919050565b6101848161016d565b82525050565b600060208201905061019f600083018461017b565b92915050565b600063ffffffff82169050919050565b6101be816101a5565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b610226610221826101df565b61020b565b82525050565b600081519050919050565b600081905092915050565b60005b83811015610260578082015181840152602081019050610245565b60008484015250505050565b60006102778261022c565b6102818185610237565b9350610291818560208601610242565b80840191505092915050565b60006102a98285610215565b6002820191506102b9828461026c565b91508190509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610309826102c5565b9150610314836102c5565b9250828202610322816102c5565b91508282048414831517610339576103386102cf565b5b5092915050565b600061034b8261016d565b91506103568361016d565b9250828201905061ffff8111156103705761036f6102cf565b5b9291505056fea264697066735822122003e0d4c9741fec62a57dc600c0c119e8882da3279e0f52ef0cb18a9ce648058f64736f6c63430008110033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3EBFA8DB EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xCAB0B0E6 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x8E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x65 SWAP2 SWAP1 PUSH2 0x18A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x76 PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x1000000000000000000000000000000000000000000000000000000000000 PUSH2 0xE1 DUP4 PUSH2 0x108 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF2 SWAP3 SWAP2 SWAP1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x11C SWAP2 SWAP1 PUSH2 0x2FE JUMP JUMPDEST PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x340 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x155 SWAP3 SWAP2 SWAP1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x184 DUP2 PUSH2 0x16D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x17B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x1A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x226 PUSH2 0x221 DUP3 PUSH2 0x1DF JUMP JUMPDEST PUSH2 0x20B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x260 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x245 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x277 DUP3 PUSH2 0x22C JUMP JUMPDEST PUSH2 0x281 DUP2 DUP6 PUSH2 0x237 JUMP JUMPDEST SWAP4 POP PUSH2 0x291 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x242 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A9 DUP3 DUP6 PUSH2 0x215 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x2B9 DUP3 DUP5 PUSH2 0x26C JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x309 DUP3 PUSH2 0x2C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x314 DUP4 PUSH2 0x2C5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x322 DUP2 PUSH2 0x2C5 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x339 JUMPI PUSH2 0x338 PUSH2 0x2CF JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B DUP3 PUSH2 0x16D JUMP JUMPDEST SWAP2 POP PUSH2 0x356 DUP4 PUSH2 0x16D JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0x370 JUMPI PUSH2 0x36F PUSH2 0x2CF JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB 0xE0 0xD4 0xC9 PUSH21 0x1FEC62A57DC600C0C119E8882DA3279E0F52EF0CB1 DUP11 SWAP13 0xE6 BASEFEE SDIV DUP16 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633ebfa8db146100465780636d72ffb614610050578063cab0b0e61461006e575b600080fd5b61004e61008c565b005b61005861008e565b604051610065919061018a565b60405180910390f35b6100766100a0565b60405161008391906101c4565b60405180910390f35b565b60008054906101000a900461ffff1681565b600060029054906101000a900463ffffffff1681565b60607e010000000000000000000000000000000000000000000000000000000000006100e183610108565b6040516020016100f292919061029d565b6040516020818303038152906040529050919050565b6060600060016004845161011c91906102fe565b6101269190610340565b9050600060088261ffff16901b60088361ffff16901c1790508060f01b8460405160200161015592919061029d565b60405160208183030381529060405292505050919050565b600061ffff82169050919050565b6101848161016d565b82525050565b600060208201905061019f600083018461017b565b92915050565b600063ffffffff82169050919050565b6101be816101a5565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b610226610221826101df565b61020b565b82525050565b600081519050919050565b600081905092915050565b60005b83811015610260578082015181840152602081019050610245565b60008484015250505050565b60006102778261022c565b6102818185610237565b9350610291818560208601610242565b80840191505092915050565b60006102a98285610215565b6002820191506102b9828461026c565b91508190509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610309826102c5565b9150610314836102c5565b9250828202610322816102c5565b91508282048414831517610339576103386102cf565b5b5092915050565b600061034b8261016d565b91506103568361016d565b9250828201905061ffff8111156103705761036f6102cf565b5b9291505056fea2646970667358221220e72ce06219d7bd81fa8138875a4bcb165706c69e01d997caf674c5d9684219a764736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3EBFA8DB EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x6D72FFB6 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xCAB0B0E6 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x8E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x65 SWAP2 SWAP1 PUSH2 0x18A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x76 PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH31 0x1000000000000000000000000000000000000000000000000000000000000 PUSH2 0xE1 DUP4 PUSH2 0x108 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF2 SWAP3 SWAP2 SWAP1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x4 DUP5 MLOAD PUSH2 0x11C SWAP2 SWAP1 PUSH2 0x2FE JUMP JUMPDEST PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x340 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP3 PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0x8 DUP4 PUSH2 0xFFFF AND SWAP1 SHR OR SWAP1 POP DUP1 PUSH1 0xF0 SHL DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x155 SWAP3 SWAP2 SWAP1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x184 DUP2 PUSH2 0x16D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x17B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x1A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x226 PUSH2 0x221 DUP3 PUSH2 0x1DF JUMP JUMPDEST PUSH2 0x20B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x260 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x245 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x277 DUP3 PUSH2 0x22C JUMP JUMPDEST PUSH2 0x281 DUP2 DUP6 PUSH2 0x237 JUMP JUMPDEST SWAP4 POP PUSH2 0x291 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x242 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A9 DUP3 DUP6 PUSH2 0x215 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x2B9 DUP3 DUP5 PUSH2 0x26C JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x309 DUP3 PUSH2 0x2C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x314 DUP4 PUSH2 0x2C5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x322 DUP2 PUSH2 0x2C5 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x339 JUMPI PUSH2 0x338 PUSH2 0x2CF JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B DUP3 PUSH2 0x16D JUMP JUMPDEST SWAP2 POP PUSH2 0x356 DUP4 PUSH2 0x16D JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0x370 JUMPI PUSH2 0x36F PUSH2 0x2CF JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 0x2C 0xE0 PUSH3 0x19D7BD DUP2 STATICCALL DUP2 CODESIZE DUP8 GAS 0x4B 0xCB AND JUMPI MOD 0xC6 SWAP15 ADD 0xD9 SWAP8 0xCA 0xF6 PUSH21 0xC5D9684219A764736F6C6343000811003300000000 ", "sourceMap": "345:763:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;994:112;;;:::i;:::-;;437:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;510:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;994:112;:::o;437:25::-;;;;;;;;;;;;:::o;510:26::-;;;;;;;;;;;;;:::o;1908:301:0:-;2012:12;2089:18;2152:36;2179:7;2152:20;:36::i;:::-;2059:143;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2040:162;;1908:301;;;:::o;298:413::-;394:12;453:13;495:1;490;476:4;:11;:15;;;;:::i;:::-;469:27;;;;:::i;:::-;453:43;;542:21;594:1;584:6;:11;;;;578:1;568:6;:11;;;;567:29;542:55;;682:14;675:22;;699:4;662:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;655:49;;;;298:413;;;:::o;7:89:5:-;43:7;83:6;76:5;72:18;61:29;;7:89;;;:::o;102:115::-;187:23;204:5;187:23;:::i;:::-;182:3;175:36;102:115;;:::o;223:218::-;314:4;352:2;341:9;337:18;329:26;;365:69;431:1;420:9;416:17;407:6;365:69;:::i;:::-;223:218;;;;:::o;447:93::-;483:7;523:10;516:5;512:22;501:33;;447:93;;;:::o;546:115::-;631:23;648:5;631:23;:::i;:::-;626:3;619:36;546:115;;:::o;667:218::-;758:4;796:2;785:9;781:18;773:26;;809:69;875:1;864:9;860:17;851:6;809:69;:::i;:::-;667:218;;;;:::o;891:149::-;927:7;967:66;960:5;956:78;945:89;;891:149;;;:::o;1046:78::-;1084:7;1113:5;1102:16;;1046:78;;;:::o;1130:153::-;1233:43;1252:23;1269:5;1252:23;:::i;:::-;1233:43;:::i;:::-;1228:3;1221:56;1130:153;;:::o;1289:98::-;1340:6;1374:5;1368:12;1358:22;;1289:98;;;:::o;1393:147::-;1494:11;1531:3;1516:18;;1393:147;;;;:::o;1546:246::-;1627:1;1637:113;1651:6;1648:1;1645:13;1637:113;;;1736:1;1731:3;1727:11;1721:18;1717:1;1712:3;1708:11;1701:39;1673:2;1670:1;1666:10;1661:15;;1637:113;;;1784:1;1775:6;1770:3;1766:16;1759:27;1608:184;1546:246;;;:::o;1798:386::-;1902:3;1930:38;1962:5;1930:38;:::i;:::-;1984:88;2065:6;2060:3;1984:88;:::i;:::-;1977:95;;2081:65;2139:6;2134:3;2127:4;2120:5;2116:16;2081:65;:::i;:::-;2171:6;2166:3;2162:16;2155:23;;1906:278;1798:386;;;;:::o;2190:407::-;2346:3;2361:73;2430:3;2421:6;2361:73;:::i;:::-;2459:1;2454:3;2450:11;2443:18;;2478:93;2567:3;2558:6;2478:93;:::i;:::-;2471:100;;2588:3;2581:10;;2190:407;;;;;:::o;2603:77::-;2640:7;2669:5;2658:16;;2603:77;;;:::o;2686:180::-;2734:77;2731:1;2724:88;2831:4;2828:1;2821:15;2855:4;2852:1;2845:15;2872:410;2912:7;2935:20;2953:1;2935:20;:::i;:::-;2930:25;;2969:20;2987:1;2969:20;:::i;:::-;2964:25;;3024:1;3021;3017:9;3046:30;3064:11;3046:30;:::i;:::-;3035:41;;3225:1;3216:7;3212:15;3209:1;3206:22;3186:1;3179:9;3159:83;3136:139;;3255:18;;:::i;:::-;3136:139;2920:362;2872:410;;;;:::o;3288:193::-;3327:3;3346:19;3363:1;3346:19;:::i;:::-;3341:24;;3379:19;3396:1;3379:19;:::i;:::-;3374:24;;3421:1;3418;3414:9;3407:16;;3444:6;3439:3;3436:15;3433:41;;;3454:18;;:::i;:::-;3433:41;3288:193;;;;:::o" }, "gasEstimates": { @@ -9512,7 +9512,7 @@ ], ".data": { "0": { - ".auxdata": "a264697066735822122003e0d4c9741fec62a57dc600c0c119e8882da3279e0f52ef0cb18a9ce648058f64736f6c63430008110033", + ".auxdata": "a2646970667358221220e72ce06219d7bd81fa8138875a4bcb165706c69e01d997caf674c5d9684219a764736f6c63430008110033", ".code": [ { "begin": 345, @@ -11670,7 +11670,7 @@ } }, "ewasm": { "wasm": "" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"referendumId\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootTrackId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_1_check_referendum\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"construct the smart contract with the track id to send the proposal to\"},\"referendumId()\":{\"notice\":\"The id of the referendum\"},\"rootTrackId()\":{\"notice\":\"The id of the track used for root execution\"}},\"notice\":\"Smart contract to verify some of the precompile methods\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"ReferendaChecker\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"SubstrateTools.sol\":{\"keccak256\":\"0xb79c6a9b3a694dfa362268f87e5598b95c048c5e8f1a053a5c5e9dd81e6345a1\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://ecbf04ed9eaca008ec155d5041ce28cab434f8f15368a4db7a5d3ad653f12e1b\",\"dweb:/ipfs/QmPuCTURp9BwkyR6otvbs2mQhiToSheANZiTpw7AvXAdnR\"]},\"main.sol\":{\"keccak256\":\"0x5333a875ebb5830a77737cea105471756ea295104c1802b33e2602f9e1193ec7\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://3e49ea48fb0a226a597557d74111b71393947138129c6a5771315e908c4fedf8\",\"dweb:/ipfs/QmSD9ojAbtz92Xuwe1YGhFXgr48XXgWCKcQKPeZB76218F\"]},\"precompiles/conviction-voting/ConvictionVoting.sol\":{\"keccak256\":\"0x2ee018e2de05f175dc13f1eada66c145ee9b86c79eabcea8475681d840e2374d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://9f57de4887b65be5bb52e848513bd3471c4275ff6df34d2a647dc421054122b3\",\"dweb:/ipfs/QmYt2F5e6VHUc5MdhsaSsTcZbctSNeUH9ncgCihSx37uc3\"]},\"precompiles/preimage/Preimage.sol\":{\"keccak256\":\"0x8b0a12d239d2226ae5d5d79761b0e66c3aa9bdbe2fb41d512478bbd8b5d516ec\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://8405c679cdc5ecc4725e1869c620910ed303dfdab74a617af60e6b4c6df6ca3e\",\"dweb:/ipfs/QmPsXz13YLPKX2FjaLTZTW1cEBeVL1cKt4GoJewtiHjv2P\"]},\"precompiles/referenda/Referenda.sol\":{\"keccak256\":\"0x6d7b2c4c6e5f54ca4bbd935e37581c587b058b34145f6380a35c405bd9f981f4\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://27b062d76058c253b7534f6a3782599dd80cb533474290f557435d4a31e8de81\",\"dweb:/ipfs/QmRV57137PdX3JKE6Hi5BS7n3o624xT8GbjG3dVwod1Q5P\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"referendumId\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootTrackId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_1_check_referendum\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"construct the smart contract with the track id to send the proposal to\"},\"referendumId()\":{\"notice\":\"The id of the referendum\"},\"rootTrackId()\":{\"notice\":\"The id of the track used for root execution\"}},\"notice\":\"Smart contract to verify some of the precompile methods\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"main.sol\":\"ReferendaChecker\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"SubstrateTools.sol\":{\"keccak256\":\"0xb79c6a9b3a694dfa362268f87e5598b95c048c5e8f1a053a5c5e9dd81e6345a1\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://ecbf04ed9eaca008ec155d5041ce28cab434f8f15368a4db7a5d3ad653f12e1b\",\"dweb:/ipfs/QmPuCTURp9BwkyR6otvbs2mQhiToSheANZiTpw7AvXAdnR\"]},\"main.sol\":{\"keccak256\":\"0x5333a875ebb5830a77737cea105471756ea295104c1802b33e2602f9e1193ec7\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://3e49ea48fb0a226a597557d74111b71393947138129c6a5771315e908c4fedf8\",\"dweb:/ipfs/QmSD9ojAbtz92Xuwe1YGhFXgr48XXgWCKcQKPeZB76218F\"]},\"precompiles/conviction-voting/ConvictionVoting.sol\":{\"keccak256\":\"0x2ee018e2de05f175dc13f1eada66c145ee9b86c79eabcea8475681d840e2374d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://9f57de4887b65be5bb52e848513bd3471c4275ff6df34d2a647dc421054122b3\",\"dweb:/ipfs/QmYt2F5e6VHUc5MdhsaSsTcZbctSNeUH9ncgCihSx37uc3\"]},\"precompiles/preimage/Preimage.sol\":{\"keccak256\":\"0x8b0a12d239d2226ae5d5d79761b0e66c3aa9bdbe2fb41d512478bbd8b5d516ec\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://8405c679cdc5ecc4725e1869c620910ed303dfdab74a617af60e6b4c6df6ca3e\",\"dweb:/ipfs/QmPsXz13YLPKX2FjaLTZTW1cEBeVL1cKt4GoJewtiHjv2P\"]},\"precompiles/referenda/Referenda.sol\":{\"keccak256\":\"0x1775aed3f3772a4e943ee08c12f42ff5ce2bf528466f33efc36a6447cfbfb594\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://22c54fd60c34e50acf3554a32b11b7e5207f2ad2c16b37cd3c4e607d5ce7827a\",\"dweb:/ipfs/QmSmFZPJ7MH6PjfYKMoLbY2QzhhREvuQyNTztQQ683utC9\"]}},\"version\":1}", "storageLayout": { "storage": [ {