019bb490-f308-7066-838c-35487503581e
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 40004 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 40005 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 40006 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 40007 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 40008 | capability.graph | complete | 1 / 3 | 3 months ago |
| 40009 | detector.run | complete | 1 / 3 | 3 months ago |
| 40010 | validation.fork | complete | 1 / 3 | 3 months ago |
| 40174 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 40175 | tool.slither | complete | 1 / 2 | 3 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-tuz645fb) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-tuz645fb) ExchangeProxy.batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#140-176) sends eth to arbitrary user Dangerous calls: - (xfer,None) = msg.sender.call.value(wethBalance)() (contracts/Contract.sol#173-174) ExchangeProxy.batchEthInSwapExactOut(ExchangeProxy.Swap[],address) (contracts/Contract.sol#215-249) sends eth to arbitrary user Dangerous calls: - (xfer,None) = msg.sender.call.value(wethBalance)() (contracts/Contract.sol#246-248) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#functions-that-send-ether-to-arbitrary-destinations ExchangeProxy.batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#140-176) use msg.value in a loop: weth.allowance(address(this),swap.pool) < msg.value (contracts/Contract.sol#157-158) ExchangeProxy.batchEthInSwapExactOut(ExchangeProxy.Swap[],address) (contracts/Contract.sol#215-249) use msg.value in a loop: weth.allowance(address(this),swap.pool) < msg.value (contracts/Contract.sol#230-231) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#msgvalue-inside-a-loop ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],address,address,uint256,uint256) (contracts/Contract.sol#69-106) ignores return value by TI.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#91-92) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],address,address,uint256,uint256) (contracts/Contract.sol#69-106) ignores return value by (tokenAmountOut,None) = pool.swapExactAmountIn(tokenIn,swap.tokenInParam,tokenOut,swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#92-99) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],address,address,uint256) (contracts/Contract.sol#106-140) ignores return value by TI.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#126) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],address,address,uint256) (contracts/Contract.sol#106-140) ignores return value by (tokenAmountIn,None) = pool.swapExactAmountOut(tokenIn,swap.tokenInParam,tokenOut,swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#127-134) ExchangeProxy.batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#140-176) ignores return value by weth.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#158-159) ExchangeProxy.batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#140-176) ignores return value by (tokenAmountOut,None) = pool.swapExactAmountIn(address(weth),swap.tokenInParam,tokenOut,swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#159-166) ExchangeProxy.batchEthOutSwapExactIn(ExchangeProxy.Swap[],address,uint256,uint256) (contracts/Contract.sol#176-215) ignores return value by TI.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#196-197) ExchangeProxy.batchEthOutSwapExactIn(ExchangeProxy.Swap[],address,uint256,uint256) (contracts/Contract.sol#176-215) ignores return value by (tokenAmountOut,None) = pool.swapExactAmountIn(tokenIn,swap.tokenInParam,address(weth),swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#198-205) ExchangeProxy.batchEthInSwapExactOut(ExchangeProxy.Swap[],address) (contracts/Contract.sol#215-249) ignores return value by weth.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#232) ExchangeProxy.batchEthInSwapExactOut(ExchangeProxy.Swap[],address) (contracts/Contract.sol#215-249) ignores return value by (tokenAmountIn,None) = pool.swapExactAmountOut(address(weth),swap.tokenInParam,tokenOut,swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#233-240) ExchangeProxy.batchEthOutSwapExactOut(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#249-287) ignores return value by TI.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#269-270) ExchangeProxy.batchEthOutSwapExactOut(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#249-287) ignores return value by (tokenAmountIn,None) = pool.swapExactAmountOut(tokenIn,swap.tokenInParam,address(weth),swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#270-277) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],address,address,uint256,uint256) (contracts/Contract.sol#69-106) has external calls inside a loop: TI.allowance(address(this),swap.pool) < totalAmountIn (contracts/Contract.sol#89-91) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],address,address,uint256,uint256) (contracts/Contract.sol#69-106) has external calls inside a loop: TI.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#91-92) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],address,address,uint256,uint256) (contracts/Contract.sol#69-106) has external calls inside a loop: (tokenAmountOut,None) = pool.swapExactAmountIn(tokenIn,swap.tokenInParam,tokenOut,swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#92-99) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],address,address,uint256) (contracts/Contract.sol#106-140) has external calls inside a loop: TI.allowance(address(this),swap.pool) < maxTotalAmountIn (contracts/Contract.sol#124-126) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],address,address,uint256) (contracts/Contract.sol#106-140) has external calls inside a loop: TI.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#126) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],address,address,uint256) (contracts/Contract.sol#106-140) has external calls inside a loop: (tokenAmountIn,None) = pool.swapExactAmountOut(tokenIn,swap.tokenInParam,tokenOut,swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#127-134) ExchangeProxy.batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#140-176) has external calls inside a loop: weth.allowance(address(this),swap.pool) < msg.value (contracts/Contract.sol#157-158) ExchangeProxy.batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#140-176) has external calls inside a loop: weth.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#158-159) ExchangeProxy.batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#140-176) has external calls inside a loop: (tokenAmountOut,None) = pool.swapExactAmountIn(address(weth),swap.tokenInParam,tokenOut,swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#159-166) ExchangeProxy.batchEthOutSwapExactIn(ExchangeProxy.Swap[],address,uint256,uint256) (contracts/Contract.sol#176-215) has external calls inside a loop: TI.allowance(address(this),swap.pool) < totalAmountIn (contracts/Contract.sol#195-196) ExchangeProxy.batchEthOutSwapExactIn(ExchangeProxy.Swap[],address,uint256,uint256) (contracts/Contract.sol#176-215) has external calls inside a loop: TI.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#196-197) ExchangeProxy.batchEthOutSwapExactIn(ExchangeProxy.Swap[],address,uint256,uint256) (contracts/Contract.sol#176-215) has external calls inside a loop: (tokenAmountOut,None) = pool.swapExactAmountIn(tokenIn,swap.tokenInParam,address(weth),swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#198-205) ExchangeProxy.batchEthInSwapExactOut(ExchangeProxy.Swap[],address) (contracts/Contract.sol#215-249) has external calls inside a loop: weth.allowance(address(this),swap.pool) < msg.value (contracts/Contract.sol#230-231) ExchangeProxy.batchEthInSwapExactOut(ExchangeProxy.Swap[],address) (contracts/Contract.sol#215-249) has external calls inside a loop: weth.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#232) ExchangeProxy.batchEthInSwapExactOut(ExchangeProxy.Swap[],address) (contracts/Contract.sol#215-249) has external calls inside a loop: (tokenAmountIn,None) = pool.swapExactAmountOut(address(weth),swap.tokenInParam,tokenOut,swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#233-240) ExchangeProxy.batchEthOutSwapExactOut(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#249-287) has external calls inside a loop: TI.allowance(address(this),swap.pool) < maxTotalAmountIn (contracts/Contract.sol#269) ExchangeProxy.batchEthOutSwapExactOut(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#249-287) has external calls inside a loop: TI.approve(swap.pool,uint256(- 1)) (contracts/Contract.sol#269-270) ExchangeProxy.batchEthOutSwapExactOut(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#249-287) has external calls inside a loop: (tokenAmountIn,None) = pool.swapExactAmountOut(tokenIn,swap.tokenInParam,address(weth),swap.tokenOutParam,swap.maxPrice) (contracts/Contract.sol#270-277) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop Version constraint 0.5.12 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - AbiReencodingHeadOverflowWithStaticArrayCleanup - DirtyBytesArrayToStorage - NestedCalldataArrayAbiReencodingSizeValidation - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup - ImplicitConstructorCallvalueCheck - TupleAssignmentMultiStackSlotComponents - MemoryArrayCreationOverflow - privateCanBeOverridden - YulOptimizerRedundantAssignmentBreakContinue0.5. It is used by: - 0.5.12 (contracts/Contract.sol#12-14) solc-0.5.12 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible. Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity Low level call in ExchangeProxy.batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#140-176): - (xfer,None) = msg.sender.call.value(wethBalance)() (contracts/Contract.sol#173-174) Low level call in ExchangeProxy.batchEthOutSwapExactIn(ExchangeProxy.Swap[],address,uint256,uint256) (contracts/Contract.sol#176-215): - (xfer,None) = msg.sender.call.value(wethBalance)() (contracts/Contract.sol#210-212) Low level call in ExchangeProxy.batchEthInSwapExactOut(ExchangeProxy.Swap[],address) (contracts/Contract.sol#215-249): - (xfer,None) = msg.sender.call.value(wethBalance)() (contracts/Contract.sol#246-248) Low level call in ExchangeProxy.batchEthOutSwapExactOut(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#249-287): - (xfer,None) = msg.sender.call.value(wethBalance)() (contracts/Contract.sol#284-286) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls Event ExchangeProxy.LOG_CALL(bytes4,address,bytes) (contracts/Contract.sol#38-45) is not in CapWords Modifier ExchangeProxy._logs_() (contracts/Contract.sol#45-49) is not in mixedCase Modifier ExchangeProxy._lock_() (contracts/Contract.sol#49-55) is not in mixedCase Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions batchSwapExactIn(ExchangeProxy.Swap[],address,address,uint256,uint256) should be declared external: - ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],address,address,uint256,uint256) (contracts/Contract.sol#69-106) Moreover, the following function parameters should change its data location: swaps location should be calldata batchSwapExactOut(ExchangeProxy.Swap[],address,address,uint256) should be declared external: - ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],address,address,uint256) (contracts/Contract.sol#106-140) Moreover, the following function parameters should change its data location: swaps location should be calldata batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) should be declared external: - ExchangeProxy.batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#140-176) Moreover, the following function parameters should change its data location: swaps location should be calldata batchEthOutSwapExactIn(ExchangeProxy.Swap[],address,uint256,uint256) should be declared external: - ExchangeProxy.batchEthOutSwapExactIn(ExchangeProxy.Swap[],address,uint256,uint256) (contracts/Contract.sol#176-215) Moreover, the following function parameters should change its data location: swaps location should be calldata batchEthInSwapExactOut(ExchangeProxy.Swap[],address) should be declared external: - ExchangeProxy.batchEthInSwapExactOut(ExchangeProxy.Swap[],address) (contracts/Contract.sol#215-249) Moreover, the following function parameters should change its data location: swaps location should be calldata batchEthOutSwapExactOut(ExchangeProxy.Swap[],address,uint256) should be declared external: - ExchangeProxy.batchEthOutSwapExactOut(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#249-287) Moreover, the following function parameters should change its data location: swaps location should be calldata Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-external . analyzed (3 contracts with 100 detectors), 49 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.5.12",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.5.12",
"install_stderr": null,
"install_stdout": "Installing solc '0.5.12'...\nVersion '0.5.12' installed."
},
"solc_args": "--base-path /tmp/slither-tuz645fb --allow-paths /tmp/slither-tuz645fb,/tmp/slither-tuz645fb/lib,/tmp/slither-tuz645fb/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 49,
"workspace_hash": "c829f028f683e69ce6f9a7608effe2eb856429c21aa0582aa9a2eedd02c9bf8f",
"duration_seconds": 1.0821256637573242,
"solc_version_requested": "0.5.12"
}
{"no_findings":true,"summary":"Reviewed `contracts/Contract.sol`; no exploitable vulnerabilities found in scope. Core swap functions use a mutex guard and basic bounds checks.","findings":[]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-eufdyr_k
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb491-dfe0-7e52-85e8-90ffa8589174
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Reading AUDIT_BUNDLE file**
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-eufdyr_k succeeded in 9ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/Contract.sol
================================================================================
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
pragma solidity 0.5.12;
thinking
**Analyzing reentrancy and token handling risks**
I've examined reentrancy protections via the mutex lock and external calls; they seem solid except for the fallback payable function which has no lock but no state changes either. A more notable concern is the unlimited token approvals to arbitrary pools, which could let malicious pools drain any leftover tokens held by the contract, especially tokens accidentally sent or forgotten. While this is generally low risk due to statelessness and user choice of pools, it remains a medium-low risk since the contract never revokes approvals. Also, transferring full token balances back to users without strict accounting poses risk if tokens are stuck or fee-on-transfer tokens are used. Finally, trusting external pools to report accurate swap amounts allows a malicious pool to misreport values, potentially causing overcharging scenarios, though this risk mostly falls on users selecting those pools. Overall, no critical vulnerabilities but some design trade-offs and minor risks around token approvals, leftover balances, and reliance on third-party pools.
thinking
**Confirming lack of exploitable issues**
I've reviewed conditions carefully and concluded that the mutex effectively prevents reentrancy in all critical functions except the fallback, which has no state changes. Approvals and token transfers have minor design risks but no clear exploits. Unlimited allowances to pools pose a low risk only if tokens are accidentally left in the contract. Overall, no exploitable vulnerabilities appear, and core functions have appropriate guards and checks.
codex
{"no_findings":true,"summary":"Reviewed `contracts/Contract.sol`; no exploitable vulnerabilities found in scope. Core swap functions use a mutex guard and basic bounds checks.","findings":[]}
tokens used
12,067
{
"codex": {
"ran_at": "2026-01-12T23:38:37.829729+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Reviewed `contracts/Contract.sol`; no exploitable vulnerabilities found in scope. Core swap functions use a mutex guard and basic bounds checks.",
"raw_final": {
"summary": "Reviewed `contracts/Contract.sol`; no exploitable vulnerabilities found in scope. Core swap functions use a mutex guard and basic bounds checks.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0065 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x6b9b8f8f 00000019: GT 0000001a: PUSH2 0x0043 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x6b9b8f8f 00000024: EQ 00000025: PUSH2 0x00d0 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x6d24fb96 0000002f: EQ 00000030: PUSH2 0x00e3 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xf4378240 0000003a: EQ 0000003b: PUSH2 0x0103 0000003e: JUMPI 0000003f: PUSH2 0x0065 00000042: JUMP 00000043: JUMPDEST 00000044: DUP1 00000045: PUSH4 0x2999cdc7 0000004a: EQ 0000004b: PUSH2 0x0067 0000004e: JUMPI 0000004f: DUP1 00000050: PUSH4 0x3ca9184e 00000055: EQ 00000056: PUSH2 0x009d 00000059: JUMPI 0000005a: DUP1 0000005b: PUSH4 0x4e7ffa04 00000060: EQ 00000061: PUSH2 0x00bd 00000064: JUMPI 00000065: JUMPDEST 00000066: STOP 00000067: JUMPDEST 00000068: CALLVALUE 00000069: DUP1 0000006a: ISZERO 0000006b: PUSH2 0x0073 0000006e: JUMPI 0000006f: PUSH1 0x00 00000071: DUP1 00000072: REVERT 00000073: JUMPDEST 00000074: POP 00000075: PUSH2 0x0087 00000078: PUSH2 0x0082 0000007b: CALLDATASIZE 0000007c: PUSH1 0x04 0000007e: PUSH2 0x2831 00000081: JUMP 00000082: JUMPDEST 00000083: PUSH2 0x0123 00000086: JUMP 00000087: JUMPDEST 00000088: PUSH1 0x40 0000008a: MLOAD 0000008b: PUSH2 0x0094 0000008e: SWAP2 0000008f: SWAP1 00000090: PUSH2 0x2c5e 00000093: JUMP 00000094: JUMPDEST 00000095: PUSH1 0x40 00000097: MLOAD 00000098: DUP1 00000099: SWAP2 0000009a: SUB 0000009b: SWAP1 0000009c: RETURN 0000009d: JUMPDEST 0000009e: CALLVALUE 0000009f: DUP1 000000a0: ISZERO 000000a1: PUSH2 0x00a9 000000a4: JUMPI 000000a5: PUSH1 0x00 000000a7: DUP1 000000a8: REVERT 000000a9: JUMPDEST 000000aa: POP 000000ab: PUSH2 0x0087 000000ae: PUSH2 0x00b8 000000b1: CALLDATASIZE 000000b2: PUSH1 0x04 000000b4: PUSH2 0x2895 000000b7: JUMP 000000b8: JUMPDEST 000000b9: PUSH2 0x078b 000000bc: JUMP 000000bd: JUMPDEST 000000be: PUSH2 0x0087 000000c1: PUSH2 0x00cb 000000c4: CALLDATASIZE 000000c5: PUSH1 0x04 000000c7: PUSH2 0x2831 000000ca: JUMP 000000cb: JUMPDEST 000000cc: PUSH2 0x0deb 000000cf: JUMP 000000d0: JUMPDEST 000000d1: PUSH2 0x0087 000000d4: PUSH2 0x00de 000000d7: CALLDATASIZE 000000d8: PUSH1 0x04 000000da: PUSH2 0x26dc 000000dd: JUMP 000000de: JUMPDEST 000000df: PUSH2 0x1383 000000e2: JUMP 000000e3: JUMPDEST 000000e4: CALLVALUE 000000e5: DUP1 000000e6: ISZERO 000000e7: PUSH2 0x00ef 000000ea: JUMPI 000000eb: PUSH1 0x00 000000ed: DUP1 000000ee: REVERT 000000ef: JUMPDEST 000000f0: POP 000000f1: PUSH2 0x0087 000000f4: PUSH2 0x00fe 000000f7: CALLDATASIZE 000000f8: PUSH1 0x04 000000fa: PUSH2 0x272d 000000fd: JUMP 000000fe: JUMPDEST 000000ff: PUSH2 0x19aa 00000102: JUMP 00000103: JUMPDEST 00000104: CALLVALUE 00000105: DUP1 00000106: ISZERO 00000107: PUSH2 0x010f 0000010a: JUMPI 0000010b: PUSH1 0x00 0000010d: DUP1 0000010e: REVERT 0000010f: JUMPDEST 00000110: POP 00000111: PUSH2 0x0087 00000114: PUSH2 0x011e 00000117: CALLDATASIZE 00000118: PUSH1 0x04 0000011a: PUSH2 0x27a5 0000011d: JUMP 0000011e: JUMPDEST 0000011f: PUSH2 0x1f85 00000122: JUMP 00000123: JUMPDEST 00000124: PUSH1 0x40 00000126: MLOAD 00000127: PUSH1 0x00 00000129: SWAP1 0000012a: CALLER 0000012b: SWAP1 0000012c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000014d: DUP4 0000014e: CALLDATALOAD 0000014f: AND 00000150: SWAP1 00000151: PUSH2 0x015d 00000154: SWAP1 00000155: DUP5 00000156: SWAP1 00000157: CALLDATASIZE 00000158: SWAP1 00000159: PUSH2 0x2bec 0000015c: JUMP 0000015d: JUMPDEST 0000015e: PUSH1 0x40 00000160: MLOAD 00000161: DUP1 00000162: SWAP2 00000163: SUB 00000164: SWAP1 00000165: LOG2 00000166: PUSH1 0x00 00000168: SLOAD 00000169: PUSH1 0xff 0000016b: AND 0000016c: ISZERO 0000016d: PUSH2 0x0191 00000170: JUMPI 00000171: PUSH1 0x40 00000173: MLOAD 00000174: PUSH3 0x461bcd 00000178: PUSH1 0xe5 0000017a: SHL 0000017b: DUP2 0000017c: MSTORE 0000017d: PUSH1 0x04 0000017f: ADD 00000180: PUSH2 0x0188 00000183: SWAP1 00000184: PUSH2 0x2c1e 00000187: JUMP 00000188: JUMPDEST 00000189: PUSH1 0x40 0000018b: MLOAD 0000018c: DUP1 0000018d: SWAP2 0000018e: SUB 0000018f: SWAP1 00000190: REVERT 00000191: JUMPDEST 00000192: PUSH1 0x00 00000194: DUP1 00000195: SLOAD 00000196: PUSH1 0xff 00000198: NOT 00000199: AND 0000019a: PUSH1 0x01 0000019c: OR 0000019d: SWAP1 0000019e: SSTORE 0000019f: PUSH1 0x40 000001a1: MLOAD 000001a2: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 000001c3: DUP2 000001c4: MSTORE 000001c5: DUP4 000001c6: SWAP1 000001c7: PUSH1 0x01 000001c9: PUSH1 0x01 000001cb: PUSH1 0xa0 000001cd: SHL 000001ce: SUB 000001cf: DUP3 000001d0: AND 000001d1: SWAP1 000001d2: PUSH4 0x23b872dd 000001d7: SWAP1 000001d8: PUSH2 0x01e9 000001db: SWAP1 000001dc: CALLER 000001dd: SWAP1 000001de: ADDRESS 000001df: SWAP1 000001e0: DUP9 000001e1: SWAP1 000001e2: PUSH1 0x04 000001e4: ADD 000001e5: PUSH2 0x2b4f 000001e8: JUMP 000001e9: JUMPDEST 000001ea: PUSH1 0x20 000001ec: PUSH1 0x40 000001ee: MLOAD 000001ef: DUP1 000001f0: DUP4 000001f1: SUB 000001f2: DUP2 000001f3: PUSH1 0x00 000001f5: DUP8 000001f6: DUP1 000001f7: EXTCODESIZE 000001f8: ISZERO 000001f9: DUP1 000001fa: ISZERO 000001fb: PUSH2 0x0203 000001fe: JUMPI 000001ff: PUSH1 0x00 00000201: DUP1 00000202: REVERT 00000203: JUMPDEST 00000204: POP 00000205: GAS 00000206: CALL 00000207: ISZERO 00000208: DUP1 00000209: ISZERO 0000020a: PUSH2 0x0217 0000020d: JUMPI 0000020e: RETURNDATASIZE 0000020f: PUSH1 0x00 00000211: DUP1 00000212: RETURNDATACOPY 00000213: RETURNDATASIZE 00000214: PUSH1 0x00 00000216: REVERT 00000217: JUMPDEST 00000218: POP 00000219: POP 0000021a: POP 0000021b: POP 0000021c: PUSH1 0x40 0000021e: MLOAD 0000021f: RETURNDATASIZE 00000220: PUSH1 0x1f 00000222: NOT 00000223: PUSH1 0x1f 00000225: DUP3 00000226: ADD 00000227: AND 00000228: DUP3 00000229: ADD 0000022a: DUP1 0000022b: PUSH1 0x40 0000022d: MSTORE 0000022e: POP 0000022f: PUSH2 0x023b 00000232: SWAP2 00000233: SWAP1 00000234: DUP2 00000235: ADD 00000236: SWAP1 00000237: PUSH2 0x28f0 0000023a: JUMP 0000023b: JUMPDEST 0000023c: PUSH2 0x0257 0000023f: JUMPI 00000240: PUSH1 0x40 00000242: MLOAD 00000243: PUSH3 0x461bcd 00000247: PUSH1 0xe5 00000249: SHL 0000024a: DUP2 0000024b: MSTORE 0000024c: PUSH1 0x04 0000024e: ADD 0000024f: PUSH2 0x0188 00000252: SWAP1 00000253: PUSH2 0x2c3e 00000256: JUMP 00000257: JUMPDEST 00000258: PUSH1 0x00 0000025a: JUMPDEST 0000025b: DUP6 0000025c: MLOAD 0000025d: DUP2 0000025e: LT 0000025f: ISZERO 00000260: PUSH2 0x048d 00000263: JUMPI 00000264: PUSH2 0x026b 00000267: PUSH2 0x258f 0000026a: JUMP 0000026b: JUMPDEST 0000026c: DUP7 0000026d: DUP3 0000026e: DUP2 0000026f: MLOAD 00000270: DUP2 00000271: LT 00000272: PUSH2 0x0277 00000275: JUMPI 00000276: INVALID 00000277: JUMPDEST 00000278: PUSH1 0x20 0000027a: SWAP1 0000027b: DUP2 0000027c: MUL 0000027d: SWAP2 0000027e: SWAP1 0000027f: SWAP2 00000280: ADD 00000281: ADD 00000282: MLOAD 00000283: DUP1 00000284: MLOAD 00000285: PUSH1 0x40 00000287: MLOAD 00000288: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 000002a9: DUP2 000002aa: MSTORE 000002ab: SWAP2 000002ac: SWAP3 000002ad: POP 000002ae: SWAP1 000002af: DUP7 000002b0: SWAP1 000002b1: PUSH1 0x01 000002b3: PUSH1 0x01 000002b5: PUSH1 0xa0 000002b7: SHL 000002b8: SUB 000002b9: DUP7 000002ba: AND 000002bb: SWAP1 000002bc: PUSH4 0xdd62ed3e 000002c1: SWAP1 000002c2: PUSH2 0x02d1 000002c5: SWAP1 000002c6: ADDRESS 000002c7: SWAP1 000002c8: DUP7 000002c9: SWAP1 000002ca: PUSH1 0x04 000002cc: ADD 000002cd: PUSH2 0x2b2d 000002d0: JUMP 000002d1: JUMPDEST 000002d2: PUSH1 0x20 000002d4: PUSH1 0x40 000002d6: MLOAD 000002d7: DUP1 000002d8: DUP4 000002d9: SUB 000002da: DUP2 000002db: PUSH1 0x00 000002dd: DUP8 000002de: DUP1 000002df: EXTCODESIZE 000002e0: ISZERO 000002e1: DUP1 000002e2: ISZERO 000002e3: PUSH2 0x02eb 000002e6: JUMPI 000002e7: PUSH1 0x00 000002e9: DUP1 000002ea: REVERT 000002eb: JUMPDEST 000002ec: POP 000002ed: GAS 000002ee: CALL 000002ef: ISZERO 000002f0: DUP1 000002f1: ISZERO 000002f2: PUSH2 0x02ff 000002f5: JUMPI 000002f6: RETURNDATASIZE 000002f7: PUSH1 0x00 000002f9: DUP1 000002fa: RETURNDATACOPY 000002fb: RETURNDATASIZE 000002fc: PUSH1 0x00 000002fe: REVERT 000002ff: JUMPDEST 00000300: POP 00000301: POP 00000302: POP 00000303: POP 00000304: PUSH1 0x40 00000306: MLOAD 00000307: RETURNDATASIZE 00000308: PUSH1 0x1f 0000030a: NOT 0000030b: PUSH1 0x1f 0000030d: DUP3 0000030e: ADD 0000030f: AND 00000310: DUP3 00000311: ADD 00000312: DUP1 00000313: PUSH1 0x40 00000315: MSTORE 00000316: POP 00000317: PUSH2 0x0323 0000031a: SWAP2 0000031b: SWAP1 0000031c: DUP2 0000031d: ADD 0000031e: SWAP1 0000031f: PUSH2 0x2916 00000322: JUMP 00000323: JUMPDEST 00000324: LT 00000325: ISZERO 00000326: PUSH2 0x03c7 00000329: JUMPI 0000032a: DUP2 0000032b: MLOAD 0000032c: PUSH1 0x40 0000032e: MLOAD 0000032f: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 00000350: DUP2 00000351: MSTORE 00000352: PUSH1 0x01 00000354: PUSH1 0x01 00000356: PUSH1 0xa0 00000358: SHL 00000359: SUB 0000035a: DUP7 0000035b: AND 0000035c: SWAP2 0000035d: PUSH4 0x095ea7b3 00000362: SWAP2 00000363: PUSH2 0x0373 00000366: SWAP2 00000367: SWAP1 00000368: PUSH1 0x00 0000036a: NOT 0000036b: SWAP1 0000036c: PUSH1 0x04 0000036e: ADD 0000036f: PUSH2 0x2b92 00000372: JUMP 00000373: JUMPDEST 00000374: PUSH1 0x20 00000376: PUSH1 0x40 00000378: MLOAD 00000379: DUP1 0000037a: DUP4 0000037b: SUB 0000037c: DUP2 0000037d: PUSH1 0x00 0000037f: DUP8 00000380: DUP1 00000381: EXTCODESIZE 00000382: ISZERO 00000383: DUP1 00000384: ISZERO 00000385: PUSH2 0x038d 00000388: JUMPI 00000389: PUSH1 0x00 0000038b: DUP1 0000038c: REVERT 0000038d: JUMPDEST 0000038e: POP 0000038f: GAS 00000390: CALL 00000391: ISZERO 00000392: DUP1 00000393: ISZERO 00000394: PUSH2 0x03a1 00000397: JUMPI 00000398: RETURNDATASIZE 00000399: PUSH1 0x00 0000039b: DUP1 0000039c: RETURNDATACOPY 0000039d: RETURNDATASIZE 0000039e: PUSH1 0x00 000003a0: REVERT 000003a1: JUMPDEST 000003a2: POP 000003a3: POP 000003a4: POP 000003a5: POP 000003a6: PUSH1 0x40 000003a8: MLOAD 000003a9: RETURNDATASIZE 000003aa: PUSH1 0x1f 000003ac: NOT 000003ad: PUSH1 0x1f 000003af: DUP3 000003b0: ADD 000003b1: AND 000003b2: DUP3 000003b3: ADD 000003b4: DUP1 000003b5: PUSH1 0x40 000003b7: MSTORE 000003b8: POP 000003b9: PUSH2 0x03c5 000003bc: SWAP2 000003bd: SWAP1 000003be: DUP2 000003bf: ADD 000003c0: SWAP1 000003c1: PUSH2 0x28f0 000003c4: JUMP 000003c5: JUMPDEST 000003c6: POP 000003c7: JUMPDEST 000003c8: PUSH1 0x00 000003ca: DUP2 000003cb: PUSH1 0x01 000003cd: PUSH1 0x01 000003cf: PUSH1 0xa0 000003d1: SHL 000003d2: SUB 000003d3: AND 000003d4: PUSH4 0x7c5e9ea4 000003d9: DUP10 000003da: DUP6 000003db: PUSH1 0x20 000003dd: ADD 000003de: MLOAD 000003df: PUSH1 0x00 000003e1: PUSH1 0x01 000003e3: SWAP1 000003e4: SLOAD 000003e5: SWAP1 000003e6: PUSH2 0x0100 000003e9: EXP 000003ea: SWAP1 000003eb: DIV 000003ec: PUSH1 0x01 000003ee: PUSH1 0x01 000003f0: PUSH1 0xa0 000003f2: SHL 000003f3: SUB 000003f4: AND 000003f5: DUP8 000003f6: PUSH1 0x40 000003f8: ADD 000003f9: MLOAD 000003fa: DUP9 000003fb: PUSH1 0x60 000003fd: ADD 000003fe: MLOAD 000003ff: PUSH1 0x40 00000401: MLOAD 00000402: DUP7 00000403: PUSH4 0xffffffff 00000408: AND 00000409: PUSH1 0xe0 0000040b: SHL 0000040c: DUP2 0000040d: MSTORE 0000040e: PUSH1 0x04 00000410: ADD 00000411: PUSH2 0x041e 00000414: SWAP6 00000415: SWAP5 00000416: SWAP4 00000417: SWAP3 00000418: SWAP2 00000419: SWAP1 0000041a: PUSH2 0x2ba0 0000041d: JUMP 0000041e: JUMPDEST 0000041f: PUSH1 0x40 00000421: DUP1 00000422: MLOAD 00000423: DUP1 00000424: DUP4 00000425: SUB 00000426: DUP2 00000427: PUSH1 0x00 00000429: DUP8 0000042a: DUP1 0000042b: EXTCODESIZE 0000042c: ISZERO 0000042d: DUP1 0000042e: ISZERO 0000042f: PUSH2 0x0437 00000432: JUMPI 00000433: PUSH1 0x00 00000435: DUP1 00000436: REVERT 00000437: JUMPDEST 00000438: POP 00000439: GAS 0000043a: CALL 0000043b: ISZERO 0000043c: DUP1 0000043d: ISZERO 0000043e: PUSH2 0x044b 00000441: JUMPI 00000442: RETURNDATASIZE 00000443: PUSH1 0x00 00000445: DUP1 00000446: RETURNDATACOPY 00000447: RETURNDATASIZE 00000448: PUSH1 0x00 0000044a: REVERT 0000044b: JUMPDEST 0000044c: POP 0000044d: POP 0000044e: POP 0000044f: POP 00000450: PUSH1 0x40 00000452: MLOAD 00000453: RETURNDATASIZE 00000454: PUSH1 0x1f 00000456: NOT 00000457: PUSH1 0x1f 00000459: DUP3 0000045a: ADD 0000045b: AND 0000045c: DUP3 0000045d: ADD 0000045e: DUP1 0000045f: PUSH1 0x40 00000461: MSTORE 00000462: POP 00000463: PUSH2 0x046f 00000466: SWAP2 00000467: SWAP1 00000468: DUP2 00000469: ADD 0000046a: SWAP1 0000046b: PUSH2 0x2934 0000046e: JUMP 0000046f: JUMPDEST 00000470: POP 00000471: SWAP1 00000472: POP 00000473: PUSH2 0x047c 00000476: DUP2 00000477: DUP8 00000478: PUSH2 0x2561 0000047b: JUMP 0000047c: JUMPDEST 0000047d: SWAP6 0000047e: POP 0000047f: POP 00000480: PUSH1 0x01 00000482: SWAP1 00000483: SWAP3 00000484: ADD 00000485: SWAP2 00000486: POP 00000487: PUSH2 0x025a 0000048a: SWAP1 0000048b: POP 0000048c: JUMP 0000048d: JUMPDEST 0000048e: POP 0000048f: DUP3 00000490: DUP3 00000491: GT 00000492: ISZERO 00000493: PUSH2 0x04ae 00000496: JUMPI 00000497: PUSH1 0x40 00000499: MLOAD 0000049a: PUSH3 0x461bcd 0000049e: PUSH1 0xe5 000004a0: SHL 000004a1: DUP2 000004a2: MSTORE 000004a3: PUSH1 0x04 000004a5: ADD 000004a6: PUSH2 0x0188 000004a9: SWAP1 000004aa: PUSH2 0x2c0e 000004ad: JUMP 000004ae: JUMPDEST 000004af: PUSH1 0x40 000004b1: MLOAD 000004b2: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000004d3: DUP2 000004d4: MSTORE 000004d5: PUSH1 0x01 000004d7: PUSH1 0x01 000004d9: PUSH1 0xa0 000004db: SHL 000004dc: SUB 000004dd: DUP3 000004de: AND 000004df: SWAP1 000004e0: PUSH4 0xa9059cbb 000004e5: SWAP1 000004e6: CALLER 000004e7: SWAP1 000004e8: DUP4 000004e9: SWAP1 000004ea: PUSH4 0x70a08231 000004ef: SWAP1 000004f0: PUSH2 0x04fd 000004f3: SWAP1 000004f4: ADDRESS 000004f5: SWAP1 000004f6: PUSH1 0x04 000004f8: ADD 000004f9: PUSH2 0x2b1f 000004fc: JUMP 000004fd: JUMPDEST 000004fe: PUSH1 0x20 00000500: PUSH1 0x40 00000502: MLOAD 00000503: DUP1 00000504: DUP4 00000505: SUB 00000506: DUP2 00000507: PUSH1 0x00 00000509: DUP8 0000050a: DUP1 0000050b: EXTCODESIZE 0000050c: ISZERO 0000050d: DUP1 0000050e: ISZERO 0000050f: PUSH2 0x0517 00000512: JUMPI 00000513: PUSH1 0x00 00000515: DUP1 00000516: REVERT 00000517: JUMPDEST 00000518: POP 00000519: GAS 0000051a: CALL 0000051b: ISZERO 0000051c: DUP1 0000051d: ISZERO 0000051e: PUSH2 0x052b 00000521: JUMPI 00000522: RETURNDATASIZE 00000523: PUSH1 0x00 00000525: DUP1 00000526: RETURNDATACOPY 00000527: RETURNDATASIZE 00000528: PUSH1 0x00 0000052a: REVERT 0000052b: JUMPDEST 0000052c: POP 0000052d: POP 0000052e: POP 0000052f: POP 00000530: PUSH1 0x40 00000532: MLOAD 00000533: RETURNDATASIZE 00000534: PUSH1 0x1f 00000536: NOT 00000537: PUSH1 0x1f 00000539: DUP3 0000053a: ADD 0000053b: AND 0000053c: DUP3 0000053d: ADD 0000053e: DUP1 0000053f: PUSH1 0x40 00000541: MSTORE 00000542: POP 00000543: PUSH2 0x054f 00000546: SWAP2 00000547: SWAP1 00000548: DUP2 00000549: ADD 0000054a: SWAP1 0000054b: PUSH2 0x2916 0000054e: JUMP 0000054f: JUMPDEST 00000550: PUSH1 0x40 00000552: MLOAD 00000553: DUP4 00000554: PUSH4 0xffffffff 00000559: AND 0000055a: PUSH1 0xe0 0000055c: SHL 0000055d: DUP2 0000055e: MSTORE 0000055f: PUSH1 0x04 00000561: ADD 00000562: PUSH2 0x056c 00000565: SWAP3 00000566: SWAP2 00000567: SWAP1 00000568: PUSH2 0x2b77 0000056b: JUMP 0000056c: JUMPDEST 0000056d: PUSH1 0x20 0000056f: PUSH1 0x40 00000571: MLOAD 00000572: DUP1 00000573: DUP4 00000574: SUB 00000575: DUP2 00000576: PUSH1 0x00 00000578: DUP8 00000579: DUP1 0000057a: EXTCODESIZE 0000057b: ISZERO 0000057c: DUP1 0000057d: ISZERO 0000057e: PUSH2 0x0586 00000581: JUMPI 00000582: PUSH1 0x00 00000584: DUP1 00000585: REVERT 00000586: JUMPDEST 00000587: POP 00000588: GAS 00000589: CALL 0000058a: ISZERO 0000058b: DUP1 0000058c: ISZERO 0000058d: PUSH2 0x059a 00000590: JUMPI 00000591: RETURNDATASIZE 00000592: PUSH1 0x00 00000594: DUP1 00000595: RETURNDATACOPY 00000596: RETURNDATASIZE 00000597: PUSH1 0x00 00000599: REVERT 0000059a: JUMPDEST 0000059b: POP 0000059c: POP 0000059d: POP 0000059e: POP 0000059f: PUSH1 0x40 000005a1: MLOAD 000005a2: RETURNDATASIZE 000005a3: PUSH1 0x1f 000005a5: NOT 000005a6: PUSH1 0x1f 000005a8: DUP3 000005a9: ADD 000005aa: AND 000005ab: DUP3 000005ac: ADD 000005ad: DUP1 000005ae: PUSH1 0x40 000005b0: MSTORE 000005b1: POP 000005b2: PUSH2 0x05be 000005b5: SWAP2 000005b6: SWAP1 000005b7: DUP2 000005b8: ADD 000005b9: SWAP1 000005ba: PUSH2 0x28f0 000005bd: JUMP 000005be: JUMPDEST 000005bf: PUSH2 0x05da 000005c2: JUMPI 000005c3: PUSH1 0x40 000005c5: MLOAD 000005c6: PUSH3 0x461bcd 000005ca: PUSH1 0xe5 000005cc: SHL 000005cd: DUP2 000005ce: MSTORE 000005cf: PUSH1 0x04 000005d1: ADD 000005d2: PUSH2 0x0188 000005d5: SWAP1 000005d6: PUSH2 0x2c3e 000005d9: JUMP 000005da: JUMPDEST 000005db: PUSH1 0x00 000005dd: DUP1 000005de: SLOAD 000005df: PUSH1 0x40 000005e1: MLOAD 000005e2: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00000603: DUP2 00000604: MSTORE 00000605: PUSH2 0x0100 00000608: SWAP1 00000609: SWAP2 0000060a: DIV 0000060b: PUSH1 0x01 0000060d: PUSH1 0x01 0000060f: PUSH1 0xa0 00000611: SHL 00000612: SUB 00000613: AND 00000614: SWAP1 00000615: PUSH4 0x70a08231 0000061a: SWAP1 0000061b: PUSH2 0x0628 0000061e: SWAP1 0000061f: ADDRESS 00000620: SWAP1 00000621: PUSH1 0x04 00000623: ADD 00000624: PUSH2 0x2b1f 00000627: JUMP 00000628: JUMPDEST 00000629: PUSH1 0x20 0000062b: PUSH1 0x40 0000062d: MLOAD 0000062e: DUP1 0000062f: DUP4 00000630: SUB 00000631: DUP2 00000632: PUSH1 0x00 00000634: DUP8 00000635: DUP1 00000636: EXTCODESIZE 00000637: ISZERO 00000638: DUP1 00000639: ISZERO 0000063a: PUSH2 0x0642 0000063d: JUMPI 0000063e: PUSH1 0x00 00000640: DUP1 00000641: REVERT 00000642: JUMPDEST 00000643: POP 00000644: GAS 00000645: CALL 00000646: ISZERO 00000647: DUP1 00000648: ISZERO 00000649: PUSH2 0x0656 0000064c: JUMPI 0000064d: RETURNDATASIZE 0000064e: PUSH1 0x00 00000650: DUP1 00000651: RETURNDATACOPY 00000652: RETURNDATASIZE 00000653: PUSH1 0x00 00000655: REVERT 00000656: JUMPDEST 00000657: POP 00000658: POP 00000659: POP 0000065a: POP 0000065b: PUSH1 0x40 0000065d: MLOAD 0000065e: RETURNDATASIZE 0000065f: PUSH1 0x1f 00000661: NOT 00000662: PUSH1 0x1f 00000664: DUP3 00000665: ADD 00000666: AND 00000667: DUP3 00000668: ADD 00000669: DUP1 0000066a: PUSH1 0x40 0000066c: MSTORE 0000066d: POP 0000066e: PUSH2 0x067a 00000671: SWAP2 00000672: SWAP1 00000673: DUP2 00000674: ADD 00000675: SWAP1 00000676: PUSH2 0x2916 00000679: JUMP 0000067a: JUMPDEST 0000067b: PUSH1 0x00 0000067d: SLOAD 0000067e: PUSH1 0x40 00000680: MLOAD 00000681: PUSH32 0x2e1a7d4d00000000000000000000000000000000000000000000000000000000 000006a2: DUP2 000006a3: MSTORE 000006a4: SWAP2 000006a5: SWAP3 000006a6: POP 000006a7: PUSH2 0x0100 000006aa: SWAP1 000006ab: DIV 000006ac: PUSH1 0x01 000006ae: PUSH1 0x01 000006b0: PUSH1 0xa0 000006b2: SHL 000006b3: SUB 000006b4: AND 000006b5: SWAP1 000006b6: PUSH4 0x2e1a7d4d 000006bb: SWAP1 000006bc: PUSH2 0x06c9 000006bf: SWAP1 000006c0: DUP5 000006c1: SWAP1 000006c2: PUSH1 0x04 000006c4: ADD 000006c5: PUSH2 0x2c5e 000006c8: JUMP 000006c9: JUMPDEST 000006ca: PUSH1 0x00 000006cc: PUSH1 0x40 000006ce: MLOAD 000006cf: DUP1 000006d0: DUP4 000006d1: SUB 000006d2: DUP2 000006d3: PUSH1 0x00 000006d5: DUP8 000006d6: DUP1 000006d7: EXTCODESIZE 000006d8: ISZERO 000006d9: DUP1 000006da: ISZERO 000006db: PUSH2 0x06e3 000006de: JUMPI 000006df: PUSH1 0x00 000006e1: DUP1 000006e2: REVERT 000006e3: JUMPDEST 000006e4: POP 000006e5: GAS 000006e6: CALL 000006e7: ISZERO 000006e8: DUP1 000006e9: ISZERO 000006ea: PUSH2 0x06f7 000006ed: JUMPI 000006ee: RETURNDATASIZE 000006ef: PUSH1 0x00 000006f1: DUP1 000006f2: RETURNDATACOPY 000006f3: RETURNDATASIZE 000006f4: PUSH1 0x00 000006f6: REVERT 000006f7: JUMPDEST 000006f8: POP 000006f9: POP 000006fa: POP 000006fb: POP 000006fc: PUSH1 0x00 000006fe: CALLER 000006ff: PUSH1 0x01 00000701: PUSH1 0x01 00000703: PUSH1 0xa0 00000705: SHL 00000706: SUB 00000707: AND 00000708: DUP3 00000709: PUSH1 0x40 0000070b: MLOAD 0000070c: PUSH2 0x0714 0000070f: SWAP1 00000710: PUSH2 0x2b14 00000713: JUMP 00000714: JUMPDEST 00000715: PUSH1 0x00 00000717: PUSH1 0x40 00000719: MLOAD 0000071a: DUP1 0000071b: DUP4 0000071c: SUB 0000071d: DUP2 0000071e: DUP6 0000071f: DUP8 00000720: GAS 00000721: CALL 00000722: SWAP3 00000723: POP 00000724: POP 00000725: POP 00000726: RETURNDATASIZE 00000727: DUP1 00000728: PUSH1 0x00 0000072a: DUP2 0000072b: EQ 0000072c: PUSH2 0x0751 0000072f: JUMPI 00000730: PUSH1 0x40 00000732: MLOAD 00000733: SWAP2 00000734: POP 00000735: PUSH1 0x1f 00000737: NOT 00000738: PUSH1 0x3f 0000073a: RETURNDATASIZE 0000073b: ADD 0000073c: AND 0000073d: DUP3 0000073e: ADD 0000073f: PUSH1 0x40 00000741: MSTORE 00000742: RETURNDATASIZE 00000743: DUP3 00000744: MSTORE 00000745: RETURNDATASIZE 00000746: PUSH1 0x00 00000748: PUSH1 0x20 0000074a: DUP5 0000074b: ADD 0000074c: RETURNDATACOPY 0000074d: PUSH2 0x0756 00000750: JUMP 00000751: JUMPDEST 00000752: PUSH1 0x60 00000754: SWAP2 00000755: POP 00000756: JUMPDEST 00000757: POP 00000758: POP 00000759: SWAP1 0000075a: POP 0000075b: DUP1 0000075c: PUSH2 0x0777 0000075f: JUMPI 00000760: PUSH1 0x40 00000762: MLOAD 00000763: PUSH3 0x461bcd 00000767: PUSH1 0xe5 00000769: SHL 0000076a: DUP2 0000076b: MSTORE 0000076c: PUSH1 0x04 0000076e: ADD 0000076f: PUSH2 0x0188 00000772: SWAP1 00000773: PUSH2 0x2c2e 00000776: JUMP 00000777: JUMPDEST 00000778: POP 00000779: POP 0000077a: POP 0000077b: PUSH1 0x00 0000077d: DUP1 0000077e: SLOAD 0000077f: PUSH1 0xff 00000781: NOT 00000782: AND 00000783: SWAP1 00000784: SSTORE 00000785: SWAP4 00000786: SWAP3 00000787: POP 00000788: POP 00000789: POP 0000078a: JUMP 0000078b: JUMPDEST 0000078c: PUSH1 0x40 0000078e: MLOAD 0000078f: PUSH1 0x00 00000791: SWAP1 00000792: CALLER 00000793: SWAP1 00000794: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000007b5: DUP4 000007b6: CALLDATALOAD 000007b7: AND 000007b8: SWAP1 000007b9: PUSH2 0x07c5 000007bc: SWAP1 000007bd: DUP5 000007be: SWAP1 000007bf: CALLDATASIZE 000007c0: SWAP1 000007c1: PUSH2 0x2bec 000007c4: JUMP 000007c5: JUMPDEST 000007c6: PUSH1 0x40 000007c8: MLOAD 000007c9: DUP1 000007ca: SWAP2 000007cb: SUB 000007cc: SWAP1 000007cd: LOG2 000007ce: PUSH1 0x00 000007d0: SLOAD 000007d1: PUSH1 0xff 000007d3: AND 000007d4: ISZERO 000007d5: PUSH2 0x07f0 000007d8: JUMPI 000007d9: PUSH1 0x40 000007db: MLOAD 000007dc: PUSH3 0x461bcd 000007e0: PUSH1 0xe5 000007e2: SHL 000007e3: DUP2 000007e4: MSTORE 000007e5: PUSH1 0x04 000007e7: ADD 000007e8: PUSH2 0x0188 000007eb: SWAP1 000007ec: PUSH2 0x2c1e 000007ef: JUMP 000007f0: JUMPDEST 000007f1: PUSH1 0x00 000007f3: DUP1 000007f4: SLOAD 000007f5: PUSH1 0xff 000007f7: NOT 000007f8: AND 000007f9: PUSH1 0x01 000007fb: OR 000007fc: SWAP1 000007fd: SSTORE 000007fe: PUSH1 0x40 00000800: MLOAD 00000801: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 00000822: DUP2 00000823: MSTORE 00000824: DUP5 00000825: SWAP1 00000826: PUSH1 0x01 00000828: PUSH1 0x01 0000082a: PUSH1 0xa0 0000082c: SHL 0000082d: SUB 0000082e: DUP3 0000082f: AND 00000830: SWAP1 00000831: PUSH4 0x23b872dd 00000836: SWAP1 00000837: PUSH2 0x0848 0000083a: SWAP1 0000083b: CALLER 0000083c: SWAP1 0000083d: ADDRESS 0000083e: SWAP1 0000083f: DUP10 00000840: SWAP1 00000841: PUSH1 0x04 00000843: ADD 00000844: PUSH2 0x2b4f 00000847: JUMP 00000848: JUMPDEST 00000849: PUSH1 0x20 0000084b: PUSH1 0x40 0000084d: MLOAD 0000084e: DUP1 0000084f: DUP4 00000850: SUB 00000851: DUP2 00000852: PUSH1 0x00 00000854: DUP8 00000855: DUP1 00000856: EXTCODESIZE 00000857: ISZERO 00000858: DUP1 00000859: ISZERO 0000085a: PUSH2 0x0862 0000085d: JUMPI 0000085e: PUSH1 0x00 00000860: DUP1 00000861: REVERT 00000862: JUMPDEST 00000863: POP 00000864: GAS 00000865: CALL 00000866: ISZERO 00000867: DUP1 00000868: ISZERO 00000869: PUSH2 0x0876 0000086c: JUMPI 0000086d: RETURNDATASIZE 0000086e: PUSH1 0x00 00000870: DUP1 00000871: RETURNDATACOPY 00000872: RETURNDATASIZE 00000873: PUSH1 0x00 00000875: REVERT 00000876: JUMPDEST 00000877: POP 00000878: POP 00000879: POP 0000087a: POP 0000087b: PUSH1 0x40 0000087d: MLOAD 0000087e: RETURNDATASIZE 0000087f: PUSH1 0x1f 00000881: NOT 00000882: PUSH1 0x1f 00000884: DUP3 00000885: ADD 00000886: AND 00000887: DUP3 00000888: ADD 00000889: DUP1 0000088a: PUSH1 0x40 0000088c: MSTORE 0000088d: POP 0000088e: PUSH2 0x089a 00000891: SWAP2 00000892: SWAP1 00000893: DUP2 00000894: ADD 00000895: SWAP1 00000896: PUSH2 0x28f0 00000899: JUMP 0000089a: JUMPDEST 0000089b: PUSH2 0x08b6 0000089e: JUMPI 0000089f: PUSH1 0x40 000008a1: MLOAD 000008a2: PUSH3 0x461bcd 000008a6: PUSH1 0xe5 000008a8: SHL 000008a9: DUP2 000008aa: MSTORE 000008ab: PUSH1 0x04 000008ad: ADD 000008ae: PUSH2 0x0188 000008b1: SWAP1 000008b2: PUSH2 0x2c3e 000008b5: JUMP 000008b6: JUMPDEST 000008b7: PUSH1 0x00 000008b9: JUMPDEST 000008ba: DUP7 000008bb: MLOAD 000008bc: DUP2 000008bd: LT 000008be: ISZERO 000008bf: PUSH2 0x0aec 000008c2: JUMPI 000008c3: PUSH2 0x08ca 000008c6: PUSH2 0x258f 000008c9: JUMP 000008ca: JUMPDEST 000008cb: DUP8 000008cc: DUP3 000008cd: DUP2 000008ce: MLOAD 000008cf: DUP2 000008d0: LT 000008d1: PUSH2 0x08d6 000008d4: JUMPI 000008d5: INVALID 000008d6: JUMPDEST 000008d7: PUSH1 0x20 000008d9: SWAP1 000008da: DUP2 000008db: MUL 000008dc: SWAP2 000008dd: SWAP1 000008de: SWAP2 000008df: ADD 000008e0: ADD 000008e1: MLOAD 000008e2: DUP1 000008e3: MLOAD 000008e4: PUSH1 0x40 000008e6: MLOAD 000008e7: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 00000908: DUP2 00000909: MSTORE 0000090a: SWAP2 0000090b: SWAP3 0000090c: POP 0000090d: SWAP1 0000090e: DUP8 0000090f: SWAP1 00000910: PUSH1 0x01 00000912: PUSH1 0x01 00000914: PUSH1 0xa0 00000916: SHL 00000917: SUB 00000918: DUP7 00000919: AND 0000091a: SWAP1 0000091b: PUSH4 0xdd62ed3e 00000920: SWAP1 00000921: PUSH2 0x0930 00000924: SWAP1 00000925: ADDRESS 00000926: SWAP1 00000927: DUP7 00000928: SWAP1 00000929: PUSH1 0x04 0000092b: ADD 0000092c: PUSH2 0x2b2d 0000092f: JUMP 00000930: JUMPDEST 00000931: PUSH1 0x20 00000933: PUSH1 0x40 00000935: MLOAD 00000936: DUP1 00000937: DUP4 00000938: SUB 00000939: DUP2 0000093a: PUSH1 0x00 0000093c: DUP8 0000093d: DUP1 0000093e: EXTCODESIZE 0000093f: ISZERO 00000940: DUP1 00000941: ISZERO 00000942: PUSH2 0x094a 00000945: JUMPI 00000946: PUSH1 0x00 00000948: DUP1 00000949: REVERT 0000094a: JUMPDEST 0000094b: POP 0000094c: GAS 0000094d: CALL 0000094e: ISZERO 0000094f: DUP1 00000950: ISZERO 00000951: PUSH2 0x095e 00000954: JUMPI 00000955: RETURNDATASIZE 00000956: PUSH1 0x00 00000958: DUP1 00000959: RETURNDATACOPY 0000095a: RETURNDATASIZE 0000095b: PUSH1 0x00 0000095d: REVERT 0000095e: JUMPDEST 0000095f: POP 00000960: POP 00000961: POP 00000962: POP 00000963: PUSH1 0x40 00000965: MLOAD 00000966: RETURNDATASIZE 00000967: PUSH1 0x1f 00000969: NOT 0000096a: PUSH1 0x1f 0000096c: DUP3 0000096d: ADD 0000096e: AND 0000096f: DUP3 00000970: ADD 00000971: DUP1 00000972: PUSH1 0x40 00000974: MSTORE 00000975: POP 00000976: PUSH2 0x0982 00000979: SWAP2 0000097a: SWAP1 0000097b: DUP2 0000097c: ADD 0000097d: SWAP1 0000097e: PUSH2 0x2916 00000981: JUMP 00000982: JUMPDEST 00000983: LT 00000984: ISZERO 00000985: PUSH2 0x0a26 00000988: JUMPI 00000989: DUP2 0000098a: MLOAD 0000098b: PUSH1 0x40 0000098d: MLOAD 0000098e: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 000009af: DUP2 000009b0: MSTORE 000009b1: PUSH1 0x01 000009b3: PUSH1 0x01 000009b5: PUSH1 0xa0 000009b7: SHL 000009b8: SUB 000009b9: DUP7 000009ba: AND 000009bb: SWAP2 000009bc: PUSH4 0x095ea7b3 000009c1: SWAP2 000009c2: PUSH2 0x09d2 000009c5: SWAP2 000009c6: SWAP1 000009c7: PUSH1 0x00 000009c9: NOT 000009ca: SWAP1 000009cb: PUSH1 0x04 000009cd: ADD 000009ce: PUSH2 0x2b92 000009d1: JUMP 000009d2: JUMPDEST 000009d3: PUSH1 0x20 000009d5: PUSH1 0x40 000009d7: MLOAD 000009d8: DUP1 000009d9: DUP4 000009da: SUB 000009db: DUP2 000009dc: PUSH1 0x00 000009de: DUP8 000009df: DUP1 000009e0: EXTCODESIZE 000009e1: ISZERO 000009e2: DUP1 000009e3: ISZERO 000009e4: PUSH2 0x09ec 000009e7: JUMPI 000009e8: PUSH1 0x00 000009ea: DUP1 000009eb: REVERT 000009ec: JUMPDEST 000009ed: POP 000009ee: GAS 000009ef: CALL 000009f0: ISZERO 000009f1: DUP1 000009f2: ISZERO 000009f3: PUSH2 0x0a00 000009f6: JUMPI 000009f7: RETURNDATASIZE 000009f8: PUSH1 0x00 000009fa: DUP1 000009fb: RETURNDATACOPY 000009fc: RETURNDATASIZE 000009fd: PUSH1 0x00 000009ff: REVERT 00000a00: JUMPDEST 00000a01: POP 00000a02: POP 00000a03: POP 00000a04: POP 00000a05: PUSH1 0x40 00000a07: MLOAD 00000a08: RETURNDATASIZE 00000a09: PUSH1 0x1f 00000a0b: NOT 00000a0c: PUSH1 0x1f 00000a0e: DUP3 00000a0f: ADD 00000a10: AND 00000a11: DUP3 00000a12: ADD 00000a13: DUP1 00000a14: PUSH1 0x40 00000a16: MSTORE 00000a17: POP 00000a18: PUSH2 0x0a24 00000a1b: SWAP2 00000a1c: SWAP1 00000a1d: DUP2 00000a1e: ADD 00000a1f: SWAP1 00000a20: PUSH2 0x28f0 00000a23: JUMP 00000a24: JUMPDEST 00000a25: POP 00000a26: JUMPDEST 00000a27: PUSH1 0x00 00000a29: DUP2 00000a2a: PUSH1 0x01 00000a2c: PUSH1 0x01 00000a2e: PUSH1 0xa0 00000a30: SHL 00000a31: SUB 00000a32: AND 00000a33: PUSH4 0x8201aa3f 00000a38: DUP11 00000a39: DUP6 00000a3a: PUSH1 0x20 00000a3c: ADD 00000a3d: MLOAD 00000a3e: PUSH1 0x00 00000a40: PUSH1 0x01 00000a42: SWAP1 00000a43: SLOAD 00000a44: SWAP1 00000a45: PUSH2 0x0100 00000a48: EXP 00000a49: SWAP1 00000a4a: DIV 00000a4b: PUSH1 0x01 00000a4d: PUSH1 0x01 00000a4f: PUSH1 0xa0 00000a51: SHL 00000a52: SUB 00000a53: AND 00000a54: DUP8 00000a55: PUSH1 0x40 00000a57: ADD 00000a58: MLOAD 00000a59: DUP9 00000a5a: PUSH1 0x60 00000a5c: ADD 00000a5d: MLOAD 00000a5e: PUSH1 0x40 00000a60: MLOAD 00000a61: DUP7 00000a62: PUSH4 0xffffffff 00000a67: AND 00000a68: PUSH1 0xe0 00000a6a: SHL 00000a6b: DUP2 00000a6c: MSTORE 00000a6d: PUSH1 0x04 00000a6f: ADD 00000a70: PUSH2 0x0a7d 00000a73: SWAP6 00000a74: SWAP5 00000a75: SWAP4 00000a76: SWAP3 00000a77: SWAP2 00000a78: SWAP1 00000a79: PUSH2 0x2ba0 00000a7c: JUMP 00000a7d: JUMPDEST 00000a7e: PUSH1 0x40 00000a80: DUP1 00000a81: MLOAD 00000a82: DUP1 00000a83: DUP4 00000a84: SUB 00000a85: DUP2 00000a86: PUSH1 0x00 00000a88: DUP8 00000a89: DUP1 00000a8a: EXTCODESIZE 00000a8b: ISZERO 00000a8c: DUP1 00000a8d: ISZERO 00000a8e: PUSH2 0x0a96 00000a91: JUMPI 00000a92: PUSH1 0x00 00000a94: DUP1 00000a95: REVERT 00000a96: JUMPDEST 00000a97: POP 00000a98: GAS 00000a99: CALL 00000a9a: ISZERO 00000a9b: DUP1 00000a9c: ISZERO 00000a9d: PUSH2 0x0aaa 00000aa0: JUMPI 00000aa1: RETURNDATASIZE 00000aa2: PUSH1 0x00 00000aa4: DUP1 00000aa5: RETURNDATACOPY 00000aa6: RETURNDATASIZE 00000aa7: PUSH1 0x00 00000aa9: REVERT 00000aaa: JUMPDEST 00000aab: POP 00000aac: POP 00000aad: POP 00000aae: POP 00000aaf: PUSH1 0x40 00000ab1: MLOAD 00000ab2: RETURNDATASIZE 00000ab3: PUSH1 0x1f 00000ab5: NOT 00000ab6: PUSH1 0x1f 00000ab8: DUP3 00000ab9: ADD 00000aba: AND 00000abb: DUP3 00000abc: ADD 00000abd: DUP1 00000abe: PUSH1 0x40 00000ac0: MSTORE 00000ac1: POP 00000ac2: PUSH2 0x0ace 00000ac5: SWAP2 00000ac6: SWAP1 00000ac7: DUP2 00000ac8: ADD 00000ac9: SWAP1 00000aca: PUSH2 0x2934 00000acd: JUMP 00000ace: JUMPDEST 00000acf: POP 00000ad0: SWAP1 00000ad1: POP 00000ad2: PUSH2 0x0adb 00000ad5: DUP2 00000ad6: DUP8 00000ad7: PUSH2 0x2561 00000ada: JUMP 00000adb: JUMPDEST 00000adc: SWAP6 00000add: POP 00000ade: POP 00000adf: PUSH1 0x01 00000ae1: SWAP1 00000ae2: SWAP3 00000ae3: ADD 00000ae4: SWAP2 00000ae5: POP 00000ae6: PUSH2 0x08b9 00000ae9: SWAP1 00000aea: POP 00000aeb: JUMP 00000aec: JUMPDEST 00000aed: POP 00000aee: DUP3 00000aef: DUP3 00000af0: LT 00000af1: ISZERO 00000af2: PUSH2 0x0b0d 00000af5: JUMPI 00000af6: PUSH1 0x40 00000af8: MLOAD 00000af9: PUSH3 0x461bcd 00000afd: PUSH1 0xe5 00000aff: SHL 00000b00: DUP2 00000b01: MSTORE 00000b02: PUSH1 0x04 00000b04: ADD 00000b05: PUSH2 0x0188 00000b08: SWAP1 00000b09: PUSH2 0x2bfe 00000b0c: JUMP 00000b0d: JUMPDEST 00000b0e: PUSH1 0x00 00000b10: DUP1 00000b11: SLOAD 00000b12: PUSH1 0x40 00000b14: MLOAD 00000b15: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00000b36: DUP2 00000b37: MSTORE 00000b38: PUSH2 0x0100 00000b3b: SWAP1 00000b3c: SWAP2 00000b3d: DIV 00000b3e: PUSH1 0x01 00000b40: PUSH1 0x01 00000b42: PUSH1 0xa0 00000b44: SHL 00000b45: SUB 00000b46: AND 00000b47: SWAP1 00000b48: PUSH4 0x70a08231 00000b4d: SWAP1 00000b4e: PUSH2 0x0b5b 00000b51: SWAP1 00000b52: ADDRESS 00000b53: SWAP1 00000b54: PUSH1 0x04 00000b56: ADD 00000b57: PUSH2 0x2b1f 00000b5a: JUMP 00000b5b: JUMPDEST 00000b5c: PUSH1 0x20 00000b5e: PUSH1 0x40 00000b60: MLOAD 00000b61: DUP1 00000b62: DUP4 00000b63: SUB 00000b64: DUP2 00000b65: PUSH1 0x00 00000b67: DUP8 00000b68: DUP1 00000b69: EXTCODESIZE 00000b6a: ISZERO 00000b6b: DUP1 00000b6c: ISZERO 00000b6d: PUSH2 0x0b75 00000b70: JUMPI 00000b71: PUSH1 0x00 00000b73: DUP1 00000b74: REVERT 00000b75: JUMPDEST 00000b76: POP 00000b77: GAS 00000b78: CALL 00000b79: ISZERO 00000b7a: DUP1 00000b7b: ISZERO 00000b7c: PUSH2 0x0b89 00000b7f: JUMPI 00000b80: RETURNDATASIZE 00000b81: PUSH1 0x00 00000b83: DUP1 00000b84: RETURNDATACOPY 00000b85: RETURNDATASIZE 00000b86: PUSH1 0x00 00000b88: REVERT 00000b89: JUMPDEST 00000b8a: POP 00000b8b: POP 00000b8c: POP 00000b8d: POP 00000b8e: PUSH1 0x40 00000b90: MLOAD 00000b91: RETURNDATASIZE 00000b92: PUSH1 0x1f 00000b94: NOT 00000b95: PUSH1 0x1f 00000b97: DUP3 00000b98: ADD 00000b99: AND 00000b9a: DUP3 00000b9b: ADD 00000b9c: DUP1 00000b9d: PUSH1 0x40 00000b9f: MSTORE 00000ba0: POP 00000ba1: PUSH2 0x0bad 00000ba4: SWAP2 00000ba5: SWAP1 00000ba6: DUP2 00000ba7: ADD 00000ba8: SWAP1 00000ba9: PUSH2 0x2916 00000bac: JUMP 00000bad: JUMPDEST 00000bae: PUSH1 0x00 00000bb0: SLOAD 00000bb1: PUSH1 0x40 00000bb3: MLOAD 00000bb4: PUSH32 0x2e1a7d4d00000000000000000000000000000000000000000000000000000000 00000bd5: DUP2 00000bd6: MSTORE 00000bd7: SWAP2 00000bd8: SWAP3 00000bd9: POP 00000bda: PUSH2 0x0100 00000bdd: SWAP1 00000bde: DIV 00000bdf: PUSH1 0x01 00000be1: PUSH1 0x01 00000be3: PUSH1 0xa0 00000be5: SHL 00000be6: SUB 00000be7: AND 00000be8: SWAP1 00000be9: PUSH4 0x2e1a7d4d 00000bee: SWAP1 00000bef: PUSH2 0x0bfc 00000bf2: SWAP1 00000bf3: DUP5 00000bf4: SWAP1 00000bf5: PUSH1 0x04 00000bf7: ADD 00000bf8: PUSH2 0x2c5e 00000bfb: JUMP 00000bfc: JUMPDEST 00000bfd: PUSH1 0x00 00000bff: PUSH1 0x40 00000c01: MLOAD 00000c02: DUP1 00000c03: DUP4 00000c04: SUB 00000c05: DUP2 00000c06: PUSH1 0x00 00000c08: DUP8 00000c09: DUP1 00000c0a: EXTCODESIZE 00000c0b: ISZERO 00000c0c: DUP1 00000c0d: ISZERO 00000c0e: PUSH2 0x0c16 00000c11: JUMPI 00000c12: PUSH1 0x00 00000c14: DUP1 00000c15: REVERT 00000c16: JUMPDEST 00000c17: POP 00000c18: GAS 00000c19: CALL 00000c1a: ISZERO 00000c1b: DUP1 00000c1c: ISZERO 00000c1d: PUSH2 0x0c2a 00000c20: JUMPI 00000c21: RETURNDATASIZE 00000c22: PUSH1 0x00 00000c24: DUP1 00000c25: RETURNDATACOPY 00000c26: RETURNDATASIZE 00000c27: PUSH1 0x00 00000c29: REVERT 00000c2a: JUMPDEST 00000c2b: POP 00000c2c: POP 00000c2d: POP 00000c2e: POP 00000c2f: PUSH1 0x00 00000c31: CALLER 00000c32: PUSH1 0x01 00000c34: PUSH1 0x01 00000c36: PUSH1 0xa0 00000c38: SHL 00000c39: SUB 00000c3a: AND 00000c3b: DUP3 00000c3c: PUSH1 0x40 00000c3e: MLOAD 00000c3f: PUSH2 0x0c47 00000c42: SWAP1 00000c43: PUSH2 0x2b14 00000c46: JUMP 00000c47: JUMPDEST 00000c48: PUSH1 0x00 00000c4a: PUSH1 0x40 00000c4c: MLOAD 00000c4d: DUP1 00000c4e: DUP4 00000c4f: SUB 00000c50: DUP2 00000c51: DUP6 00000c52: DUP8 00000c53: GAS 00000c54: CALL 00000c55: SWAP3 00000c56: POP 00000c57: POP 00000c58: POP 00000c59: RETURNDATASIZE 00000c5a: DUP1 00000c5b: PUSH1 0x00 00000c5d: DUP2 00000c5e: EQ 00000c5f: PUSH2 0x0c84 00000c62: JUMPI 00000c63: PUSH1 0x40 00000c65: MLOAD 00000c66: SWAP2 00000c67: POP 00000c68: PUSH1 0x1f 00000c6a: NOT 00000c6b: PUSH1 0x3f 00000c6d: RETURNDATASIZE 00000c6e: ADD 00000c6f: AND 00000c70: DUP3 00000c71: ADD 00000c72: PUSH1 0x40 00000c74: MSTORE 00000c75: RETURNDATASIZE 00000c76: DUP3 00000c77: MSTORE 00000c78: RETURNDATASIZE 00000c79: PUSH1 0x00 00000c7b: PUSH1 0x20 00000c7d: DUP5 00000c7e: ADD 00000c7f: RETURNDATACOPY 00000c80: PUSH2 0x0c89 00000c83: JUMP 00000c84: JUMPDEST 00000c85: PUSH1 0x60 00000c87: SWAP2 00000c88: POP 00000c89: JUMPDEST 00000c8a: POP 00000c8b: POP 00000c8c: SWAP1 00000c8d: POP 00000c8e: DUP1 00000c8f: PUSH2 0x0caa 00000c92: JUMPI 00000c93: PUSH1 0x40 00000c95: MLOAD 00000c96: PUSH3 0x461bcd 00000c9a: PUSH1 0xe5 00000c9c: SHL 00000c9d: DUP2 00000c9e: MSTORE 00000c9f: PUSH1 0x04 00000ca1: ADD 00000ca2: PUSH2 0x0188 00000ca5: SWAP1 00000ca6: PUSH2 0x2c2e 00000ca9: JUMP 00000caa: JUMPDEST 00000cab: PUSH1 0x40 00000cad: MLOAD 00000cae: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00000ccf: DUP2 00000cd0: MSTORE 00000cd1: PUSH1 0x01 00000cd3: PUSH1 0x01 00000cd5: PUSH1 0xa0 00000cd7: SHL 00000cd8: SUB 00000cd9: DUP5 00000cda: AND 00000cdb: SWAP1 00000cdc: PUSH4 0xa9059cbb 00000ce1: SWAP1 00000ce2: CALLER 00000ce3: SWAP1 00000ce4: DUP4 00000ce5: SWAP1 00000ce6: PUSH4 0x70a08231 00000ceb: SWAP1 00000cec: PUSH2 0x0cf9 00000cef: SWAP1 00000cf0: ADDRESS 00000cf1: SWAP1 00000cf2: PUSH1 0x04 00000cf4: ADD 00000cf5: PUSH2 0x2b1f 00000cf8: JUMP 00000cf9: JUMPDEST 00000cfa: PUSH1 0x20 00000cfc: PUSH1 0x40 00000cfe: MLOAD 00000cff: DUP1 00000d00: DUP4 00000d01: SUB 00000d02: DUP2 00000d03: PUSH1 0x00 00000d05: DUP8 00000d06: DUP1 00000d07: EXTCODESIZE 00000d08: ISZERO 00000d09: DUP1 00000d0a: ISZERO 00000d0b: PUSH2 0x0d13 00000d0e: JUMPI 00000d0f: PUSH1 0x00 00000d11: DUP1 00000d12: REVERT 00000d13: JUMPDEST 00000d14: POP 00000d15: GAS 00000d16: CALL 00000d17: ISZERO 00000d18: DUP1 00000d19: ISZERO 00000d1a: PUSH2 0x0d27 00000d1d: JUMPI 00000d1e: RETURNDATASIZE 00000d1f: PUSH1 0x00 00000d21: DUP1 00000d22: RETURNDATACOPY 00000d23: RETURNDATASIZE 00000d24: PUSH1 0x00 00000d26: REVERT 00000d27: JUMPDEST 00000d28: POP 00000d29: POP 00000d2a: POP 00000d2b: POP 00000d2c: PUSH1 0x40 00000d2e: MLOAD 00000d2f: RETURNDATASIZE 00000d30: PUSH1 0x1f 00000d32: NOT 00000d33: PUSH1 0x1f 00000d35: DUP3 00000d36: ADD 00000d37: AND 00000d38: DUP3 00000d39: ADD 00000d3a: DUP1 00000d3b: PUSH1 0x40 00000d3d: MSTORE 00000d3e: POP 00000d3f: PUSH2 0x0d4b 00000d42: SWAP2 00000d43: SWAP1 00000d44: DUP2 00000d45: ADD 00000d46: SWAP1 00000d47: PUSH2 0x2916 00000d4a: JUMP 00000d4b: JUMPDEST 00000d4c: PUSH1 0x40 00000d4e: MLOAD 00000d4f: DUP4 00000d50: PUSH4 0xffffffff 00000d55: AND 00000d56: PUSH1 0xe0 00000d58: SHL 00000d59: DUP2 00000d5a: MSTORE 00000d5b: PUSH1 0x04 00000d5d: ADD 00000d5e: PUSH2 0x0d68 00000d61: SWAP3 00000d62: SWAP2 00000d63: SWAP1 00000d64: PUSH2 0x2b77 00000d67: JUMP 00000d68: JUMPDEST 00000d69: PUSH1 0x20 00000d6b: PUSH1 0x40 00000d6d: MLOAD 00000d6e: DUP1 00000d6f: DUP4 00000d70: SUB 00000d71: DUP2 00000d72: PUSH1 0x00 00000d74: DUP8 00000d75: DUP1 00000d76: EXTCODESIZE 00000d77: ISZERO 00000d78: DUP1 00000d79: ISZERO 00000d7a: PUSH2 0x0d82 00000d7d: JUMPI 00000d7e: PUSH1 0x00 00000d80: DUP1 00000d81: REVERT 00000d82: JUMPDEST 00000d83: POP 00000d84: GAS 00000d85: CALL 00000d86: ISZERO 00000d87: DUP1 00000d88: ISZERO 00000d89: PUSH2 0x0d96 00000d8c: JUMPI 00000d8d: RETURNDATASIZE 00000d8e: PUSH1 0x00 00000d90: DUP1 00000d91: RETURNDATACOPY 00000d92: RETURNDATASIZE 00000d93: PUSH1 0x00 00000d95: REVERT 00000d96: JUMPDEST 00000d97: POP 00000d98: POP 00000d99: POP 00000d9a: POP 00000d9b: PUSH1 0x40 00000d9d: MLOAD 00000d9e: RETURNDATASIZE 00000d9f: PUSH1 0x1f 00000da1: NOT 00000da2: PUSH1 0x1f 00000da4: DUP3 00000da5: ADD 00000da6: AND 00000da7: DUP3 00000da8: ADD 00000da9: DUP1 00000daa: PUSH1 0x40 00000dac: MSTORE 00000dad: POP 00000dae: PUSH2 0x0dba 00000db1: SWAP2 00000db2: SWAP1 00000db3: DUP2 00000db4: ADD 00000db5: SWAP1 00000db6: PUSH2 0x28f0 00000db9: JUMP 00000dba: JUMPDEST 00000dbb: PUSH2 0x0dd6 00000dbe: JUMPI 00000dbf: PUSH1 0x40 00000dc1: MLOAD 00000dc2: PUSH3 0x461bcd 00000dc6: PUSH1 0xe5 00000dc8: SHL 00000dc9: DUP2 00000dca: MSTORE 00000dcb: PUSH1 0x04 00000dcd: ADD 00000dce: PUSH2 0x0188 00000dd1: SWAP1 00000dd2: PUSH2 0x2c3e 00000dd5: JUMP 00000dd6: JUMPDEST 00000dd7: POP 00000dd8: POP 00000dd9: POP 00000dda: PUSH1 0x00 00000ddc: DUP1 00000ddd: SLOAD 00000dde: PUSH1 0xff 00000de0: NOT 00000de1: AND 00000de2: SWAP1 00000de3: SSTORE 00000de4: SWAP5 00000de5: SWAP4 00000de6: POP 00000de7: POP 00000de8: POP 00000de9: POP 00000dea: JUMP 00000deb: JUMPDEST 00000dec: PUSH1 0x40 00000dee: MLOAD 00000def: PUSH1 0x00 00000df1: SWAP1 00000df2: CALLER 00000df3: SWAP1 00000df4: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000e15: DUP4 00000e16: CALLDATALOAD 00000e17: AND 00000e18: SWAP1 00000e19: PUSH2 0x0e25 00000e1c: SWAP1 00000e1d: DUP5 00000e1e: SWAP1 00000e1f: CALLDATASIZE 00000e20: SWAP1 00000e21: PUSH2 0x2bec 00000e24: JUMP 00000e25: JUMPDEST 00000e26: PUSH1 0x40 00000e28: MLOAD 00000e29: DUP1 00000e2a: SWAP2 00000e2b: SUB 00000e2c: SWAP1 00000e2d: LOG2 00000e2e: PUSH1 0x00 00000e30: SLOAD 00000e31: PUSH1 0xff 00000e33: AND 00000e34: ISZERO 00000e35: PUSH2 0x0e50 00000e38: JUMPI 00000e39: PUSH1 0x40 00000e3b: MLOAD 00000e3c: PUSH3 0x461bcd 00000e40: PUSH1 0xe5 00000e42: SHL 00000e43: DUP2 00000e44: MSTORE 00000e45: PUSH1 0x04 00000e47: ADD 00000e48: PUSH2 0x0188 00000e4b: SWAP1 00000e4c: PUSH2 0x2c1e 00000e4f: JUMP 00000e50: JUMPDEST 00000e51: PUSH1 0x00 00000e53: DUP1 00000e54: SLOAD 00000e55: PUSH1 0x01 00000e57: PUSH1 0xff 00000e59: NOT 00000e5a: SWAP1 00000e5b: SWAP2 00000e5c: AND 00000e5d: OR 00000e5e: DUP1 00000e5f: DUP3 00000e60: SSTORE 00000e61: PUSH1 0x40 00000e63: DUP1 00000e64: MLOAD 00000e65: PUSH32 0xd0e30db000000000000000000000000000000000000000000000000000000000 00000e86: DUP2 00000e87: MSTORE 00000e88: SWAP1 00000e89: MLOAD 00000e8a: DUP7 00000e8b: SWAP4 00000e8c: PUSH2 0x0100 00000e8f: SWAP1 00000e90: SWAP4 00000e91: DIV 00000e92: PUSH1 0x01 00000e94: PUSH1 0x01 00000e96: PUSH1 0xa0 00000e98: SHL 00000e99: SUB 00000e9a: AND 00000e9b: SWAP3 00000e9c: PUSH4 0xd0e30db0 00000ea1: SWAP3 00000ea2: CALLVALUE 00000ea3: SWAP3 00000ea4: PUSH1 0x04 00000ea6: DUP1 00000ea7: DUP4 00000ea8: ADD 00000ea9: SWAP4 00000eaa: SWAP3 00000eab: DUP3 00000eac: SWAP1 00000ead: SUB 00000eae: ADD 00000eaf: DUP2 00000eb0: DUP6 00000eb1: DUP9 00000eb2: DUP1 00000eb3: EXTCODESIZE 00000eb4: ISZERO 00000eb5: DUP1 00000eb6: ISZERO 00000eb7: PUSH2 0x0ebf 00000eba: JUMPI 00000ebb: PUSH1 0x00 00000ebd: DUP1 00000ebe: REVERT 00000ebf: JUMPDEST 00000ec0: POP 00000ec1: GAS 00000ec2: CALL 00000ec3: ISZERO 00000ec4: DUP1 00000ec5: ISZERO 00000ec6: PUSH2 0x0ed3 00000ec9: JUMPI 00000eca: RETURNDATASIZE 00000ecb: PUSH1 0x00 00000ecd: DUP1 00000ece: RETURNDATACOPY 00000ecf: RETURNDATASIZE 00000ed0: PUSH1 0x00 00000ed2: REVERT 00000ed3: JUMPDEST 00000ed4: POP 00000ed5: PUSH1 0x00 00000ed7: SWAP4 00000ed8: POP 00000ed9: POP 00000eda: POP 00000edb: POP 00000edc: JUMPDEST 00000edd: DUP6 00000ede: MLOAD 00000edf: DUP2 00000ee0: LT 00000ee1: ISZERO 00000ee2: PUSH2 0x112e 00000ee5: JUMPI 00000ee6: PUSH2 0x0eed 00000ee9: PUSH2 0x258f 00000eec: JUMP 00000eed: JUMPDEST 00000eee: DUP7 00000eef: DUP3 00000ef0: DUP2 00000ef1: MLOAD 00000ef2: DUP2 00000ef3: LT 00000ef4: PUSH2 0x0ef9 00000ef7: JUMPI 00000ef8: INVALID 00000ef9: JUMPDEST 00000efa: PUSH1 0x20 00000efc: SWAP1 00000efd: DUP2 00000efe: MUL 00000eff: SWAP2 00000f00: SWAP1 00000f01: SWAP2 00000f02: ADD 00000f03: ADD 00000f04: MLOAD 00000f05: DUP1 00000f06: MLOAD 00000f07: PUSH1 0x00 00000f09: SLOAD 00000f0a: PUSH1 0x40 00000f0c: MLOAD 00000f0d: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 00000f2e: DUP2 00000f2f: MSTORE 00000f30: SWAP3 00000f31: SWAP4 00000f32: POP 00000f33: SWAP1 00000f34: SWAP2 00000f35: CALLVALUE 00000f36: SWAP2 00000f37: PUSH2 0x0100 00000f3a: SWAP1 00000f3b: DIV 00000f3c: PUSH1 0x01 00000f3e: PUSH1 0x01 00000f40: PUSH1 0xa0 00000f42: SHL 00000f43: SUB 00000f44: AND 00000f45: SWAP1 00000f46: PUSH4 0xdd62ed3e 00000f4b: SWAP1 00000f4c: PUSH2 0x0f5b 00000f4f: SWAP1 00000f50: ADDRESS 00000f51: SWAP1 00000f52: DUP7 00000f53: SWAP1 00000f54: PUSH1 0x04 00000f56: ADD 00000f57: PUSH2 0x2b2d 00000f5a: JUMP 00000f5b: JUMPDEST 00000f5c: PUSH1 0x20 00000f5e: PUSH1 0x40 00000f60: MLOAD 00000f61: DUP1 00000f62: DUP4 00000f63: SUB 00000f64: DUP2 00000f65: PUSH1 0x00 00000f67: DUP8 00000f68: DUP1 00000f69: EXTCODESIZE 00000f6a: ISZERO 00000f6b: DUP1 00000f6c: ISZERO 00000f6d: PUSH2 0x0f75 00000f70: JUMPI 00000f71: PUSH1 0x00 00000f73: DUP1 00000f74: REVERT 00000f75: JUMPDEST 00000f76: POP 00000f77: GAS 00000f78: CALL 00000f79: ISZERO 00000f7a: DUP1 00000f7b: ISZERO 00000f7c: PUSH2 0x0f89 00000f7f: JUMPI 00000f80: RETURNDATASIZE 00000f81: PUSH1 0x00 00000f83: DUP1 00000f84: RETURNDATACOPY 00000f85: RETURNDATASIZE 00000f86: PUSH1 0x00 00000f88: REVERT 00000f89: JUMPDEST 00000f8a: POP 00000f8b: POP 00000f8c: POP 00000f8d: POP 00000f8e: PUSH1 0x40 00000f90: MLOAD 00000f91: RETURNDATASIZE 00000f92: PUSH1 0x1f 00000f94: NOT 00000f95: PUSH1 0x1f 00000f97: DUP3 00000f98: ADD 00000f99: AND 00000f9a: DUP3 00000f9b: ADD 00000f9c: DUP1 00000f9d: PUSH1 0x40 00000f9f: MSTORE 00000fa0: POP 00000fa1: PUSH2 0x0fad 00000fa4: SWAP2 00000fa5: SWAP1 00000fa6: DUP2 00000fa7: ADD 00000fa8: SWAP1 00000fa9: PUSH2 0x2916 00000fac: JUMP 00000fad: JUMPDEST 00000fae: LT 00000faf: ISZERO 00000fb0: PUSH2 0x1058 00000fb3: JUMPI 00000fb4: PUSH1 0x00 00000fb6: SLOAD 00000fb7: DUP3 00000fb8: MLOAD 00000fb9: PUSH1 0x40 00000fbb: MLOAD 00000fbc: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 00000fdd: DUP2 00000fde: MSTORE 00000fdf: PUSH2 0x0100 00000fe2: SWAP1 00000fe3: SWAP3 00000fe4: DIV 00000fe5: PUSH1 0x01 00000fe7: PUSH1 0x01 00000fe9: PUSH1 0xa0 00000feb: SHL 00000fec: SUB 00000fed: AND 00000fee: SWAP2 00000fef: PUSH4 0x095ea7b3 00000ff4: SWAP2 00000ff5: PUSH2 0x1004 00000ff8: SWAP2 00000ff9: PUSH1 0x00 00000ffb: NOT 00000ffc: SWAP1 00000ffd: PUSH1 0x04 00000fff: ADD 00001000: PUSH2 0x2b92 00001003: JUMP 00001004: JUMPDEST 00001005: PUSH1 0x20 00001007: PUSH1 0x40 00001009: MLOAD 0000100a: DUP1 0000100b: DUP4 0000100c: SUB 0000100d: DUP2 0000100e: PUSH1 0x00 00001010: DUP8 00001011: DUP1 00001012: EXTCODESIZE 00001013: ISZERO 00001014: DUP1 00001015: ISZERO 00001016: PUSH2 0x101e 00001019: JUMPI 0000101a: PUSH1 0x00 0000101c: DUP1 0000101d: REVERT 0000101e: JUMPDEST 0000101f: POP 00001020: GAS 00001021: CALL 00001022: ISZERO 00001023: DUP1 00001024: ISZERO 00001025: PUSH2 0x1032 00001028: JUMPI 00001029: RETURNDATASIZE 0000102a: PUSH1 0x00 0000102c: DUP1 0000102d: RETURNDATACOPY 0000102e: RETURNDATASIZE 0000102f: PUSH1 0x00 00001031: REVERT 00001032: JUMPDEST 00001033: POP 00001034: POP 00001035: POP 00001036: POP 00001037: PUSH1 0x40 00001039: MLOAD 0000103a: RETURNDATASIZE 0000103b: PUSH1 0x1f 0000103d: NOT 0000103e: PUSH1 0x1f 00001040: DUP3 00001041: ADD 00001042: AND 00001043: DUP3 00001044: ADD 00001045: DUP1 00001046: PUSH1 0x40 00001048: MSTORE 00001049: POP 0000104a: PUSH2 0x1056 0000104d: SWAP2 0000104e: SWAP1 0000104f: DUP2 00001050: ADD 00001051: SWAP1 00001052: PUSH2 0x28f0 00001055: JUMP 00001056: JUMPDEST 00001057: POP 00001058: JUMPDEST 00001059: PUSH1 0x00 0000105b: DUP1 0000105c: SLOAD 0000105d: PUSH1 0x20 0000105f: DUP5 00001060: ADD 00001061: MLOAD 00001062: PUSH1 0x40 00001064: DUP1 00001065: DUP7 00001066: ADD 00001067: MLOAD 00001068: PUSH1 0x60 0000106a: DUP8 0000106b: ADD 0000106c: MLOAD 0000106d: SWAP2 0000106e: MLOAD 0000106f: PUSH32 0x8201aa3f00000000000000000000000000000000000000000000000000000000 00001090: DUP2 00001091: MSTORE 00001092: PUSH1 0x01 00001094: PUSH1 0x01 00001096: PUSH1 0xa0 00001098: SHL 00001099: SUB 0000109a: DUP1 0000109b: DUP9 0000109c: AND 0000109d: SWAP6 0000109e: PUSH4 0x8201aa3f 000010a3: SWAP6 000010a4: PUSH2 0x10bf 000010a7: SWAP6 000010a8: PUSH2 0x0100 000010ab: SWAP1 000010ac: SWAP3 000010ad: DIV 000010ae: SWAP1 000010af: SWAP3 000010b0: AND 000010b1: SWAP4 000010b2: SWAP2 000010b3: SWAP3 000010b4: DUP16 000010b5: SWAP3 000010b6: SWAP2 000010b7: SWAP1 000010b8: PUSH1 0x04 000010ba: ADD 000010bb: PUSH2 0x2ba0 000010be: JUMP 000010bf: JUMPDEST 000010c0: PUSH1 0x40 000010c2: DUP1 000010c3: MLOAD 000010c4: DUP1 000010c5: DUP4 000010c6: SUB 000010c7: DUP2 000010c8: PUSH1 0x00 000010ca: DUP8 000010cb: DUP1 000010cc: EXTCODESIZE 000010cd: ISZERO 000010ce: DUP1 000010cf: ISZERO 000010d0: PUSH2 0x10d8 000010d3: JUMPI 000010d4: PUSH1 0x00 000010d6: DUP1 000010d7: REVERT 000010d8: JUMPDEST 000010d9: POP 000010da: GAS 000010db: CALL 000010dc: ISZERO 000010dd: DUP1 000010de: ISZERO 000010df: PUSH2 0x10ec 000010e2: JUMPI 000010e3: RETURNDATASIZE 000010e4: PUSH1 0x00 000010e6: DUP1 000010e7: RETURNDATACOPY 000010e8: RETURNDATASIZE 000010e9: PUSH1 0x00 000010eb: REVERT 000010ec: JUMPDEST 000010ed: POP 000010ee: POP 000010ef: POP 000010f0: POP 000010f1: PUSH1 0x40 000010f3: MLOAD 000010f4: RETURNDATASIZE 000010f5: PUSH1 0x1f 000010f7: NOT 000010f8: PUSH1 0x1f 000010fa: DUP3 000010fb: ADD 000010fc: AND 000010fd: DUP3 000010fe: ADD 000010ff: DUP1 00001100: PUSH1 0x40 00001102: MSTORE 00001103: POP 00001104: PUSH2 0x1110 00001107: SWAP2 00001108: SWAP1 00001109: DUP2 0000110a: ADD 0000110b: SWAP1 0000110c: PUSH2 0x2934 0000110f: JUMP 00001110: JUMPDEST 00001111: POP 00001112: SWAP1 00001113: POP 00001114: PUSH2 0x111d 00001117: DUP2 00001118: DUP8 00001119: PUSH2 0x2561 0000111c: JUMP 0000111d: JUMPDEST 0000111e: SWAP6 0000111f: POP 00001120: POP 00001121: PUSH1 0x01 00001123: SWAP1 00001124: SWAP3 00001125: ADD 00001126: SWAP2 00001127: POP 00001128: PUSH2 0x0edc 0000112b: SWAP1 0000112c: POP 0000112d: JUMP 0000112e: JUMPDEST 0000112f: POP 00001130: DUP3 00001131: DUP3 00001132: LT 00001133: ISZERO 00001134: PUSH2 0x114f 00001137: JUMPI 00001138: PUSH1 0x40 0000113a: MLOAD 0000113b: PUSH3 0x461bcd 0000113f: PUSH1 0xe5 00001141: SHL 00001142: DUP2 00001143: MSTORE 00001144: PUSH1 0x04 00001146: ADD 00001147: PUSH2 0x0188 0000114a: SWAP1 0000114b: PUSH2 0x2bfe 0000114e: JUMP 0000114f: JUMPDEST 00001150: PUSH1 0x40 00001152: MLOAD 00001153: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00001174: DUP2 00001175: MSTORE 00001176: PUSH1 0x01 00001178: PUSH1 0x01 0000117a: PUSH1 0xa0 0000117c: SHL 0000117d: SUB 0000117e: DUP3 0000117f: AND 00001180: SWAP1 00001181: PUSH4 0xa9059cbb 00001186: SWAP1 00001187: CALLER 00001188: SWAP1 00001189: DUP4 0000118a: SWAP1 0000118b: PUSH4 0x70a08231 00001190: SWAP1 00001191: PUSH2 0x119e 00001194: SWAP1 00001195: ADDRESS 00001196: SWAP1 00001197: PUSH1 0x04 00001199: ADD 0000119a: PUSH2 0x2b1f 0000119d: JUMP 0000119e: JUMPDEST 0000119f: PUSH1 0x20 000011a1: PUSH1 0x40 000011a3: MLOAD 000011a4: DUP1 000011a5: DUP4 000011a6: SUB 000011a7: DUP2 000011a8: PUSH1 0x00 000011aa: DUP8 000011ab: DUP1 000011ac: EXTCODESIZE 000011ad: ISZERO 000011ae: DUP1 000011af: ISZERO 000011b0: PUSH2 0x11b8 000011b3: JUMPI 000011b4: PUSH1 0x00 000011b6: DUP1 000011b7: REVERT 000011b8: JUMPDEST 000011b9: POP 000011ba: GAS 000011bb: CALL 000011bc: ISZERO 000011bd: DUP1 000011be: ISZERO 000011bf: PUSH2 0x11cc 000011c2: JUMPI 000011c3: RETURNDATASIZE 000011c4: PUSH1 0x00 000011c6: DUP1 000011c7: RETURNDATACOPY 000011c8: RETURNDATASIZE 000011c9: PUSH1 0x00 000011cb: REVERT 000011cc: JUMPDEST 000011cd: POP 000011ce: POP 000011cf: POP 000011d0: POP 000011d1: PUSH1 0x40 000011d3: MLOAD 000011d4: RETURNDATASIZE 000011d5: PUSH1 0x1f 000011d7: NOT 000011d8: PUSH1 0x1f 000011da: DUP3 000011db: ADD 000011dc: AND 000011dd: DUP3 000011de: ADD 000011df: DUP1 000011e0: PUSH1 0x40 000011e2: MSTORE 000011e3: POP 000011e4: PUSH2 0x11f0 000011e7: SWAP2 000011e8: SWAP1 000011e9: DUP2 000011ea: ADD 000011eb: SWAP1 000011ec: PUSH2 0x2916 000011ef: JUMP 000011f0: JUMPDEST 000011f1: PUSH1 0x40 000011f3: MLOAD 000011f4: DUP4 000011f5: PUSH4 0xffffffff 000011fa: AND 000011fb: PUSH1 0xe0 000011fd: SHL 000011fe: DUP2 000011ff: MSTORE 00001200: PUSH1 0x04 00001202: ADD 00001203: PUSH2 0x120d 00001206: SWAP3 00001207: SWAP2 00001208: SWAP1 00001209: PUSH2 0x2b77 0000120c: JUMP 0000120d: JUMPDEST 0000120e: PUSH1 0x20 00001210: PUSH1 0x40 00001212: MLOAD 00001213: DUP1 00001214: DUP4 00001215: SUB 00001216: DUP2 00001217: PUSH1 0x00 00001219: DUP8 0000121a: DUP1 0000121b: EXTCODESIZE 0000121c: ISZERO 0000121d: DUP1 0000121e: ISZERO 0000121f: PUSH2 0x1227 00001222: JUMPI 00001223: PUSH1 0x00 00001225: DUP1 00001226: REVERT 00001227: JUMPDEST 00001228: POP 00001229: GAS 0000122a: CALL 0000122b: ISZERO 0000122c: DUP1 0000122d: ISZERO 0000122e: PUSH2 0x123b 00001231: JUMPI 00001232: RETURNDATASIZE 00001233: PUSH1 0x00 00001235: DUP1 00001236: RETURNDATACOPY 00001237: RETURNDATASIZE 00001238: PUSH1 0x00 0000123a: REVERT 0000123b: JUMPDEST 0000123c: POP 0000123d: POP 0000123e: POP 0000123f: POP 00001240: PUSH1 0x40 00001242: MLOAD 00001243: RETURNDATASIZE 00001244: PUSH1 0x1f 00001246: NOT 00001247: PUSH1 0x1f 00001249: DUP3 0000124a: ADD 0000124b: AND 0000124c: DUP3 0000124d: ADD 0000124e: DUP1 0000124f: PUSH1 0x40 00001251: MSTORE 00001252: POP 00001253: PUSH2 0x125f 00001256: SWAP2 00001257: SWAP1 00001258: DUP2 00001259: ADD 0000125a: SWAP1 0000125b: PUSH2 0x28f0 0000125e: JUMP 0000125f: JUMPDEST 00001260: PUSH2 0x127b 00001263: JUMPI 00001264: PUSH1 0x40 00001266: MLOAD 00001267: PUSH3 0x461bcd 0000126b: PUSH1 0xe5 0000126d: SHL 0000126e: DUP2 0000126f: MSTORE 00001270: PUSH1 0x04 00001272: ADD 00001273: PUSH2 0x0188 00001276: SWAP1 00001277: PUSH2 0x2c3e 0000127a: JUMP 0000127b: JUMPDEST 0000127c: PUSH1 0x00 0000127e: DUP1 0000127f: SLOAD 00001280: PUSH1 0x40 00001282: MLOAD 00001283: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000012a4: DUP2 000012a5: MSTORE 000012a6: PUSH2 0x0100 000012a9: SWAP1 000012aa: SWAP2 000012ab: DIV 000012ac: PUSH1 0x01 000012ae: PUSH1 0x01 000012b0: PUSH1 0xa0 000012b2: SHL 000012b3: SUB 000012b4: AND 000012b5: SWAP1 000012b6: PUSH4 0x70a08231 000012bb: SWAP1 000012bc: PUSH2 0x12c9 000012bf: SWAP1 000012c0: ADDRESS 000012c1: SWAP1 000012c2: PUSH1 0x04 000012c4: ADD 000012c5: PUSH2 0x2b1f 000012c8: JUMP 000012c9: JUMPDEST 000012ca: PUSH1 0x20 000012cc: PUSH1 0x40 000012ce: MLOAD 000012cf: DUP1 000012d0: DUP4 000012d1: SUB 000012d2: DUP2 000012d3: PUSH1 0x00 000012d5: DUP8 000012d6: DUP1 000012d7: EXTCODESIZE 000012d8: ISZERO 000012d9: DUP1 000012da: ISZERO 000012db: PUSH2 0x12e3 000012de: JUMPI 000012df: PUSH1 0x00 000012e1: DUP1 000012e2: REVERT 000012e3: JUMPDEST 000012e4: POP 000012e5: GAS 000012e6: CALL 000012e7: ISZERO 000012e8: DUP1 000012e9: ISZERO 000012ea: PUSH2 0x12f7 000012ed: JUMPI 000012ee: RETURNDATASIZE 000012ef: PUSH1 0x00 000012f1: DUP1 000012f2: RETURNDATACOPY 000012f3: RETURNDATASIZE 000012f4: PUSH1 0x00 000012f6: REVERT 000012f7: JUMPDEST 000012f8: POP 000012f9: POP 000012fa: POP 000012fb: POP 000012fc: PUSH1 0x40 000012fe: MLOAD 000012ff: RETURNDATASIZE 00001300: PUSH1 0x1f 00001302: NOT 00001303: PUSH1 0x1f 00001305: DUP3 00001306: ADD 00001307: AND 00001308: DUP3 00001309: ADD 0000130a: DUP1 0000130b: PUSH1 0x40 0000130d: MSTORE 0000130e: POP 0000130f: PUSH2 0x131b 00001312: SWAP2 00001313: SWAP1 00001314: DUP2 00001315: ADD 00001316: SWAP1 00001317: PUSH2 0x2916 0000131a: JUMP 0000131b: JUMPDEST 0000131c: SWAP1 0000131d: POP 0000131e: DUP1 0000131f: ISZERO 00001320: PUSH2 0x1370 00001323: JUMPI 00001324: PUSH1 0x00 00001326: SLOAD 00001327: PUSH1 0x40 00001329: MLOAD 0000132a: PUSH32 0x2e1a7d4d00000000000000000000000000000000000000000000000000000000 0000134b: DUP2 0000134c: MSTORE 0000134d: PUSH2 0x0100 00001350: SWAP1 00001351: SWAP2 00001352: DIV 00001353: PUSH1 0x01 00001355: PUSH1 0x01 00001357: PUSH1 0xa0 00001359: SHL 0000135a: SUB 0000135b: AND 0000135c: SWAP1 0000135d: PUSH4 0x2e1a7d4d 00001362: SWAP1 00001363: PUSH2 0x06c9 00001366: SWAP1 00001367: DUP5 00001368: SWAP1 00001369: PUSH1 0x04 0000136b: ADD 0000136c: PUSH2 0x2c5e 0000136f: JUMP 00001370: JUMPDEST 00001371: POP 00001372: POP 00001373: PUSH1 0x00 00001375: DUP1 00001376: SLOAD 00001377: PUSH1 0xff 00001379: NOT 0000137a: AND 0000137b: SWAP1 0000137c: SSTORE 0000137d: SWAP4 0000137e: SWAP3 0000137f: POP 00001380: POP 00001381: POP 00001382: JUMP 00001383: JUMPDEST 00001384: PUSH1 0x40 00001386: MLOAD 00001387: PUSH1 0x00 00001389: SWAP1 0000138a: CALLER 0000138b: SWAP1 0000138c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000013ad: DUP4 000013ae: CALLDATALOAD 000013af: AND 000013b0: SWAP1 000013b1: PUSH2 0x13bd 000013b4: SWAP1 000013b5: DUP5 000013b6: SWAP1 000013b7: CALLDATASIZE 000013b8: SWAP1 000013b9: PUSH2 0x2bec 000013bc: JUMP 000013bd: JUMPDEST 000013be: PUSH1 0x40 000013c0: MLOAD 000013c1: DUP1 000013c2: SWAP2 000013c3: SUB 000013c4: SWAP1 000013c5: LOG2 000013c6: PUSH1 0x00 000013c8: SLOAD 000013c9: PUSH1 0xff 000013cb: AND 000013cc: ISZERO 000013cd: PUSH2 0x13e8 000013d0: JUMPI 000013d1: PUSH1 0x40 000013d3: MLOAD 000013d4: PUSH3 0x461bcd 000013d8: PUSH1 0xe5 000013da: SHL 000013db: DUP2 000013dc: MSTORE 000013dd: PUSH1 0x04 000013df: ADD 000013e0: PUSH2 0x0188 000013e3: SWAP1 000013e4: PUSH2 0x2c1e 000013e7: JUMP 000013e8: JUMPDEST 000013e9: PUSH1 0x00 000013eb: DUP1 000013ec: SLOAD 000013ed: PUSH1 0x01 000013ef: PUSH1 0xff 000013f1: NOT 000013f2: SWAP1 000013f3: SWAP2 000013f4: AND 000013f5: OR 000013f6: DUP1 000013f7: DUP3 000013f8: SSTORE 000013f9: PUSH1 0x40 000013fb: DUP1 000013fc: MLOAD 000013fd: PUSH32 0xd0e30db000000000000000000000000000000000000000000000000000000000 0000141e: DUP2 0000141f: MSTORE 00001420: SWAP1 00001421: MLOAD 00001422: DUP6 00001423: SWAP4 00001424: PUSH2 0x0100 00001427: SWAP1 00001428: SWAP4 00001429: DIV 0000142a: PUSH1 0x01 0000142c: PUSH1 0x01 0000142e: PUSH1 0xa0 00001430: SHL 00001431: SUB 00001432: AND 00001433: SWAP3 00001434: PUSH4 0xd0e30db0 00001439: SWAP3 0000143a: CALLVALUE 0000143b: SWAP3 0000143c: PUSH1 0x04 0000143e: DUP1 0000143f: DUP4 00001440: ADD 00001441: SWAP4 00001442: SWAP3 00001443: DUP3 00001444: SWAP1 00001445: SUB 00001446: ADD 00001447: DUP2 00001448: DUP6 00001449: DUP9 0000144a: DUP1 0000144b: EXTCODESIZE 0000144c: ISZERO 0000144d: DUP1 0000144e: ISZERO 0000144f: PUSH2 0x1457 00001452: JUMPI 00001453: PUSH1 0x00 00001455: DUP1 00001456: REVERT 00001457: JUMPDEST 00001458: POP 00001459: GAS 0000145a: CALL 0000145b: ISZERO 0000145c: DUP1 0000145d: ISZERO 0000145e: PUSH2 0x146b 00001461: JUMPI 00001462: RETURNDATASIZE 00001463: PUSH1 0x00 00001465: DUP1 00001466: RETURNDATACOPY 00001467: RETURNDATASIZE 00001468: PUSH1 0x00 0000146a: REVERT 0000146b: JUMPDEST 0000146c: POP 0000146d: PUSH1 0x00 0000146f: SWAP4 00001470: POP 00001471: POP 00001472: POP 00001473: POP 00001474: JUMPDEST 00001475: DUP5 00001476: MLOAD 00001477: DUP2 00001478: LT 00001479: ISZERO 0000147a: PUSH2 0x16c6 0000147d: JUMPI 0000147e: PUSH2 0x1485 00001481: PUSH2 0x258f 00001484: JUMP 00001485: JUMPDEST 00001486: DUP6 00001487: DUP3 00001488: DUP2 00001489: MLOAD 0000148a: DUP2 0000148b: LT 0000148c: PUSH2 0x1491 0000148f: JUMPI 00001490: INVALID 00001491: JUMPDEST 00001492: PUSH1 0x20 00001494: SWAP1 00001495: DUP2 00001496: MUL 00001497: SWAP2 00001498: SWAP1 00001499: SWAP2 0000149a: ADD 0000149b: ADD 0000149c: MLOAD 0000149d: DUP1 0000149e: MLOAD 0000149f: PUSH1 0x00 000014a1: SLOAD 000014a2: PUSH1 0x40 000014a4: MLOAD 000014a5: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 000014c6: DUP2 000014c7: MSTORE 000014c8: SWAP3 000014c9: SWAP4 000014ca: POP 000014cb: SWAP1 000014cc: SWAP2 000014cd: CALLVALUE 000014ce: SWAP2 000014cf: PUSH2 0x0100 000014d2: SWAP1 000014d3: DIV 000014d4: PUSH1 0x01 000014d6: PUSH1 0x01 000014d8: PUSH1 0xa0 000014da: SHL 000014db: SUB 000014dc: AND 000014dd: SWAP1 000014de: PUSH4 0xdd62ed3e 000014e3: SWAP1 000014e4: PUSH2 0x14f3 000014e7: SWAP1 000014e8: ADDRESS 000014e9: SWAP1 000014ea: DUP7 000014eb: SWAP1 000014ec: PUSH1 0x04 000014ee: ADD 000014ef: PUSH2 0x2b2d 000014f2: JUMP 000014f3: JUMPDEST 000014f4: PUSH1 0x20 000014f6: PUSH1 0x40 000014f8: MLOAD 000014f9: DUP1 000014fa: DUP4 000014fb: SUB 000014fc: DUP2 000014fd: PUSH1 0x00 000014ff: DUP8 00001500: DUP1 00001501: EXTCODESIZE 00001502: ISZERO 00001503: DUP1 00001504: ISZERO 00001505: PUSH2 0x150d 00001508: JUMPI 00001509: PUSH1 0x00 0000150b: DUP1 0000150c: REVERT 0000150d: JUMPDEST 0000150e: POP 0000150f: GAS 00001510: CALL 00001511: ISZERO 00001512: DUP1 00001513: ISZERO 00001514: PUSH2 0x1521 00001517: JUMPI 00001518: RETURNDATASIZE 00001519: PUSH1 0x00 0000151b: DUP1 0000151c: RETURNDATACOPY 0000151d: RETURNDATASIZE 0000151e: PUSH1 0x00 00001520: REVERT 00001521: JUMPDEST 00001522: POP 00001523: POP 00001524: POP 00001525: POP 00001526: PUSH1 0x40 00001528: MLOAD 00001529: RETURNDATASIZE 0000152a: PUSH1 0x1f 0000152c: NOT 0000152d: PUSH1 0x1f 0000152f: DUP3 00001530: ADD 00001531: AND 00001532: DUP3 00001533: ADD 00001534: DUP1 00001535: PUSH1 0x40 00001537: MSTORE 00001538: POP 00001539: PUSH2 0x1545 0000153c: SWAP2 0000153d: SWAP1 0000153e: DUP2 0000153f: ADD 00001540: SWAP1 00001541: PUSH2 0x2916 00001544: JUMP 00001545: JUMPDEST 00001546: LT 00001547: ISZERO 00001548: PUSH2 0x15f0 0000154b: JUMPI 0000154c: PUSH1 0x00 0000154e: SLOAD 0000154f: DUP3 00001550: MLOAD 00001551: PUSH1 0x40 00001553: MLOAD 00001554: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 00001575: DUP2 00001576: MSTORE 00001577: PUSH2 0x0100 0000157a: SWAP1 0000157b: SWAP3 0000157c: DIV 0000157d: PUSH1 0x01 0000157f: PUSH1 0x01 00001581: PUSH1 0xa0 00001583: SHL 00001584: SUB 00001585: AND 00001586: SWAP2 00001587: PUSH4 0x095ea7b3 0000158c: SWAP2 0000158d: PUSH2 0x159c 00001590: SWAP2 00001591: PUSH1 0x00 00001593: NOT 00001594: SWAP1 00001595: PUSH1 0x04 00001597: ADD 00001598: PUSH2 0x2b92 0000159b: JUMP 0000159c: JUMPDEST 0000159d: PUSH1 0x20 0000159f: PUSH1 0x40 000015a1: MLOAD 000015a2: DUP1 000015a3: DUP4 000015a4: SUB 000015a5: DUP2 000015a6: PUSH1 0x00 000015a8: DUP8 000015a9: DUP1 000015aa: EXTCODESIZE 000015ab: ISZERO 000015ac: DUP1 000015ad: ISZERO 000015ae: PUSH2 0x15b6 000015b1: JUMPI 000015b2: PUSH1 0x00 000015b4: DUP1 000015b5: REVERT 000015b6: JUMPDEST 000015b7: POP 000015b8: GAS 000015b9: CALL 000015ba: ISZERO 000015bb: DUP1 000015bc: ISZERO 000015bd: PUSH2 0x15ca 000015c0: JUMPI 000015c1: RETURNDATASIZE 000015c2: PUSH1 0x00 000015c4: DUP1 000015c5: RETURNDATACOPY 000015c6: RETURNDATASIZE 000015c7: PUSH1 0x00 000015c9: REVERT 000015ca: JUMPDEST 000015cb: POP 000015cc: POP 000015cd: POP 000015ce: POP 000015cf: PUSH1 0x40 000015d1: MLOAD 000015d2: RETURNDATASIZE 000015d3: PUSH1 0x1f 000015d5: NOT 000015d6: PUSH1 0x1f 000015d8: DUP3 000015d9: ADD 000015da: AND 000015db: DUP3 000015dc: ADD 000015dd: DUP1 000015de: PUSH1 0x40 000015e0: MSTORE 000015e1: POP 000015e2: PUSH2 0x15ee 000015e5: SWAP2 000015e6: SWAP1 000015e7: DUP2 000015e8: ADD 000015e9: SWAP1 000015ea: PUSH2 0x28f0 000015ed: JUMP 000015ee: JUMPDEST 000015ef: POP 000015f0: JUMPDEST 000015f1: PUSH1 0x00 000015f3: DUP1 000015f4: SLOAD 000015f5: PUSH1 0x20 000015f7: DUP5 000015f8: ADD 000015f9: MLOAD 000015fa: PUSH1 0x40 000015fc: DUP1 000015fd: DUP7 000015fe: ADD 000015ff: MLOAD 00001600: PUSH1 0x60 00001602: DUP8 00001603: ADD 00001604: MLOAD 00001605: SWAP2 00001606: MLOAD 00001607: PUSH32 0x7c5e9ea400000000000000000000000000000000000000000000000000000000 00001628: DUP2 00001629: MSTORE 0000162a: PUSH1 0x01 0000162c: PUSH1 0x01 0000162e: PUSH1 0xa0 00001630: SHL 00001631: SUB 00001632: DUP1 00001633: DUP9 00001634: AND 00001635: SWAP6 00001636: PUSH4 0x7c5e9ea4 0000163b: SWAP6 0000163c: PUSH2 0x1657 0000163f: SWAP6 00001640: PUSH2 0x0100 00001643: SWAP1 00001644: SWAP3 00001645: DIV 00001646: SWAP1 00001647: SWAP3 00001648: AND 00001649: SWAP4 0000164a: SWAP2 0000164b: SWAP3 0000164c: DUP15 0000164d: SWAP3 0000164e: SWAP2 0000164f: SWAP1 00001650: PUSH1 0x04 00001652: ADD 00001653: PUSH2 0x2ba0 00001656: JUMP 00001657: JUMPDEST 00001658: PUSH1 0x40 0000165a: DUP1 0000165b: MLOAD 0000165c: DUP1 0000165d: DUP4 0000165e: SUB 0000165f: DUP2 00001660: PUSH1 0x00 00001662: DUP8 00001663: DUP1 00001664: EXTCODESIZE 00001665: ISZERO 00001666: DUP1 00001667: ISZERO 00001668: PUSH2 0x1670 0000166b: JUMPI 0000166c: PUSH1 0x00 0000166e: DUP1 0000166f: REVERT 00001670: JUMPDEST 00001671: POP 00001672: GAS 00001673: CALL 00001674: ISZERO 00001675: DUP1 00001676: ISZERO 00001677: PUSH2 0x1684 0000167a: JUMPI 0000167b: RETURNDATASIZE 0000167c: PUSH1 0x00 0000167e: DUP1 0000167f: RETURNDATACOPY 00001680: RETURNDATASIZE 00001681: PUSH1 0x00 00001683: REVERT 00001684: JUMPDEST 00001685: POP 00001686: POP 00001687: POP 00001688: POP 00001689: PUSH1 0x40 0000168b: MLOAD 0000168c: RETURNDATASIZE 0000168d: PUSH1 0x1f 0000168f: NOT 00001690: PUSH1 0x1f 00001692: DUP3 00001693: ADD 00001694: AND 00001695: DUP3 00001696: ADD 00001697: DUP1 00001698: PUSH1 0x40 0000169a: MSTORE 0000169b: POP 0000169c: PUSH2 0x16a8 0000169f: SWAP2 000016a0: SWAP1 000016a1: DUP2 000016a2: ADD 000016a3: SWAP1 000016a4: PUSH2 0x2934 000016a7: JUMP 000016a8: JUMPDEST 000016a9: POP 000016aa: SWAP1 000016ab: POP 000016ac: PUSH2 0x16b5 000016af: DUP2 000016b0: DUP8 000016b1: PUSH2 0x2561 000016b4: JUMP 000016b5: JUMPDEST 000016b6: SWAP6 000016b7: POP 000016b8: POP 000016b9: PUSH1 0x01 000016bb: SWAP1 000016bc: SWAP3 000016bd: ADD 000016be: SWAP2 000016bf: POP 000016c0: PUSH2 0x1474 000016c3: SWAP1 000016c4: POP 000016c5: JUMP 000016c6: JUMPDEST 000016c7: POP 000016c8: PUSH1 0x40 000016ca: MLOAD 000016cb: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000016ec: DUP2 000016ed: MSTORE 000016ee: PUSH1 0x01 000016f0: PUSH1 0x01 000016f2: PUSH1 0xa0 000016f4: SHL 000016f5: SUB 000016f6: DUP3 000016f7: AND 000016f8: SWAP1 000016f9: PUSH4 0xa9059cbb 000016fe: SWAP1 000016ff: CALLER 00001700: SWAP1 00001701: DUP4 00001702: SWAP1 00001703: PUSH4 0x70a08231 00001708: SWAP1 00001709: PUSH2 0x1716 0000170c: SWAP1 0000170d: ADDRESS 0000170e: SWAP1 0000170f: PUSH1 0x04 00001711: ADD 00001712: PUSH2 0x2b1f 00001715: JUMP 00001716: JUMPDEST 00001717: PUSH1 0x20 00001719: PUSH1 0x40 0000171b: MLOAD 0000171c: DUP1 0000171d: DUP4 0000171e: SUB 0000171f: DUP2 00001720: PUSH1 0x00 00001722: DUP8 00001723: DUP1 00001724: EXTCODESIZE 00001725: ISZERO 00001726: DUP1 00001727: ISZERO 00001728: PUSH2 0x1730 0000172b: JUMPI 0000172c: PUSH1 0x00 0000172e: DUP1 0000172f: REVERT 00001730: JUMPDEST 00001731: POP 00001732: GAS 00001733: CALL 00001734: ISZERO 00001735: DUP1 00001736: ISZERO 00001737: PUSH2 0x1744 0000173a: JUMPI 0000173b: RETURNDATASIZE 0000173c: PUSH1 0x00 0000173e: DUP1 0000173f: RETURNDATACOPY 00001740: RETURNDATASIZE 00001741: PUSH1 0x00 00001743: REVERT 00001744: JUMPDEST 00001745: POP 00001746: POP 00001747: POP 00001748: POP 00001749: PUSH1 0x40 0000174b: MLOAD 0000174c: RETURNDATASIZE 0000174d: PUSH1 0x1f 0000174f: NOT 00001750: PUSH1 0x1f 00001752: DUP3 00001753: ADD 00001754: AND 00001755: DUP3 00001756: ADD 00001757: DUP1 00001758: PUSH1 0x40 0000175a: MSTORE 0000175b: POP 0000175c: PUSH2 0x1768 0000175f: SWAP2 00001760: SWAP1 00001761: DUP2 00001762: ADD 00001763: SWAP1 00001764: PUSH2 0x2916 00001767: JUMP 00001768: JUMPDEST 00001769: PUSH1 0x40 0000176b: MLOAD 0000176c: DUP4 0000176d: PUSH4 0xffffffff 00001772: AND 00001773: PUSH1 0xe0 00001775: SHL 00001776: DUP2 00001777: MSTORE 00001778: PUSH1 0x04 0000177a: ADD 0000177b: PUSH2 0x1785 0000177e: SWAP3 0000177f: SWAP2 00001780: SWAP1 00001781: PUSH2 0x2b77 00001784: JUMP 00001785: JUMPDEST 00001786: PUSH1 0x20 00001788: PUSH1 0x40 0000178a: MLOAD 0000178b: DUP1 0000178c: DUP4 0000178d: SUB 0000178e: DUP2 0000178f: PUSH1 0x00 00001791: DUP8 00001792: DUP1 00001793: EXTCODESIZE 00001794: ISZERO 00001795: DUP1 00001796: ISZERO 00001797: PUSH2 0x179f 0000179a: JUMPI 0000179b: PUSH1 0x00 0000179d: DUP1 0000179e: REVERT 0000179f: JUMPDEST 000017a0: POP 000017a1: GAS 000017a2: CALL 000017a3: ISZERO 000017a4: DUP1 000017a5: ISZERO 000017a6: PUSH2 0x17b3 000017a9: JUMPI 000017aa: RETURNDATASIZE 000017ab: PUSH1 0x00 000017ad: DUP1 000017ae: RETURNDATACOPY 000017af: RETURNDATASIZE 000017b0: PUSH1 0x00 000017b2: REVERT 000017b3: JUMPDEST 000017b4: POP 000017b5: POP 000017b6: POP 000017b7: POP 000017b8: PUSH1 0x40 000017ba: MLOAD 000017bb: RETURNDATASIZE 000017bc: PUSH1 0x1f 000017be: NOT 000017bf: PUSH1 0x1f 000017c1: DUP3 000017c2: ADD 000017c3: AND 000017c4: DUP3 000017c5: ADD 000017c6: DUP1 000017c7: PUSH1 0x40 000017c9: MSTORE 000017ca: POP 000017cb: PUSH2 0x17d7 000017ce: SWAP2 000017cf: SWAP1 000017d0: DUP2 000017d1: ADD 000017d2: SWAP1 000017d3: PUSH2 0x28f0 000017d6: JUMP 000017d7: JUMPDEST 000017d8: PUSH2 0x17f3 000017db: JUMPI 000017dc: PUSH1 0x40 000017de: MLOAD 000017df: PUSH3 0x461bcd 000017e3: PUSH1 0xe5 000017e5: SHL 000017e6: DUP2 000017e7: MSTORE 000017e8: PUSH1 0x04 000017ea: ADD 000017eb: PUSH2 0x0188 000017ee: SWAP1 000017ef: PUSH2 0x2c3e 000017f2: JUMP 000017f3: JUMPDEST 000017f4: PUSH1 0x00 000017f6: DUP1 000017f7: SLOAD 000017f8: PUSH1 0x40 000017fa: MLOAD 000017fb: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 0000181c: DUP2 0000181d: MSTORE 0000181e: PUSH2 0x0100 00001821: SWAP1 00001822: SWAP2 00001823: DIV 00001824: PUSH1 0x01 00001826: PUSH1 0x01 00001828: PUSH1 0xa0 0000182a: SHL 0000182b: SUB 0000182c: AND 0000182d: SWAP1 0000182e: PUSH4 0x70a08231 00001833: SWAP1 00001834: PUSH2 0x1841 00001837: SWAP1 00001838: ADDRESS 00001839: SWAP1 0000183a: PUSH1 0x04 0000183c: ADD 0000183d: PUSH2 0x2b1f 00001840: JUMP 00001841: JUMPDEST 00001842: PUSH1 0x20 00001844: PUSH1 0x40 00001846: MLOAD 00001847: DUP1 00001848: DUP4 00001849: SUB 0000184a: DUP2 0000184b: PUSH1 0x00 0000184d: DUP8 0000184e: DUP1 0000184f: EXTCODESIZE 00001850: ISZERO 00001851: DUP1 00001852: ISZERO 00001853: PUSH2 0x185b 00001856: JUMPI 00001857: PUSH1 0x00 00001859: DUP1 0000185a: REVERT 0000185b: JUMPDEST 0000185c: POP 0000185d: GAS 0000185e: CALL 0000185f: ISZERO 00001860: DUP1 00001861: ISZERO 00001862: PUSH2 0x186f 00001865: JUMPI 00001866: RETURNDATASIZE 00001867: PUSH1 0x00 00001869: DUP1 0000186a: RETURNDATACOPY 0000186b: RETURNDATASIZE 0000186c: PUSH1 0x00 0000186e: REVERT 0000186f: JUMPDEST 00001870: POP 00001871: POP 00001872: POP 00001873: POP 00001874: PUSH1 0x40 00001876: MLOAD 00001877: RETURNDATASIZE 00001878: PUSH1 0x1f 0000187a: NOT 0000187b: PUSH1 0x1f 0000187d: DUP3 0000187e: ADD 0000187f: AND 00001880: DUP3 00001881: ADD 00001882: DUP1 00001883: PUSH1 0x40 00001885: MSTORE 00001886: POP 00001887: PUSH2 0x1893 0000188a: SWAP2 0000188b: SWAP1 0000188c: DUP2 0000188d: ADD 0000188e: SWAP1 0000188f: PUSH2 0x2916 00001892: JUMP 00001893: JUMPDEST 00001894: SWAP1 00001895: POP 00001896: DUP1 00001897: ISZERO 00001898: PUSH2 0x1998 0000189b: JUMPI 0000189c: PUSH1 0x00 0000189e: SLOAD 0000189f: PUSH1 0x40 000018a1: MLOAD 000018a2: PUSH32 0x2e1a7d4d00000000000000000000000000000000000000000000000000000000 000018c3: DUP2 000018c4: MSTORE 000018c5: PUSH2 0x0100 000018c8: SWAP1 000018c9: SWAP2 000018ca: DIV 000018cb: PUSH1 0x01 000018cd: PUSH1 0x01 000018cf: PUSH1 0xa0 000018d1: SHL 000018d2: SUB 000018d3: AND 000018d4: SWAP1 000018d5: PUSH4 0x2e1a7d4d 000018da: SWAP1 000018db: PUSH2 0x18e8 000018de: SWAP1 000018df: DUP5 000018e0: SWAP1 000018e1: PUSH1 0x04 000018e3: ADD 000018e4: PUSH2 0x2c5e 000018e7: JUMP 000018e8: JUMPDEST 000018e9: PUSH1 0x00 000018eb: PUSH1 0x40 000018ed: MLOAD 000018ee: DUP1 000018ef: DUP4 000018f0: SUB 000018f1: DUP2 000018f2: PUSH1 0x00 000018f4: DUP8 000018f5: DUP1 000018f6: EXTCODESIZE 000018f7: ISZERO 000018f8: DUP1 000018f9: ISZERO 000018fa: PUSH2 0x1902 000018fd: JUMPI 000018fe: PUSH1 0x00 00001900: DUP1 00001901: REVERT 00001902: JUMPDEST 00001903: POP 00001904: GAS 00001905: CALL 00001906: ISZERO 00001907: DUP1 00001908: ISZERO 00001909: PUSH2 0x1916 0000190c: JUMPI 0000190d: RETURNDATASIZE 0000190e: PUSH1 0x00 00001910: DUP1 00001911: RETURNDATACOPY 00001912: RETURNDATASIZE 00001913: PUSH1 0x00 00001915: REVERT 00001916: JUMPDEST 00001917: POP 00001918: POP 00001919: POP 0000191a: POP 0000191b: PUSH1 0x00 0000191d: CALLER 0000191e: PUSH1 0x01 00001920: PUSH1 0x01 00001922: PUSH1 0xa0 00001924: SHL 00001925: SUB 00001926: AND 00001927: DUP3 00001928: PUSH1 0x40 0000192a: MLOAD 0000192b: PUSH2 0x1933 0000192e: SWAP1 0000192f: PUSH2 0x2b14 00001932: JUMP 00001933: JUMPDEST 00001934: PUSH1 0x00 00001936: PUSH1 0x40 00001938: MLOAD 00001939: DUP1 0000193a: DUP4 0000193b: SUB 0000193c: DUP2 0000193d: DUP6 0000193e: DUP8 0000193f: GAS 00001940: CALL 00001941: SWAP3 00001942: POP 00001943: POP 00001944: POP 00001945: RETURNDATASIZE 00001946: DUP1 00001947: PUSH1 0x00 00001949: DUP2 0000194a: EQ 0000194b: PUSH2 0x1970 0000194e: JUMPI 0000194f: PUSH1 0x40 00001951: MLOAD 00001952: SWAP2 00001953: POP 00001954: PUSH1 0x1f 00001956: NOT 00001957: PUSH1 0x3f 00001959: RETURNDATASIZE 0000195a: ADD 0000195b: AND 0000195c: DUP3 0000195d: ADD 0000195e: PUSH1 0x40 00001960: MSTORE 00001961: RETURNDATASIZE 00001962: DUP3 00001963: MSTORE 00001964: RETURNDATASIZE 00001965: PUSH1 0x00 00001967: PUSH1 0x20 00001969: DUP5 0000196a: ADD 0000196b: RETURNDATACOPY 0000196c: PUSH2 0x1975 0000196f: JUMP 00001970: JUMPDEST 00001971: PUSH1 0x60 00001973: SWAP2 00001974: POP 00001975: JUMPDEST 00001976: POP 00001977: POP 00001978: SWAP1 00001979: POP 0000197a: DUP1 0000197b: PUSH2 0x1996 0000197e: JUMPI 0000197f: PUSH1 0x40 00001981: MLOAD 00001982: PUSH3 0x461bcd 00001986: PUSH1 0xe5 00001988: SHL 00001989: DUP2 0000198a: MSTORE 0000198b: PUSH1 0x04 0000198d: ADD 0000198e: PUSH2 0x0188 00001991: SWAP1 00001992: PUSH2 0x2c2e 00001995: JUMP 00001996: JUMPDEST 00001997: POP 00001998: JUMPDEST 00001999: POP 0000199a: POP 0000199b: PUSH1 0x00 0000199d: DUP1 0000199e: SLOAD 0000199f: PUSH1 0xff 000019a1: NOT 000019a2: AND 000019a3: SWAP1 000019a4: SSTORE 000019a5: SWAP3 000019a6: SWAP2 000019a7: POP 000019a8: POP 000019a9: JUMP 000019aa: JUMPDEST 000019ab: PUSH1 0x40 000019ad: MLOAD 000019ae: PUSH1 0x00 000019b0: SWAP1 000019b1: CALLER 000019b2: SWAP1 000019b3: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000019d4: DUP4 000019d5: CALLDATALOAD 000019d6: AND 000019d7: SWAP1 000019d8: PUSH2 0x19e4 000019db: SWAP1 000019dc: DUP5 000019dd: SWAP1 000019de: CALLDATASIZE 000019df: SWAP1 000019e0: PUSH2 0x2bec 000019e3: JUMP 000019e4: JUMPDEST 000019e5: PUSH1 0x40 000019e7: MLOAD 000019e8: DUP1 000019e9: SWAP2 000019ea: SUB 000019eb: SWAP1 000019ec: LOG2 000019ed: PUSH1 0x00 000019ef: SLOAD 000019f0: PUSH1 0xff 000019f2: AND 000019f3: ISZERO 000019f4: PUSH2 0x1a0f 000019f7: JUMPI 000019f8: PUSH1 0x40 000019fa: MLOAD 000019fb: PUSH3 0x461bcd 000019ff: PUSH1 0xe5 00001a01: SHL 00001a02: DUP2 00001a03: MSTORE 00001a04: PUSH1 0x04 00001a06: ADD 00001a07: PUSH2 0x0188 00001a0a: SWAP1 00001a0b: PUSH2 0x2c1e 00001a0e: JUMP 00001a0f: JUMPDEST 00001a10: PUSH1 0x00 00001a12: DUP1 00001a13: SLOAD 00001a14: PUSH1 0xff 00001a16: NOT 00001a17: AND 00001a18: PUSH1 0x01 00001a1a: OR 00001a1b: SWAP1 00001a1c: SSTORE 00001a1d: PUSH1 0x40 00001a1f: MLOAD 00001a20: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 00001a41: DUP2 00001a42: MSTORE 00001a43: DUP5 00001a44: SWAP1 00001a45: DUP5 00001a46: SWAP1 00001a47: PUSH1 0x01 00001a49: PUSH1 0x01 00001a4b: PUSH1 0xa0 00001a4d: SHL 00001a4e: SUB 00001a4f: DUP4 00001a50: AND 00001a51: SWAP1 00001a52: PUSH4 0x23b872dd 00001a57: SWAP1 00001a58: PUSH2 0x1a69 00001a5b: SWAP1 00001a5c: CALLER 00001a5d: SWAP1 00001a5e: ADDRESS 00001a5f: SWAP1 00001a60: DUP10 00001a61: SWAP1 00001a62: PUSH1 0x04 00001a64: ADD 00001a65: PUSH2 0x2b4f 00001a68: JUMP 00001a69: JUMPDEST 00001a6a: PUSH1 0x20 00001a6c: PUSH1 0x40 00001a6e: MLOAD 00001a6f: DUP1 00001a70: DUP4 00001a71: SUB 00001a72: DUP2 00001a73: PUSH1 0x00 00001a75: DUP8 00001a76: DUP1 00001a77: EXTCODESIZE 00001a78: ISZERO 00001a79: DUP1 00001a7a: ISZERO 00001a7b: PUSH2 0x1a83 00001a7e: JUMPI 00001a7f: PUSH1 0x00 00001a81: DUP1 00001a82: REVERT 00001a83: JUMPDEST 00001a84: POP 00001a85: GAS 00001a86: CALL 00001a87: ISZERO 00001a88: DUP1 00001a89: ISZERO 00001a8a: PUSH2 0x1a97 00001a8d: JUMPI 00001a8e: RETURNDATASIZE 00001a8f: PUSH1 0x00 00001a91: DUP1 00001a92: RETURNDATACOPY 00001a93: RETURNDATASIZE 00001a94: PUSH1 0x00 00001a96: REVERT 00001a97: JUMPDEST 00001a98: POP 00001a99: POP 00001a9a: POP 00001a9b: POP 00001a9c: PUSH1 0x40 00001a9e: MLOAD 00001a9f: RETURNDATASIZE 00001aa0: PUSH1 0x1f 00001aa2: NOT 00001aa3: PUSH1 0x1f 00001aa5: DUP3 00001aa6: ADD 00001aa7: AND 00001aa8: DUP3 00001aa9: ADD 00001aaa: DUP1 00001aab: PUSH1 0x40 00001aad: MSTORE 00001aae: POP 00001aaf: PUSH2 0x1abb 00001ab2: SWAP2 00001ab3: SWAP1 00001ab4: DUP2 00001ab5: ADD 00001ab6: SWAP1 00001ab7: PUSH2 0x28f0 00001aba: JUMP 00001abb: JUMPDEST 00001abc: PUSH2 0x1ad7 00001abf: JUMPI 00001ac0: PUSH1 0x40 00001ac2: MLOAD 00001ac3: PUSH3 0x461bcd 00001ac7: PUSH1 0xe5 00001ac9: SHL 00001aca: DUP2 00001acb: MSTORE 00001acc: PUSH1 0x04 00001ace: ADD 00001acf: PUSH2 0x0188 00001ad2: SWAP1 00001ad3: PUSH2 0x2c3e 00001ad6: JUMP 00001ad7: JUMPDEST 00001ad8: PUSH1 0x00 00001ada: JUMPDEST 00001adb: DUP8 00001adc: MLOAD 00001add: DUP2 00001ade: LT 00001adf: ISZERO 00001ae0: PUSH2 0x1cf8 00001ae3: JUMPI 00001ae4: PUSH2 0x1aeb 00001ae7: PUSH2 0x258f 00001aea: JUMP 00001aeb: JUMPDEST 00001aec: DUP9 00001aed: DUP3 00001aee: DUP2 00001aef: MLOAD 00001af0: DUP2 00001af1: LT 00001af2: PUSH2 0x1af7 00001af5: JUMPI 00001af6: INVALID 00001af7: JUMPDEST 00001af8: PUSH1 0x20 00001afa: SWAP1 00001afb: DUP2 00001afc: MUL 00001afd: SWAP2 00001afe: SWAP1 00001aff: SWAP2 00001b00: ADD 00001b01: ADD 00001b02: MLOAD 00001b03: DUP1 00001b04: MLOAD 00001b05: PUSH1 0x40 00001b07: MLOAD 00001b08: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 00001b29: DUP2 00001b2a: MSTORE 00001b2b: SWAP2 00001b2c: SWAP3 00001b2d: POP 00001b2e: SWAP1 00001b2f: DUP8 00001b30: SWAP1 00001b31: PUSH1 0x01 00001b33: PUSH1 0x01 00001b35: PUSH1 0xa0 00001b37: SHL 00001b38: SUB 00001b39: DUP8 00001b3a: AND 00001b3b: SWAP1 00001b3c: PUSH4 0xdd62ed3e 00001b41: SWAP1 00001b42: PUSH2 0x1b51 00001b45: SWAP1 00001b46: ADDRESS 00001b47: SWAP1 00001b48: DUP7 00001b49: SWAP1 00001b4a: PUSH1 0x04 00001b4c: ADD 00001b4d: PUSH2 0x2b2d 00001b50: JUMP 00001b51: JUMPDEST 00001b52: PUSH1 0x20 00001b54: PUSH1 0x40 00001b56: MLOAD 00001b57: DUP1 00001b58: DUP4 00001b59: SUB 00001b5a: DUP2 00001b5b: PUSH1 0x00 00001b5d: DUP8 00001b5e: DUP1 00001b5f: EXTCODESIZE 00001b60: ISZERO 00001b61: DUP1 00001b62: ISZERO 00001b63: PUSH2 0x1b6b 00001b66: JUMPI 00001b67: PUSH1 0x00 00001b69: DUP1 00001b6a: REVERT 00001b6b: JUMPDEST 00001b6c: POP 00001b6d: GAS 00001b6e: CALL 00001b6f: ISZERO 00001b70: DUP1 00001b71: ISZERO 00001b72: PUSH2 0x1b7f 00001b75: JUMPI 00001b76: RETURNDATASIZE 00001b77: PUSH1 0x00 00001b79: DUP1 00001b7a: RETURNDATACOPY 00001b7b: RETURNDATASIZE 00001b7c: PUSH1 0x00 00001b7e: REVERT 00001b7f: JUMPDEST 00001b80: POP 00001b81: POP 00001b82: POP 00001b83: POP 00001b84: PUSH1 0x40 00001b86: MLOAD 00001b87: RETURNDATASIZE 00001b88: PUSH1 0x1f 00001b8a: NOT 00001b8b: PUSH1 0x1f 00001b8d: DUP3 00001b8e: ADD 00001b8f: AND 00001b90: DUP3 00001b91: ADD 00001b92: DUP1 00001b93: PUSH1 0x40 00001b95: MSTORE 00001b96: POP 00001b97: PUSH2 0x1ba3 00001b9a: SWAP2 00001b9b: SWAP1 00001b9c: DUP2 00001b9d: ADD 00001b9e: SWAP1 00001b9f: PUSH2 0x2916 00001ba2: JUMP 00001ba3: JUMPDEST 00001ba4: LT 00001ba5: ISZERO 00001ba6: PUSH2 0x1c47 00001ba9: JUMPI 00001baa: DUP2 00001bab: MLOAD 00001bac: PUSH1 0x40 00001bae: MLOAD 00001baf: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 00001bd0: DUP2 00001bd1: MSTORE 00001bd2: PUSH1 0x01 00001bd4: PUSH1 0x01 00001bd6: PUSH1 0xa0 00001bd8: SHL 00001bd9: SUB 00001bda: DUP8 00001bdb: AND 00001bdc: SWAP2 00001bdd: PUSH4 0x095ea7b3 00001be2: SWAP2 00001be3: PUSH2 0x1bf3 00001be6: SWAP2 00001be7: SWAP1 00001be8: PUSH1 0x00 00001bea: NOT 00001beb: SWAP1 00001bec: PUSH1 0x04 00001bee: ADD 00001bef: PUSH2 0x2b92 00001bf2: JUMP 00001bf3: JUMPDEST 00001bf4: PUSH1 0x20 00001bf6: PUSH1 0x40 00001bf8: MLOAD 00001bf9: DUP1 00001bfa: DUP4 00001bfb: SUB 00001bfc: DUP2 00001bfd: PUSH1 0x00 00001bff: DUP8 00001c00: DUP1 00001c01: EXTCODESIZE 00001c02: ISZERO 00001c03: DUP1 00001c04: ISZERO 00001c05: PUSH2 0x1c0d 00001c08: JUMPI 00001c09: PUSH1 0x00 00001c0b: DUP1 00001c0c: REVERT 00001c0d: JUMPDEST 00001c0e: POP 00001c0f: GAS 00001c10: CALL 00001c11: ISZERO 00001c12: DUP1 00001c13: ISZERO 00001c14: PUSH2 0x1c21 00001c17: JUMPI 00001c18: RETURNDATASIZE 00001c19: PUSH1 0x00 00001c1b: DUP1 00001c1c: RETURNDATACOPY 00001c1d: RETURNDATASIZE 00001c1e: PUSH1 0x00 00001c20: REVERT 00001c21: JUMPDEST 00001c22: POP 00001c23: POP 00001c24: POP 00001c25: POP 00001c26: PUSH1 0x40 00001c28: MLOAD 00001c29: RETURNDATASIZE 00001c2a: PUSH1 0x1f 00001c2c: NOT 00001c2d: PUSH1 0x1f 00001c2f: DUP3 00001c30: ADD 00001c31: AND 00001c32: DUP3 00001c33: ADD 00001c34: DUP1 00001c35: PUSH1 0x40 00001c37: MSTORE 00001c38: POP 00001c39: PUSH2 0x1c45 00001c3c: SWAP2 00001c3d: SWAP1 00001c3e: DUP2 00001c3f: ADD 00001c40: SWAP1 00001c41: PUSH2 0x28f0 00001c44: JUMP 00001c45: JUMPDEST 00001c46: POP 00001c47: JUMPDEST 00001c48: PUSH1 0x00 00001c4a: DUP2 00001c4b: PUSH1 0x01 00001c4d: PUSH1 0x01 00001c4f: PUSH1 0xa0 00001c51: SHL 00001c52: SUB 00001c53: AND 00001c54: PUSH4 0x7c5e9ea4 00001c59: DUP12 00001c5a: DUP6 00001c5b: PUSH1 0x20 00001c5d: ADD 00001c5e: MLOAD 00001c5f: DUP13 00001c60: DUP8 00001c61: PUSH1 0x40 00001c63: ADD 00001c64: MLOAD 00001c65: DUP9 00001c66: PUSH1 0x60 00001c68: ADD 00001c69: MLOAD 00001c6a: PUSH1 0x40 00001c6c: MLOAD 00001c6d: DUP7 00001c6e: PUSH4 0xffffffff 00001c73: AND 00001c74: PUSH1 0xe0 00001c76: SHL 00001c77: DUP2 00001c78: MSTORE 00001c79: PUSH1 0x04 00001c7b: ADD 00001c7c: PUSH2 0x1c89 00001c7f: SWAP6 00001c80: SWAP5 00001c81: SWAP4 00001c82: SWAP3 00001c83: SWAP2 00001c84: SWAP1 00001c85: PUSH2 0x2ba0 00001c88: JUMP 00001c89: JUMPDEST 00001c8a: PUSH1 0x40 00001c8c: DUP1 00001c8d: MLOAD 00001c8e: DUP1 00001c8f: DUP4 00001c90: SUB 00001c91: DUP2 00001c92: PUSH1 0x00 00001c94: DUP8 00001c95: DUP1 00001c96: EXTCODESIZE 00001c97: ISZERO 00001c98: DUP1 00001c99: ISZERO 00001c9a: PUSH2 0x1ca2 00001c9d: JUMPI 00001c9e: PUSH1 0x00 00001ca0: DUP1 00001ca1: REVERT 00001ca2: JUMPDEST 00001ca3: POP 00001ca4: GAS 00001ca5: CALL 00001ca6: ISZERO 00001ca7: DUP1 00001ca8: ISZERO 00001ca9: PUSH2 0x1cb6 00001cac: JUMPI 00001cad: RETURNDATASIZE 00001cae: PUSH1 0x00 00001cb0: DUP1 00001cb1: RETURNDATACOPY 00001cb2: RETURNDATASIZE 00001cb3: PUSH1 0x00 00001cb5: REVERT 00001cb6: JUMPDEST 00001cb7: POP 00001cb8: POP 00001cb9: POP 00001cba: POP 00001cbb: PUSH1 0x40 00001cbd: MLOAD 00001cbe: RETURNDATASIZE 00001cbf: PUSH1 0x1f 00001cc1: NOT 00001cc2: PUSH1 0x1f 00001cc4: DUP3 00001cc5: ADD 00001cc6: AND 00001cc7: DUP3 00001cc8: ADD 00001cc9: DUP1 00001cca: PUSH1 0x40 00001ccc: MSTORE 00001ccd: POP 00001cce: PUSH2 0x1cda 00001cd1: SWAP2 00001cd2: SWAP1 00001cd3: DUP2 00001cd4: ADD 00001cd5: SWAP1 00001cd6: PUSH2 0x2934 00001cd9: JUMP 00001cda: JUMPDEST 00001cdb: POP 00001cdc: SWAP1 00001cdd: POP 00001cde: PUSH2 0x1ce7 00001ce1: DUP2 00001ce2: DUP9 00001ce3: PUSH2 0x2561 00001ce6: JUMP 00001ce7: JUMPDEST 00001ce8: SWAP7 00001ce9: POP 00001cea: POP 00001ceb: PUSH1 0x01 00001ced: SWAP1 00001cee: SWAP3 00001cef: ADD 00001cf0: SWAP2 00001cf1: POP 00001cf2: PUSH2 0x1ada 00001cf5: SWAP1 00001cf6: POP 00001cf7: JUMP 00001cf8: JUMPDEST 00001cf9: POP 00001cfa: DUP4 00001cfb: DUP4 00001cfc: GT 00001cfd: ISZERO 00001cfe: PUSH2 0x1d19 00001d01: JUMPI 00001d02: PUSH1 0x40 00001d04: MLOAD 00001d05: PUSH3 0x461bcd 00001d09: PUSH1 0xe5 00001d0b: SHL 00001d0c: DUP2 00001d0d: MSTORE 00001d0e: PUSH1 0x04 00001d10: ADD 00001d11: PUSH2 0x0188 00001d14: SWAP1 00001d15: PUSH2 0x2c0e 00001d18: JUMP 00001d19: JUMPDEST 00001d1a: PUSH1 0x40 00001d1c: MLOAD 00001d1d: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00001d3e: DUP2 00001d3f: MSTORE 00001d40: PUSH1 0x01 00001d42: PUSH1 0x01 00001d44: PUSH1 0xa0 00001d46: SHL 00001d47: SUB 00001d48: DUP3 00001d49: AND 00001d4a: SWAP1 00001d4b: PUSH4 0xa9059cbb 00001d50: SWAP1 00001d51: CALLER 00001d52: SWAP1 00001d53: DUP4 00001d54: SWAP1 00001d55: PUSH4 0x70a08231 00001d5a: SWAP1 00001d5b: PUSH2 0x1d68 00001d5e: SWAP1 00001d5f: ADDRESS 00001d60: SWAP1 00001d61: PUSH1 0x04 00001d63: ADD 00001d64: PUSH2 0x2b1f 00001d67: JUMP 00001d68: JUMPDEST 00001d69: PUSH1 0x20 00001d6b: PUSH1 0x40 00001d6d: MLOAD 00001d6e: DUP1 00001d6f: DUP4 00001d70: SUB 00001d71: DUP2 00001d72: PUSH1 0x00 00001d74: DUP8 00001d75: DUP1 00001d76: EXTCODESIZE 00001d77: ISZERO 00001d78: DUP1 00001d79: ISZERO 00001d7a: PUSH2 0x1d82 00001d7d: JUMPI 00001d7e: PUSH1 0x00 00001d80: DUP1 00001d81: REVERT 00001d82: JUMPDEST 00001d83: POP 00001d84: GAS 00001d85: CALL 00001d86: ISZERO 00001d87: DUP1 00001d88: ISZERO 00001d89: PUSH2 0x1d96 00001d8c: JUMPI 00001d8d: RETURNDATASIZE 00001d8e: PUSH1 0x00 00001d90: DUP1 00001d91: RETURNDATACOPY 00001d92: RETURNDATASIZE 00001d93: PUSH1 0x00 00001d95: REVERT 00001d96: JUMPDEST 00001d97: POP 00001d98: POP 00001d99: POP 00001d9a: POP 00001d9b: PUSH1 0x40 00001d9d: MLOAD 00001d9e: RETURNDATASIZE 00001d9f: PUSH1 0x1f 00001da1: NOT 00001da2: PUSH1 0x1f 00001da4: DUP3 00001da5: ADD 00001da6: AND 00001da7: DUP3 00001da8: ADD 00001da9: DUP1 00001daa: PUSH1 0x40 00001dac: MSTORE 00001dad: POP 00001dae: PUSH2 0x1dba 00001db1: SWAP2 00001db2: SWAP1 00001db3: DUP2 00001db4: ADD 00001db5: SWAP1 00001db6: PUSH2 0x2916 00001db9: JUMP 00001dba: JUMPDEST 00001dbb: PUSH1 0x40 00001dbd: MLOAD 00001dbe: DUP4 00001dbf: PUSH4 0xffffffff 00001dc4: AND 00001dc5: PUSH1 0xe0 00001dc7: SHL 00001dc8: DUP2 00001dc9: MSTORE 00001dca: PUSH1 0x04 00001dcc: ADD 00001dcd: PUSH2 0x1dd7 00001dd0: SWAP3 00001dd1: SWAP2 00001dd2: SWAP1 00001dd3: PUSH2 0x2b77 00001dd6: JUMP 00001dd7: JUMPDEST 00001dd8: PUSH1 0x20 00001dda: PUSH1 0x40 00001ddc: MLOAD 00001ddd: DUP1 00001dde: DUP4 00001ddf: SUB 00001de0: DUP2 00001de1: PUSH1 0x00 00001de3: DUP8 00001de4: DUP1 00001de5: EXTCODESIZE 00001de6: ISZERO 00001de7: DUP1 00001de8: ISZERO 00001de9: PUSH2 0x1df1 00001dec: JUMPI 00001ded: PUSH1 0x00 00001def: DUP1 00001df0: REVERT 00001df1: JUMPDEST 00001df2: POP 00001df3: GAS 00001df4: CALL 00001df5: ISZERO 00001df6: DUP1 00001df7: ISZERO 00001df8: PUSH2 0x1e05 00001dfb: JUMPI 00001dfc: RETURNDATASIZE 00001dfd: PUSH1 0x00 00001dff: DUP1 00001e00: RETURNDATACOPY 00001e01: RETURNDATASIZE 00001e02: PUSH1 0x00 00001e04: REVERT 00001e05: JUMPDEST 00001e06: POP 00001e07: POP 00001e08: POP 00001e09: POP 00001e0a: PUSH1 0x40 00001e0c: MLOAD 00001e0d: RETURNDATASIZE 00001e0e: PUSH1 0x1f 00001e10: NOT 00001e11: PUSH1 0x1f 00001e13: DUP3 00001e14: ADD 00001e15: AND 00001e16: DUP3 00001e17: ADD 00001e18: DUP1 00001e19: PUSH1 0x40 00001e1b: MSTORE 00001e1c: POP 00001e1d: PUSH2 0x1e29 00001e20: SWAP2 00001e21: SWAP1 00001e22: DUP2 00001e23: ADD 00001e24: SWAP1 00001e25: PUSH2 0x28f0 00001e28: JUMP 00001e29: JUMPDEST 00001e2a: PUSH2 0x1e45 00001e2d: JUMPI 00001e2e: PUSH1 0x40 00001e30: MLOAD 00001e31: PUSH3 0x461bcd 00001e35: PUSH1 0xe5 00001e37: SHL 00001e38: DUP2 00001e39: MSTORE 00001e3a: PUSH1 0x04 00001e3c: ADD 00001e3d: PUSH2 0x0188 00001e40: SWAP1 00001e41: PUSH2 0x2c3e 00001e44: JUMP 00001e45: JUMPDEST 00001e46: PUSH1 0x40 00001e48: MLOAD 00001e49: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00001e6a: DUP2 00001e6b: MSTORE 00001e6c: PUSH1 0x01 00001e6e: PUSH1 0x01 00001e70: PUSH1 0xa0 00001e72: SHL 00001e73: SUB 00001e74: DUP4 00001e75: AND 00001e76: SWAP1 00001e77: PUSH4 0xa9059cbb 00001e7c: SWAP1 00001e7d: CALLER 00001e7e: SWAP1 00001e7f: DUP4 00001e80: SWAP1 00001e81: PUSH4 0x70a08231 00001e86: SWAP1 00001e87: PUSH2 0x1e94 00001e8a: SWAP1 00001e8b: ADDRESS 00001e8c: SWAP1 00001e8d: PUSH1 0x04 00001e8f: ADD 00001e90: PUSH2 0x2b1f 00001e93: JUMP 00001e94: JUMPDEST 00001e95: PUSH1 0x20 00001e97: PUSH1 0x40 00001e99: MLOAD 00001e9a: DUP1 00001e9b: DUP4 00001e9c: SUB 00001e9d: DUP2 00001e9e: PUSH1 0x00 00001ea0: DUP8 00001ea1: DUP1 00001ea2: EXTCODESIZE 00001ea3: ISZERO 00001ea4: DUP1 00001ea5: ISZERO 00001ea6: PUSH2 0x1eae 00001ea9: JUMPI 00001eaa: PUSH1 0x00 00001eac: DUP1 00001ead: REVERT 00001eae: JUMPDEST 00001eaf: POP 00001eb0: GAS 00001eb1: CALL 00001eb2: ISZERO 00001eb3: DUP1 00001eb4: ISZERO 00001eb5: PUSH2 0x1ec2 00001eb8: JUMPI 00001eb9: RETURNDATASIZE 00001eba: PUSH1 0x00 00001ebc: DUP1 00001ebd: RETURNDATACOPY 00001ebe: RETURNDATASIZE 00001ebf: PUSH1 0x00 00001ec1: REVERT 00001ec2: JUMPDEST 00001ec3: POP 00001ec4: POP 00001ec5: POP 00001ec6: POP 00001ec7: PUSH1 0x40 00001ec9: MLOAD 00001eca: RETURNDATASIZE 00001ecb: PUSH1 0x1f 00001ecd: NOT 00001ece: PUSH1 0x1f 00001ed0: DUP3 00001ed1: ADD 00001ed2: AND 00001ed3: DUP3 00001ed4: ADD 00001ed5: DUP1 00001ed6: PUSH1 0x40 00001ed8: MSTORE 00001ed9: POP 00001eda: PUSH2 0x1ee6 00001edd: SWAP2 00001ede: SWAP1 00001edf: DUP2 00001ee0: ADD 00001ee1: SWAP1 00001ee2: PUSH2 0x2916 00001ee5: JUMP 00001ee6: JUMPDEST 00001ee7: PUSH1 0x40 00001ee9: MLOAD 00001eea: DUP4 00001eeb: PUSH4 0xffffffff 00001ef0: AND 00001ef1: PUSH1 0xe0 00001ef3: SHL 00001ef4: DUP2 00001ef5: MSTORE 00001ef6: PUSH1 0x04 00001ef8: ADD 00001ef9: PUSH2 0x1f03 00001efc: SWAP3 00001efd: SWAP2 00001efe: SWAP1 00001eff: PUSH2 0x2b77 00001f02: JUMP 00001f03: JUMPDEST 00001f04: PUSH1 0x20 00001f06: PUSH1 0x40 00001f08: MLOAD 00001f09: DUP1 00001f0a: DUP4 00001f0b: SUB 00001f0c: DUP2 00001f0d: PUSH1 0x00 00001f0f: DUP8 00001f10: DUP1 00001f11: EXTCODESIZE 00001f12: ISZERO 00001f13: DUP1 00001f14: ISZERO 00001f15: PUSH2 0x1f1d 00001f18: JUMPI 00001f19: PUSH1 0x00 00001f1b: DUP1 00001f1c: REVERT 00001f1d: JUMPDEST 00001f1e: POP 00001f1f: GAS 00001f20: CALL 00001f21: ISZERO 00001f22: DUP1 00001f23: ISZERO 00001f24: PUSH2 0x1f31 00001f27: JUMPI 00001f28: RETURNDATASIZE 00001f29: PUSH1 0x00 00001f2b: DUP1 00001f2c: RETURNDATACOPY 00001f2d: RETURNDATASIZE 00001f2e: PUSH1 0x00 00001f30: REVERT 00001f31: JUMPDEST 00001f32: POP 00001f33: POP 00001f34: POP 00001f35: POP 00001f36: PUSH1 0x40 00001f38: MLOAD 00001f39: RETURNDATASIZE 00001f3a: PUSH1 0x1f 00001f3c: NOT 00001f3d: PUSH1 0x1f 00001f3f: DUP3 00001f40: ADD 00001f41: AND 00001f42: DUP3 00001f43: ADD 00001f44: DUP1 00001f45: PUSH1 0x40 00001f47: MSTORE 00001f48: POP 00001f49: PUSH2 0x1f55 00001f4c: SWAP2 00001f4d: SWAP1 00001f4e: DUP2 00001f4f: ADD 00001f50: SWAP1 00001f51: PUSH2 0x28f0 00001f54: JUMP 00001f55: JUMPDEST 00001f56: PUSH2 0x1f71 00001f59: JUMPI 00001f5a: PUSH1 0x40 00001f5c: MLOAD 00001f5d: PUSH3 0x461bcd 00001f61: PUSH1 0xe5 00001f63: SHL 00001f64: DUP2 00001f65: MSTORE 00001f66: PUSH1 0x04 00001f68: ADD 00001f69: PUSH2 0x0188 00001f6c: SWAP1 00001f6d: PUSH2 0x2c3e 00001f70: JUMP 00001f71: JUMPDEST 00001f72: POP 00001f73: POP 00001f74: PUSH1 0x00 00001f76: DUP1 00001f77: SLOAD 00001f78: PUSH1 0xff 00001f7a: NOT 00001f7b: AND 00001f7c: SWAP1 00001f7d: SSTORE 00001f7e: SWAP5 00001f7f: SWAP4 00001f80: POP 00001f81: POP 00001f82: POP 00001f83: POP 00001f84: JUMP 00001f85: JUMPDEST 00001f86: PUSH1 0x40 00001f88: MLOAD 00001f89: PUSH1 0x00 00001f8b: SWAP1 00001f8c: CALLER 00001f8d: SWAP1 00001f8e: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001faf: DUP4 00001fb0: CALLDATALOAD 00001fb1: AND 00001fb2: SWAP1 00001fb3: PUSH2 0x1fbf 00001fb6: SWAP1 00001fb7: DUP5 00001fb8: SWAP1 00001fb9: CALLDATASIZE 00001fba: SWAP1 00001fbb: PUSH2 0x2bec 00001fbe: JUMP 00001fbf: JUMPDEST 00001fc0: PUSH1 0x40 00001fc2: MLOAD 00001fc3: DUP1 00001fc4: SWAP2 00001fc5: SUB 00001fc6: SWAP1 00001fc7: LOG2 00001fc8: PUSH1 0x00 00001fca: SLOAD 00001fcb: PUSH1 0xff 00001fcd: AND 00001fce: ISZERO 00001fcf: PUSH2 0x1fea 00001fd2: JUMPI 00001fd3: PUSH1 0x40 00001fd5: MLOAD 00001fd6: PUSH3 0x461bcd 00001fda: PUSH1 0xe5 00001fdc: SHL 00001fdd: DUP2 00001fde: MSTORE 00001fdf: PUSH1 0x04 00001fe1: ADD 00001fe2: PUSH2 0x0188 00001fe5: SWAP1 00001fe6: PUSH2 0x2c1e 00001fe9: JUMP 00001fea: JUMPDEST 00001feb: PUSH1 0x00 00001fed: DUP1 00001fee: SLOAD 00001fef: PUSH1 0xff 00001ff1: NOT 00001ff2: AND 00001ff3: PUSH1 0x01 00001ff5: OR 00001ff6: SWAP1 00001ff7: SSTORE 00001ff8: PUSH1 0x40 00001ffa: MLOAD 00001ffb: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 0000201c: DUP2 0000201d: MSTORE 0000201e: DUP6 0000201f: SWAP1 00002020: DUP6 00002021: SWAP1 00002022: PUSH1 0x01 00002024: PUSH1 0x01 00002026: PUSH1 0xa0 00002028: SHL 00002029: SUB 0000202a: DUP4 0000202b: AND 0000202c: SWAP1 0000202d: PUSH4 0x23b872dd 00002032: SWAP1 00002033: PUSH2 0x2044 00002036: SWAP1 00002037: CALLER 00002038: SWAP1 00002039: ADDRESS 0000203a: SWAP1 0000203b: DUP11 0000203c: SWAP1 0000203d: PUSH1 0x04 0000203f: ADD 00002040: PUSH2 0x2b4f 00002043: JUMP 00002044: JUMPDEST 00002045: PUSH1 0x20 00002047: PUSH1 0x40 00002049: MLOAD 0000204a: DUP1 0000204b: DUP4 0000204c: SUB 0000204d: DUP2 0000204e: PUSH1 0x00 00002050: DUP8 00002051: DUP1 00002052: EXTCODESIZE 00002053: ISZERO 00002054: DUP1 00002055: ISZERO 00002056: PUSH2 0x205e 00002059: JUMPI 0000205a: PUSH1 0x00 0000205c: DUP1 0000205d: REVERT 0000205e: JUMPDEST 0000205f: POP 00002060: GAS 00002061: CALL 00002062: ISZERO 00002063: DUP1 00002064: ISZERO 00002065: PUSH2 0x2072 00002068: JUMPI 00002069: RETURNDATASIZE 0000206a: PUSH1 0x00 0000206c: DUP1 0000206d: RETURNDATACOPY 0000206e: RETURNDATASIZE 0000206f: PUSH1 0x00 00002071: REVERT 00002072: JUMPDEST 00002073: POP 00002074: POP 00002075: POP 00002076: POP 00002077: PUSH1 0x40 00002079: MLOAD 0000207a: RETURNDATASIZE 0000207b: PUSH1 0x1f 0000207d: NOT 0000207e: PUSH1 0x1f 00002080: DUP3 00002081: ADD 00002082: AND 00002083: DUP3 00002084: ADD 00002085: DUP1 00002086: PUSH1 0x40 00002088: MSTORE 00002089: POP 0000208a: PUSH2 0x2096 0000208d: SWAP2 0000208e: SWAP1 0000208f: DUP2 00002090: ADD 00002091: SWAP1 00002092: PUSH2 0x28f0 00002095: JUMP 00002096: JUMPDEST 00002097: PUSH2 0x20b2 0000209a: JUMPI 0000209b: PUSH1 0x40 0000209d: MLOAD 0000209e: PUSH3 0x461bcd 000020a2: PUSH1 0xe5 000020a4: SHL 000020a5: DUP2 000020a6: MSTORE 000020a7: PUSH1 0x04 000020a9: ADD 000020aa: PUSH2 0x0188 000020ad: SWAP1 000020ae: PUSH2 0x2c3e 000020b1: JUMP 000020b2: JUMPDEST 000020b3: PUSH1 0x00 000020b5: JUMPDEST 000020b6: DUP9 000020b7: MLOAD 000020b8: DUP2 000020b9: LT 000020ba: ISZERO 000020bb: PUSH2 0x22d3 000020be: JUMPI 000020bf: PUSH2 0x20c6 000020c2: PUSH2 0x258f 000020c5: JUMP 000020c6: JUMPDEST 000020c7: DUP10 000020c8: DUP3 000020c9: DUP2 000020ca: MLOAD 000020cb: DUP2 000020cc: LT 000020cd: PUSH2 0x20d2 000020d0: JUMPI 000020d1: INVALID 000020d2: JUMPDEST 000020d3: PUSH1 0x20 000020d5: SWAP1 000020d6: DUP2 000020d7: MUL 000020d8: SWAP2 000020d9: SWAP1 000020da: SWAP2 000020db: ADD 000020dc: ADD 000020dd: MLOAD 000020de: DUP1 000020df: MLOAD 000020e0: PUSH1 0x40 000020e2: MLOAD 000020e3: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 00002104: DUP2 00002105: MSTORE 00002106: SWAP2 00002107: SWAP3 00002108: POP 00002109: SWAP1 0000210a: DUP9 0000210b: SWAP1 0000210c: PUSH1 0x01 0000210e: PUSH1 0x01 00002110: PUSH1 0xa0 00002112: SHL 00002113: SUB 00002114: DUP8 00002115: AND 00002116: SWAP1 00002117: PUSH4 0xdd62ed3e 0000211c: SWAP1 0000211d: PUSH2 0x212c 00002120: SWAP1 00002121: ADDRESS 00002122: SWAP1 00002123: DUP7 00002124: SWAP1 00002125: PUSH1 0x04 00002127: ADD 00002128: PUSH2 0x2b2d 0000212b: JUMP 0000212c: JUMPDEST 0000212d: PUSH1 0x20 0000212f: PUSH1 0x40 00002131: MLOAD 00002132: DUP1 00002133: DUP4 00002134: SUB 00002135: DUP2 00002136: PUSH1 0x00 00002138: DUP8 00002139: DUP1 0000213a: EXTCODESIZE 0000213b: ISZERO 0000213c: DUP1 0000213d: ISZERO 0000213e: PUSH2 0x2146 00002141: JUMPI 00002142: PUSH1 0x00 00002144: DUP1 00002145: REVERT 00002146: JUMPDEST 00002147: POP 00002148: GAS 00002149: CALL 0000214a: ISZERO 0000214b: DUP1 0000214c: ISZERO 0000214d: PUSH2 0x215a 00002150: JUMPI 00002151: RETURNDATASIZE 00002152: PUSH1 0x00 00002154: DUP1 00002155: RETURNDATACOPY 00002156: RETURNDATASIZE 00002157: PUSH1 0x00 00002159: REVERT 0000215a: JUMPDEST 0000215b: POP 0000215c: POP 0000215d: POP 0000215e: POP 0000215f: PUSH1 0x40 00002161: MLOAD 00002162: RETURNDATASIZE 00002163: PUSH1 0x1f 00002165: NOT 00002166: PUSH1 0x1f 00002168: DUP3 00002169: ADD 0000216a: AND 0000216b: DUP3 0000216c: ADD 0000216d: DUP1 0000216e: PUSH1 0x40 00002170: MSTORE 00002171: POP 00002172: PUSH2 0x217e 00002175: SWAP2 00002176: SWAP1 00002177: DUP2 00002178: ADD 00002179: SWAP1 0000217a: PUSH2 0x2916 0000217d: JUMP 0000217e: JUMPDEST 0000217f: LT 00002180: ISZERO 00002181: PUSH2 0x2222 00002184: JUMPI 00002185: DUP2 00002186: MLOAD 00002187: PUSH1 0x40 00002189: MLOAD 0000218a: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 000021ab: DUP2 000021ac: MSTORE 000021ad: PUSH1 0x01 000021af: PUSH1 0x01 000021b1: PUSH1 0xa0 000021b3: SHL 000021b4: SUB 000021b5: DUP8 000021b6: AND 000021b7: SWAP2 000021b8: PUSH4 0x095ea7b3 000021bd: SWAP2 000021be: PUSH2 0x21ce 000021c1: SWAP2 000021c2: SWAP1 000021c3: PUSH1 0x00 000021c5: NOT 000021c6: SWAP1 000021c7: PUSH1 0x04 000021c9: ADD 000021ca: PUSH2 0x2b92 000021cd: JUMP 000021ce: JUMPDEST 000021cf: PUSH1 0x20 000021d1: PUSH1 0x40 000021d3: MLOAD 000021d4: DUP1 000021d5: DUP4 000021d6: SUB 000021d7: DUP2 000021d8: PUSH1 0x00 000021da: DUP8 000021db: DUP1 000021dc: EXTCODESIZE 000021dd: ISZERO 000021de: DUP1 000021df: ISZERO 000021e0: PUSH2 0x21e8 000021e3: JUMPI 000021e4: PUSH1 0x00 000021e6: DUP1 000021e7: REVERT 000021e8: JUMPDEST 000021e9: POP 000021ea: GAS 000021eb: CALL 000021ec: ISZERO 000021ed: DUP1 000021ee: ISZERO 000021ef: PUSH2 0x21fc 000021f2: JUMPI 000021f3: RETURNDATASIZE 000021f4: PUSH1 0x00 000021f6: DUP1 000021f7: RETURNDATACOPY 000021f8: RETURNDATASIZE 000021f9: PUSH1 0x00 000021fb: REVERT 000021fc: JUMPDEST 000021fd: POP 000021fe: POP 000021ff: POP 00002200: POP 00002201: PUSH1 0x40 00002203: MLOAD 00002204: RETURNDATASIZE 00002205: PUSH1 0x1f 00002207: NOT 00002208: PUSH1 0x1f 0000220a: DUP3 0000220b: ADD 0000220c: AND 0000220d: DUP3 0000220e: ADD 0000220f: DUP1 00002210: PUSH1 0x40 00002212: MSTORE 00002213: POP 00002214: PUSH2 0x2220 00002217: SWAP2 00002218: SWAP1 00002219: DUP2 0000221a: ADD 0000221b: SWAP1 0000221c: PUSH2 0x28f0 0000221f: JUMP 00002220: JUMPDEST 00002221: POP 00002222: JUMPDEST 00002223: PUSH1 0x00 00002225: DUP2 00002226: PUSH1 0x01 00002228: PUSH1 0x01 0000222a: PUSH1 0xa0 0000222c: SHL 0000222d: SUB 0000222e: AND 0000222f: PUSH4 0x8201aa3f 00002234: DUP13 00002235: DUP6 00002236: PUSH1 0x20 00002238: ADD 00002239: MLOAD 0000223a: DUP14 0000223b: DUP8 0000223c: PUSH1 0x40 0000223e: ADD 0000223f: MLOAD 00002240: DUP9 00002241: PUSH1 0x60 00002243: ADD 00002244: MLOAD 00002245: PUSH1 0x40 00002247: MLOAD 00002248: DUP7 00002249: PUSH4 0xffffffff 0000224e: AND 0000224f: PUSH1 0xe0 00002251: SHL 00002252: DUP2 00002253: MSTORE 00002254: PUSH1 0x04 00002256: ADD 00002257: PUSH2 0x2264 0000225a: SWAP6 0000225b: SWAP5 0000225c: SWAP4 0000225d: SWAP3 0000225e: SWAP2 0000225f: SWAP1 00002260: PUSH2 0x2ba0 00002263: JUMP 00002264: JUMPDEST 00002265: PUSH1 0x40 00002267: DUP1 00002268: MLOAD 00002269: DUP1 0000226a: DUP4 0000226b: SUB 0000226c: DUP2 0000226d: PUSH1 0x00 0000226f: DUP8 00002270: DUP1 00002271: EXTCODESIZE 00002272: ISZERO 00002273: DUP1 00002274: ISZERO 00002275: PUSH2 0x227d 00002278: JUMPI 00002279: PUSH1 0x00 0000227b: DUP1 0000227c: REVERT 0000227d: JUMPDEST 0000227e: POP 0000227f: GAS 00002280: CALL 00002281: ISZERO 00002282: DUP1 00002283: ISZERO 00002284: PUSH2 0x2291 00002287: JUMPI 00002288: RETURNDATASIZE 00002289: PUSH1 0x00 0000228b: DUP1 0000228c: RETURNDATACOPY 0000228d: RETURNDATASIZE 0000228e: PUSH1 0x00 00002290: REVERT 00002291: JUMPDEST 00002292: POP 00002293: POP 00002294: POP 00002295: POP 00002296: PUSH1 0x40 00002298: MLOAD 00002299: RETURNDATASIZE 0000229a: PUSH1 0x1f 0000229c: NOT 0000229d: PUSH1 0x1f 0000229f: DUP3 000022a0: ADD 000022a1: AND 000022a2: DUP3 000022a3: ADD 000022a4: DUP1 000022a5: PUSH1 0x40 000022a7: MSTORE 000022a8: POP 000022a9: PUSH2 0x22b5 000022ac: SWAP2 000022ad: SWAP1 000022ae: DUP2 000022af: ADD 000022b0: SWAP1 000022b1: PUSH2 0x2934 000022b4: JUMP 000022b5: JUMPDEST 000022b6: POP 000022b7: SWAP1 000022b8: POP 000022b9: PUSH2 0x22c2 000022bc: DUP2 000022bd: DUP9 000022be: PUSH2 0x2561 000022c1: JUMP 000022c2: JUMPDEST 000022c3: SWAP7 000022c4: POP 000022c5: POP 000022c6: PUSH1 0x01 000022c8: SWAP1 000022c9: SWAP3 000022ca: ADD 000022cb: SWAP2 000022cc: POP 000022cd: PUSH2 0x20b5 000022d0: SWAP1 000022d1: POP 000022d2: JUMP 000022d3: JUMPDEST 000022d4: POP 000022d5: DUP4 000022d6: DUP4 000022d7: LT 000022d8: ISZERO 000022d9: PUSH2 0x22f4 000022dc: JUMPI 000022dd: PUSH1 0x40 000022df: MLOAD 000022e0: PUSH3 0x461bcd 000022e4: PUSH1 0xe5 000022e6: SHL 000022e7: DUP2 000022e8: MSTORE 000022e9: PUSH1 0x04 000022eb: ADD 000022ec: PUSH2 0x0188 000022ef: SWAP1 000022f0: PUSH2 0x2bfe 000022f3: JUMP 000022f4: JUMPDEST 000022f5: PUSH1 0x40 000022f7: MLOAD 000022f8: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00002319: DUP2 0000231a: MSTORE 0000231b: PUSH1 0x01 0000231d: PUSH1 0x01 0000231f: PUSH1 0xa0 00002321: SHL 00002322: SUB 00002323: DUP3 00002324: AND 00002325: SWAP1 00002326: PUSH4 0xa9059cbb 0000232b: SWAP1 0000232c: CALLER 0000232d: SWAP1 0000232e: DUP4 0000232f: SWAP1 00002330: PUSH4 0x70a08231 00002335: SWAP1 00002336: PUSH2 0x2343 00002339: SWAP1 0000233a: ADDRESS 0000233b: SWAP1 0000233c: PUSH1 0x04 0000233e: ADD 0000233f: PUSH2 0x2b1f 00002342: JUMP 00002343: JUMPDEST 00002344: PUSH1 0x20 00002346: PUSH1 0x40 00002348: MLOAD 00002349: DUP1 0000234a: DUP4 0000234b: SUB 0000234c: DUP2 0000234d: PUSH1 0x00 0000234f: DUP8 00002350: DUP1 00002351: EXTCODESIZE 00002352: ISZERO 00002353: DUP1 00002354: ISZERO 00002355: PUSH2 0x235d 00002358: JUMPI 00002359: PUSH1 0x00 0000235b: DUP1 0000235c: REVERT 0000235d: JUMPDEST 0000235e: POP 0000235f: GAS 00002360: CALL 00002361: ISZERO 00002362: DUP1 00002363: ISZERO 00002364: PUSH2 0x2371 00002367: JUMPI 00002368: RETURNDATASIZE 00002369: PUSH1 0x00 0000236b: DUP1 0000236c: RETURNDATACOPY 0000236d: RETURNDATASIZE 0000236e: PUSH1 0x00 00002370: REVERT 00002371: JUMPDEST 00002372: POP 00002373: POP 00002374: POP 00002375: POP 00002376: PUSH1 0x40 00002378: MLOAD 00002379: RETURNDATASIZE 0000237a: PUSH1 0x1f 0000237c: NOT 0000237d: PUSH1 0x1f 0000237f: DUP3 00002380: ADD 00002381: AND 00002382: DUP3 00002383: ADD 00002384: DUP1 00002385: PUSH1 0x40 00002387: MSTORE 00002388: POP 00002389: PUSH2 0x2395 0000238c: SWAP2 0000238d: SWAP1 0000238e: DUP2 0000238f: ADD 00002390: SWAP1 00002391: PUSH2 0x2916 00002394: JUMP 00002395: JUMPDEST 00002396: PUSH1 0x40 00002398: MLOAD 00002399: DUP4 0000239a: PUSH4 0xffffffff 0000239f: AND 000023a0: PUSH1 0xe0 000023a2: SHL 000023a3: DUP2 000023a4: MSTORE 000023a5: PUSH1 0x04 000023a7: ADD 000023a8: PUSH2 0x23b2 000023ab: SWAP3 000023ac: SWAP2 000023ad: SWAP1 000023ae: PUSH2 0x2b77 000023b1: JUMP 000023b2: JUMPDEST 000023b3: PUSH1 0x20 000023b5: PUSH1 0x40 000023b7: MLOAD 000023b8: DUP1 000023b9: DUP4 000023ba: SUB 000023bb: DUP2 000023bc: PUSH1 0x00 000023be: DUP8 000023bf: DUP1 000023c0: EXTCODESIZE 000023c1: ISZERO 000023c2: DUP1 000023c3: ISZERO 000023c4: PUSH2 0x23cc 000023c7: JUMPI 000023c8: PUSH1 0x00 000023ca: DUP1 000023cb: REVERT 000023cc: JUMPDEST 000023cd: POP 000023ce: GAS 000023cf: CALL 000023d0: ISZERO 000023d1: DUP1 000023d2: ISZERO 000023d3: PUSH2 0x23e0 000023d6: JUMPI 000023d7: RETURNDATASIZE 000023d8: PUSH1 0x00 000023da: DUP1 000023db: RETURNDATACOPY 000023dc: RETURNDATASIZE 000023dd: PUSH1 0x00 000023df: REVERT 000023e0: JUMPDEST 000023e1: POP 000023e2: POP 000023e3: POP 000023e4: POP 000023e5: PUSH1 0x40 000023e7: MLOAD 000023e8: RETURNDATASIZE 000023e9: PUSH1 0x1f 000023eb: NOT 000023ec: PUSH1 0x1f 000023ee: DUP3 000023ef: ADD 000023f0: AND 000023f1: DUP3 000023f2: ADD 000023f3: DUP1 000023f4: PUSH1 0x40 000023f6: MSTORE 000023f7: POP 000023f8: PUSH2 0x2404 000023fb: SWAP2 000023fc: SWAP1 000023fd: DUP2 000023fe: ADD 000023ff: SWAP1 00002400: PUSH2 0x28f0 00002403: JUMP 00002404: JUMPDEST 00002405: PUSH2 0x2420 00002408: JUMPI 00002409: PUSH1 0x40 0000240b: MLOAD 0000240c: PUSH3 0x461bcd 00002410: PUSH1 0xe5 00002412: SHL 00002413: DUP2 00002414: MSTORE 00002415: PUSH1 0x04 00002417: ADD 00002418: PUSH2 0x0188 0000241b: SWAP1 0000241c: PUSH2 0x2c3e 0000241f: JUMP 00002420: JUMPDEST 00002421: PUSH1 0x40 00002423: MLOAD 00002424: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00002445: DUP2 00002446: MSTORE 00002447: PUSH1 0x01 00002449: PUSH1 0x01 0000244b: PUSH1 0xa0 0000244d: SHL 0000244e: SUB 0000244f: DUP4 00002450: AND 00002451: SWAP1 00002452: PUSH4 0xa9059cbb 00002457: SWAP1 00002458: CALLER 00002459: SWAP1 0000245a: DUP4 0000245b: SWAP1 0000245c: PUSH4 0x70a08231 00002461: SWAP1 00002462: PUSH2 0x246f 00002465: SWAP1 00002466: ADDRESS 00002467: SWAP1 00002468: PUSH1 0x04 0000246a: ADD 0000246b: PUSH2 0x2b1f 0000246e: JUMP 0000246f: JUMPDEST 00002470: PUSH1 0x20 00002472: PUSH1 0x40 00002474: MLOAD 00002475: DUP1 00002476: DUP4 00002477: SUB 00002478: DUP2 00002479: PUSH1 0x00 0000247b: DUP8 0000247c: DUP1 0000247d: EXTCODESIZE 0000247e: ISZERO 0000247f: DUP1 00002480: ISZERO 00002481: PUSH2 0x2489 00002484: JUMPI 00002485: PUSH1 0x00 00002487: DUP1 00002488: REVERT 00002489: JUMPDEST 0000248a: POP 0000248b: GAS 0000248c: CALL 0000248d: ISZERO 0000248e: DUP1 0000248f: ISZERO 00002490: PUSH2 0x249d 00002493: JUMPI 00002494: RETURNDATASIZE 00002495: PUSH1 0x00 00002497: DUP1 00002498: RETURNDATACOPY 00002499: RETURNDATASIZE 0000249a: PUSH1 0x00 0000249c: REVERT 0000249d: JUMPDEST 0000249e: POP 0000249f: POP 000024a0: POP 000024a1: POP 000024a2: PUSH1 0x40 000024a4: MLOAD 000024a5: RETURNDATASIZE 000024a6: PUSH1 0x1f 000024a8: NOT 000024a9: PUSH1 0x1f 000024ab: DUP3 000024ac: ADD 000024ad: AND 000024ae: DUP3 000024af: ADD 000024b0: DUP1 000024b1: PUSH1 0x40 000024b3: MSTORE 000024b4: POP 000024b5: PUSH2 0x24c1 000024b8: SWAP2 000024b9: SWAP1 000024ba: DUP2 000024bb: ADD 000024bc: SWAP1 000024bd: PUSH2 0x2916 000024c0: JUMP 000024c1: JUMPDEST 000024c2: PUSH1 0x40 000024c4: MLOAD 000024c5: DUP4 000024c6: PUSH4 0xffffffff 000024cb: AND 000024cc: PUSH1 0xe0 000024ce: SHL 000024cf: DUP2 000024d0: MSTORE 000024d1: PUSH1 0x04 000024d3: ADD 000024d4: PUSH2 0x24de 000024d7: SWAP3 000024d8: SWAP2 000024d9: SWAP1 000024da: PUSH2 0x2b77 000024dd: JUMP 000024de: JUMPDEST 000024df: PUSH1 0x20 000024e1: PUSH1 0x40 000024e3: MLOAD 000024e4: DUP1 000024e5: DUP4 000024e6: SUB 000024e7: DUP2 000024e8: PUSH1 0x00 000024ea: DUP8 000024eb: DUP1 000024ec: EXTCODESIZE 000024ed: ISZERO 000024ee: DUP1 000024ef: ISZERO 000024f0: PUSH2 0x24f8 000024f3: JUMPI 000024f4: PUSH1 0x00 000024f6: DUP1 000024f7: REVERT 000024f8: JUMPDEST 000024f9: POP 000024fa: GAS 000024fb: CALL 000024fc: ISZERO 000024fd: DUP1 000024fe: ISZERO 000024ff: PUSH2 0x250c 00002502: JUMPI 00002503: RETURNDATASIZE 00002504: PUSH1 0x00 00002506: DUP1 00002507: RETURNDATACOPY 00002508: RETURNDATASIZE 00002509: PUSH1 0x00 0000250b: REVERT 0000250c: JUMPDEST 0000250d: POP 0000250e: POP 0000250f: POP 00002510: POP 00002511: PUSH1 0x40 00002513: MLOAD 00002514: RETURNDATASIZE 00002515: PUSH1 0x1f 00002517: NOT 00002518: PUSH1 0x1f 0000251a: DUP3 0000251b: ADD 0000251c: AND 0000251d: DUP3 0000251e: ADD 0000251f: DUP1 00002520: PUSH1 0x40 00002522: MSTORE 00002523: POP 00002524: PUSH2 0x2530 00002527: SWAP2 00002528: SWAP1 00002529: DUP2 0000252a: ADD 0000252b: SWAP1 0000252c: PUSH2 0x28f0 0000252f: JUMP 00002530: JUMPDEST 00002531: PUSH2 0x254c 00002534: JUMPI 00002535: PUSH1 0x40 00002537: MLOAD 00002538: PUSH3 0x461bcd 0000253c: PUSH1 0xe5 0000253e: SHL 0000253f: DUP2 00002540: MSTORE 00002541: PUSH1 0x04 00002543: ADD 00002544: PUSH2 0x0188 00002547: SWAP1 00002548: PUSH2 0x2c3e 0000254b: JUMP 0000254c: JUMPDEST 0000254d: POP 0000254e: POP 0000254f: PUSH1 0x00 00002551: DUP1 00002552: SLOAD 00002553: PUSH1 0xff 00002555: NOT 00002556: AND 00002557: SWAP1 00002558: SSTORE 00002559: SWAP6 0000255a: SWAP5 0000255b: POP 0000255c: POP 0000255d: POP 0000255e: POP 0000255f: POP 00002560: JUMP 00002561: JUMPDEST 00002562: PUSH1 0x00 00002564: DUP3 00002565: DUP3 00002566: ADD 00002567: DUP4 00002568: DUP2 00002569: LT 0000256a: ISZERO 0000256b: PUSH2 0x2586 0000256e: JUMPI 0000256f: PUSH1 0x40 00002571: MLOAD 00002572: PUSH3 0x461bcd 00002576: PUSH1 0xe5 00002578: SHL 00002579: DUP2 0000257a: MSTORE 0000257b: PUSH1 0x04 0000257d: ADD 0000257e: PUSH2 0x0188 00002581: SWAP1 00002582: PUSH2 0x2c4e 00002585: JUMP 00002586: JUMPDEST 00002587: SWAP1 00002588: POP 00002589: JUMPDEST 0000258a: SWAP3 0000258b: SWAP2 0000258c: POP 0000258d: POP 0000258e: JUMP 0000258f: JUMPDEST 00002590: PUSH1 0x40 00002592: MLOAD 00002593: DUP1 00002594: PUSH1 0x80 00002596: ADD 00002597: PUSH1 0x40 00002599: MSTORE 0000259a: DUP1 0000259b: PUSH1 0x00 0000259d: PUSH1 0x01 0000259f: PUSH1 0x01 000025a1: PUSH1 0xa0 000025a3: SHL 000025a4: SUB 000025a5: AND 000025a6: DUP2 000025a7: MSTORE 000025a8: PUSH1 0x20 000025aa: ADD 000025ab: PUSH1 0x00 000025ad: DUP2 000025ae: MSTORE 000025af: PUSH1 0x20 000025b1: ADD 000025b2: PUSH1 0x00 000025b4: DUP2 000025b5: MSTORE 000025b6: PUSH1 0x20 000025b8: ADD 000025b9: PUSH1 0x00 000025bb: DUP2 000025bc: MSTORE 000025bd: POP 000025be: SWAP1 000025bf: JUMP 000025c0: JUMPDEST 000025c1: DUP1 000025c2: CALLDATALOAD 000025c3: PUSH2 0x2589 000025c6: DUP2 000025c7: PUSH2 0x2d26 000025ca: JUMP 000025cb: JUMPDEST 000025cc: PUSH1 0x00 000025ce: DUP3 000025cf: PUSH1 0x1f 000025d1: DUP4 000025d2: ADD 000025d3: SLT 000025d4: PUSH2 0x25dc 000025d7: JUMPI 000025d8: PUSH1 0x00 000025da: DUP1 000025db: REVERT 000025dc: JUMPDEST 000025dd: DUP2 000025de: CALLDATALOAD 000025df: PUSH2 0x25ef 000025e2: PUSH2 0x25ea 000025e5: DUP3 000025e6: PUSH2 0x2c93 000025e9: JUMP 000025ea: JUMPDEST 000025eb: PUSH2 0x2c6c 000025ee: JUMP 000025ef: JUMPDEST 000025f0: SWAP2 000025f1: POP 000025f2: DUP2 000025f3: DUP2 000025f4: DUP4 000025f5: MSTORE 000025f6: PUSH1 0x20 000025f8: DUP5 000025f9: ADD 000025fa: SWAP4 000025fb: POP 000025fc: PUSH1 0x20 000025fe: DUP2 000025ff: ADD 00002600: SWAP1 00002601: POP 00002602: DUP4 00002603: DUP6 00002604: PUSH1 0x80 00002606: DUP5 00002607: MUL 00002608: DUP3 00002609: ADD 0000260a: GT 0000260b: ISZERO 0000260c: PUSH2 0x2614 0000260f: JUMPI 00002610: PUSH1 0x00 00002612: DUP1 00002613: REVERT 00002614: JUMPDEST 00002615: PUSH1 0x00 00002617: JUMPDEST 00002618: DUP4 00002619: DUP2 0000261a: LT 0000261b: ISZERO 0000261c: PUSH2 0x2642 0000261f: JUMPI 00002620: DUP2 00002621: PUSH2 0x262a 00002624: DUP9 00002625: DUP3 00002626: PUSH2 0x2657 00002629: JUMP 0000262a: JUMPDEST 0000262b: DUP5 0000262c: MSTORE 0000262d: POP 0000262e: PUSH1 0x20 00002630: SWAP1 00002631: SWAP3 00002632: ADD 00002633: SWAP2 00002634: PUSH1 0x80 00002636: SWAP2 00002637: SWAP1 00002638: SWAP2 00002639: ADD 0000263a: SWAP1 0000263b: PUSH1 0x01 0000263d: ADD 0000263e: PUSH2 0x2617 00002641: JUMP 00002642: JUMPDEST 00002643: POP 00002644: POP 00002645: POP 00002646: POP 00002647: SWAP3 00002648: SWAP2 00002649: POP 0000264a: POP 0000264b: JUMP 0000264c: JUMPDEST 0000264d: DUP1 0000264e: MLOAD 0000264f: PUSH2 0x2589 00002652: DUP2 00002653: PUSH2 0x2d3d 00002656: JUMP 00002657: JUMPDEST 00002658: PUSH1 0x00 0000265a: PUSH1 0x80 0000265c: DUP3 0000265d: DUP5 0000265e: SUB 0000265f: SLT 00002660: ISZERO 00002661: PUSH2 0x2669 00002664: JUMPI 00002665: PUSH1 0x00 00002667: DUP1 00002668: REVERT 00002669: JUMPDEST 0000266a: PUSH2 0x2673 0000266d: PUSH1 0x80 0000266f: PUSH2 0x2c6c 00002672: JUMP 00002673: JUMPDEST 00002674: SWAP1 00002675: POP 00002676: PUSH1 0x00 00002678: PUSH2 0x2681 0000267b: DUP5 0000267c: DUP5 0000267d: PUSH2 0x25c0 00002680: JUMP 00002681: JUMPDEST 00002682: DUP3 00002683: MSTORE 00002684: POP 00002685: PUSH1 0x20 00002687: PUSH2 0x2692 0000268a: DUP5 0000268b: DUP5 0000268c: DUP4 0000268d: ADD 0000268e: PUSH2 0x26c6 00002691: JUMP 00002692: JUMPDEST 00002693: PUSH1 0x20 00002695: DUP4 00002696: ADD 00002697: MSTORE 00002698: POP 00002699: PUSH1 0x40 0000269b: PUSH2 0x26a6 0000269e: DUP5 0000269f: DUP3 000026a0: DUP6 000026a1: ADD 000026a2: PUSH2 0x26c6 000026a5: JUMP 000026a6: JUMPDEST 000026a7: PUSH1 0x40 000026a9: DUP4 000026aa: ADD 000026ab: MSTORE 000026ac: POP 000026ad: PUSH1 0x60 000026af: PUSH2 0x26ba 000026b2: DUP5 000026b3: DUP3 000026b4: DUP6 000026b5: ADD 000026b6: PUSH2 0x26c6 000026b9: JUMP 000026ba: JUMPDEST 000026bb: PUSH1 0x60 000026bd: DUP4 000026be: ADD 000026bf: MSTORE 000026c0: POP 000026c1: SWAP3 000026c2: SWAP2 000026c3: POP 000026c4: POP 000026c5: JUMP 000026c6: JUMPDEST 000026c7: DUP1 000026c8: CALLDATALOAD 000026c9: PUSH2 0x2589 000026cc: DUP2 000026cd: PUSH2 0x2d46 000026d0: JUMP 000026d1: JUMPDEST 000026d2: DUP1 000026d3: MLOAD 000026d4: PUSH2 0x2589 000026d7: DUP2 000026d8: PUSH2 0x2d46 000026db: JUMP 000026dc: JUMPDEST 000026dd: PUSH1 0x00 000026df: DUP1 000026e0: PUSH1 0x40 000026e2: DUP4 000026e3: DUP6 000026e4: SUB 000026e5: SLT 000026e6: ISZERO 000026e7: PUSH2 0x26ef 000026ea: JUMPI 000026eb: PUSH1 0x00 000026ed: DUP1 000026ee: REVERT 000026ef: JUMPDEST 000026f0: DUP3 000026f1: CALLDATALOAD 000026f2: PUSH8 0xffffffffffffffff 000026fb: DUP2 000026fc: GT 000026fd: ISZERO 000026fe: PUSH2 0x2706 00002701: JUMPI 00002702: PUSH1 0x00 00002704: DUP1 00002705: REVERT 00002706: JUMPDEST 00002707: PUSH2 0x2712 0000270a: DUP6 0000270b: DUP3 0000270c: DUP7 0000270d: ADD 0000270e: PUSH2 0x25cb 00002711: JUMP 00002712: JUMPDEST 00002713: SWAP3 00002714: POP 00002715: POP 00002716: PUSH1 0x20 00002718: PUSH2 0x2723 0000271b: DUP6 0000271c: DUP3 0000271d: DUP7 0000271e: ADD 0000271f: PUSH2 0x25c0 00002722: JUMP 00002723: JUMPDEST 00002724: SWAP2 00002725: POP 00002726: POP 00002727: SWAP3 00002728: POP 00002729: SWAP3 0000272a: SWAP1 0000272b: POP 0000272c: JUMP 0000272d: JUMPDEST 0000272e: PUSH1 0x00 00002730: DUP1 00002731: PUSH1 0x00 00002733: DUP1 00002734: PUSH1 0x80 00002736: DUP6 00002737: DUP8 00002738: SUB 00002739: SLT 0000273a: ISZERO 0000273b: PUSH2 0x2743 0000273e: JUMPI 0000273f: PUSH1 0x00 00002741: DUP1 00002742: REVERT 00002743: JUMPDEST 00002744: DUP5 00002745: CALLDATALOAD 00002746: PUSH8 0xffffffffffffffff 0000274f: DUP2 00002750: GT 00002751: ISZERO 00002752: PUSH2 0x275a 00002755: JUMPI 00002756: PUSH1 0x00 00002758: DUP1 00002759: REVERT 0000275a: JUMPDEST 0000275b: PUSH2 0x2766 0000275e: DUP8 0000275f: DUP3 00002760: DUP9 00002761: ADD 00002762: PUSH2 0x25cb 00002765: JUMP 00002766: JUMPDEST 00002767: SWAP5 00002768: POP 00002769: POP 0000276a: PUSH1 0x20 0000276c: PUSH2 0x2777 0000276f: DUP8 00002770: DUP3 00002771: DUP9 00002772: ADD 00002773: PUSH2 0x25c0 00002776: JUMP 00002777: JUMPDEST 00002778: SWAP4 00002779: POP 0000277a: POP 0000277b: PUSH1 0x40 0000277d: PUSH2 0x2788 00002780: DUP8 00002781: DUP3 00002782: DUP9 00002783: ADD 00002784: PUSH2 0x25c0 00002787: JUMP 00002788: JUMPDEST 00002789: SWAP3 0000278a: POP 0000278b: POP 0000278c: PUSH1 0x60 0000278e: PUSH2 0x2799 00002791: DUP8 00002792: DUP3 00002793: DUP9 00002794: ADD 00002795: PUSH2 0x26c6 00002798: JUMP 00002799: JUMPDEST 0000279a: SWAP2 0000279b: POP 0000279c: POP 0000279d: SWAP3 0000279e: SWAP6 0000279f: SWAP2 000027a0: SWAP5 000027a1: POP 000027a2: SWAP3 000027a3: POP 000027a4: JUMP 000027a5: JUMPDEST 000027a6: PUSH1 0x00 000027a8: DUP1 000027a9: PUSH1 0x00 000027ab: DUP1 000027ac: PUSH1 0x00 000027ae: PUSH1 0xa0 000027b0: DUP7 000027b1: DUP9 000027b2: SUB 000027b3: SLT 000027b4: ISZERO 000027b5: PUSH2 0x27bd 000027b8: JUMPI 000027b9: PUSH1 0x00 000027bb: DUP1 000027bc: REVERT 000027bd: JUMPDEST 000027be: DUP6 000027bf: CALLDATALOAD 000027c0: PUSH8 0xffffffffffffffff 000027c9: DUP2 000027ca: GT 000027cb: ISZERO 000027cc: PUSH2 0x27d4 000027cf: JUMPI 000027d0: PUSH1 0x00 000027d2: DUP1 000027d3: REVERT 000027d4: JUMPDEST 000027d5: PUSH2 0x27e0 000027d8: DUP9 000027d9: DUP3 000027da: DUP10 000027db: ADD 000027dc: PUSH2 0x25cb 000027df: JUMP 000027e0: JUMPDEST 000027e1: SWAP6 000027e2: POP 000027e3: POP 000027e4: PUSH1 0x20 000027e6: PUSH2 0x27f1 000027e9: DUP9 000027ea: DUP3 000027eb: DUP10 000027ec: ADD 000027ed: PUSH2 0x25c0 000027f0: JUMP 000027f1: JUMPDEST 000027f2: SWAP5 000027f3: POP 000027f4: POP 000027f5: PUSH1 0x40 000027f7: PUSH2 0x2802 000027fa: DUP9 000027fb: DUP3 000027fc: DUP10 000027fd: ADD 000027fe: PUSH2 0x25c0 00002801: JUMP 00002802: JUMPDEST 00002803: SWAP4 00002804: POP 00002805: POP 00002806: PUSH1 0x60 00002808: PUSH2 0x2813 0000280b: DUP9 0000280c: DUP3 0000280d: DUP10 0000280e: ADD 0000280f: PUSH2 0x26c6 00002812: JUMP 00002813: JUMPDEST 00002814: SWAP3 00002815: POP 00002816: POP 00002817: PUSH1 0x80 00002819: PUSH2 0x2824 0000281c: DUP9 0000281d: DUP3 0000281e: DUP10 0000281f: ADD 00002820: PUSH2 0x26c6 00002823: JUMP 00002824: JUMPDEST 00002825: SWAP2 00002826: POP 00002827: POP 00002828: SWAP3 00002829: SWAP6 0000282a: POP 0000282b: SWAP3 0000282c: SWAP6 0000282d: SWAP1 0000282e: SWAP4 0000282f: POP 00002830: JUMP 00002831: JUMPDEST 00002832: PUSH1 0x00 00002834: DUP1 00002835: PUSH1 0x00 00002837: PUSH1 0x60 00002839: DUP5 0000283a: DUP7 0000283b: SUB 0000283c: SLT 0000283d: ISZERO 0000283e: PUSH2 0x2846 00002841: JUMPI 00002842: PUSH1 0x00 00002844: DUP1 00002845: REVERT 00002846: JUMPDEST 00002847: DUP4 00002848: CALLDATALOAD 00002849: PUSH8 0xffffffffffffffff 00002852: DUP2 00002853: GT 00002854: ISZERO 00002855: PUSH2 0x285d 00002858: JUMPI 00002859: PUSH1 0x00 0000285b: DUP1 0000285c: REVERT 0000285d: JUMPDEST 0000285e: PUSH2 0x2869 00002861: DUP7 00002862: DUP3 00002863: DUP8 00002864: ADD 00002865: PUSH2 0x25cb 00002868: JUMP 00002869: JUMPDEST 0000286a: SWAP4 0000286b: POP 0000286c: POP 0000286d: PUSH1 0x20 0000286f: PUSH2 0x287a 00002872: DUP7 00002873: DUP3 00002874: DUP8 00002875: ADD 00002876: PUSH2 0x25c0 00002879: JUMP 0000287a: JUMPDEST 0000287b: SWAP3 0000287c: POP 0000287d: POP 0000287e: PUSH1 0x40 00002880: PUSH2 0x288b 00002883: DUP7 00002884: DUP3 00002885: DUP8 00002886: ADD 00002887: PUSH2 0x26c6 0000288a: JUMP 0000288b: JUMPDEST 0000288c: SWAP2 0000288d: POP 0000288e: POP 0000288f: SWAP3 00002890: POP 00002891: SWAP3 00002892: POP 00002893: SWAP3 00002894: JUMP 00002895: JUMPDEST 00002896: PUSH1 0x00 00002898: DUP1 00002899: PUSH1 0x00 0000289b: DUP1 0000289c: PUSH1 0x80 0000289e: DUP6 0000289f: DUP8 000028a0: SUB 000028a1: SLT 000028a2: ISZERO 000028a3: PUSH2 0x28ab 000028a6: JUMPI 000028a7: PUSH1 0x00 000028a9: DUP1 000028aa: REVERT 000028ab: JUMPDEST 000028ac: DUP5 000028ad: CALLDATALOAD 000028ae: PUSH8 0xffffffffffffffff 000028b7: DUP2 000028b8: GT 000028b9: ISZERO 000028ba: PUSH2 0x28c2 000028bd: JUMPI 000028be: PUSH1 0x00 000028c0: DUP1 000028c1: REVERT 000028c2: JUMPDEST 000028c3: PUSH2 0x28ce 000028c6: DUP8 000028c7: DUP3 000028c8: DUP9 000028c9: ADD 000028ca: PUSH2 0x25cb 000028cd: JUMP 000028ce: JUMPDEST 000028cf: SWAP5 000028d0: POP 000028d1: POP 000028d2: PUSH1 0x20 000028d4: PUSH2 0x28df 000028d7: DUP8 000028d8: DUP3 000028d9: DUP9 000028da: ADD 000028db: PUSH2 0x25c0 000028de: JUMP 000028df: JUMPDEST 000028e0: SWAP4 000028e1: POP 000028e2: POP 000028e3: PUSH1 0x40 000028e5: PUSH2 0x2788 000028e8: DUP8 000028e9: DUP3 000028ea: DUP9 000028eb: ADD 000028ec: PUSH2 0x26c6 000028ef: JUMP 000028f0: JUMPDEST 000028f1: PUSH1 0x00 000028f3: PUSH1 0x20 000028f5: DUP3 000028f6: DUP5 000028f7: SUB 000028f8: SLT 000028f9: ISZERO 000028fa: PUSH2 0x2902 000028fd: JUMPI 000028fe: PUSH1 0x00 00002900: DUP1 00002901: REVERT 00002902: JUMPDEST 00002903: PUSH1 0x00 00002905: PUSH2 0x290e 00002908: DUP5 00002909: DUP5 0000290a: PUSH2 0x264c 0000290d: JUMP 0000290e: JUMPDEST 0000290f: SWAP5 00002910: SWAP4 00002911: POP 00002912: POP 00002913: POP 00002914: POP 00002915: JUMP 00002916: JUMPDEST 00002917: PUSH1 0x00 00002919: PUSH1 0x20 0000291b: DUP3 0000291c: DUP5 0000291d: SUB 0000291e: SLT 0000291f: ISZERO 00002920: PUSH2 0x2928 00002923: JUMPI 00002924: PUSH1 0x00 00002926: DUP1 00002927: REVERT 00002928: JUMPDEST 00002929: PUSH1 0x00 0000292b: PUSH2 0x290e 0000292e: DUP5 0000292f: DUP5 00002930: PUSH2 0x26d1 00002933: JUMP 00002934: JUMPDEST 00002935: PUSH1 0x00 00002937: DUP1 00002938: PUSH1 0x40 0000293a: DUP4 0000293b: DUP6 0000293c: SUB 0000293d: SLT 0000293e: ISZERO 0000293f: PUSH2 0x2947 00002942: JUMPI 00002943: PUSH1 0x00 00002945: DUP1 00002946: REVERT 00002947: JUMPDEST 00002948: PUSH1 0x00 0000294a: PUSH2 0x2953 0000294d: DUP6 0000294e: DUP6 0000294f: PUSH2 0x26d1 00002952: JUMP 00002953: JUMPDEST 00002954: SWAP3 00002955: POP 00002956: POP 00002957: PUSH1 0x20 00002959: PUSH2 0x2723 0000295c: DUP6 0000295d: DUP3 0000295e: DUP7 0000295f: ADD 00002960: PUSH2 0x26d1 00002963: JUMP 00002964: JUMPDEST 00002965: PUSH2 0x296d 00002968: DUP2 00002969: PUSH2 0x2ce1 0000296c: JUMP 0000296d: JUMPDEST 0000296e: DUP3 0000296f: MSTORE 00002970: POP 00002971: POP 00002972: JUMP 00002973: JUMPDEST 00002974: PUSH2 0x296d 00002977: DUP2 00002978: PUSH2 0x2cc2 0000297b: JUMP 0000297c: JUMPDEST 0000297d: PUSH1 0x00 0000297f: PUSH2 0x2988 00002982: DUP4 00002983: DUP6 00002984: PUSH2 0x2cb4 00002987: JUMP 00002988: JUMPDEST 00002989: SWAP4 0000298a: POP 0000298b: PUSH2 0x2995 0000298e: DUP4 0000298f: DUP6 00002990: DUP5 00002991: PUSH2 0x2cf2 00002994: JUMP 00002995: JUMPDEST 00002996: PUSH2 0x299e 00002999: DUP4 0000299a: PUSH2 0x2cfe 0000299d: JUMP 0000299e: JUMPDEST 0000299f: SWAP1 000029a0: SWAP4 000029a1: ADD 000029a2: SWAP4 000029a3: SWAP3 000029a4: POP 000029a5: POP 000029a6: POP 000029a7: JUMP 000029a8: JUMPDEST 000029a9: PUSH1 0x00 000029ab: PUSH2 0x29b5 000029ae: PUSH1 0x0d 000029b0: DUP4 000029b1: PUSH2 0x2cb4 000029b4: JUMP 000029b5: JUMPDEST 000029b6: PUSH32 0x4552525f4c494d49545f4f555400000000000000000000000000000000000000 000029d7: DUP2 000029d8: MSTORE 000029d9: PUSH1 0x20 000029db: ADD 000029dc: SWAP3 000029dd: SWAP2 000029de: POP 000029df: POP 000029e0: JUMP 000029e1: JUMPDEST 000029e2: PUSH1 0x00 000029e4: PUSH2 0x29ee 000029e7: PUSH1 0x0c 000029e9: DUP4 000029ea: PUSH2 0x2cb4 000029ed: JUMP 000029ee: JUMPDEST 000029ef: PUSH32 0x4552525f4c494d49545f494e0000000000000000000000000000000000000000 00002a10: DUP2 00002a11: MSTORE 00002a12: PUSH1 0x20 00002a14: ADD 00002a15: SWAP3 00002a16: SWAP2 00002a17: POP 00002a18: POP 00002a19: JUMP 00002a1a: JUMPDEST 00002a1b: PUSH1 0x00 00002a1d: PUSH2 0x2a27 00002a20: PUSH1 0x0b 00002a22: DUP4 00002a23: PUSH2 0x2cb4 00002a26: JUMP 00002a27: JUMPDEST 00002a28: PUSH32 0x4552525f5245454e545259000000000000000000000000000000000000000000 00002a49: DUP2 00002a4a: MSTORE 00002a4b: PUSH1 0x20 00002a4d: ADD 00002a4e: SWAP3 00002a4f: SWAP2 00002a50: POP 00002a51: POP 00002a52: JUMP 00002a53: JUMPDEST 00002a54: PUSH1 0x00 00002a56: PUSH2 0x2a60 00002a59: PUSH1 0x0e 00002a5b: DUP4 00002a5c: PUSH2 0x2cb4 00002a5f: JUMP 00002a60: JUMPDEST 00002a61: PUSH32 0x4552525f4554485f4641494c4544000000000000000000000000000000000000 00002a82: DUP2 00002a83: MSTORE 00002a84: PUSH1 0x20 00002a86: ADD 00002a87: SWAP3 00002a88: SWAP2 00002a89: POP 00002a8a: POP 00002a8b: JUMP 00002a8c: JUMPDEST 00002a8d: PUSH1 0x00 00002a8f: PUSH2 0x2589 00002a92: PUSH1 0x00 00002a94: DUP4 00002a95: PUSH2 0x2cbd 00002a98: JUMP 00002a99: JUMPDEST 00002a9a: PUSH1 0x00 00002a9c: PUSH2 0x2aa6 00002a9f: PUSH1 0x13 00002aa1: DUP4 00002aa2: PUSH2 0x2cb4 00002aa5: JUMP 00002aa6: JUMPDEST 00002aa7: PUSH32 0x4552525f5452414e534645525f4641494c454400000000000000000000000000 00002ac8: DUP2 00002ac9: MSTORE 00002aca: PUSH1 0x20 00002acc: ADD 00002acd: SWAP3 00002ace: SWAP2 00002acf: POP 00002ad0: POP 00002ad1: JUMP 00002ad2: JUMPDEST 00002ad3: PUSH1 0x00 00002ad5: PUSH2 0x2adf 00002ad8: PUSH1 0x10 00002ada: DUP4 00002adb: PUSH2 0x2cb4 00002ade: JUMP 00002adf: JUMPDEST 00002ae0: PUSH32 0x4552525f4144445f4f564552464c4f5700000000000000000000000000000000 00002b01: DUP2 00002b02: MSTORE 00002b03: PUSH1 0x20 00002b05: ADD 00002b06: SWAP3 00002b07: SWAP2 00002b08: POP 00002b09: POP 00002b0a: JUMP 00002b0b: JUMPDEST 00002b0c: PUSH2 0x296d 00002b0f: DUP2 00002b10: PUSH2 0x2cde 00002b13: JUMP 00002b14: JUMPDEST 00002b15: PUSH1 0x00 00002b17: PUSH2 0x2589 00002b1a: DUP3 00002b1b: PUSH2 0x2a8c 00002b1e: JUMP 00002b1f: JUMPDEST 00002b20: PUSH1 0x20 00002b22: DUP2 00002b23: ADD 00002b24: PUSH2 0x2589 00002b27: DUP3 00002b28: DUP5 00002b29: PUSH2 0x2964 00002b2c: JUMP 00002b2d: JUMPDEST 00002b2e: PUSH1 0x40 00002b30: DUP2 00002b31: ADD 00002b32: PUSH2 0x2b3b 00002b35: DUP3 00002b36: DUP6 00002b37: PUSH2 0x2964 00002b3a: JUMP 00002b3b: JUMPDEST 00002b3c: PUSH2 0x2b48 00002b3f: PUSH1 0x20 00002b41: DUP4 00002b42: ADD 00002b43: DUP5 00002b44: PUSH2 0x2973 00002b47: JUMP 00002b48: JUMPDEST 00002b49: SWAP4 00002b4a: SWAP3 00002b4b: POP 00002b4c: POP 00002b4d: POP 00002b4e: JUMP 00002b4f: JUMPDEST 00002b50: PUSH1 0x60 00002b52: DUP2 00002b53: ADD 00002b54: PUSH2 0x2b5d 00002b57: DUP3 00002b58: DUP7 00002b59: PUSH2 0x2964 00002b5c: JUMP 00002b5d: JUMPDEST 00002b5e: PUSH2 0x2b6a 00002b61: PUSH1 0x20 00002b63: DUP4 00002b64: ADD 00002b65: DUP6 00002b66: PUSH2 0x2964 00002b69: JUMP 00002b6a: JUMPDEST 00002b6b: PUSH2 0x290e 00002b6e: PUSH1 0x40 00002b70: DUP4 00002b71: ADD 00002b72: DUP5 00002b73: PUSH2 0x2b0b 00002b76: JUMP 00002b77: JUMPDEST 00002b78: PUSH1 0x40 00002b7a: DUP2 00002b7b: ADD 00002b7c: PUSH2 0x2b85 00002b7f: DUP3 00002b80: DUP6 00002b81: PUSH2 0x2964 00002b84: JUMP 00002b85: JUMPDEST 00002b86: PUSH2 0x2b48 00002b89: PUSH1 0x20 00002b8b: DUP4 00002b8c: ADD 00002b8d: DUP5 00002b8e: PUSH2 0x2b0b 00002b91: JUMP 00002b92: JUMPDEST 00002b93: PUSH1 0x40 00002b95: DUP2 00002b96: ADD 00002b97: PUSH2 0x2b85 00002b9a: DUP3 00002b9b: DUP6 00002b9c: PUSH2 0x2973 00002b9f: JUMP 00002ba0: JUMPDEST 00002ba1: PUSH1 0xa0 00002ba3: DUP2 00002ba4: ADD 00002ba5: PUSH2 0x2bae 00002ba8: DUP3 00002ba9: DUP9 00002baa: PUSH2 0x2973 00002bad: JUMP 00002bae: JUMPDEST 00002baf: PUSH2 0x2bbb 00002bb2: PUSH1 0x20 00002bb4: DUP4 00002bb5: ADD 00002bb6: DUP8 00002bb7: PUSH2 0x2b0b 00002bba: JUMP 00002bbb: JUMPDEST 00002bbc: PUSH2 0x2bc8 00002bbf: PUSH1 0x40 00002bc1: DUP4 00002bc2: ADD 00002bc3: DUP7 00002bc4: PUSH2 0x2973 00002bc7: JUMP 00002bc8: JUMPDEST 00002bc9: PUSH2 0x2bd5 00002bcc: PUSH1 0x60 00002bce: DUP4 00002bcf: ADD 00002bd0: DUP6 00002bd1: PUSH2 0x2b0b 00002bd4: JUMP 00002bd5: JUMPDEST 00002bd6: PUSH2 0x2be2 00002bd9: PUSH1 0x80 00002bdb: DUP4 00002bdc: ADD 00002bdd: DUP5 00002bde: PUSH2 0x2b0b 00002be1: JUMP 00002be2: JUMPDEST 00002be3: SWAP7 00002be4: SWAP6 00002be5: POP 00002be6: POP 00002be7: POP 00002be8: POP 00002be9: POP 00002bea: POP 00002beb: JUMP 00002bec: JUMPDEST 00002bed: PUSH1 0x20 00002bef: DUP1 00002bf0: DUP3 00002bf1: MSTORE 00002bf2: DUP2 00002bf3: ADD 00002bf4: PUSH2 0x290e 00002bf7: DUP2 00002bf8: DUP5 00002bf9: DUP7 00002bfa: PUSH2 0x297c 00002bfd: JUMP 00002bfe: JUMPDEST 00002bff: PUSH1 0x20 00002c01: DUP1 00002c02: DUP3 00002c03: MSTORE 00002c04: DUP2 00002c05: ADD 00002c06: PUSH2 0x2589 00002c09: DUP2 00002c0a: PUSH2 0x29a8 00002c0d: JUMP 00002c0e: JUMPDEST 00002c0f: PUSH1 0x20 00002c11: DUP1 00002c12: DUP3 00002c13: MSTORE 00002c14: DUP2 00002c15: ADD 00002c16: PUSH2 0x2589 00002c19: DUP2 00002c1a: PUSH2 0x29e1 00002c1d: JUMP 00002c1e: JUMPDEST 00002c1f: PUSH1 0x20 00002c21: DUP1 00002c22: DUP3 00002c23: MSTORE 00002c24: DUP2 00002c25: ADD 00002c26: PUSH2 0x2589 00002c29: DUP2 00002c2a: PUSH2 0x2a1a 00002c2d: JUMP 00002c2e: JUMPDEST 00002c2f: PUSH1 0x20 00002c31: DUP1 00002c32: DUP3 00002c33: MSTORE 00002c34: DUP2 00002c35: ADD 00002c36: PUSH2 0x2589 00002c39: DUP2 00002c3a: PUSH2 0x2a53 00002c3d: JUMP 00002c3e: JUMPDEST 00002c3f: PUSH1 0x20 00002c41: DUP1 00002c42: DUP3 00002c43: MSTORE 00002c44: DUP2 00002c45: ADD 00002c46: PUSH2 0x2589 00002c49: DUP2 00002c4a: PUSH2 0x2a99 00002c4d: JUMP 00002c4e: JUMPDEST 00002c4f: PUSH1 0x20 00002c51: DUP1 00002c52: DUP3 00002c53: MSTORE 00002c54: DUP2 00002c55: ADD 00002c56: PUSH2 0x2589 00002c59: DUP2 00002c5a: PUSH2 0x2ad2 00002c5d: JUMP 00002c5e: JUMPDEST 00002c5f: PUSH1 0x20 00002c61: DUP2 00002c62: ADD 00002c63: PUSH2 0x2589 00002c66: DUP3 00002c67: DUP5 00002c68: PUSH2 0x2b0b 00002c6b: JUMP 00002c6c: JUMPDEST 00002c6d: PUSH1 0x40 00002c6f: MLOAD 00002c70: DUP2 00002c71: DUP2 00002c72: ADD 00002c73: PUSH8 0xffffffffffffffff 00002c7c: DUP2 00002c7d: GT 00002c7e: DUP3 00002c7f: DUP3 00002c80: LT 00002c81: OR 00002c82: ISZERO 00002c83: PUSH2 0x2c8b 00002c86: JUMPI 00002c87: PUSH1 0x00 00002c89: DUP1 00002c8a: REVERT 00002c8b: JUMPDEST 00002c8c: PUSH1 0x40 00002c8e: MSTORE 00002c8f: SWAP2 00002c90: SWAP1 00002c91: POP 00002c92: JUMP 00002c93: JUMPDEST 00002c94: PUSH1 0x00 00002c96: PUSH8 0xffffffffffffffff 00002c9f: DUP3 00002ca0: GT 00002ca1: ISZERO 00002ca2: PUSH2 0x2caa 00002ca5: JUMPI 00002ca6: PUSH1 0x00 00002ca8: DUP1 00002ca9: REVERT 00002caa: JUMPDEST 00002cab: POP 00002cac: PUSH1 0x20 00002cae: SWAP1 00002caf: DUP2 00002cb0: MUL 00002cb1: ADD 00002cb2: SWAP1 00002cb3: JUMP 00002cb4: JUMPDEST 00002cb5: SWAP1 00002cb6: DUP2 00002cb7: MSTORE 00002cb8: PUSH1 0x20 00002cba: ADD 00002cbb: SWAP1 00002cbc: JUMP 00002cbd: JUMPDEST 00002cbe: SWAP2 00002cbf: SWAP1 00002cc0: POP 00002cc1: JUMP 00002cc2: JUMPDEST 00002cc3: PUSH1 0x00 00002cc5: PUSH2 0x2589 00002cc8: DUP3 00002cc9: PUSH2 0x2cd2 00002ccc: JUMP 00002ccd: JUMPDEST 00002cce: ISZERO 00002ccf: ISZERO 00002cd0: SWAP1 00002cd1: JUMP 00002cd2: JUMPDEST 00002cd3: PUSH1 0x01 00002cd5: PUSH1 0x01 00002cd7: PUSH1 0xa0 00002cd9: SHL 00002cda: SUB 00002cdb: AND 00002cdc: SWAP1 00002cdd: JUMP 00002cde: JUMPDEST 00002cdf: SWAP1 00002ce0: JUMP 00002ce1: JUMPDEST 00002ce2: PUSH1 0x00 00002ce4: PUSH2 0x2589 00002ce7: DUP3 00002ce8: PUSH1 0x00 00002cea: PUSH2 0x2589 00002ced: DUP3 00002cee: PUSH2 0x2cc2 00002cf1: JUMP 00002cf2: JUMPDEST 00002cf3: DUP3 00002cf4: DUP2 00002cf5: DUP4 00002cf6: CALLDATACOPY 00002cf7: POP 00002cf8: PUSH1 0x00 00002cfa: SWAP2 00002cfb: ADD 00002cfc: MSTORE 00002cfd: JUMP 00002cfe: JUMPDEST 00002cff: PUSH1 0x1f 00002d01: ADD 00002d02: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00002d23: AND 00002d24: SWAP1 00002d25: JUMP 00002d26: JUMPDEST 00002d27: PUSH2 0x2d2f 00002d2a: DUP2 00002d2b: PUSH2 0x2cc2 00002d2e: JUMP 00002d2f: JUMPDEST 00002d30: DUP2 00002d31: EQ 00002d32: PUSH2 0x2d3a 00002d35: JUMPI 00002d36: PUSH1 0x00 00002d38: DUP1 00002d39: REVERT 00002d3a: JUMPDEST 00002d3b: POP 00002d3c: JUMP 00002d3d: JUMPDEST 00002d3e: PUSH2 0x2d2f 00002d41: DUP2 00002d42: PUSH2 0x2ccd 00002d45: JUMP 00002d46: JUMPDEST 00002d47: PUSH2 0x2d2f 00002d4a: DUP2 00002d4b: PUSH2 0x2cde 00002d4e: JUMP 00002d4f: INVALID 00002d50: LOG3 00002d51: PUSH6 0x627a7a723158 00002d58: KECCAK256 00002d59: SELFBALANCE 00002d5a: SLT 00002d5b: DUP1 00002d5c: DUP8 00002d5d: PUSH6 0x63df20ca7990 00002d64: UNKNOWN(0xD2) 00002d65: SWAP9 00002d66: SHL 00002d67: UNKNOWN(0xE9) 00002d68: CREATE 00002d69: MULMOD 00002d6a: UNKNOWN(0xB5) 00002d6b: ADD 00002d6c: UNKNOWN(0x22) 00002d6d: UNKNOWN(0xD7) 00002d6e: PUSH10 0xe6f0c5e0f881f314f5d9 00002d79: PUSH13 0x6578706572696d656e74616cf5 00002d87: PUSH5 0x736f6c6343 00002d8d: STOP 00002d8e: SDIV 00002d8f: UNKNOWN(0x0C) 00002d90: STOP 00002d91: BLOCKHASH
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x48f3f47b8e625393de1b3763f01d551d0906b79fd519ebffda19b74243f186d5
call_targets:
0x6317c5e82a06e1d8bf200d21f4510ac2c038ac81
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x48f3f47b8e625393de1b3763f01d551d0906b79fd519ebffda19b74243f186d5",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x6317c5e82a06e1d8bf200d21f4510ac2c038ac81"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x6b9b8f8f",
"selector": "0x6b9b8f8f",
"calldata_variants": [
"0x6b9b8f8f",
"0x6b9b8f8f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6d24fb96",
"selector": "0x6d24fb96",
"calldata_variants": [
"0x6d24fb96",
"0x6d24fb960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf4378240",
"selector": "0xf4378240",
"calldata_variants": [
"0xf4378240",
"0xf43782400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2999cdc7",
"selector": "0x2999cdc7",
"calldata_variants": [
"0x2999cdc7",
"0x2999cdc70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3ca9184e",
"selector": "0x3ca9184e",
"calldata_variants": [
"0x3ca9184e",
"0x3ca9184e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4e7ffa04",
"selector": "0x4e7ffa04",
"calldata_variants": [
"0x4e7ffa04",
"0x4e7ffa040000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 518,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 750,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 912,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 50,
"guards_detected": [],
"untrusted_call_count": 50
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x48f3f47b8e625393de1b3763f01d551d0906b79fd519ebffda19b74243f186d5
call_targets:
0x6317c5e82a06e1d8bf200d21f4510ac2c038ac81
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x48f3f47b8e625393de1b3763f01d551d0906b79fd519ebffda19b74243f186d5",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x6317c5e82a06e1d8bf200d21f4510ac2c038ac81"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x6b9b8f8f",
"selector": "0x6b9b8f8f",
"calldata_variants": [
"0x6b9b8f8f",
"0x6b9b8f8f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6d24fb96",
"selector": "0x6d24fb96",
"calldata_variants": [
"0x6d24fb96",
"0x6d24fb960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf4378240",
"selector": "0xf4378240",
"calldata_variants": [
"0xf4378240",
"0xf43782400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2999cdc7",
"selector": "0x2999cdc7",
"calldata_variants": [
"0x2999cdc7",
"0x2999cdc70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3ca9184e",
"selector": "0x3ca9184e",
"calldata_variants": [
"0x3ca9184e",
"0x3ca9184e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4e7ffa04",
"selector": "0x4e7ffa04",
"calldata_variants": [
"0x4e7ffa04",
"0x4e7ffa040000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 518,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 750,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 912,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 50,
"guards_detected": []
}
|
| high | upgradeability | slither | ExchangeProxy.batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#140-176) sends eth to arbitrary user | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "arbitrary-send-eth",
"elements": [
{
"name": "batchEthInSwapExactIn",
"type": "function",
"source_mapping": {
"lines": [
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176
],
"start": 5244,
"length": 1509,
"ending_column": 24,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 91,
"filename_absolute": "/tmp/slither-tuz645fb/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ExchangeProxy",
"type": "contract",
"source_mapping": {
"lines": [
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287
],
"start": 1343,
"length": 9905,
"ending_column": 80,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 11,
"filename_absolute": "/tmp/slither-tuz645fb/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256)"
}
},
{
"name": "(xfer,None) = msg.sender.call.value(wethBalance)()",
"type": "node",
"source_mapping": {
"lines": [
173,
174
],
"start": 6607,
"length": 53,
"ending_column": 22,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 64,
"filename_absolute": "/tmp/slither-tuz645fb/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "batchEthInSwapExactIn",
"type": "function",
"source_mapping": {
"lines": [
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176
],
"start": 5244,
"length": 1509,
"ending_column": 24,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 91,
"filename_absolute": "/tmp/slither-tuz645fb/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ExchangeProxy",
"type": "contract",
"source_mapping": {
"lines": [
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287
],
"start": 1343,
"length": 9905,
"ending_column": 80,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 11,
"filename_absolute": "/tmp/slither-tuz645fb/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "batchEthInSwapExactIn",
"type": "function",
"lines": [
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176
]
},
{
"file": "contracts/Contract.sol",
"name": "(xfer,None) = msg.sender.call.value(wethBalance)()",
"type": "node",
"lines": [
173,
174
]
}
],
"description": "ExchangeProxy.batchEthInSwapExactIn(ExchangeProxy.Swap[],address,uint256) (contracts/Contract.sol#140-176) sends eth to arbitrary user\n\tDangerous calls:\n\t- (xfer,None) = msg.sender.call.value(wethBalance)() (contracts/Contract.sol#173-174)"
}
|
| high | upgradeability | slither | ExchangeProxy.batchEthInSwapExactOut(ExchangeProxy.Swap[],address) (contracts/Contract.sol#215-249) sends eth to arbitrary user | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "arbitrary-send-eth",
"elements": [
{
"name": "batchEthInSwapExactOut",
"type": "function",
"source_mapping": {
"lines": [
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249
],
"start": 8298,
"length": 1403,
"ending_column": 39,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 27,
"filename_absolute": "/tmp/slither-tuz645fb/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ExchangeProxy",
"type": "contract",
"source_mapping": {
"lines": [
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287
],
"start": 1343,
"length": 9905,
"ending_column": 80,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 11,
"filename_absolute": "/tmp/slither-tuz645fb/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "batchEthInSwapExactOut(ExchangeProxy.Swap[],address)"
}
},
{
"name": "(xfer,None) = msg.sender.call.value(wethBalance)()",
"type": "node",
"source_mapping": {
"lines": [
246,
247,
248
],
"start": 9556,
"length": 53,
"ending_column": 42,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 64,
"filename_absolute": "/tmp/slither-tuz645fb/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "batchEthInSwapExactOut",
"type": "function",
"source_mapping": {
"lines": [
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249
],
"start": 8298,
"length": 1403,
"ending_column": 39,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 27,
"filename_absolute": "/tmp/slither-tuz645fb/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ExchangeProxy",
"type": "contract",
"source_mapping": {
"lines": [
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287
],
"start": 1343,
"length": 9905,
"ending_column": 80,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 11,
"filename_absolute": "/tmp/slither-tuz645fb/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "batchEthInSwapExactOut(ExchangeProxy.Swap[],address)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "batchEthInSwapExactOut",
"type": "function",
"lines": [
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249
]
},
{
"file": "contracts/Contract.sol",
"name": "(xfer,None) = msg.sender.call.value(wethBalance)()",
"type": "node",
"lines": [
246,
247,
248
]
}
],
"description": "ExchangeProxy.batchEthInSwapExactOut(ExchangeProxy.Swap[],address) (contracts/Contract.sol#215-249) sends eth to arbitrary user\n\tDangerous calls:\n\t- (xfer,None) = msg.sender.call.value(wethBalance)() (contracts/Contract.sol#246-248)"
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x69d0051b4d263f182e7ae86e0237ed3d74d14396aad60fcc1faf8dfde8006694
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 12,
"trace_id": "0x69d0051b4d263f182e7ae86e0237ed3d74d14396aad60fcc1faf8dfde8006694",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x6b9b8f8f",
"selector": "0x6b9b8f8f",
"calldata_variants": [
"0x6b9b8f8f",
"0x6b9b8f8f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6d24fb96",
"selector": "0x6d24fb96",
"calldata_variants": [
"0x6d24fb96",
"0x6d24fb960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf4378240",
"selector": "0xf4378240",
"calldata_variants": [
"0xf4378240",
"0xf43782400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2999cdc7",
"selector": "0x2999cdc7",
"calldata_variants": [
"0x2999cdc7",
"0x2999cdc70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3ca9184e",
"selector": "0x3ca9184e",
"calldata_variants": [
"0x3ca9184e",
"0x3ca9184e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4e7ffa04",
"selector": "0x4e7ffa04",
"calldata_variants": [
"0x4e7ffa04",
"0x4e7ffa040000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 50
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 47
}
|