019b477e-b00b-72d8-9a7d-41c502b090ac
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 |
|---|---|---|---|---|
| 21903 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 21904 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 65358 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 65359 | capability.graph | complete | 1 / 3 | 1 week ago |
| 65360 | detector.run | complete | 1 / 3 | 1 week ago |
| 65361 | validation.fork | complete | 1 / 3 | 1 week ago |
| 113496 | report.consolidate | complete | 1 / 6 | 1 week ago |
| 113497 | tool.slither | complete | 1 / 2 | 1 week ago |
'forge clean' running (wd: /tmp/slither-58e3kx89) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-58e3kx89) Reentrancy in Amplbitcratic.trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256) (contracts/Contract.sol#219-232): External calls: - tradeBalances(tokenGet,amountGet,tokenGive,amountGive,user,amount) (contracts/Contract.sol#228) - accountLevel = AccountLevels(accountLevelsAddr).accountLevel(user) (contracts/Contract.sol#237-238) State variables written after the call(s): - orderFills[user][hash] = safeAdd(orderFills[user][hash],amount) (contracts/Contract.sol#228-229) Amplbitcratic.orderFills (contracts/Contract.sol#131) can be used in cross function reentrancies: - Amplbitcratic.amountFilled(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32) (contracts/Contract.sol#265-273) - Amplbitcratic.availableVolume(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32) (contracts/Contract.sol#253-265) - Amplbitcratic.cancelOrder(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32) (contracts/Contract.sol#273-280) - Amplbitcratic.orderFills (contracts/Contract.sol#131) - Amplbitcratic.trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256) (contracts/Contract.sol#219-232) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1 Amplbitcratic.changeFeeMake(uint256) (contracts/Contract.sol#160-165) should emit an event for: - feeMake = feeMake_ (contracts/Contract.sol#165) Amplbitcratic.changeFeeTake(uint256) (contracts/Contract.sol#165-174) should emit an event for: - feeTake = feeTake_ (contracts/Contract.sol#171-173) Amplbitcratic.changeFeeRebate(uint256) (contracts/Contract.sol#174-180) should emit an event for: - feeRebate = feeRebate_ (contracts/Contract.sol#177-180) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-events-arithmetic Amplbitcratic.constructor(address,address,address,uint256,uint256,uint256).admin_ (contracts/Contract.sol#137) lacks a zero-check on : - admin = admin_ (contracts/Contract.sol#140) Amplbitcratic.constructor(address,address,address,uint256,uint256,uint256).feeAccount_ (contracts/Contract.sol#137) lacks a zero-check on : - feeAccount = feeAccount_ (contracts/Contract.sol#140) Amplbitcratic.constructor(address,address,address,uint256,uint256,uint256).accountLevelsAddr_ (contracts/Contract.sol#137-138) lacks a zero-check on : - accountLevelsAddr = accountLevelsAddr_ (contracts/Contract.sol#140) Amplbitcratic.changeAdmin(address).admin_ (contracts/Contract.sol#144) lacks a zero-check on : - admin = admin_ (contracts/Contract.sol#146-148) Amplbitcratic.changeAccountLevelsAddr(address).accountLevelsAddr_ (contracts/Contract.sol#151-153) lacks a zero-check on : - accountLevelsAddr = accountLevelsAddr_ (contracts/Contract.sol#154-156) Amplbitcratic.changeFeeAccount(address).feeAccount_ (contracts/Contract.sol#158) lacks a zero-check on : - feeAccount = feeAccount_ (contracts/Contract.sol#159-160) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation Reentrancy in Amplbitcratic.depositToken(address,uint256) (contracts/Contract.sol#192-201): External calls: - ! Token(token).transferFrom(msg.sender,this,amount) (contracts/Contract.sol#198-199) State variables written after the call(s): - tokens[token][msg.sender] = safeAdd(tokens[token][msg.sender],amount) (contracts/Contract.sol#199) Reentrancy in Amplbitcratic.tradeBalances(address,uint256,address,uint256,address,uint256) (contracts/Contract.sol#232-248): External calls: - accountLevel = AccountLevels(accountLevelsAddr).accountLevel(user) (contracts/Contract.sol#237-238) State variables written after the call(s): - tokens[tokenGet][msg.sender] = safeSub(tokens[tokenGet][msg.sender],safeAdd(amount,feeTakeXfer)) (contracts/Contract.sol#241-243) - tokens[tokenGet][user] = safeAdd(tokens[tokenGet][user],safeSub(safeAdd(amount,feeRebateXfer),feeMakeXfer)) (contracts/Contract.sol#243-244) - tokens[tokenGet][feeAccount] = safeAdd(tokens[tokenGet][feeAccount],safeSub(safeAdd(feeMakeXfer,feeTakeXfer),feeRebateXfer)) (contracts/Contract.sol#244-247) - tokens[tokenGive][user] = safeSub(tokens[tokenGive][user],safeMul(amountGive,amount) / amountGet) (contracts/Contract.sol#247) - tokens[tokenGive][msg.sender] = safeAdd(tokens[tokenGive][msg.sender],safeMul(amountGive,amount) / amountGet) (contracts/Contract.sol#247-248) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2 Reentrancy in Amplbitcratic.depositToken(address,uint256) (contracts/Contract.sol#192-201): External calls: - ! Token(token).transferFrom(msg.sender,this,amount) (contracts/Contract.sol#198-199) Event emitted after the call(s): - Deposit(token,msg.sender,amount,tokens[token][msg.sender]) (contracts/Contract.sol#199-201) Reentrancy in Amplbitcratic.trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256) (contracts/Contract.sol#219-232): External calls: - tradeBalances(tokenGet,amountGet,tokenGive,amountGive,user,amount) (contracts/Contract.sol#228) - accountLevel = AccountLevels(accountLevelsAddr).accountLevel(user) (contracts/Contract.sol#237-238) Event emitted after the call(s): - Trade(tokenGet,amount,tokenGive,amountGive * amount / amountGet,user,msg.sender) (contracts/Contract.sol#229-232) Reentrancy in Amplbitcratic.withdrawToken(address,uint256) (contracts/Contract.sol#201-209): External calls: - ! Token(token).transfer(msg.sender,amount) (contracts/Contract.sol#206-207) Event emitted after the call(s): - Withdraw(token,msg.sender,amount,tokens[token][msg.sender]) (contracts/Contract.sol#207-209) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3 Version constraint ^0.4.24 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - DirtyBytesArrayToStorage - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup - ImplicitConstructorCallvalueCheck - TupleAssignmentMultiStackSlotComponents - MemoryArrayCreationOverflow - privateCanBeOverridden - SignedArrayStorageCopy - ABIEncoderV2StorageArrayWithMultiSlotElement - DynamicConstructorArgumentsClippedABIV2 - UninitializedFunctionPointerInConstructor_0.4.x - IncorrectEventSignatureInLibraries_0.4.x - ABIEncoderV2PackedStorage_0.4.x - ExpExponentCleanup - EventStructWrongData. It is used by: - ^0.4.24 (contracts/Contract.sol#1) solc-0.4.24 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 Parameter StandardToken.transfer(address,uint256)._to (contracts/Contract.sol#37) is not in mixedCase Parameter StandardToken.transfer(address,uint256)._value (contracts/Contract.sol#37-39) is not in mixedCase Parameter StandardToken.transferFrom(address,address,uint256)._from (contracts/Contract.sol#49) is not in mixedCase Parameter StandardToken.transferFrom(address,address,uint256)._to (contracts/Contract.sol#49-51) is not in mixedCase Parameter StandardToken.transferFrom(address,address,uint256)._value (contracts/Contract.sol#52) is not in mixedCase Parameter StandardToken.balanceOf(address)._owner (contracts/Contract.sol#60-61) is not in mixedCase Parameter StandardToken.approve(address,uint256)._spender (contracts/Contract.sol#64-65) is not in mixedCase Parameter StandardToken.approve(address,uint256)._value (contracts/Contract.sol#65) is not in mixedCase Parameter StandardToken.allowance(address,address)._owner (contracts/Contract.sol#70) is not in mixedCase Parameter StandardToken.allowance(address,address)._spender (contracts/Contract.sol#70-71) is not in mixedCase Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions Reentrancy in Amplbitcratic.withdraw(uint256) (contracts/Contract.sol#185-192): External calls: - ! msg.sender.send(amount) (contracts/Contract.sol#188-191) Event emitted after the call(s): - Withdraw(0,msg.sender,amount,tokens[0][msg.sender]) (contracts/Contract.sol#191-192) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-4 ReserveToken (contracts/Contract.sol#80-98) does not implement functions: - Token.totalSupply() (contracts/Contract.sol#21-23) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unimplemented-functions Token.decimals (contracts/Contract.sol#31) should be constant Token.name (contracts/Contract.sol#31-33) should be constant Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant . analyzed (7 contracts with 100 detectors), 31 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.4.24",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.4.24",
"install_stderr": null,
"install_stdout": "Version '0.4.24' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-58e3kx89 --allow-paths /tmp/slither-58e3kx89,/tmp/slither-58e3kx89/lib,/tmp/slither-58e3kx89/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 31,
"workspace_hash": "ef81c15d1fdf98a1a63033dc74dc92eddba364088305bb8a4f54508f9bf9bae9",
"duration_seconds": 0.7767376899719238,
"solc_version_requested": "0.4.24"
}
OpenAI Codex v0.118.0 (research preview) -------- workdir: /tmp/codex-sb90rgrm model: gpt-5.4 provider: openai approval: never sandbox: read-only reasoning effort: high reasoning summaries: none session id: 019d5c95-bd5c-7181-a8ac-eff9f523137b -------- 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. warning: Codex could not find system bubblewrap on PATH. Please install bubblewrap with your package manager. Codex will use the vendored bubblewrap in the meantime. ERROR: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Apr 8th, 2026 9:11 AM. ERROR: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Apr 8th, 2026 9:11 AM.
{
"codex": {
"ran_at": "2026-04-05T07:40:12.101920+00:00",
"returncode": 1
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": null,
"no_findings": null,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0153 0000000c: JUMPI 0000000d: PUSH4 0xffffffff 00000012: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000030: PUSH1 0x00 00000032: CALLDATALOAD 00000033: DIV 00000034: AND 00000035: PUSH4 0x0a19b14a 0000003a: DUP2 0000003b: EQ 0000003c: PUSH2 0x0165 0000003f: JUMPI 00000040: DUP1 00000041: PUSH4 0x0b927666 00000046: EQ 00000047: PUSH2 0x01b6 0000004a: JUMPI 0000004b: DUP1 0000004c: PUSH4 0x19774d43 00000051: EQ 00000052: PUSH2 0x01ea 00000055: JUMPI 00000056: DUP1 00000057: PUSH4 0x278b8c0e 0000005c: EQ 0000005d: PUSH2 0x0220 00000060: JUMPI 00000061: DUP1 00000062: PUSH4 0x2e1a7d4d 00000067: EQ 00000068: PUSH2 0x0261 0000006b: JUMPI 0000006c: DUP1 0000006d: PUSH4 0x338b5dea 00000072: EQ 00000073: PUSH2 0x0279 00000076: JUMPI 00000077: DUP1 00000078: PUSH4 0x46be96c3 0000007d: EQ 0000007e: PUSH2 0x029d 00000081: JUMPI 00000082: DUP1 00000083: PUSH4 0x508493bc 00000088: EQ 00000089: PUSH2 0x02e8 0000008c: JUMPI 0000008d: DUP1 0000008e: PUSH4 0x54d03b5c 00000093: EQ 00000094: PUSH2 0x030f 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0x57786394 0000009e: EQ 0000009f: PUSH2 0x0327 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0x5e1d7ae4 000000a9: EQ 000000aa: PUSH2 0x033c 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0x65e17c9d 000000b4: EQ 000000b5: PUSH2 0x0354 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0x6c86888b 000000bf: EQ 000000c0: PUSH2 0x0385 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0x71ffcb16 000000ca: EQ 000000cb: PUSH2 0x03f3 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0x731c2f81 000000d5: EQ 000000d6: PUSH2 0x0414 000000d9: JUMPI 000000da: DUP1 000000db: PUSH4 0x8823a9c0 000000e0: EQ 000000e1: PUSH2 0x0429 000000e4: JUMPI 000000e5: DUP1 000000e6: PUSH4 0x8f283970 000000eb: EQ 000000ec: PUSH2 0x0441 000000ef: JUMPI 000000f0: DUP1 000000f1: PUSH4 0x9e281a98 000000f6: EQ 000000f7: PUSH2 0x0462 000000fa: JUMPI 000000fb: DUP1 000000fc: PUSH4 0xbb5f4629 00000101: EQ 00000102: PUSH2 0x0486 00000105: JUMPI 00000106: DUP1 00000107: PUSH4 0xc281309e 0000010c: EQ 0000010d: PUSH2 0x04aa 00000110: JUMPI 00000111: DUP1 00000112: PUSH4 0xd0e30db0 00000117: EQ 00000118: PUSH2 0x04bf 0000011b: JUMPI 0000011c: DUP1 0000011d: PUSH4 0xe8f6bc2e 00000122: EQ 00000123: PUSH2 0x04c7 00000126: JUMPI 00000127: DUP1 00000128: PUSH4 0xf3412942 0000012d: EQ 0000012e: PUSH2 0x04e8 00000131: JUMPI 00000132: DUP1 00000133: PUSH4 0xf7888aec 00000138: EQ 00000139: PUSH2 0x04fd 0000013c: JUMPI 0000013d: DUP1 0000013e: PUSH4 0xf851a440 00000143: EQ 00000144: PUSH2 0x0524 00000147: JUMPI 00000148: DUP1 00000149: PUSH4 0xfb6e155f 0000014e: EQ 0000014f: PUSH2 0x0539 00000152: JUMPI 00000153: JUMPDEST 00000154: CALLVALUE 00000155: DUP1 00000156: ISZERO 00000157: PUSH2 0x015f 0000015a: JUMPI 0000015b: PUSH1 0x00 0000015d: DUP1 0000015e: REVERT 0000015f: JUMPDEST 00000160: POP 00000161: PUSH1 0x00 00000163: DUP1 00000164: REVERT 00000165: JUMPDEST 00000166: CALLVALUE 00000167: DUP1 00000168: ISZERO 00000169: PUSH2 0x0171 0000016c: JUMPI 0000016d: PUSH1 0x00 0000016f: DUP1 00000170: REVERT 00000171: JUMPDEST 00000172: POP 00000173: PUSH2 0x01b4 00000176: PUSH1 0x01 00000178: PUSH1 0xa0 0000017a: PUSH1 0x02 0000017c: EXP 0000017d: SUB 0000017e: PUSH1 0x04 00000180: CALLDATALOAD 00000181: DUP2 00000182: AND 00000183: SWAP1 00000184: PUSH1 0x24 00000186: CALLDATALOAD 00000187: SWAP1 00000188: PUSH1 0x44 0000018a: CALLDATALOAD 0000018b: DUP2 0000018c: AND 0000018d: SWAP1 0000018e: PUSH1 0x64 00000190: CALLDATALOAD 00000191: SWAP1 00000192: PUSH1 0x84 00000194: CALLDATALOAD 00000195: SWAP1 00000196: PUSH1 0xa4 00000198: CALLDATALOAD 00000199: SWAP1 0000019a: PUSH1 0xc4 0000019c: CALLDATALOAD 0000019d: AND 0000019e: PUSH1 0xff 000001a0: PUSH1 0xe4 000001a2: CALLDATALOAD 000001a3: AND 000001a4: PUSH2 0x0104 000001a7: CALLDATALOAD 000001a8: PUSH2 0x0124 000001ab: CALLDATALOAD 000001ac: PUSH2 0x0144 000001af: CALLDATALOAD 000001b0: PUSH2 0x0584 000001b3: JUMP 000001b4: JUMPDEST 000001b5: STOP 000001b6: JUMPDEST 000001b7: CALLVALUE 000001b8: DUP1 000001b9: ISZERO 000001ba: PUSH2 0x01c2 000001bd: JUMPI 000001be: PUSH1 0x00 000001c0: DUP1 000001c1: REVERT 000001c2: JUMPDEST 000001c3: POP 000001c4: PUSH2 0x01b4 000001c7: PUSH1 0x01 000001c9: PUSH1 0xa0 000001cb: PUSH1 0x02 000001cd: EXP 000001ce: SUB 000001cf: PUSH1 0x04 000001d1: CALLDATALOAD 000001d2: DUP2 000001d3: AND 000001d4: SWAP1 000001d5: PUSH1 0x24 000001d7: CALLDATALOAD 000001d8: SWAP1 000001d9: PUSH1 0x44 000001db: CALLDATALOAD 000001dc: AND 000001dd: PUSH1 0x64 000001df: CALLDATALOAD 000001e0: PUSH1 0x84 000001e2: CALLDATALOAD 000001e3: PUSH1 0xa4 000001e5: CALLDATALOAD 000001e6: PUSH2 0x093d 000001e9: JUMP 000001ea: JUMPDEST 000001eb: CALLVALUE 000001ec: DUP1 000001ed: ISZERO 000001ee: PUSH2 0x01f6 000001f1: JUMPI 000001f2: PUSH1 0x00 000001f4: DUP1 000001f5: REVERT 000001f6: JUMPDEST 000001f7: POP 000001f8: PUSH2 0x020e 000001fb: PUSH1 0x01 000001fd: PUSH1 0xa0 000001ff: PUSH1 0x02 00000201: EXP 00000202: SUB 00000203: PUSH1 0x04 00000205: CALLDATALOAD 00000206: AND 00000207: PUSH1 0x24 00000209: CALLDATALOAD 0000020a: PUSH2 0x0ac9 0000020d: JUMP 0000020e: JUMPDEST 0000020f: PUSH1 0x40 00000211: DUP1 00000212: MLOAD 00000213: SWAP2 00000214: DUP3 00000215: MSTORE 00000216: MLOAD 00000217: SWAP1 00000218: DUP2 00000219: SWAP1 0000021a: SUB 0000021b: PUSH1 0x20 0000021d: ADD 0000021e: SWAP1 0000021f: RETURN 00000220: JUMPDEST 00000221: CALLVALUE 00000222: DUP1 00000223: ISZERO 00000224: PUSH2 0x022c 00000227: JUMPI 00000228: PUSH1 0x00 0000022a: DUP1 0000022b: REVERT 0000022c: JUMPDEST 0000022d: POP 0000022e: PUSH2 0x01b4 00000231: PUSH1 0x01 00000233: PUSH1 0xa0 00000235: PUSH1 0x02 00000237: EXP 00000238: SUB 00000239: PUSH1 0x04 0000023b: CALLDATALOAD 0000023c: DUP2 0000023d: AND 0000023e: SWAP1 0000023f: PUSH1 0x24 00000241: CALLDATALOAD 00000242: SWAP1 00000243: PUSH1 0x44 00000245: CALLDATALOAD 00000246: AND 00000247: PUSH1 0x64 00000249: CALLDATALOAD 0000024a: PUSH1 0x84 0000024c: CALLDATALOAD 0000024d: PUSH1 0xa4 0000024f: CALLDATALOAD 00000250: PUSH1 0xff 00000252: PUSH1 0xc4 00000254: CALLDATALOAD 00000255: AND 00000256: PUSH1 0xe4 00000258: CALLDATALOAD 00000259: PUSH2 0x0104 0000025c: CALLDATALOAD 0000025d: PUSH2 0x0ae6 00000260: JUMP 00000261: JUMPDEST 00000262: CALLVALUE 00000263: DUP1 00000264: ISZERO 00000265: PUSH2 0x026d 00000268: JUMPI 00000269: PUSH1 0x00 0000026b: DUP1 0000026c: REVERT 0000026d: JUMPDEST 0000026e: POP 0000026f: PUSH2 0x01b4 00000272: PUSH1 0x04 00000274: CALLDATALOAD 00000275: PUSH2 0x0dc1 00000278: JUMP 00000279: JUMPDEST 0000027a: CALLVALUE 0000027b: DUP1 0000027c: ISZERO 0000027d: PUSH2 0x0285 00000280: JUMPI 00000281: PUSH1 0x00 00000283: DUP1 00000284: REVERT 00000285: JUMPDEST 00000286: POP 00000287: PUSH2 0x01b4 0000028a: PUSH1 0x01 0000028c: PUSH1 0xa0 0000028e: PUSH1 0x02 00000290: EXP 00000291: SUB 00000292: PUSH1 0x04 00000294: CALLDATALOAD 00000295: AND 00000296: PUSH1 0x24 00000298: CALLDATALOAD 00000299: PUSH2 0x0ebc 0000029c: JUMP 0000029d: JUMPDEST 0000029e: CALLVALUE 0000029f: DUP1 000002a0: ISZERO 000002a1: PUSH2 0x02a9 000002a4: JUMPI 000002a5: PUSH1 0x00 000002a7: DUP1 000002a8: REVERT 000002a9: JUMPDEST 000002aa: POP 000002ab: PUSH2 0x020e 000002ae: PUSH1 0x01 000002b0: PUSH1 0xa0 000002b2: PUSH1 0x02 000002b4: EXP 000002b5: SUB 000002b6: PUSH1 0x04 000002b8: CALLDATALOAD 000002b9: DUP2 000002ba: AND 000002bb: SWAP1 000002bc: PUSH1 0x24 000002be: CALLDATALOAD 000002bf: SWAP1 000002c0: PUSH1 0x44 000002c2: CALLDATALOAD 000002c3: DUP2 000002c4: AND 000002c5: SWAP1 000002c6: PUSH1 0x64 000002c8: CALLDATALOAD 000002c9: SWAP1 000002ca: PUSH1 0x84 000002cc: CALLDATALOAD 000002cd: SWAP1 000002ce: PUSH1 0xa4 000002d0: CALLDATALOAD 000002d1: SWAP1 000002d2: PUSH1 0xc4 000002d4: CALLDATALOAD 000002d5: AND 000002d6: PUSH1 0xff 000002d8: PUSH1 0xe4 000002da: CALLDATALOAD 000002db: AND 000002dc: PUSH2 0x0104 000002df: CALLDATALOAD 000002e0: PUSH2 0x0124 000002e3: CALLDATALOAD 000002e4: PUSH2 0x1017 000002e7: JUMP 000002e8: JUMPDEST 000002e9: CALLVALUE 000002ea: DUP1 000002eb: ISZERO 000002ec: PUSH2 0x02f4 000002ef: JUMPI 000002f0: PUSH1 0x00 000002f2: DUP1 000002f3: REVERT 000002f4: JUMPDEST 000002f5: POP 000002f6: PUSH2 0x020e 000002f9: PUSH1 0x01 000002fb: PUSH1 0xa0 000002fd: PUSH1 0x02 000002ff: EXP 00000300: SUB 00000301: PUSH1 0x04 00000303: CALLDATALOAD 00000304: DUP2 00000305: AND 00000306: SWAP1 00000307: PUSH1 0x24 00000309: CALLDATALOAD 0000030a: AND 0000030b: PUSH2 0x1144 0000030e: JUMP 0000030f: JUMPDEST 00000310: CALLVALUE 00000311: DUP1 00000312: ISZERO 00000313: PUSH2 0x031b 00000316: JUMPI 00000317: PUSH1 0x00 00000319: DUP1 0000031a: REVERT 0000031b: JUMPDEST 0000031c: POP 0000031d: PUSH2 0x01b4 00000320: PUSH1 0x04 00000322: CALLDATALOAD 00000323: PUSH2 0x1161 00000326: JUMP 00000327: JUMPDEST 00000328: CALLVALUE 00000329: DUP1 0000032a: ISZERO 0000032b: PUSH2 0x0333 0000032e: JUMPI 0000032f: PUSH1 0x00 00000331: DUP1 00000332: REVERT 00000333: JUMPDEST 00000334: POP 00000335: PUSH2 0x020e 00000338: PUSH2 0x118c 0000033b: JUMP 0000033c: JUMPDEST 0000033d: CALLVALUE 0000033e: DUP1 0000033f: ISZERO 00000340: PUSH2 0x0348 00000343: JUMPI 00000344: PUSH1 0x00 00000346: DUP1 00000347: REVERT 00000348: JUMPDEST 00000349: POP 0000034a: PUSH2 0x01b4 0000034d: PUSH1 0x04 0000034f: CALLDATALOAD 00000350: PUSH2 0x1192 00000353: JUMP 00000354: JUMPDEST 00000355: CALLVALUE 00000356: DUP1 00000357: ISZERO 00000358: PUSH2 0x0360 0000035b: JUMPI 0000035c: PUSH1 0x00 0000035e: DUP1 0000035f: REVERT 00000360: JUMPDEST 00000361: POP 00000362: PUSH2 0x0369 00000365: PUSH2 0x11c9 00000368: JUMP 00000369: JUMPDEST 0000036a: PUSH1 0x40 0000036c: DUP1 0000036d: MLOAD 0000036e: PUSH1 0x01 00000370: PUSH1 0xa0 00000372: PUSH1 0x02 00000374: EXP 00000375: SUB 00000376: SWAP1 00000377: SWAP3 00000378: AND 00000379: DUP3 0000037a: MSTORE 0000037b: MLOAD 0000037c: SWAP1 0000037d: DUP2 0000037e: SWAP1 0000037f: SUB 00000380: PUSH1 0x20 00000382: ADD 00000383: SWAP1 00000384: RETURN 00000385: JUMPDEST 00000386: CALLVALUE 00000387: DUP1 00000388: ISZERO 00000389: PUSH2 0x0391 0000038c: JUMPI 0000038d: PUSH1 0x00 0000038f: DUP1 00000390: REVERT 00000391: JUMPDEST 00000392: POP 00000393: PUSH2 0x03df 00000396: PUSH1 0x01 00000398: PUSH1 0xa0 0000039a: PUSH1 0x02 0000039c: EXP 0000039d: SUB 0000039e: PUSH1 0x04 000003a0: CALLDATALOAD 000003a1: DUP2 000003a2: AND 000003a3: SWAP1 000003a4: PUSH1 0x24 000003a6: CALLDATALOAD 000003a7: SWAP1 000003a8: PUSH1 0x44 000003aa: CALLDATALOAD 000003ab: DUP2 000003ac: AND 000003ad: SWAP1 000003ae: PUSH1 0x64 000003b0: CALLDATALOAD 000003b1: SWAP1 000003b2: PUSH1 0x84 000003b4: CALLDATALOAD 000003b5: SWAP1 000003b6: PUSH1 0xa4 000003b8: CALLDATALOAD 000003b9: SWAP1 000003ba: PUSH1 0xc4 000003bc: CALLDATALOAD 000003bd: DUP2 000003be: AND 000003bf: SWAP1 000003c0: PUSH1 0xff 000003c2: PUSH1 0xe4 000003c4: CALLDATALOAD 000003c5: AND 000003c6: SWAP1 000003c7: PUSH2 0x0104 000003ca: CALLDATALOAD 000003cb: SWAP1 000003cc: PUSH2 0x0124 000003cf: CALLDATALOAD 000003d0: SWAP1 000003d1: PUSH2 0x0144 000003d4: CALLDATALOAD 000003d5: SWAP1 000003d6: PUSH2 0x0164 000003d9: CALLDATALOAD 000003da: AND 000003db: PUSH2 0x11d8 000003de: JUMP 000003df: JUMPDEST 000003e0: PUSH1 0x40 000003e2: DUP1 000003e3: MLOAD 000003e4: SWAP2 000003e5: ISZERO 000003e6: ISZERO 000003e7: DUP3 000003e8: MSTORE 000003e9: MLOAD 000003ea: SWAP1 000003eb: DUP2 000003ec: SWAP1 000003ed: SUB 000003ee: PUSH1 0x20 000003f0: ADD 000003f1: SWAP1 000003f2: RETURN 000003f3: JUMPDEST 000003f4: CALLVALUE 000003f5: DUP1 000003f6: ISZERO 000003f7: PUSH2 0x03ff 000003fa: JUMPI 000003fb: PUSH1 0x00 000003fd: DUP1 000003fe: REVERT 000003ff: JUMPDEST 00000400: POP 00000401: PUSH2 0x01b4 00000404: PUSH1 0x01 00000406: PUSH1 0xa0 00000408: PUSH1 0x02 0000040a: EXP 0000040b: SUB 0000040c: PUSH1 0x04 0000040e: CALLDATALOAD 0000040f: AND 00000410: PUSH2 0x1242 00000413: JUMP 00000414: JUMPDEST 00000415: CALLVALUE 00000416: DUP1 00000417: ISZERO 00000418: PUSH2 0x0420 0000041b: JUMPI 0000041c: PUSH1 0x00 0000041e: DUP1 0000041f: REVERT 00000420: JUMPDEST 00000421: POP 00000422: PUSH2 0x020e 00000425: PUSH2 0x1288 00000428: JUMP 00000429: JUMPDEST 0000042a: CALLVALUE 0000042b: DUP1 0000042c: ISZERO 0000042d: PUSH2 0x0435 00000430: JUMPI 00000431: PUSH1 0x00 00000433: DUP1 00000434: REVERT 00000435: JUMPDEST 00000436: POP 00000437: PUSH2 0x01b4 0000043a: PUSH1 0x04 0000043c: CALLDATALOAD 0000043d: PUSH2 0x128e 00000440: JUMP 00000441: JUMPDEST 00000442: CALLVALUE 00000443: DUP1 00000444: ISZERO 00000445: PUSH2 0x044d 00000448: JUMPI 00000449: PUSH1 0x00 0000044b: DUP1 0000044c: REVERT 0000044d: JUMPDEST 0000044e: POP 0000044f: PUSH2 0x01b4 00000452: PUSH1 0x01 00000454: PUSH1 0xa0 00000456: PUSH1 0x02 00000458: EXP 00000459: SUB 0000045a: PUSH1 0x04 0000045c: CALLDATALOAD 0000045d: AND 0000045e: PUSH2 0x12c5 00000461: JUMP 00000462: JUMPDEST 00000463: CALLVALUE 00000464: DUP1 00000465: ISZERO 00000466: PUSH2 0x046e 00000469: JUMPI 0000046a: PUSH1 0x00 0000046c: DUP1 0000046d: REVERT 0000046e: JUMPDEST 0000046f: POP 00000470: PUSH2 0x01b4 00000473: PUSH1 0x01 00000475: PUSH1 0xa0 00000477: PUSH1 0x02 00000479: EXP 0000047a: SUB 0000047b: PUSH1 0x04 0000047d: CALLDATALOAD 0000047e: AND 0000047f: PUSH1 0x24 00000481: CALLDATALOAD 00000482: PUSH2 0x130b 00000485: JUMP 00000486: JUMPDEST 00000487: CALLVALUE 00000488: DUP1 00000489: ISZERO 0000048a: PUSH2 0x0492 0000048d: JUMPI 0000048e: PUSH1 0x00 00000490: DUP1 00000491: REVERT 00000492: JUMPDEST 00000493: POP 00000494: PUSH2 0x03df 00000497: PUSH1 0x01 00000499: PUSH1 0xa0 0000049b: PUSH1 0x02 0000049d: EXP 0000049e: SUB 0000049f: PUSH1 0x04 000004a1: CALLDATALOAD 000004a2: AND 000004a3: PUSH1 0x24 000004a5: CALLDATALOAD 000004a6: PUSH2 0x14a6 000004a9: JUMP 000004aa: JUMPDEST 000004ab: CALLVALUE 000004ac: DUP1 000004ad: ISZERO 000004ae: PUSH2 0x04b6 000004b1: JUMPI 000004b2: PUSH1 0x00 000004b4: DUP1 000004b5: REVERT 000004b6: JUMPDEST 000004b7: POP 000004b8: PUSH2 0x020e 000004bb: PUSH2 0x14c6 000004be: JUMP 000004bf: JUMPDEST 000004c0: PUSH2 0x01b4 000004c3: PUSH2 0x14cc 000004c6: JUMP 000004c7: JUMPDEST 000004c8: CALLVALUE 000004c9: DUP1 000004ca: ISZERO 000004cb: PUSH2 0x04d3 000004ce: JUMPI 000004cf: PUSH1 0x00 000004d1: DUP1 000004d2: REVERT 000004d3: JUMPDEST 000004d4: POP 000004d5: PUSH2 0x01b4 000004d8: PUSH1 0x01 000004da: PUSH1 0xa0 000004dc: PUSH1 0x02 000004de: EXP 000004df: SUB 000004e0: PUSH1 0x04 000004e2: CALLDATALOAD 000004e3: AND 000004e4: PUSH2 0x155b 000004e7: JUMP 000004e8: JUMPDEST 000004e9: CALLVALUE 000004ea: DUP1 000004eb: ISZERO 000004ec: PUSH2 0x04f4 000004ef: JUMPI 000004f0: PUSH1 0x00 000004f2: DUP1 000004f3: REVERT 000004f4: JUMPDEST 000004f5: POP 000004f6: PUSH2 0x0369 000004f9: PUSH2 0x15a1 000004fc: JUMP 000004fd: JUMPDEST 000004fe: CALLVALUE 000004ff: DUP1 00000500: ISZERO 00000501: PUSH2 0x0509 00000504: JUMPI 00000505: PUSH1 0x00 00000507: DUP1 00000508: REVERT 00000509: JUMPDEST 0000050a: POP 0000050b: PUSH2 0x020e 0000050e: PUSH1 0x01 00000510: PUSH1 0xa0 00000512: PUSH1 0x02 00000514: EXP 00000515: SUB 00000516: PUSH1 0x04 00000518: CALLDATALOAD 00000519: DUP2 0000051a: AND 0000051b: SWAP1 0000051c: PUSH1 0x24 0000051e: CALLDATALOAD 0000051f: AND 00000520: PUSH2 0x15b0 00000523: JUMP 00000524: JUMPDEST 00000525: CALLVALUE 00000526: DUP1 00000527: ISZERO 00000528: PUSH2 0x0530 0000052b: JUMPI 0000052c: PUSH1 0x00 0000052e: DUP1 0000052f: REVERT 00000530: JUMPDEST 00000531: POP 00000532: PUSH2 0x0369 00000535: PUSH2 0x15db 00000538: JUMP 00000539: JUMPDEST 0000053a: CALLVALUE 0000053b: DUP1 0000053c: ISZERO 0000053d: PUSH2 0x0545 00000540: JUMPI 00000541: PUSH1 0x00 00000543: DUP1 00000544: REVERT 00000545: JUMPDEST 00000546: POP 00000547: PUSH2 0x020e 0000054a: PUSH1 0x01 0000054c: PUSH1 0xa0 0000054e: PUSH1 0x02 00000550: EXP 00000551: SUB 00000552: PUSH1 0x04 00000554: CALLDATALOAD 00000555: DUP2 00000556: AND 00000557: SWAP1 00000558: PUSH1 0x24 0000055a: CALLDATALOAD 0000055b: SWAP1 0000055c: PUSH1 0x44 0000055e: CALLDATALOAD 0000055f: DUP2 00000560: AND 00000561: SWAP1 00000562: PUSH1 0x64 00000564: CALLDATALOAD 00000565: SWAP1 00000566: PUSH1 0x84 00000568: CALLDATALOAD 00000569: SWAP1 0000056a: PUSH1 0xa4 0000056c: CALLDATALOAD 0000056d: SWAP1 0000056e: PUSH1 0xc4 00000570: CALLDATALOAD 00000571: AND 00000572: PUSH1 0xff 00000574: PUSH1 0xe4 00000576: CALLDATALOAD 00000577: AND 00000578: PUSH2 0x0104 0000057b: CALLDATALOAD 0000057c: PUSH2 0x0124 0000057f: CALLDATALOAD 00000580: PUSH2 0x15ea 00000583: JUMP 00000584: JUMPDEST 00000585: PUSH1 0x00 00000587: PUSH1 0x02 00000589: ADDRESS 0000058a: DUP14 0000058b: DUP14 0000058c: DUP14 0000058d: DUP14 0000058e: DUP14 0000058f: DUP14 00000590: PUSH1 0x40 00000592: MLOAD 00000593: PUSH1 0x20 00000595: ADD 00000596: DUP1 00000597: DUP9 00000598: PUSH1 0x01 0000059a: PUSH1 0xa0 0000059c: PUSH1 0x02 0000059e: EXP 0000059f: SUB 000005a0: AND 000005a1: PUSH1 0x01 000005a3: PUSH1 0xa0 000005a5: PUSH1 0x02 000005a7: EXP 000005a8: SUB 000005a9: AND 000005aa: PUSH13 0x01000000000000000000000000 000005b8: MUL 000005b9: DUP2 000005ba: MSTORE 000005bb: PUSH1 0x14 000005bd: ADD 000005be: DUP8 000005bf: PUSH1 0x01 000005c1: PUSH1 0xa0 000005c3: PUSH1 0x02 000005c5: EXP 000005c6: SUB 000005c7: AND 000005c8: PUSH1 0x01 000005ca: PUSH1 0xa0 000005cc: PUSH1 0x02 000005ce: EXP 000005cf: SUB 000005d0: AND 000005d1: PUSH13 0x01000000000000000000000000 000005df: MUL 000005e0: DUP2 000005e1: MSTORE 000005e2: PUSH1 0x14 000005e4: ADD 000005e5: DUP7 000005e6: DUP2 000005e7: MSTORE 000005e8: PUSH1 0x20 000005ea: ADD 000005eb: DUP6 000005ec: PUSH1 0x01 000005ee: PUSH1 0xa0 000005f0: PUSH1 0x02 000005f2: EXP 000005f3: SUB 000005f4: AND 000005f5: PUSH1 0x01 000005f7: PUSH1 0xa0 000005f9: PUSH1 0x02 000005fb: EXP 000005fc: SUB 000005fd: AND 000005fe: PUSH13 0x01000000000000000000000000 0000060c: MUL 0000060d: DUP2 0000060e: MSTORE 0000060f: PUSH1 0x14 00000611: ADD 00000612: DUP5 00000613: DUP2 00000614: MSTORE 00000615: PUSH1 0x20 00000617: ADD 00000618: DUP4 00000619: DUP2 0000061a: MSTORE 0000061b: PUSH1 0x20 0000061d: ADD 0000061e: DUP3 0000061f: DUP2 00000620: MSTORE 00000621: PUSH1 0x20 00000623: ADD 00000624: SWAP8 00000625: POP 00000626: POP 00000627: POP 00000628: POP 00000629: POP 0000062a: POP 0000062b: POP 0000062c: POP 0000062d: PUSH1 0x40 0000062f: MLOAD 00000630: PUSH1 0x20 00000632: DUP2 00000633: DUP4 00000634: SUB 00000635: SUB 00000636: DUP2 00000637: MSTORE 00000638: SWAP1 00000639: PUSH1 0x40 0000063b: MSTORE 0000063c: PUSH1 0x40 0000063e: MLOAD 0000063f: DUP1 00000640: DUP3 00000641: DUP1 00000642: MLOAD 00000643: SWAP1 00000644: PUSH1 0x20 00000646: ADD 00000647: SWAP1 00000648: DUP1 00000649: DUP4 0000064a: DUP4 0000064b: JUMPDEST 0000064c: PUSH1 0x20 0000064e: DUP4 0000064f: LT 00000650: PUSH2 0x066a 00000653: JUMPI 00000654: DUP1 00000655: MLOAD 00000656: DUP3 00000657: MSTORE 00000658: PUSH1 0x1f 0000065a: NOT 0000065b: SWAP1 0000065c: SWAP3 0000065d: ADD 0000065e: SWAP2 0000065f: PUSH1 0x20 00000661: SWAP2 00000662: DUP3 00000663: ADD 00000664: SWAP2 00000665: ADD 00000666: PUSH2 0x064b 00000669: JUMP 0000066a: JUMPDEST 0000066b: MLOAD 0000066c: DUP2 0000066d: MLOAD 0000066e: PUSH1 0x20 00000670: SWAP4 00000671: DUP5 00000672: SUB 00000673: PUSH2 0x0100 00000676: EXP 00000677: PUSH1 0x00 00000679: NOT 0000067a: ADD 0000067b: DUP1 0000067c: NOT 0000067d: SWAP1 0000067e: SWAP3 0000067f: AND 00000680: SWAP2 00000681: AND 00000682: OR 00000683: SWAP1 00000684: MSTORE 00000685: PUSH1 0x40 00000687: MLOAD 00000688: SWAP2 00000689: SWAP1 0000068a: SWAP4 0000068b: ADD 0000068c: SWAP5 0000068d: POP 0000068e: SWAP2 0000068f: SWAP3 00000690: POP 00000691: POP 00000692: DUP1 00000693: DUP4 00000694: SUB 00000695: DUP2 00000696: PUSH1 0x00 00000698: DUP7 00000699: GAS 0000069a: CALL 0000069b: ISZERO 0000069c: DUP1 0000069d: ISZERO 0000069e: PUSH2 0x06ab 000006a1: JUMPI 000006a2: RETURNDATASIZE 000006a3: PUSH1 0x00 000006a5: DUP1 000006a6: RETURNDATACOPY 000006a7: RETURNDATASIZE 000006a8: PUSH1 0x00 000006aa: REVERT 000006ab: JUMPDEST 000006ac: POP 000006ad: POP 000006ae: POP 000006af: PUSH1 0x40 000006b1: MLOAD 000006b2: RETURNDATASIZE 000006b3: PUSH1 0x20 000006b5: DUP2 000006b6: LT 000006b7: ISZERO 000006b8: PUSH2 0x06c0 000006bb: JUMPI 000006bc: PUSH1 0x00 000006be: DUP1 000006bf: REVERT 000006c0: JUMPDEST 000006c1: POP 000006c2: MLOAD 000006c3: PUSH1 0x01 000006c5: PUSH1 0xa0 000006c7: PUSH1 0x02 000006c9: EXP 000006ca: SUB 000006cb: DUP8 000006cc: AND 000006cd: PUSH1 0x00 000006cf: SWAP1 000006d0: DUP2 000006d1: MSTORE 000006d2: PUSH1 0x07 000006d4: PUSH1 0x20 000006d6: SWAP1 000006d7: DUP2 000006d8: MSTORE 000006d9: PUSH1 0x40 000006db: DUP1 000006dc: DUP4 000006dd: KECCAK256 000006de: DUP5 000006df: DUP5 000006e0: MSTORE 000006e1: SWAP1 000006e2: SWAP2 000006e3: MSTORE 000006e4: SWAP1 000006e5: KECCAK256 000006e6: SLOAD 000006e7: SWAP1 000006e8: SWAP2 000006e9: POP 000006ea: PUSH1 0xff 000006ec: AND 000006ed: DUP1 000006ee: PUSH2 0x080e 000006f1: JUMPI 000006f2: POP 000006f3: DUP6 000006f4: PUSH1 0x01 000006f6: PUSH1 0xa0 000006f8: PUSH1 0x02 000006fa: EXP 000006fb: SUB 000006fc: AND 000006fd: PUSH1 0x01 000006ff: DUP3 00000700: PUSH1 0x40 00000702: MLOAD 00000703: PUSH1 0x20 00000705: ADD 00000706: DUP1 00000707: DUP1 00000708: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00000729: DUP2 0000072a: MSTORE 0000072b: POP 0000072c: PUSH1 0x1c 0000072e: ADD 0000072f: DUP3 00000730: PUSH1 0x00 00000732: NOT 00000733: AND 00000734: PUSH1 0x00 00000736: NOT 00000737: AND 00000738: DUP2 00000739: MSTORE 0000073a: PUSH1 0x20 0000073c: ADD 0000073d: SWAP2 0000073e: POP 0000073f: POP 00000740: PUSH1 0x40 00000742: MLOAD 00000743: PUSH1 0x20 00000745: DUP2 00000746: DUP4 00000747: SUB 00000748: SUB 00000749: DUP2 0000074a: MSTORE 0000074b: SWAP1 0000074c: PUSH1 0x40 0000074e: MSTORE 0000074f: PUSH1 0x40 00000751: MLOAD 00000752: DUP1 00000753: DUP3 00000754: DUP1 00000755: MLOAD 00000756: SWAP1 00000757: PUSH1 0x20 00000759: ADD 0000075a: SWAP1 0000075b: DUP1 0000075c: DUP4 0000075d: DUP4 0000075e: JUMPDEST 0000075f: PUSH1 0x20 00000761: DUP4 00000762: LT 00000763: PUSH2 0x077d 00000766: JUMPI 00000767: DUP1 00000768: MLOAD 00000769: DUP3 0000076a: MSTORE 0000076b: PUSH1 0x1f 0000076d: NOT 0000076e: SWAP1 0000076f: SWAP3 00000770: ADD 00000771: SWAP2 00000772: PUSH1 0x20 00000774: SWAP2 00000775: DUP3 00000776: ADD 00000777: SWAP2 00000778: ADD 00000779: PUSH2 0x075e 0000077c: JUMP 0000077d: JUMPDEST 0000077e: MLOAD 0000077f: DUP2 00000780: MLOAD 00000781: PUSH1 0x20 00000783: SWAP4 00000784: DUP5 00000785: SUB 00000786: PUSH2 0x0100 00000789: EXP 0000078a: PUSH1 0x00 0000078c: NOT 0000078d: ADD 0000078e: DUP1 0000078f: NOT 00000790: SWAP1 00000791: SWAP3 00000792: AND 00000793: SWAP2 00000794: AND 00000795: OR 00000796: SWAP1 00000797: MSTORE 00000798: PUSH1 0x40 0000079a: DUP1 0000079b: MLOAD 0000079c: SWAP3 0000079d: SWAP1 0000079e: SWAP5 0000079f: ADD 000007a0: DUP3 000007a1: SWAP1 000007a2: SUB 000007a3: DUP3 000007a4: KECCAK256 000007a5: PUSH1 0x00 000007a7: DUP1 000007a8: DUP5 000007a9: MSTORE 000007aa: DUP4 000007ab: DUP4 000007ac: ADD 000007ad: DUP1 000007ae: DUP8 000007af: MSTORE 000007b0: SWAP2 000007b1: SWAP1 000007b2: SWAP2 000007b3: MSTORE 000007b4: PUSH1 0xff 000007b6: DUP15 000007b7: AND 000007b8: DUP4 000007b9: DUP7 000007ba: ADD 000007bb: MSTORE 000007bc: PUSH1 0x60 000007be: DUP4 000007bf: ADD 000007c0: DUP14 000007c1: SWAP1 000007c2: MSTORE 000007c3: PUSH1 0x80 000007c5: DUP4 000007c6: ADD 000007c7: DUP13 000007c8: SWAP1 000007c9: MSTORE 000007ca: SWAP4 000007cb: MLOAD 000007cc: PUSH1 0xa0 000007ce: DUP1 000007cf: DUP5 000007d0: ADD 000007d1: SWAP8 000007d2: POP 000007d3: SWAP2 000007d4: SWAP6 000007d5: POP 000007d6: PUSH1 0x1f 000007d8: NOT 000007d9: DUP2 000007da: ADD 000007db: SWAP5 000007dc: SWAP3 000007dd: DUP2 000007de: SWAP1 000007df: SUB 000007e0: SWAP1 000007e1: SWAP2 000007e2: ADD 000007e3: SWAP3 000007e4: POP 000007e5: SWAP1 000007e6: DUP7 000007e7: GAS 000007e8: CALL 000007e9: ISZERO 000007ea: DUP1 000007eb: ISZERO 000007ec: PUSH2 0x07f9 000007ef: JUMPI 000007f0: RETURNDATASIZE 000007f1: PUSH1 0x00 000007f3: DUP1 000007f4: RETURNDATACOPY 000007f5: RETURNDATASIZE 000007f6: PUSH1 0x00 000007f8: REVERT 000007f9: JUMPDEST 000007fa: POP 000007fb: POP 000007fc: POP 000007fd: PUSH1 0x20 000007ff: PUSH1 0x40 00000801: MLOAD 00000802: SUB 00000803: MLOAD 00000804: PUSH1 0x01 00000806: PUSH1 0xa0 00000808: PUSH1 0x02 0000080a: EXP 0000080b: SUB 0000080c: AND 0000080d: EQ 0000080e: JUMPDEST 0000080f: DUP1 00000810: ISZERO 00000811: PUSH2 0x081a 00000814: JUMPI 00000815: POP 00000816: DUP8 00000817: NUMBER 00000818: GT 00000819: ISZERO 0000081a: JUMPDEST 0000081b: DUP1 0000081c: ISZERO 0000081d: PUSH2 0x0854 00000820: JUMPI 00000821: POP 00000822: PUSH1 0x01 00000824: PUSH1 0xa0 00000826: PUSH1 0x02 00000828: EXP 00000829: SUB 0000082a: DUP7 0000082b: AND 0000082c: PUSH1 0x00 0000082e: SWAP1 0000082f: DUP2 00000830: MSTORE 00000831: PUSH1 0x08 00000833: PUSH1 0x20 00000835: SWAP1 00000836: DUP2 00000837: MSTORE 00000838: PUSH1 0x40 0000083a: DUP1 0000083b: DUP4 0000083c: KECCAK256 0000083d: DUP5 0000083e: DUP5 0000083f: MSTORE 00000840: SWAP1 00000841: SWAP2 00000842: MSTORE 00000843: SWAP1 00000844: KECCAK256 00000845: SLOAD 00000846: DUP12 00000847: SWAP1 00000848: PUSH2 0x0851 0000084b: SWAP1 0000084c: DUP5 0000084d: PUSH2 0x1905 00000850: JUMP 00000851: JUMPDEST 00000852: GT 00000853: ISZERO 00000854: JUMPDEST 00000855: ISZERO 00000856: ISZERO 00000857: PUSH2 0x085f 0000085a: JUMPI 0000085b: PUSH1 0x00 0000085d: DUP1 0000085e: REVERT 0000085f: JUMPDEST 00000860: PUSH2 0x086d 00000863: DUP13 00000864: DUP13 00000865: DUP13 00000866: DUP13 00000867: DUP11 00000868: DUP8 00000869: PUSH2 0x1929 0000086c: JUMP 0000086d: JUMPDEST 0000086e: PUSH1 0x01 00000870: PUSH1 0xa0 00000872: PUSH1 0x02 00000874: EXP 00000875: SUB 00000876: DUP7 00000877: AND 00000878: PUSH1 0x00 0000087a: SWAP1 0000087b: DUP2 0000087c: MSTORE 0000087d: PUSH1 0x08 0000087f: PUSH1 0x20 00000881: SWAP1 00000882: DUP2 00000883: MSTORE 00000884: PUSH1 0x40 00000886: DUP1 00000887: DUP4 00000888: KECCAK256 00000889: DUP5 0000088a: DUP5 0000088b: MSTORE 0000088c: SWAP1 0000088d: SWAP2 0000088e: MSTORE 0000088f: SWAP1 00000890: KECCAK256 00000891: SLOAD 00000892: PUSH2 0x089b 00000895: SWAP1 00000896: DUP4 00000897: PUSH2 0x1905 0000089a: JUMP 0000089b: JUMPDEST 0000089c: PUSH1 0x01 0000089e: PUSH1 0xa0 000008a0: PUSH1 0x02 000008a2: EXP 000008a3: SUB 000008a4: DUP8 000008a5: AND 000008a6: PUSH1 0x00 000008a8: SWAP1 000008a9: DUP2 000008aa: MSTORE 000008ab: PUSH1 0x08 000008ad: PUSH1 0x20 000008af: SWAP1 000008b0: DUP2 000008b1: MSTORE 000008b2: PUSH1 0x40 000008b4: DUP1 000008b5: DUP4 000008b6: KECCAK256 000008b7: DUP6 000008b8: DUP5 000008b9: MSTORE 000008ba: SWAP1 000008bb: SWAP2 000008bc: MSTORE 000008bd: SWAP1 000008be: KECCAK256 000008bf: SSTORE 000008c0: PUSH32 0x6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d 000008e1: DUP13 000008e2: DUP4 000008e3: DUP13 000008e4: DUP15 000008e5: DUP14 000008e6: DUP4 000008e7: MUL 000008e8: DUP2 000008e9: ISZERO 000008ea: ISZERO 000008eb: PUSH2 0x08f0 000008ee: JUMPI 000008ef: INVALID 000008f0: JUMPDEST 000008f1: PUSH1 0x40 000008f3: DUP1 000008f4: MLOAD 000008f5: PUSH1 0x01 000008f7: PUSH1 0xa0 000008f9: PUSH1 0x02 000008fb: EXP 000008fc: SUB 000008fd: SWAP7 000008fe: DUP8 000008ff: AND 00000900: DUP2 00000901: MSTORE 00000902: PUSH1 0x20 00000904: DUP2 00000905: ADD 00000906: SWAP6 00000907: SWAP1 00000908: SWAP6 00000909: MSTORE 0000090a: SWAP3 0000090b: DUP6 0000090c: AND 0000090d: DUP5 0000090e: DUP5 0000090f: ADD 00000910: MSTORE 00000911: DIV 00000912: PUSH1 0x60 00000914: DUP4 00000915: ADD 00000916: MSTORE 00000917: SWAP2 00000918: DUP10 00000919: AND 0000091a: PUSH1 0x80 0000091c: DUP3 0000091d: ADD 0000091e: MSTORE 0000091f: CALLER 00000920: PUSH1 0xa0 00000922: DUP3 00000923: ADD 00000924: MSTORE 00000925: SWAP1 00000926: MLOAD 00000927: SWAP1 00000928: DUP2 00000929: SWAP1 0000092a: SUB 0000092b: PUSH1 0xc0 0000092d: ADD 0000092e: SWAP1 0000092f: LOG1 00000930: POP 00000931: POP 00000932: POP 00000933: POP 00000934: POP 00000935: POP 00000936: POP 00000937: POP 00000938: POP 00000939: POP 0000093a: POP 0000093b: POP 0000093c: JUMP 0000093d: JUMPDEST 0000093e: PUSH1 0x40 00000940: DUP1 00000941: MLOAD 00000942: PUSH13 0x01000000000000000000000000 00000950: ADDRESS 00000951: DUP2 00000952: MUL 00000953: PUSH1 0x20 00000955: DUP1 00000956: DUP5 00000957: ADD 00000958: SWAP2 00000959: SWAP1 0000095a: SWAP2 0000095b: MSTORE 0000095c: PUSH1 0x01 0000095e: PUSH1 0xa0 00000960: PUSH1 0x02 00000962: EXP 00000963: SUB 00000964: DUP1 00000965: DUP12 00000966: AND 00000967: DUP4 00000968: MUL 00000969: PUSH1 0x34 0000096b: DUP6 0000096c: ADD 0000096d: MSTORE 0000096e: PUSH1 0x48 00000970: DUP5 00000971: ADD 00000972: DUP11 00000973: SWAP1 00000974: MSTORE 00000975: DUP9 00000976: AND 00000977: SWAP1 00000978: SWAP2 00000979: MUL 0000097a: PUSH1 0x68 0000097c: DUP4 0000097d: ADD 0000097e: MSTORE 0000097f: PUSH1 0x7c 00000981: DUP3 00000982: ADD 00000983: DUP7 00000984: SWAP1 00000985: MSTORE 00000986: PUSH1 0x9c 00000988: DUP3 00000989: ADD 0000098a: DUP6 0000098b: SWAP1 0000098c: MSTORE 0000098d: PUSH1 0xbc 0000098f: DUP1 00000990: DUP4 00000991: ADD 00000992: DUP6 00000993: SWAP1 00000994: MSTORE 00000995: DUP4 00000996: MLOAD 00000997: DUP1 00000998: DUP5 00000999: SUB 0000099a: SWAP1 0000099b: SWAP2 0000099c: ADD 0000099d: DUP2 0000099e: MSTORE 0000099f: PUSH1 0xdc 000009a1: SWAP1 000009a2: SWAP3 000009a3: ADD 000009a4: SWAP3 000009a5: DUP4 000009a6: SWAP1 000009a7: MSTORE 000009a8: DUP2 000009a9: MLOAD 000009aa: PUSH1 0x00 000009ac: SWAP4 000009ad: PUSH1 0x02 000009af: SWAP4 000009b0: SWAP3 000009b1: SWAP1 000009b2: SWAP2 000009b3: DUP3 000009b4: SWAP2 000009b5: DUP5 000009b6: ADD 000009b7: SWAP1 000009b8: DUP1 000009b9: DUP4 000009ba: DUP4 000009bb: JUMPDEST 000009bc: PUSH1 0x20 000009be: DUP4 000009bf: LT 000009c0: PUSH2 0x09da 000009c3: JUMPI 000009c4: DUP1 000009c5: MLOAD 000009c6: DUP3 000009c7: MSTORE 000009c8: PUSH1 0x1f 000009ca: NOT 000009cb: SWAP1 000009cc: SWAP3 000009cd: ADD 000009ce: SWAP2 000009cf: PUSH1 0x20 000009d1: SWAP2 000009d2: DUP3 000009d3: ADD 000009d4: SWAP2 000009d5: ADD 000009d6: PUSH2 0x09bb 000009d9: JUMP 000009da: JUMPDEST 000009db: MLOAD 000009dc: DUP2 000009dd: MLOAD 000009de: PUSH1 0x20 000009e0: SWAP4 000009e1: DUP5 000009e2: SUB 000009e3: PUSH2 0x0100 000009e6: EXP 000009e7: PUSH1 0x00 000009e9: NOT 000009ea: ADD 000009eb: DUP1 000009ec: NOT 000009ed: SWAP1 000009ee: SWAP3 000009ef: AND 000009f0: SWAP2 000009f1: AND 000009f2: OR 000009f3: SWAP1 000009f4: MSTORE 000009f5: PUSH1 0x40 000009f7: MLOAD 000009f8: SWAP2 000009f9: SWAP1 000009fa: SWAP4 000009fb: ADD 000009fc: SWAP5 000009fd: POP 000009fe: SWAP2 000009ff: SWAP3 00000a00: POP 00000a01: POP 00000a02: DUP1 00000a03: DUP4 00000a04: SUB 00000a05: DUP2 00000a06: PUSH1 0x00 00000a08: DUP7 00000a09: GAS 00000a0a: CALL 00000a0b: ISZERO 00000a0c: DUP1 00000a0d: ISZERO 00000a0e: PUSH2 0x0a1b 00000a11: JUMPI 00000a12: RETURNDATASIZE 00000a13: PUSH1 0x00 00000a15: DUP1 00000a16: RETURNDATACOPY 00000a17: RETURNDATASIZE 00000a18: PUSH1 0x00 00000a1a: REVERT 00000a1b: JUMPDEST 00000a1c: POP 00000a1d: POP 00000a1e: POP 00000a1f: PUSH1 0x40 00000a21: MLOAD 00000a22: RETURNDATASIZE 00000a23: PUSH1 0x20 00000a25: DUP2 00000a26: LT 00000a27: ISZERO 00000a28: PUSH2 0x0a30 00000a2b: JUMPI 00000a2c: PUSH1 0x00 00000a2e: DUP1 00000a2f: REVERT 00000a30: JUMPDEST 00000a31: POP 00000a32: MLOAD 00000a33: CALLER 00000a34: PUSH1 0x00 00000a36: DUP2 00000a37: DUP2 00000a38: MSTORE 00000a39: PUSH1 0x07 00000a3b: PUSH1 0x20 00000a3d: SWAP1 00000a3e: DUP2 00000a3f: MSTORE 00000a40: PUSH1 0x40 00000a42: DUP1 00000a43: DUP4 00000a44: KECCAK256 00000a45: DUP6 00000a46: DUP5 00000a47: MSTORE 00000a48: DUP3 00000a49: MSTORE 00000a4a: SWAP2 00000a4b: DUP3 00000a4c: SWAP1 00000a4d: KECCAK256 00000a4e: DUP1 00000a4f: SLOAD 00000a50: PUSH1 0xff 00000a52: NOT 00000a53: AND 00000a54: PUSH1 0x01 00000a56: OR 00000a57: SWAP1 00000a58: SSTORE 00000a59: DUP2 00000a5a: MLOAD 00000a5b: PUSH1 0x01 00000a5d: PUSH1 0xa0 00000a5f: PUSH1 0x02 00000a61: EXP 00000a62: SUB 00000a63: DUP13 00000a64: DUP2 00000a65: AND 00000a66: DUP3 00000a67: MSTORE 00000a68: SWAP2 00000a69: DUP2 00000a6a: ADD 00000a6b: DUP12 00000a6c: SWAP1 00000a6d: MSTORE 00000a6e: SWAP1 00000a6f: DUP10 00000a70: AND 00000a71: DUP2 00000a72: DUP4 00000a73: ADD 00000a74: MSTORE 00000a75: PUSH1 0x60 00000a77: DUP2 00000a78: ADD 00000a79: DUP9 00000a7a: SWAP1 00000a7b: MSTORE 00000a7c: PUSH1 0x80 00000a7e: DUP2 00000a7f: ADD 00000a80: DUP8 00000a81: SWAP1 00000a82: MSTORE 00000a83: PUSH1 0xa0 00000a85: DUP2 00000a86: ADD 00000a87: DUP7 00000a88: SWAP1 00000a89: MSTORE 00000a8a: PUSH1 0xc0 00000a8c: DUP2 00000a8d: ADD 00000a8e: SWAP3 00000a8f: SWAP1 00000a90: SWAP3 00000a91: MSTORE 00000a92: MLOAD 00000a93: SWAP2 00000a94: SWAP3 00000a95: POP 00000a96: PUSH32 0x3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85 00000ab7: SWAP2 00000ab8: SWAP1 00000ab9: DUP2 00000aba: SWAP1 00000abb: SUB 00000abc: PUSH1 0xe0 00000abe: ADD 00000abf: SWAP1 00000ac0: LOG1 00000ac1: POP 00000ac2: POP 00000ac3: POP 00000ac4: POP 00000ac5: POP 00000ac6: POP 00000ac7: POP 00000ac8: JUMP 00000ac9: JUMPDEST 00000aca: PUSH1 0x08 00000acc: PUSH1 0x20 00000ace: SWAP1 00000acf: DUP2 00000ad0: MSTORE 00000ad1: PUSH1 0x00 00000ad3: SWAP3 00000ad4: DUP4 00000ad5: MSTORE 00000ad6: PUSH1 0x40 00000ad8: DUP1 00000ad9: DUP5 00000ada: KECCAK256 00000adb: SWAP1 00000adc: SWAP2 00000add: MSTORE 00000ade: SWAP1 00000adf: DUP3 00000ae0: MSTORE 00000ae1: SWAP1 00000ae2: KECCAK256 00000ae3: SLOAD 00000ae4: DUP2 00000ae5: JUMP 00000ae6: JUMPDEST 00000ae7: PUSH1 0x40 00000ae9: DUP1 00000aea: MLOAD 00000aeb: PUSH13 0x01000000000000000000000000 00000af9: ADDRESS 00000afa: DUP2 00000afb: MUL 00000afc: PUSH1 0x20 00000afe: DUP1 00000aff: DUP5 00000b00: ADD 00000b01: SWAP2 00000b02: SWAP1 00000b03: SWAP2 00000b04: MSTORE 00000b05: PUSH1 0x01 00000b07: PUSH1 0xa0 00000b09: PUSH1 0x02 00000b0b: EXP 00000b0c: SUB 00000b0d: DUP1 00000b0e: DUP15 00000b0f: AND 00000b10: DUP4 00000b11: MUL 00000b12: PUSH1 0x34 00000b14: DUP6 00000b15: ADD 00000b16: MSTORE 00000b17: PUSH1 0x48 00000b19: DUP5 00000b1a: ADD 00000b1b: DUP14 00000b1c: SWAP1 00000b1d: MSTORE 00000b1e: DUP12 00000b1f: AND 00000b20: SWAP1 00000b21: SWAP2 00000b22: MUL 00000b23: PUSH1 0x68 00000b25: DUP4 00000b26: ADD 00000b27: MSTORE 00000b28: PUSH1 0x7c 00000b2a: DUP3 00000b2b: ADD 00000b2c: DUP10 00000b2d: SWAP1 00000b2e: MSTORE 00000b2f: PUSH1 0x9c 00000b31: DUP3 00000b32: ADD 00000b33: DUP9 00000b34: SWAP1 00000b35: MSTORE 00000b36: PUSH1 0xbc 00000b38: DUP1 00000b39: DUP4 00000b3a: ADD 00000b3b: DUP9 00000b3c: SWAP1 00000b3d: MSTORE 00000b3e: DUP4 00000b3f: MLOAD 00000b40: DUP1 00000b41: DUP5 00000b42: SUB 00000b43: SWAP1 00000b44: SWAP2 00000b45: ADD 00000b46: DUP2 00000b47: MSTORE 00000b48: PUSH1 0xdc 00000b4a: SWAP1 00000b4b: SWAP3 00000b4c: ADD 00000b4d: SWAP3 00000b4e: DUP4 00000b4f: SWAP1 00000b50: MSTORE 00000b51: DUP2 00000b52: MLOAD 00000b53: PUSH1 0x00 00000b55: SWAP4 00000b56: PUSH1 0x02 00000b58: SWAP4 00000b59: SWAP3 00000b5a: SWAP1 00000b5b: SWAP2 00000b5c: DUP3 00000b5d: SWAP2 00000b5e: DUP5 00000b5f: ADD 00000b60: SWAP1 00000b61: DUP1 00000b62: DUP4 00000b63: DUP4 00000b64: JUMPDEST 00000b65: PUSH1 0x20 00000b67: DUP4 00000b68: LT 00000b69: PUSH2 0x0b83 00000b6c: JUMPI 00000b6d: DUP1 00000b6e: MLOAD 00000b6f: DUP3 00000b70: MSTORE 00000b71: PUSH1 0x1f 00000b73: NOT 00000b74: SWAP1 00000b75: SWAP3 00000b76: ADD 00000b77: SWAP2 00000b78: PUSH1 0x20 00000b7a: SWAP2 00000b7b: DUP3 00000b7c: ADD 00000b7d: SWAP2 00000b7e: ADD 00000b7f: PUSH2 0x0b64 00000b82: JUMP 00000b83: JUMPDEST 00000b84: MLOAD 00000b85: DUP2 00000b86: MLOAD 00000b87: PUSH1 0x20 00000b89: SWAP4 00000b8a: DUP5 00000b8b: SUB 00000b8c: PUSH2 0x0100 00000b8f: EXP 00000b90: PUSH1 0x00 00000b92: NOT 00000b93: ADD 00000b94: DUP1 00000b95: NOT 00000b96: SWAP1 00000b97: SWAP3 00000b98: AND 00000b99: SWAP2 00000b9a: AND 00000b9b: OR 00000b9c: SWAP1 00000b9d: MSTORE 00000b9e: PUSH1 0x40 00000ba0: MLOAD 00000ba1: SWAP2 00000ba2: SWAP1 00000ba3: SWAP4 00000ba4: ADD 00000ba5: SWAP5 00000ba6: POP 00000ba7: SWAP2 00000ba8: SWAP3 00000ba9: POP 00000baa: POP 00000bab: DUP1 00000bac: DUP4 00000bad: SUB 00000bae: DUP2 00000baf: PUSH1 0x00 00000bb1: DUP7 00000bb2: GAS 00000bb3: CALL 00000bb4: ISZERO 00000bb5: DUP1 00000bb6: ISZERO 00000bb7: PUSH2 0x0bc4 00000bba: JUMPI 00000bbb: RETURNDATASIZE 00000bbc: PUSH1 0x00 00000bbe: DUP1 00000bbf: RETURNDATACOPY 00000bc0: RETURNDATASIZE 00000bc1: PUSH1 0x00 00000bc3: REVERT 00000bc4: JUMPDEST 00000bc5: POP 00000bc6: POP 00000bc7: POP 00000bc8: PUSH1 0x40 00000bca: MLOAD 00000bcb: RETURNDATASIZE 00000bcc: PUSH1 0x20 00000bce: DUP2 00000bcf: LT 00000bd0: ISZERO 00000bd1: PUSH2 0x0bd9 00000bd4: JUMPI 00000bd5: PUSH1 0x00 00000bd7: DUP1 00000bd8: REVERT 00000bd9: JUMPDEST 00000bda: POP 00000bdb: MLOAD 00000bdc: CALLER 00000bdd: PUSH1 0x00 00000bdf: SWAP1 00000be0: DUP2 00000be1: MSTORE 00000be2: PUSH1 0x07 00000be4: PUSH1 0x20 00000be6: SWAP1 00000be7: DUP2 00000be8: MSTORE 00000be9: PUSH1 0x40 00000beb: DUP1 00000bec: DUP4 00000bed: KECCAK256 00000bee: DUP5 00000bef: DUP5 00000bf0: MSTORE 00000bf1: SWAP1 00000bf2: SWAP2 00000bf3: MSTORE 00000bf4: SWAP1 00000bf5: KECCAK256 00000bf6: SLOAD 00000bf7: SWAP1 00000bf8: SWAP2 00000bf9: POP 00000bfa: PUSH1 0xff 00000bfc: AND 00000bfd: DUP1 00000bfe: PUSH2 0x0d0e 00000c01: JUMPI 00000c02: POP 00000c03: PUSH1 0x40 00000c05: DUP1 00000c06: MLOAD 00000c07: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00000c28: PUSH1 0x20 00000c2a: DUP1 00000c2b: DUP4 00000c2c: ADD 00000c2d: SWAP2 00000c2e: SWAP1 00000c2f: SWAP2 00000c30: MSTORE 00000c31: PUSH1 0x3c 00000c33: DUP1 00000c34: DUP4 00000c35: ADD 00000c36: DUP6 00000c37: SWAP1 00000c38: MSTORE 00000c39: DUP4 00000c3a: MLOAD 00000c3b: DUP1 00000c3c: DUP5 00000c3d: SUB 00000c3e: SWAP1 00000c3f: SWAP2 00000c40: ADD 00000c41: DUP2 00000c42: MSTORE 00000c43: PUSH1 0x5c 00000c45: SWAP1 00000c46: SWAP3 00000c47: ADD 00000c48: SWAP3 00000c49: DUP4 00000c4a: SWAP1 00000c4b: MSTORE 00000c4c: DUP2 00000c4d: MLOAD 00000c4e: CALLER 00000c4f: SWAP4 00000c50: PUSH1 0x01 00000c52: SWAP4 00000c53: SWAP3 00000c54: SWAP1 00000c55: SWAP2 00000c56: DUP3 00000c57: SWAP2 00000c58: DUP5 00000c59: ADD 00000c5a: SWAP1 00000c5b: DUP1 00000c5c: DUP4 00000c5d: DUP4 00000c5e: JUMPDEST 00000c5f: PUSH1 0x20 00000c61: DUP4 00000c62: LT 00000c63: PUSH2 0x0c7d 00000c66: JUMPI 00000c67: DUP1 00000c68: MLOAD 00000c69: DUP3 00000c6a: MSTORE 00000c6b: PUSH1 0x1f 00000c6d: NOT 00000c6e: SWAP1 00000c6f: SWAP3 00000c70: ADD 00000c71: SWAP2 00000c72: PUSH1 0x20 00000c74: SWAP2 00000c75: DUP3 00000c76: ADD 00000c77: SWAP2 00000c78: ADD 00000c79: PUSH2 0x0c5e 00000c7c: JUMP 00000c7d: JUMPDEST 00000c7e: MLOAD 00000c7f: DUP2 00000c80: MLOAD 00000c81: PUSH1 0x20 00000c83: SWAP4 00000c84: DUP5 00000c85: SUB 00000c86: PUSH2 0x0100 00000c89: EXP 00000c8a: PUSH1 0x00 00000c8c: NOT 00000c8d: ADD 00000c8e: DUP1 00000c8f: NOT 00000c90: SWAP1 00000c91: SWAP3 00000c92: AND 00000c93: SWAP2 00000c94: AND 00000c95: OR 00000c96: SWAP1 00000c97: MSTORE 00000c98: PUSH1 0x40 00000c9a: DUP1 00000c9b: MLOAD 00000c9c: SWAP3 00000c9d: SWAP1 00000c9e: SWAP5 00000c9f: ADD 00000ca0: DUP3 00000ca1: SWAP1 00000ca2: SUB 00000ca3: DUP3 00000ca4: KECCAK256 00000ca5: PUSH1 0x00 00000ca7: DUP1 00000ca8: DUP5 00000ca9: MSTORE 00000caa: DUP4 00000cab: DUP4 00000cac: ADD 00000cad: DUP1 00000cae: DUP8 00000caf: MSTORE 00000cb0: SWAP2 00000cb1: SWAP1 00000cb2: SWAP2 00000cb3: MSTORE 00000cb4: PUSH1 0xff 00000cb6: DUP14 00000cb7: AND 00000cb8: DUP4 00000cb9: DUP7 00000cba: ADD 00000cbb: MSTORE 00000cbc: PUSH1 0x60 00000cbe: DUP4 00000cbf: ADD 00000cc0: DUP13 00000cc1: SWAP1 00000cc2: MSTORE 00000cc3: PUSH1 0x80 00000cc5: DUP4 00000cc6: ADD 00000cc7: DUP12 00000cc8: SWAP1 00000cc9: MSTORE 00000cca: SWAP4 00000ccb: MLOAD 00000ccc: PUSH1 0xa0 00000cce: DUP1 00000ccf: DUP5 00000cd0: ADD 00000cd1: SWAP8 00000cd2: POP 00000cd3: SWAP2 00000cd4: SWAP6 00000cd5: POP 00000cd6: PUSH1 0x1f 00000cd8: NOT 00000cd9: DUP2 00000cda: ADD 00000cdb: SWAP5 00000cdc: SWAP3 00000cdd: DUP2 00000cde: SWAP1 00000cdf: SUB 00000ce0: SWAP1 00000ce1: SWAP2 00000ce2: ADD 00000ce3: SWAP3 00000ce4: POP 00000ce5: SWAP1 00000ce6: DUP7 00000ce7: GAS 00000ce8: CALL 00000ce9: ISZERO 00000cea: DUP1 00000ceb: ISZERO 00000cec: PUSH2 0x0cf9 00000cef: JUMPI 00000cf0: RETURNDATASIZE 00000cf1: PUSH1 0x00 00000cf3: DUP1 00000cf4: RETURNDATACOPY 00000cf5: RETURNDATASIZE 00000cf6: PUSH1 0x00 00000cf8: REVERT 00000cf9: JUMPDEST 00000cfa: POP 00000cfb: POP 00000cfc: POP 00000cfd: PUSH1 0x20 00000cff: PUSH1 0x40 00000d01: MLOAD 00000d02: SUB 00000d03: MLOAD 00000d04: PUSH1 0x01 00000d06: PUSH1 0xa0 00000d08: PUSH1 0x02 00000d0a: EXP 00000d0b: SUB 00000d0c: AND 00000d0d: EQ 00000d0e: JUMPDEST 00000d0f: ISZERO 00000d10: ISZERO 00000d11: PUSH2 0x0d19 00000d14: JUMPI 00000d15: PUSH1 0x00 00000d17: DUP1 00000d18: REVERT 00000d19: JUMPDEST 00000d1a: CALLER 00000d1b: PUSH1 0x00 00000d1d: DUP2 00000d1e: DUP2 00000d1f: MSTORE 00000d20: PUSH1 0x08 00000d22: PUSH1 0x20 00000d24: SWAP1 00000d25: DUP2 00000d26: MSTORE 00000d27: PUSH1 0x40 00000d29: DUP1 00000d2a: DUP4 00000d2b: KECCAK256 00000d2c: DUP6 00000d2d: DUP5 00000d2e: MSTORE 00000d2f: DUP3 00000d30: MSTORE 00000d31: SWAP2 00000d32: DUP3 00000d33: SWAP1 00000d34: KECCAK256 00000d35: DUP13 00000d36: SWAP1 00000d37: SSTORE 00000d38: DUP2 00000d39: MLOAD 00000d3a: PUSH1 0x01 00000d3c: PUSH1 0xa0 00000d3e: PUSH1 0x02 00000d40: EXP 00000d41: SUB 00000d42: DUP15 00000d43: DUP2 00000d44: AND 00000d45: DUP3 00000d46: MSTORE 00000d47: SWAP2 00000d48: DUP2 00000d49: ADD 00000d4a: DUP14 00000d4b: SWAP1 00000d4c: MSTORE 00000d4d: SWAP1 00000d4e: DUP12 00000d4f: AND 00000d50: DUP2 00000d51: DUP4 00000d52: ADD 00000d53: MSTORE 00000d54: PUSH1 0x60 00000d56: DUP2 00000d57: ADD 00000d58: DUP11 00000d59: SWAP1 00000d5a: MSTORE 00000d5b: PUSH1 0x80 00000d5d: DUP2 00000d5e: ADD 00000d5f: DUP10 00000d60: SWAP1 00000d61: MSTORE 00000d62: PUSH1 0xa0 00000d64: DUP2 00000d65: ADD 00000d66: DUP9 00000d67: SWAP1 00000d68: MSTORE 00000d69: PUSH1 0xc0 00000d6b: DUP2 00000d6c: ADD 00000d6d: SWAP3 00000d6e: SWAP1 00000d6f: SWAP3 00000d70: MSTORE 00000d71: PUSH1 0xff 00000d73: DUP7 00000d74: AND 00000d75: PUSH1 0xe0 00000d77: DUP4 00000d78: ADD 00000d79: MSTORE 00000d7a: PUSH2 0x0100 00000d7d: DUP3 00000d7e: ADD 00000d7f: DUP6 00000d80: SWAP1 00000d81: MSTORE 00000d82: PUSH2 0x0120 00000d85: DUP3 00000d86: ADD 00000d87: DUP5 00000d88: SWAP1 00000d89: MSTORE 00000d8a: MLOAD 00000d8b: PUSH32 0x1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0 00000dac: SWAP2 00000dad: DUP2 00000dae: SWAP1 00000daf: SUB 00000db0: PUSH2 0x0140 00000db3: ADD 00000db4: SWAP1 00000db5: LOG1 00000db6: POP 00000db7: POP 00000db8: POP 00000db9: POP 00000dba: POP 00000dbb: POP 00000dbc: POP 00000dbd: POP 00000dbe: POP 00000dbf: POP 00000dc0: JUMP 00000dc1: JUMPDEST 00000dc2: CALLER 00000dc3: PUSH1 0x00 00000dc5: SWAP1 00000dc6: DUP2 00000dc7: MSTORE 00000dc8: PUSH1 0x00 00000dca: DUP1 00000dcb: MLOAD 00000dcc: PUSH1 0x20 00000dce: PUSH2 0x1c3b 00000dd1: DUP4 00000dd2: CODECOPY 00000dd3: DUP2 00000dd4: MLOAD 00000dd5: SWAP2 00000dd6: MSTORE 00000dd7: PUSH1 0x20 00000dd9: MSTORE 00000dda: PUSH1 0x40 00000ddc: SWAP1 00000ddd: KECCAK256 00000dde: SLOAD 00000ddf: DUP2 00000de0: GT 00000de1: ISZERO 00000de2: PUSH2 0x0dea 00000de5: JUMPI 00000de6: PUSH1 0x00 00000de8: DUP1 00000de9: REVERT 00000dea: JUMPDEST 00000deb: CALLER 00000dec: PUSH1 0x00 00000dee: SWAP1 00000def: DUP2 00000df0: MSTORE 00000df1: PUSH1 0x00 00000df3: DUP1 00000df4: MLOAD 00000df5: PUSH1 0x20 00000df7: PUSH2 0x1c3b 00000dfa: DUP4 00000dfb: CODECOPY 00000dfc: DUP2 00000dfd: MLOAD 00000dfe: SWAP2 00000dff: MSTORE 00000e00: PUSH1 0x20 00000e02: MSTORE 00000e03: PUSH1 0x40 00000e05: SWAP1 00000e06: KECCAK256 00000e07: SLOAD 00000e08: PUSH2 0x0e11 00000e0b: SWAP1 00000e0c: DUP3 00000e0d: PUSH2 0x1c07 00000e10: JUMP 00000e11: JUMPDEST 00000e12: CALLER 00000e13: PUSH1 0x00 00000e15: DUP2 00000e16: DUP2 00000e17: MSTORE 00000e18: PUSH1 0x00 00000e1a: DUP1 00000e1b: MLOAD 00000e1c: PUSH1 0x20 00000e1e: PUSH2 0x1c3b 00000e21: DUP4 00000e22: CODECOPY 00000e23: DUP2 00000e24: MLOAD 00000e25: SWAP2 00000e26: MSTORE 00000e27: PUSH1 0x20 00000e29: MSTORE 00000e2a: PUSH1 0x40 00000e2c: DUP1 00000e2d: DUP3 00000e2e: KECCAK256 00000e2f: SWAP4 00000e30: SWAP1 00000e31: SWAP4 00000e32: SSTORE 00000e33: SWAP2 00000e34: MLOAD 00000e35: SWAP1 00000e36: SWAP2 00000e37: DUP4 00000e38: ISZERO 00000e39: PUSH2 0x08fc 00000e3c: MUL 00000e3d: SWAP2 00000e3e: DUP5 00000e3f: SWAP2 00000e40: DUP2 00000e41: DUP2 00000e42: DUP2 00000e43: DUP6 00000e44: DUP9 00000e45: DUP9 00000e46: CALL 00000e47: SWAP4 00000e48: POP 00000e49: POP 00000e4a: POP 00000e4b: POP 00000e4c: ISZERO 00000e4d: ISZERO 00000e4e: PUSH2 0x0e56 00000e51: JUMPI 00000e52: PUSH1 0x00 00000e54: DUP1 00000e55: REVERT 00000e56: JUMPDEST 00000e57: CALLER 00000e58: PUSH1 0x00 00000e5a: DUP2 00000e5b: DUP2 00000e5c: MSTORE 00000e5d: PUSH1 0x00 00000e5f: DUP1 00000e60: MLOAD 00000e61: PUSH1 0x20 00000e63: PUSH2 0x1c3b 00000e66: DUP4 00000e67: CODECOPY 00000e68: DUP2 00000e69: MLOAD 00000e6a: SWAP2 00000e6b: MSTORE 00000e6c: PUSH1 0x20 00000e6e: SWAP1 00000e6f: DUP2 00000e70: MSTORE 00000e71: PUSH1 0x40 00000e73: DUP1 00000e74: DUP4 00000e75: KECCAK256 00000e76: SLOAD 00000e77: DUP2 00000e78: MLOAD 00000e79: SWAP4 00000e7a: DUP5 00000e7b: MSTORE 00000e7c: SWAP2 00000e7d: DUP4 00000e7e: ADD 00000e7f: SWAP4 00000e80: SWAP1 00000e81: SWAP4 00000e82: MSTORE 00000e83: DUP2 00000e84: DUP4 00000e85: ADD 00000e86: DUP5 00000e87: SWAP1 00000e88: MSTORE 00000e89: PUSH1 0x60 00000e8b: DUP3 00000e8c: ADD 00000e8d: MSTORE 00000e8e: SWAP1 00000e8f: MLOAD 00000e90: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567 00000eb1: SWAP2 00000eb2: DUP2 00000eb3: SWAP1 00000eb4: SUB 00000eb5: PUSH1 0x80 00000eb7: ADD 00000eb8: SWAP1 00000eb9: LOG1 00000eba: POP 00000ebb: JUMP 00000ebc: JUMPDEST 00000ebd: PUSH1 0x01 00000ebf: PUSH1 0xa0 00000ec1: PUSH1 0x02 00000ec3: EXP 00000ec4: SUB 00000ec5: DUP3 00000ec6: AND 00000ec7: ISZERO 00000ec8: ISZERO 00000ec9: PUSH2 0x0ed1 00000ecc: JUMPI 00000ecd: PUSH1 0x00 00000ecf: DUP1 00000ed0: REVERT 00000ed1: JUMPDEST 00000ed2: PUSH1 0x40 00000ed4: DUP1 00000ed5: MLOAD 00000ed6: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 00000ef7: DUP2 00000ef8: MSTORE 00000ef9: CALLER 00000efa: PUSH1 0x04 00000efc: DUP3 00000efd: ADD 00000efe: MSTORE 00000eff: ADDRESS 00000f00: PUSH1 0x24 00000f02: DUP3 00000f03: ADD 00000f04: MSTORE 00000f05: PUSH1 0x44 00000f07: DUP2 00000f08: ADD 00000f09: DUP4 00000f0a: SWAP1 00000f0b: MSTORE 00000f0c: SWAP1 00000f0d: MLOAD 00000f0e: PUSH1 0x01 00000f10: PUSH1 0xa0 00000f12: PUSH1 0x02 00000f14: EXP 00000f15: SUB 00000f16: DUP5 00000f17: AND 00000f18: SWAP2 00000f19: PUSH4 0x23b872dd 00000f1e: SWAP2 00000f1f: PUSH1 0x64 00000f21: DUP1 00000f22: DUP4 00000f23: ADD 00000f24: SWAP3 00000f25: PUSH1 0x20 00000f27: SWAP3 00000f28: SWAP2 00000f29: SWAP1 00000f2a: DUP3 00000f2b: SWAP1 00000f2c: SUB 00000f2d: ADD 00000f2e: DUP2 00000f2f: PUSH1 0x00 00000f31: DUP8 00000f32: DUP1 00000f33: EXTCODESIZE 00000f34: ISZERO 00000f35: DUP1 00000f36: ISZERO 00000f37: PUSH2 0x0f3f 00000f3a: JUMPI 00000f3b: PUSH1 0x00 00000f3d: DUP1 00000f3e: REVERT 00000f3f: JUMPDEST 00000f40: POP 00000f41: GAS 00000f42: CALL 00000f43: ISZERO 00000f44: DUP1 00000f45: ISZERO 00000f46: PUSH2 0x0f53 00000f49: JUMPI 00000f4a: RETURNDATASIZE 00000f4b: PUSH1 0x00 00000f4d: DUP1 00000f4e: RETURNDATACOPY 00000f4f: RETURNDATASIZE 00000f50: PUSH1 0x00 00000f52: REVERT 00000f53: JUMPDEST 00000f54: POP 00000f55: POP 00000f56: POP 00000f57: POP 00000f58: PUSH1 0x40 00000f5a: MLOAD 00000f5b: RETURNDATASIZE 00000f5c: PUSH1 0x20 00000f5e: DUP2 00000f5f: LT 00000f60: ISZERO 00000f61: PUSH2 0x0f69 00000f64: JUMPI 00000f65: PUSH1 0x00 00000f67: DUP1 00000f68: REVERT 00000f69: JUMPDEST 00000f6a: POP 00000f6b: MLOAD 00000f6c: ISZERO 00000f6d: ISZERO 00000f6e: PUSH2 0x0f76 00000f71: JUMPI 00000f72: PUSH1 0x00 00000f74: DUP1 00000f75: REVERT 00000f76: JUMPDEST 00000f77: PUSH1 0x01 00000f79: PUSH1 0xa0 00000f7b: PUSH1 0x02 00000f7d: EXP 00000f7e: SUB 00000f7f: DUP3 00000f80: AND 00000f81: PUSH1 0x00 00000f83: SWAP1 00000f84: DUP2 00000f85: MSTORE 00000f86: PUSH1 0x06 00000f88: PUSH1 0x20 00000f8a: SWAP1 00000f8b: DUP2 00000f8c: MSTORE 00000f8d: PUSH1 0x40 00000f8f: DUP1 00000f90: DUP4 00000f91: KECCAK256 00000f92: CALLER 00000f93: DUP5 00000f94: MSTORE 00000f95: SWAP1 00000f96: SWAP2 00000f97: MSTORE 00000f98: SWAP1 00000f99: KECCAK256 00000f9a: SLOAD 00000f9b: PUSH2 0x0fa4 00000f9e: SWAP1 00000f9f: DUP3 00000fa0: PUSH2 0x1905 00000fa3: JUMP 00000fa4: JUMPDEST 00000fa5: PUSH1 0x01 00000fa7: PUSH1 0xa0 00000fa9: PUSH1 0x02 00000fab: EXP 00000fac: SUB 00000fad: DUP4 00000fae: AND 00000faf: PUSH1 0x00 00000fb1: DUP2 00000fb2: DUP2 00000fb3: MSTORE 00000fb4: PUSH1 0x06 00000fb6: PUSH1 0x20 00000fb8: SWAP1 00000fb9: DUP2 00000fba: MSTORE 00000fbb: PUSH1 0x40 00000fbd: DUP1 00000fbe: DUP4 00000fbf: KECCAK256 00000fc0: CALLER 00000fc1: DUP1 00000fc2: DUP6 00000fc3: MSTORE 00000fc4: SWAP1 00000fc5: DUP4 00000fc6: MSTORE 00000fc7: SWAP3 00000fc8: DUP2 00000fc9: SWAP1 00000fca: KECCAK256 00000fcb: DUP6 00000fcc: SWAP1 00000fcd: SSTORE 00000fce: DUP1 00000fcf: MLOAD 00000fd0: SWAP4 00000fd1: DUP5 00000fd2: MSTORE 00000fd3: SWAP1 00000fd4: DUP4 00000fd5: ADD 00000fd6: SWAP2 00000fd7: SWAP1 00000fd8: SWAP2 00000fd9: MSTORE 00000fda: DUP2 00000fdb: DUP2 00000fdc: ADD 00000fdd: DUP5 00000fde: SWAP1 00000fdf: MSTORE 00000fe0: PUSH1 0x60 00000fe2: DUP3 00000fe3: ADD 00000fe4: SWAP3 00000fe5: SWAP1 00000fe6: SWAP3 00000fe7: MSTORE 00000fe8: SWAP1 00000fe9: MLOAD 00000fea: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 0000100b: SWAP2 0000100c: DUP2 0000100d: SWAP1 0000100e: SUB 0000100f: PUSH1 0x80 00001011: ADD 00001012: SWAP1 00001013: LOG1 00001014: POP 00001015: POP 00001016: JUMP 00001017: JUMPDEST 00001018: PUSH1 0x40 0000101a: DUP1 0000101b: MLOAD 0000101c: PUSH13 0x01000000000000000000000000 0000102a: ADDRESS 0000102b: DUP2 0000102c: MUL 0000102d: PUSH1 0x20 0000102f: DUP1 00001030: DUP5 00001031: ADD 00001032: SWAP2 00001033: SWAP1 00001034: SWAP2 00001035: MSTORE 00001036: PUSH1 0x01 00001038: PUSH1 0xa0 0000103a: PUSH1 0x02 0000103c: EXP 0000103d: SUB 0000103e: DUP1 0000103f: DUP16 00001040: AND 00001041: DUP4 00001042: MUL 00001043: PUSH1 0x34 00001045: DUP6 00001046: ADD 00001047: MSTORE 00001048: PUSH1 0x48 0000104a: DUP5 0000104b: ADD 0000104c: DUP15 0000104d: SWAP1 0000104e: MSTORE 0000104f: DUP13 00001050: AND 00001051: SWAP1 00001052: SWAP2 00001053: MUL 00001054: PUSH1 0x68 00001056: DUP4 00001057: ADD 00001058: MSTORE 00001059: PUSH1 0x7c 0000105b: DUP3 0000105c: ADD 0000105d: DUP11 0000105e: SWAP1 0000105f: MSTORE 00001060: PUSH1 0x9c 00001062: DUP3 00001063: ADD 00001064: DUP10 00001065: SWAP1 00001066: MSTORE 00001067: PUSH1 0xbc 00001069: DUP1 0000106a: DUP4 0000106b: ADD 0000106c: DUP10 0000106d: SWAP1 0000106e: MSTORE 0000106f: DUP4 00001070: MLOAD 00001071: DUP1 00001072: DUP5 00001073: SUB 00001074: SWAP1 00001075: SWAP2 00001076: ADD 00001077: DUP2 00001078: MSTORE 00001079: PUSH1 0xdc 0000107b: SWAP1 0000107c: SWAP3 0000107d: ADD 0000107e: SWAP3 0000107f: DUP4 00001080: SWAP1 00001081: MSTORE 00001082: DUP2 00001083: MLOAD 00001084: PUSH1 0x00 00001086: SWAP4 00001087: DUP5 00001088: SWAP4 00001089: PUSH1 0x02 0000108b: SWAP4 0000108c: SWAP1 0000108d: SWAP3 0000108e: DUP3 0000108f: SWAP2 00001090: DUP5 00001091: ADD 00001092: SWAP1 00001093: DUP1 00001094: DUP4 00001095: DUP4 00001096: JUMPDEST 00001097: PUSH1 0x20 00001099: DUP4 0000109a: LT 0000109b: PUSH2 0x10b5 0000109e: JUMPI 0000109f: DUP1 000010a0: MLOAD 000010a1: DUP3 000010a2: MSTORE 000010a3: PUSH1 0x1f 000010a5: NOT 000010a6: SWAP1 000010a7: SWAP3 000010a8: ADD 000010a9: SWAP2 000010aa: PUSH1 0x20 000010ac: SWAP2 000010ad: DUP3 000010ae: ADD 000010af: SWAP2 000010b0: ADD 000010b1: PUSH2 0x1096 000010b4: JUMP 000010b5: JUMPDEST 000010b6: MLOAD 000010b7: DUP2 000010b8: MLOAD 000010b9: PUSH1 0x20 000010bb: SWAP4 000010bc: DUP5 000010bd: SUB 000010be: PUSH2 0x0100 000010c1: EXP 000010c2: PUSH1 0x00 000010c4: NOT 000010c5: ADD 000010c6: DUP1 000010c7: NOT 000010c8: SWAP1 000010c9: SWAP3 000010ca: AND 000010cb: SWAP2 000010cc: AND 000010cd: OR 000010ce: SWAP1 000010cf: MSTORE 000010d0: PUSH1 0x40 000010d2: MLOAD 000010d3: SWAP2 000010d4: SWAP1 000010d5: SWAP4 000010d6: ADD 000010d7: SWAP5 000010d8: POP 000010d9: SWAP2 000010da: SWAP3 000010db: POP 000010dc: POP 000010dd: DUP1 000010de: DUP4 000010df: SUB 000010e0: DUP2 000010e1: PUSH1 0x00 000010e3: DUP7 000010e4: GAS 000010e5: CALL 000010e6: ISZERO 000010e7: DUP1 000010e8: ISZERO 000010e9: PUSH2 0x10f6 000010ec: JUMPI 000010ed: RETURNDATASIZE 000010ee: PUSH1 0x00 000010f0: DUP1 000010f1: RETURNDATACOPY 000010f2: RETURNDATASIZE 000010f3: PUSH1 0x00 000010f5: REVERT 000010f6: JUMPDEST 000010f7: POP 000010f8: POP 000010f9: POP 000010fa: PUSH1 0x40 000010fc: MLOAD 000010fd: RETURNDATASIZE 000010fe: PUSH1 0x20 00001100: DUP2 00001101: LT 00001102: ISZERO 00001103: PUSH2 0x110b 00001106: JUMPI 00001107: PUSH1 0x00 00001109: DUP1 0000110a: REVERT 0000110b: JUMPDEST 0000110c: POP 0000110d: MLOAD 0000110e: PUSH1 0x01 00001110: PUSH1 0xa0 00001112: PUSH1 0x02 00001114: EXP 00001115: SUB 00001116: DUP8 00001117: AND 00001118: PUSH1 0x00 0000111a: SWAP1 0000111b: DUP2 0000111c: MSTORE 0000111d: PUSH1 0x08 0000111f: PUSH1 0x20 00001121: SWAP1 00001122: DUP2 00001123: MSTORE 00001124: PUSH1 0x40 00001126: DUP1 00001127: DUP4 00001128: KECCAK256 00001129: DUP5 0000112a: DUP5 0000112b: MSTORE 0000112c: SWAP1 0000112d: SWAP2 0000112e: MSTORE 0000112f: SWAP1 00001130: KECCAK256 00001131: SLOAD 00001132: SWAP3 00001133: POP 00001134: SWAP1 00001135: POP 00001136: POP 00001137: SWAP11 00001138: SWAP10 00001139: POP 0000113a: POP 0000113b: POP 0000113c: POP 0000113d: POP 0000113e: POP 0000113f: POP 00001140: POP 00001141: POP 00001142: POP 00001143: JUMP 00001144: JUMPDEST 00001145: PUSH1 0x06 00001147: PUSH1 0x20 00001149: SWAP1 0000114a: DUP2 0000114b: MSTORE 0000114c: PUSH1 0x00 0000114e: SWAP3 0000114f: DUP4 00001150: MSTORE 00001151: PUSH1 0x40 00001153: DUP1 00001154: DUP5 00001155: KECCAK256 00001156: SWAP1 00001157: SWAP2 00001158: MSTORE 00001159: SWAP1 0000115a: DUP3 0000115b: MSTORE 0000115c: SWAP1 0000115d: KECCAK256 0000115e: SLOAD 0000115f: DUP2 00001160: JUMP 00001161: JUMPDEST 00001162: PUSH1 0x00 00001164: SLOAD 00001165: PUSH1 0x01 00001167: PUSH1 0xa0 00001169: PUSH1 0x02 0000116b: EXP 0000116c: SUB 0000116d: AND 0000116e: CALLER 0000116f: EQ 00001170: PUSH2 0x1178 00001173: JUMPI 00001174: PUSH1 0x00 00001176: DUP1 00001177: REVERT 00001178: JUMPDEST 00001179: PUSH1 0x03 0000117b: SLOAD 0000117c: DUP2 0000117d: GT 0000117e: ISZERO 0000117f: PUSH2 0x1187 00001182: JUMPI 00001183: PUSH1 0x00 00001185: DUP1 00001186: REVERT 00001187: JUMPDEST 00001188: PUSH1 0x03 0000118a: SSTORE 0000118b: JUMP 0000118c: JUMPDEST 0000118d: PUSH1 0x03 0000118f: SLOAD 00001190: DUP2 00001191: JUMP 00001192: JUMPDEST 00001193: PUSH1 0x00 00001195: SLOAD 00001196: PUSH1 0x01 00001198: PUSH1 0xa0 0000119a: PUSH1 0x02 0000119c: EXP 0000119d: SUB 0000119e: AND 0000119f: CALLER 000011a0: EQ 000011a1: PUSH2 0x11a9 000011a4: JUMPI 000011a5: PUSH1 0x00 000011a7: DUP1 000011a8: REVERT 000011a9: JUMPDEST 000011aa: PUSH1 0x05 000011ac: SLOAD 000011ad: DUP2 000011ae: LT 000011af: DUP1 000011b0: PUSH2 0x11ba 000011b3: JUMPI 000011b4: POP 000011b5: PUSH1 0x04 000011b7: SLOAD 000011b8: DUP2 000011b9: GT 000011ba: JUMPDEST 000011bb: ISZERO 000011bc: PUSH2 0x11c4 000011bf: JUMPI 000011c0: PUSH1 0x00 000011c2: DUP1 000011c3: REVERT 000011c4: JUMPDEST 000011c5: PUSH1 0x05 000011c7: SSTORE 000011c8: JUMP 000011c9: JUMPDEST 000011ca: PUSH1 0x01 000011cc: SLOAD 000011cd: PUSH1 0x01 000011cf: PUSH1 0xa0 000011d1: PUSH1 0x02 000011d3: EXP 000011d4: SUB 000011d5: AND 000011d6: DUP2 000011d7: JUMP 000011d8: JUMPDEST 000011d9: PUSH1 0x01 000011db: PUSH1 0xa0 000011dd: PUSH1 0x02 000011df: EXP 000011e0: SUB 000011e1: DUP1 000011e2: DUP14 000011e3: AND 000011e4: PUSH1 0x00 000011e6: SWAP1 000011e7: DUP2 000011e8: MSTORE 000011e9: PUSH1 0x06 000011eb: PUSH1 0x20 000011ed: SWAP1 000011ee: DUP2 000011ef: MSTORE 000011f0: PUSH1 0x40 000011f2: DUP1 000011f3: DUP4 000011f4: KECCAK256 000011f5: SWAP4 000011f6: DUP6 000011f7: AND 000011f8: DUP4 000011f9: MSTORE 000011fa: SWAP3 000011fb: SWAP1 000011fc: MSTORE 000011fd: SWAP1 000011fe: DUP2 000011ff: KECCAK256 00001200: SLOAD 00001201: DUP4 00001202: GT 00001203: DUP1 00001204: ISZERO 00001205: SWAP1 00001206: PUSH2 0x1220 00001209: JUMPI 0000120a: POP 0000120b: DUP3 0000120c: PUSH2 0x121d 0000120f: DUP15 00001210: DUP15 00001211: DUP15 00001212: DUP15 00001213: DUP15 00001214: DUP15 00001215: DUP15 00001216: DUP15 00001217: DUP15 00001218: DUP15 00001219: PUSH2 0x15ea 0000121c: JUMP 0000121d: JUMPDEST 0000121e: LT 0000121f: ISZERO 00001220: JUMPDEST 00001221: ISZERO 00001222: ISZERO 00001223: PUSH2 0x122e 00001226: JUMPI 00001227: POP 00001228: PUSH1 0x00 0000122a: PUSH2 0x1232 0000122d: JUMP 0000122e: JUMPDEST 0000122f: POP 00001230: PUSH1 0x01 00001232: JUMPDEST 00001233: SWAP13 00001234: SWAP12 00001235: POP 00001236: POP 00001237: POP 00001238: POP 00001239: POP 0000123a: POP 0000123b: POP 0000123c: POP 0000123d: POP 0000123e: POP 0000123f: POP 00001240: POP 00001241: JUMP 00001242: JUMPDEST 00001243: PUSH1 0x00 00001245: SLOAD 00001246: PUSH1 0x01 00001248: PUSH1 0xa0 0000124a: PUSH1 0x02 0000124c: EXP 0000124d: SUB 0000124e: AND 0000124f: CALLER 00001250: EQ 00001251: PUSH2 0x1259 00001254: JUMPI 00001255: PUSH1 0x00 00001257: DUP1 00001258: REVERT 00001259: JUMPDEST 0000125a: PUSH1 0x01 0000125c: DUP1 0000125d: SLOAD 0000125e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001273: NOT 00001274: AND 00001275: PUSH1 0x01 00001277: PUSH1 0xa0 00001279: PUSH1 0x02 0000127b: EXP 0000127c: SUB 0000127d: SWAP3 0000127e: SWAP1 0000127f: SWAP3 00001280: AND 00001281: SWAP2 00001282: SWAP1 00001283: SWAP2 00001284: OR 00001285: SWAP1 00001286: SSTORE 00001287: JUMP 00001288: JUMPDEST 00001289: PUSH1 0x05 0000128b: SLOAD 0000128c: DUP2 0000128d: JUMP 0000128e: JUMPDEST 0000128f: PUSH1 0x00 00001291: SLOAD 00001292: PUSH1 0x01 00001294: PUSH1 0xa0 00001296: PUSH1 0x02 00001298: EXP 00001299: SUB 0000129a: AND 0000129b: CALLER 0000129c: EQ 0000129d: PUSH2 0x12a5 000012a0: JUMPI 000012a1: PUSH1 0x00 000012a3: DUP1 000012a4: REVERT 000012a5: JUMPDEST 000012a6: PUSH1 0x04 000012a8: SLOAD 000012a9: DUP2 000012aa: GT 000012ab: DUP1 000012ac: PUSH2 0x12b6 000012af: JUMPI 000012b0: POP 000012b1: PUSH1 0x05 000012b3: SLOAD 000012b4: DUP2 000012b5: LT 000012b6: JUMPDEST 000012b7: ISZERO 000012b8: PUSH2 0x12c0 000012bb: JUMPI 000012bc: PUSH1 0x00 000012be: DUP1 000012bf: REVERT 000012c0: JUMPDEST 000012c1: PUSH1 0x04 000012c3: SSTORE 000012c4: JUMP 000012c5: JUMPDEST 000012c6: PUSH1 0x00 000012c8: SLOAD 000012c9: PUSH1 0x01 000012cb: PUSH1 0xa0 000012cd: PUSH1 0x02 000012cf: EXP 000012d0: SUB 000012d1: AND 000012d2: CALLER 000012d3: EQ 000012d4: PUSH2 0x12dc 000012d7: JUMPI 000012d8: PUSH1 0x00 000012da: DUP1 000012db: REVERT 000012dc: JUMPDEST 000012dd: PUSH1 0x00 000012df: DUP1 000012e0: SLOAD 000012e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012f6: NOT 000012f7: AND 000012f8: PUSH1 0x01 000012fa: PUSH1 0xa0 000012fc: PUSH1 0x02 000012fe: EXP 000012ff: SUB 00001300: SWAP3 00001301: SWAP1 00001302: SWAP3 00001303: AND 00001304: SWAP2 00001305: SWAP1 00001306: SWAP2 00001307: OR 00001308: SWAP1 00001309: SSTORE 0000130a: JUMP 0000130b: JUMPDEST 0000130c: PUSH1 0x01 0000130e: PUSH1 0xa0 00001310: PUSH1 0x02 00001312: EXP 00001313: SUB 00001314: DUP3 00001315: AND 00001316: ISZERO 00001317: ISZERO 00001318: PUSH2 0x1320 0000131b: JUMPI 0000131c: PUSH1 0x00 0000131e: DUP1 0000131f: REVERT 00001320: JUMPDEST 00001321: PUSH1 0x01 00001323: PUSH1 0xa0 00001325: PUSH1 0x02 00001327: EXP 00001328: SUB 00001329: DUP3 0000132a: AND 0000132b: PUSH1 0x00 0000132d: SWAP1 0000132e: DUP2 0000132f: MSTORE 00001330: PUSH1 0x06 00001332: PUSH1 0x20 00001334: SWAP1 00001335: DUP2 00001336: MSTORE 00001337: PUSH1 0x40 00001339: DUP1 0000133a: DUP4 0000133b: KECCAK256 0000133c: CALLER 0000133d: DUP5 0000133e: MSTORE 0000133f: SWAP1 00001340: SWAP2 00001341: MSTORE 00001342: SWAP1 00001343: KECCAK256 00001344: SLOAD 00001345: DUP2 00001346: GT 00001347: ISZERO 00001348: PUSH2 0x1350 0000134b: JUMPI 0000134c: PUSH1 0x00 0000134e: DUP1 0000134f: REVERT 00001350: JUMPDEST 00001351: PUSH1 0x01 00001353: PUSH1 0xa0 00001355: PUSH1 0x02 00001357: EXP 00001358: SUB 00001359: DUP3 0000135a: AND 0000135b: PUSH1 0x00 0000135d: SWAP1 0000135e: DUP2 0000135f: MSTORE 00001360: PUSH1 0x06 00001362: PUSH1 0x20 00001364: SWAP1 00001365: DUP2 00001366: MSTORE 00001367: PUSH1 0x40 00001369: DUP1 0000136a: DUP4 0000136b: KECCAK256 0000136c: CALLER 0000136d: DUP5 0000136e: MSTORE 0000136f: SWAP1 00001370: SWAP2 00001371: MSTORE 00001372: SWAP1 00001373: KECCAK256 00001374: SLOAD 00001375: PUSH2 0x137e 00001378: SWAP1 00001379: DUP3 0000137a: PUSH2 0x1c07 0000137d: JUMP 0000137e: JUMPDEST 0000137f: PUSH1 0x01 00001381: PUSH1 0xa0 00001383: PUSH1 0x02 00001385: EXP 00001386: SUB 00001387: DUP4 00001388: AND 00001389: PUSH1 0x00 0000138b: DUP2 0000138c: DUP2 0000138d: MSTORE 0000138e: PUSH1 0x06 00001390: PUSH1 0x20 00001392: SWAP1 00001393: DUP2 00001394: MSTORE 00001395: PUSH1 0x40 00001397: DUP1 00001398: DUP4 00001399: KECCAK256 0000139a: CALLER 0000139b: DUP1 0000139c: DUP6 0000139d: MSTORE 0000139e: SWAP1 0000139f: DUP4 000013a0: MSTORE 000013a1: DUP2 000013a2: DUP5 000013a3: KECCAK256 000013a4: SWAP6 000013a5: SWAP1 000013a6: SWAP6 000013a7: SSTORE 000013a8: DUP1 000013a9: MLOAD 000013aa: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 000013cb: DUP2 000013cc: MSTORE 000013cd: PUSH1 0x04 000013cf: DUP2 000013d0: ADD 000013d1: SWAP6 000013d2: SWAP1 000013d3: SWAP6 000013d4: MSTORE 000013d5: PUSH1 0x24 000013d7: DUP6 000013d8: ADD 000013d9: DUP7 000013da: SWAP1 000013db: MSTORE 000013dc: MLOAD 000013dd: SWAP3 000013de: SWAP4 000013df: PUSH4 0xa9059cbb 000013e4: SWAP4 000013e5: PUSH1 0x44 000013e7: DUP1 000013e8: DUP4 000013e9: ADD 000013ea: SWAP5 000013eb: SWAP2 000013ec: SWAP3 000013ed: DUP4 000013ee: SWAP1 000013ef: SUB 000013f0: ADD 000013f1: SWAP1 000013f2: DUP3 000013f3: SWAP1 000013f4: DUP8 000013f5: DUP1 000013f6: EXTCODESIZE 000013f7: ISZERO 000013f8: DUP1 000013f9: ISZERO 000013fa: PUSH2 0x1402 000013fd: JUMPI 000013fe: PUSH1 0x00 00001400: DUP1 00001401: REVERT 00001402: JUMPDEST 00001403: POP 00001404: GAS 00001405: CALL 00001406: ISZERO 00001407: DUP1 00001408: ISZERO 00001409: PUSH2 0x1416 0000140c: JUMPI 0000140d: RETURNDATASIZE 0000140e: PUSH1 0x00 00001410: DUP1 00001411: RETURNDATACOPY 00001412: RETURNDATASIZE 00001413: PUSH1 0x00 00001415: REVERT 00001416: JUMPDEST 00001417: POP 00001418: POP 00001419: POP 0000141a: POP 0000141b: PUSH1 0x40 0000141d: MLOAD 0000141e: RETURNDATASIZE 0000141f: PUSH1 0x20 00001421: DUP2 00001422: LT 00001423: ISZERO 00001424: PUSH2 0x142c 00001427: JUMPI 00001428: PUSH1 0x00 0000142a: DUP1 0000142b: REVERT 0000142c: JUMPDEST 0000142d: POP 0000142e: MLOAD 0000142f: ISZERO 00001430: ISZERO 00001431: PUSH2 0x1439 00001434: JUMPI 00001435: PUSH1 0x00 00001437: DUP1 00001438: REVERT 00001439: JUMPDEST 0000143a: PUSH1 0x01 0000143c: PUSH1 0xa0 0000143e: PUSH1 0x02 00001440: EXP 00001441: SUB 00001442: DUP3 00001443: AND 00001444: PUSH1 0x00 00001446: DUP2 00001447: DUP2 00001448: MSTORE 00001449: PUSH1 0x06 0000144b: PUSH1 0x20 0000144d: SWAP1 0000144e: DUP2 0000144f: MSTORE 00001450: PUSH1 0x40 00001452: DUP1 00001453: DUP4 00001454: KECCAK256 00001455: CALLER 00001456: DUP1 00001457: DUP6 00001458: MSTORE 00001459: SWAP1 0000145a: DUP4 0000145b: MSTORE 0000145c: SWAP3 0000145d: DUP2 0000145e: SWAP1 0000145f: KECCAK256 00001460: SLOAD 00001461: DUP2 00001462: MLOAD 00001463: SWAP5 00001464: DUP6 00001465: MSTORE 00001466: SWAP2 00001467: DUP5 00001468: ADD 00001469: SWAP3 0000146a: SWAP1 0000146b: SWAP3 0000146c: MSTORE 0000146d: DUP3 0000146e: DUP3 0000146f: ADD 00001470: DUP5 00001471: SWAP1 00001472: MSTORE 00001473: PUSH1 0x60 00001475: DUP4 00001476: ADD 00001477: MSTORE 00001478: MLOAD 00001479: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567 0000149a: SWAP2 0000149b: DUP2 0000149c: SWAP1 0000149d: SUB 0000149e: PUSH1 0x80 000014a0: ADD 000014a1: SWAP1 000014a2: LOG1 000014a3: POP 000014a4: POP 000014a5: JUMP 000014a6: JUMPDEST 000014a7: PUSH1 0x07 000014a9: PUSH1 0x20 000014ab: SWAP1 000014ac: DUP2 000014ad: MSTORE 000014ae: PUSH1 0x00 000014b0: SWAP3 000014b1: DUP4 000014b2: MSTORE 000014b3: PUSH1 0x40 000014b5: DUP1 000014b6: DUP5 000014b7: KECCAK256 000014b8: SWAP1 000014b9: SWAP2 000014ba: MSTORE 000014bb: SWAP1 000014bc: DUP3 000014bd: MSTORE 000014be: SWAP1 000014bf: KECCAK256 000014c0: SLOAD 000014c1: PUSH1 0xff 000014c3: AND 000014c4: DUP2 000014c5: JUMP 000014c6: JUMPDEST 000014c7: PUSH1 0x04 000014c9: SLOAD 000014ca: DUP2 000014cb: JUMP 000014cc: JUMPDEST 000014cd: CALLER 000014ce: PUSH1 0x00 000014d0: SWAP1 000014d1: DUP2 000014d2: MSTORE 000014d3: PUSH1 0x00 000014d5: DUP1 000014d6: MLOAD 000014d7: PUSH1 0x20 000014d9: PUSH2 0x1c3b 000014dc: DUP4 000014dd: CODECOPY 000014de: DUP2 000014df: MLOAD 000014e0: SWAP2 000014e1: MSTORE 000014e2: PUSH1 0x20 000014e4: MSTORE 000014e5: PUSH1 0x40 000014e7: SWAP1 000014e8: KECCAK256 000014e9: SLOAD 000014ea: PUSH2 0x14f3 000014ed: SWAP1 000014ee: CALLVALUE 000014ef: PUSH2 0x1905 000014f2: JUMP 000014f3: JUMPDEST 000014f4: CALLER 000014f5: PUSH1 0x00 000014f7: DUP2 000014f8: DUP2 000014f9: MSTORE 000014fa: PUSH1 0x00 000014fc: DUP1 000014fd: MLOAD 000014fe: PUSH1 0x20 00001500: PUSH2 0x1c3b 00001503: DUP4 00001504: CODECOPY 00001505: DUP2 00001506: MLOAD 00001507: SWAP2 00001508: MSTORE 00001509: PUSH1 0x20 0000150b: SWAP1 0000150c: DUP2 0000150d: MSTORE 0000150e: PUSH1 0x40 00001510: DUP1 00001511: DUP4 00001512: KECCAK256 00001513: DUP6 00001514: SWAP1 00001515: SSTORE 00001516: DUP1 00001517: MLOAD 00001518: SWAP3 00001519: DUP4 0000151a: MSTORE 0000151b: SWAP1 0000151c: DUP3 0000151d: ADD 0000151e: SWAP3 0000151f: SWAP1 00001520: SWAP3 00001521: MSTORE 00001522: CALLVALUE 00001523: DUP2 00001524: DUP4 00001525: ADD 00001526: MSTORE 00001527: PUSH1 0x60 00001529: DUP2 0000152a: ADD 0000152b: SWAP3 0000152c: SWAP1 0000152d: SWAP3 0000152e: MSTORE 0000152f: MLOAD 00001530: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 00001551: SWAP2 00001552: DUP2 00001553: SWAP1 00001554: SUB 00001555: PUSH1 0x80 00001557: ADD 00001558: SWAP1 00001559: LOG1 0000155a: JUMP 0000155b: JUMPDEST 0000155c: PUSH1 0x00 0000155e: SLOAD 0000155f: PUSH1 0x01 00001561: PUSH1 0xa0 00001563: PUSH1 0x02 00001565: EXP 00001566: SUB 00001567: AND 00001568: CALLER 00001569: EQ 0000156a: PUSH2 0x1572 0000156d: JUMPI 0000156e: PUSH1 0x00 00001570: DUP1 00001571: REVERT 00001572: JUMPDEST 00001573: PUSH1 0x02 00001575: DUP1 00001576: SLOAD 00001577: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000158c: NOT 0000158d: AND 0000158e: PUSH1 0x01 00001590: PUSH1 0xa0 00001592: PUSH1 0x02 00001594: EXP 00001595: SUB 00001596: SWAP3 00001597: SWAP1 00001598: SWAP3 00001599: AND 0000159a: SWAP2 0000159b: SWAP1 0000159c: SWAP2 0000159d: OR 0000159e: SWAP1 0000159f: SSTORE 000015a0: JUMP 000015a1: JUMPDEST 000015a2: PUSH1 0x02 000015a4: SLOAD 000015a5: PUSH1 0x01 000015a7: PUSH1 0xa0 000015a9: PUSH1 0x02 000015ab: EXP 000015ac: SUB 000015ad: AND 000015ae: DUP2 000015af: JUMP 000015b0: JUMPDEST 000015b1: PUSH1 0x01 000015b3: PUSH1 0xa0 000015b5: PUSH1 0x02 000015b7: EXP 000015b8: SUB 000015b9: SWAP2 000015ba: DUP3 000015bb: AND 000015bc: PUSH1 0x00 000015be: SWAP1 000015bf: DUP2 000015c0: MSTORE 000015c1: PUSH1 0x06 000015c3: PUSH1 0x20 000015c5: SWAP1 000015c6: DUP2 000015c7: MSTORE 000015c8: PUSH1 0x40 000015ca: DUP1 000015cb: DUP4 000015cc: KECCAK256 000015cd: SWAP4 000015ce: SWAP1 000015cf: SWAP5 000015d0: AND 000015d1: DUP3 000015d2: MSTORE 000015d3: SWAP2 000015d4: SWAP1 000015d5: SWAP2 000015d6: MSTORE 000015d7: KECCAK256 000015d8: SLOAD 000015d9: SWAP1 000015da: JUMP 000015db: JUMPDEST 000015dc: PUSH1 0x00 000015de: SLOAD 000015df: PUSH1 0x01 000015e1: PUSH1 0xa0 000015e3: PUSH1 0x02 000015e5: EXP 000015e6: SUB 000015e7: AND 000015e8: DUP2 000015e9: JUMP 000015ea: JUMPDEST 000015eb: PUSH1 0x40 000015ed: DUP1 000015ee: MLOAD 000015ef: PUSH13 0x01000000000000000000000000 000015fd: ADDRESS 000015fe: DUP2 000015ff: MUL 00001600: PUSH1 0x20 00001602: DUP1 00001603: DUP5 00001604: ADD 00001605: SWAP2 00001606: SWAP1 00001607: SWAP2 00001608: MSTORE 00001609: PUSH1 0x01 0000160b: PUSH1 0xa0 0000160d: PUSH1 0x02 0000160f: EXP 00001610: SUB 00001611: DUP1 00001612: DUP16 00001613: AND 00001614: DUP4 00001615: MUL 00001616: PUSH1 0x34 00001618: DUP6 00001619: ADD 0000161a: MSTORE 0000161b: PUSH1 0x48 0000161d: DUP5 0000161e: ADD 0000161f: DUP15 00001620: SWAP1 00001621: MSTORE 00001622: DUP13 00001623: AND 00001624: SWAP1 00001625: SWAP2 00001626: MUL 00001627: PUSH1 0x68 00001629: DUP4 0000162a: ADD 0000162b: MSTORE 0000162c: PUSH1 0x7c 0000162e: DUP3 0000162f: ADD 00001630: DUP11 00001631: SWAP1 00001632: MSTORE 00001633: PUSH1 0x9c 00001635: DUP3 00001636: ADD 00001637: DUP10 00001638: SWAP1 00001639: MSTORE 0000163a: PUSH1 0xbc 0000163c: DUP1 0000163d: DUP4 0000163e: ADD 0000163f: DUP10 00001640: SWAP1 00001641: MSTORE 00001642: DUP4 00001643: MLOAD 00001644: DUP1 00001645: DUP5 00001646: SUB 00001647: SWAP1 00001648: SWAP2 00001649: ADD 0000164a: DUP2 0000164b: MSTORE 0000164c: PUSH1 0xdc 0000164e: SWAP1 0000164f: SWAP3 00001650: ADD 00001651: SWAP3 00001652: DUP4 00001653: SWAP1 00001654: MSTORE 00001655: DUP2 00001656: MLOAD 00001657: PUSH1 0x00 00001659: SWAP4 0000165a: DUP5 0000165b: SWAP4 0000165c: DUP5 0000165d: SWAP4 0000165e: DUP5 0000165f: SWAP4 00001660: PUSH1 0x02 00001662: SWAP4 00001663: SWAP2 00001664: DUP3 00001665: SWAP2 00001666: SWAP1 00001667: DUP5 00001668: ADD 00001669: SWAP1 0000166a: DUP1 0000166b: DUP4 0000166c: DUP4 0000166d: JUMPDEST 0000166e: PUSH1 0x20 00001670: DUP4 00001671: LT 00001672: PUSH2 0x168c 00001675: JUMPI 00001676: DUP1 00001677: MLOAD 00001678: DUP3 00001679: MSTORE 0000167a: PUSH1 0x1f 0000167c: NOT 0000167d: SWAP1 0000167e: SWAP3 0000167f: ADD 00001680: SWAP2 00001681: PUSH1 0x20 00001683: SWAP2 00001684: DUP3 00001685: ADD 00001686: SWAP2 00001687: ADD 00001688: PUSH2 0x166d 0000168b: JUMP 0000168c: JUMPDEST 0000168d: MLOAD 0000168e: DUP2 0000168f: MLOAD 00001690: PUSH1 0x20 00001692: SWAP4 00001693: DUP5 00001694: SUB 00001695: PUSH2 0x0100 00001698: EXP 00001699: PUSH1 0x00 0000169b: NOT 0000169c: ADD 0000169d: DUP1 0000169e: NOT 0000169f: SWAP1 000016a0: SWAP3 000016a1: AND 000016a2: SWAP2 000016a3: AND 000016a4: OR 000016a5: SWAP1 000016a6: MSTORE 000016a7: PUSH1 0x40 000016a9: MLOAD 000016aa: SWAP2 000016ab: SWAP1 000016ac: SWAP4 000016ad: ADD 000016ae: SWAP5 000016af: POP 000016b0: SWAP2 000016b1: SWAP3 000016b2: POP 000016b3: POP 000016b4: DUP1 000016b5: DUP4 000016b6: SUB 000016b7: DUP2 000016b8: PUSH1 0x00 000016ba: DUP7 000016bb: GAS 000016bc: CALL 000016bd: ISZERO 000016be: DUP1 000016bf: ISZERO 000016c0: PUSH2 0x16cd 000016c3: JUMPI 000016c4: RETURNDATASIZE 000016c5: PUSH1 0x00 000016c7: DUP1 000016c8: RETURNDATACOPY 000016c9: RETURNDATASIZE 000016ca: PUSH1 0x00 000016cc: REVERT 000016cd: JUMPDEST 000016ce: POP 000016cf: POP 000016d0: POP 000016d1: PUSH1 0x40 000016d3: MLOAD 000016d4: RETURNDATASIZE 000016d5: PUSH1 0x20 000016d7: DUP2 000016d8: LT 000016d9: ISZERO 000016da: PUSH2 0x16e2 000016dd: JUMPI 000016de: PUSH1 0x00 000016e0: DUP1 000016e1: REVERT 000016e2: JUMPDEST 000016e3: POP 000016e4: MLOAD 000016e5: PUSH1 0x01 000016e7: PUSH1 0xa0 000016e9: PUSH1 0x02 000016eb: EXP 000016ec: SUB 000016ed: DUP10 000016ee: AND 000016ef: PUSH1 0x00 000016f1: SWAP1 000016f2: DUP2 000016f3: MSTORE 000016f4: PUSH1 0x07 000016f6: PUSH1 0x20 000016f8: SWAP1 000016f9: DUP2 000016fa: MSTORE 000016fb: PUSH1 0x40 000016fd: DUP1 000016fe: DUP4 000016ff: KECCAK256 00001700: DUP5 00001701: DUP5 00001702: MSTORE 00001703: SWAP1 00001704: SWAP2 00001705: MSTORE 00001706: SWAP1 00001707: KECCAK256 00001708: SLOAD 00001709: SWAP1 0000170a: SWAP4 0000170b: POP 0000170c: PUSH1 0xff 0000170e: AND 0000170f: DUP1 00001710: PUSH2 0x1855 00001713: JUMPI 00001714: POP 00001715: DUP8 00001716: PUSH1 0x01 00001718: PUSH1 0xa0 0000171a: PUSH1 0x02 0000171c: EXP 0000171d: SUB 0000171e: AND 0000171f: PUSH1 0x01 00001721: DUP5 00001722: PUSH1 0x40 00001724: MLOAD 00001725: PUSH1 0x20 00001727: ADD 00001728: DUP1 00001729: DUP1 0000172a: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 0000174b: DUP2 0000174c: MSTORE 0000174d: POP 0000174e: PUSH1 0x1c 00001750: ADD 00001751: DUP3 00001752: PUSH1 0x00 00001754: NOT 00001755: AND 00001756: PUSH1 0x00 00001758: NOT 00001759: AND 0000175a: DUP2 0000175b: MSTORE 0000175c: PUSH1 0x20 0000175e: ADD 0000175f: SWAP2 00001760: POP 00001761: POP 00001762: PUSH1 0x40 00001764: MLOAD 00001765: PUSH1 0x20 00001767: DUP2 00001768: DUP4 00001769: SUB 0000176a: SUB 0000176b: DUP2 0000176c: MSTORE 0000176d: SWAP1 0000176e: PUSH1 0x40 00001770: MSTORE 00001771: PUSH1 0x40 00001773: MLOAD 00001774: DUP1 00001775: DUP3 00001776: DUP1 00001777: MLOAD 00001778: SWAP1 00001779: PUSH1 0x20 0000177b: ADD 0000177c: SWAP1 0000177d: DUP1 0000177e: DUP4 0000177f: DUP4 00001780: JUMPDEST 00001781: PUSH1 0x20 00001783: DUP4 00001784: LT 00001785: PUSH2 0x179f 00001788: JUMPI 00001789: DUP1 0000178a: MLOAD 0000178b: DUP3 0000178c: MSTORE 0000178d: PUSH1 0x1f 0000178f: NOT 00001790: SWAP1 00001791: SWAP3 00001792: ADD 00001793: SWAP2 00001794: PUSH1 0x20 00001796: SWAP2 00001797: DUP3 00001798: ADD 00001799: SWAP2 0000179a: ADD 0000179b: PUSH2 0x1780 0000179e: JUMP 0000179f: JUMPDEST 000017a0: PUSH1 0x01 000017a2: DUP4 000017a3: PUSH1 0x20 000017a5: SUB 000017a6: PUSH2 0x0100 000017a9: EXP 000017aa: SUB 000017ab: DUP1 000017ac: NOT 000017ad: DUP3 000017ae: MLOAD 000017af: AND 000017b0: DUP2 000017b1: DUP5 000017b2: MLOAD 000017b3: AND 000017b4: DUP1 000017b5: DUP3 000017b6: OR 000017b7: DUP6 000017b8: MSTORE 000017b9: POP 000017ba: POP 000017bb: POP 000017bc: POP 000017bd: POP 000017be: POP 000017bf: SWAP1 000017c0: POP 000017c1: ADD 000017c2: SWAP2 000017c3: POP 000017c4: POP 000017c5: PUSH1 0x40 000017c7: MLOAD 000017c8: DUP1 000017c9: SWAP2 000017ca: SUB 000017cb: SWAP1 000017cc: KECCAK256 000017cd: DUP10 000017ce: DUP10 000017cf: DUP10 000017d0: PUSH1 0x40 000017d2: MLOAD 000017d3: PUSH1 0x00 000017d5: DUP2 000017d6: MSTORE 000017d7: PUSH1 0x20 000017d9: ADD 000017da: PUSH1 0x40 000017dc: MSTORE 000017dd: PUSH1 0x40 000017df: MLOAD 000017e0: DUP1 000017e1: DUP6 000017e2: PUSH1 0x00 000017e4: NOT 000017e5: AND 000017e6: PUSH1 0x00 000017e8: NOT 000017e9: AND 000017ea: DUP2 000017eb: MSTORE 000017ec: PUSH1 0x20 000017ee: ADD 000017ef: DUP5 000017f0: PUSH1 0xff 000017f2: AND 000017f3: PUSH1 0xff 000017f5: AND 000017f6: DUP2 000017f7: MSTORE 000017f8: PUSH1 0x20 000017fa: ADD 000017fb: DUP4 000017fc: PUSH1 0x00 000017fe: NOT 000017ff: AND 00001800: PUSH1 0x00 00001802: NOT 00001803: AND 00001804: DUP2 00001805: MSTORE 00001806: PUSH1 0x20 00001808: ADD 00001809: DUP3 0000180a: PUSH1 0x00 0000180c: NOT 0000180d: AND 0000180e: PUSH1 0x00 00001810: NOT 00001811: AND 00001812: DUP2 00001813: MSTORE 00001814: PUSH1 0x20 00001816: ADD 00001817: SWAP5 00001818: POP 00001819: POP 0000181a: POP 0000181b: POP 0000181c: POP 0000181d: PUSH1 0x20 0000181f: PUSH1 0x40 00001821: MLOAD 00001822: PUSH1 0x20 00001824: DUP2 00001825: SUB 00001826: SWAP1 00001827: DUP1 00001828: DUP5 00001829: SUB 0000182a: SWAP1 0000182b: PUSH1 0x00 0000182d: DUP7 0000182e: GAS 0000182f: CALL 00001830: ISZERO 00001831: DUP1 00001832: ISZERO 00001833: PUSH2 0x1840 00001836: JUMPI 00001837: RETURNDATASIZE 00001838: PUSH1 0x00 0000183a: DUP1 0000183b: RETURNDATACOPY 0000183c: RETURNDATASIZE 0000183d: PUSH1 0x00 0000183f: REVERT 00001840: JUMPDEST 00001841: POP 00001842: POP 00001843: POP 00001844: PUSH1 0x20 00001846: PUSH1 0x40 00001848: MLOAD 00001849: SUB 0000184a: MLOAD 0000184b: PUSH1 0x01 0000184d: PUSH1 0xa0 0000184f: PUSH1 0x02 00001851: EXP 00001852: SUB 00001853: AND 00001854: EQ 00001855: JUMPDEST 00001856: DUP1 00001857: ISZERO 00001858: PUSH2 0x1861 0000185b: JUMPI 0000185c: POP 0000185d: DUP10 0000185e: NUMBER 0000185f: GT 00001860: ISZERO 00001861: JUMPDEST 00001862: ISZERO 00001863: ISZERO 00001864: PUSH2 0x1870 00001867: JUMPI 00001868: PUSH1 0x00 0000186a: SWAP4 0000186b: POP 0000186c: PUSH2 0x18f4 0000186f: JUMP 00001870: JUMPDEST 00001871: PUSH1 0x01 00001873: PUSH1 0xa0 00001875: PUSH1 0x02 00001877: EXP 00001878: SUB 00001879: DUP9 0000187a: AND 0000187b: PUSH1 0x00 0000187d: SWAP1 0000187e: DUP2 0000187f: MSTORE 00001880: PUSH1 0x08 00001882: PUSH1 0x20 00001884: SWAP1 00001885: DUP2 00001886: MSTORE 00001887: PUSH1 0x40 00001889: DUP1 0000188a: DUP4 0000188b: KECCAK256 0000188c: DUP7 0000188d: DUP5 0000188e: MSTORE 0000188f: SWAP1 00001890: SWAP2 00001891: MSTORE 00001892: SWAP1 00001893: KECCAK256 00001894: SLOAD 00001895: PUSH2 0x189f 00001898: SWAP1 00001899: DUP15 0000189a: SWAP1 0000189b: PUSH2 0x1c07 0000189e: JUMP 0000189f: JUMPDEST 000018a0: PUSH1 0x01 000018a2: PUSH1 0xa0 000018a4: PUSH1 0x02 000018a6: EXP 000018a7: SUB 000018a8: DUP1 000018a9: DUP15 000018aa: AND 000018ab: PUSH1 0x00 000018ad: SWAP1 000018ae: DUP2 000018af: MSTORE 000018b0: PUSH1 0x06 000018b2: PUSH1 0x20 000018b4: SWAP1 000018b5: DUP2 000018b6: MSTORE 000018b7: PUSH1 0x40 000018b9: DUP1 000018ba: DUP4 000018bb: KECCAK256 000018bc: SWAP4 000018bd: DUP14 000018be: AND 000018bf: DUP4 000018c0: MSTORE 000018c1: SWAP3 000018c2: SWAP1 000018c3: MSTORE 000018c4: KECCAK256 000018c5: SLOAD 000018c6: SWAP1 000018c7: SWAP3 000018c8: POP 000018c9: DUP12 000018ca: SWAP1 000018cb: PUSH2 0x18d4 000018ce: SWAP1 000018cf: DUP16 000018d0: PUSH2 0x1c19 000018d3: JUMP 000018d4: JUMPDEST 000018d5: DUP2 000018d6: ISZERO 000018d7: ISZERO 000018d8: PUSH2 0x18dd 000018db: JUMPI 000018dc: INVALID 000018dd: JUMPDEST 000018de: DIV 000018df: SWAP1 000018e0: POP 000018e1: DUP1 000018e2: DUP3 000018e3: LT 000018e4: ISZERO 000018e5: PUSH2 0x18f0 000018e8: JUMPI 000018e9: DUP2 000018ea: SWAP4 000018eb: POP 000018ec: PUSH2 0x18f4 000018ef: JUMP 000018f0: JUMPDEST 000018f1: DUP1 000018f2: SWAP4 000018f3: POP 000018f4: JUMPDEST 000018f5: POP 000018f6: POP 000018f7: POP 000018f8: SWAP11 000018f9: SWAP10 000018fa: POP 000018fb: POP 000018fc: POP 000018fd: POP 000018fe: POP 000018ff: POP 00001900: POP 00001901: POP 00001902: POP 00001903: POP 00001904: JUMP 00001905: JUMPDEST 00001906: PUSH1 0x00 00001908: DUP3 00001909: DUP3 0000190a: ADD 0000190b: DUP4 0000190c: DUP2 0000190d: LT 0000190e: DUP1 0000190f: ISZERO 00001910: SWAP1 00001911: PUSH2 0x191a 00001914: JUMPI 00001915: POP 00001916: DUP3 00001917: DUP2 00001918: LT 00001919: ISZERO 0000191a: JUMPDEST 0000191b: ISZERO 0000191c: ISZERO 0000191d: PUSH2 0x1922 00001920: JUMPI 00001921: INVALID 00001922: JUMPDEST 00001923: SWAP4 00001924: SWAP3 00001925: POP 00001926: POP 00001927: POP 00001928: JUMP 00001929: JUMPDEST 0000192a: PUSH1 0x00 0000192c: DUP1 0000192d: PUSH1 0x00 0000192f: DUP1 00001930: PUSH8 0x0de0b6b3a7640000 00001939: PUSH2 0x1944 0000193c: DUP7 0000193d: PUSH1 0x03 0000193f: SLOAD 00001940: PUSH2 0x1c19 00001943: JUMP 00001944: JUMPDEST 00001945: DUP2 00001946: ISZERO 00001947: ISZERO 00001948: PUSH2 0x194d 0000194b: JUMPI 0000194c: INVALID 0000194d: JUMPDEST 0000194e: DIV 0000194f: SWAP4 00001950: POP 00001951: PUSH8 0x0de0b6b3a7640000 0000195a: PUSH2 0x1965 0000195d: DUP7 0000195e: PUSH1 0x04 00001960: SLOAD 00001961: PUSH2 0x1c19 00001964: JUMP 00001965: JUMPDEST 00001966: DUP2 00001967: ISZERO 00001968: ISZERO 00001969: PUSH2 0x196e 0000196c: JUMPI 0000196d: INVALID 0000196e: JUMPDEST 0000196f: PUSH1 0x02 00001971: SLOAD 00001972: SWAP2 00001973: SWAP1 00001974: DIV 00001975: SWAP4 00001976: POP 00001977: PUSH1 0x00 00001979: SWAP3 0000197a: POP 0000197b: PUSH1 0x01 0000197d: PUSH1 0xa0 0000197f: PUSH1 0x02 00001981: EXP 00001982: SUB 00001983: AND 00001984: ISZERO 00001985: PUSH2 0x1a56 00001988: JUMPI 00001989: PUSH1 0x02 0000198b: SLOAD 0000198c: PUSH1 0x40 0000198e: DUP1 0000198f: MLOAD 00001990: PUSH32 0x1cbd051900000000000000000000000000000000000000000000000000000000 000019b1: DUP2 000019b2: MSTORE 000019b3: PUSH1 0x01 000019b5: PUSH1 0xa0 000019b7: PUSH1 0x02 000019b9: EXP 000019ba: SUB 000019bb: DUP10 000019bc: DUP2 000019bd: AND 000019be: PUSH1 0x04 000019c0: DUP4 000019c1: ADD 000019c2: MSTORE 000019c3: SWAP2 000019c4: MLOAD 000019c5: SWAP2 000019c6: SWAP1 000019c7: SWAP3 000019c8: AND 000019c9: SWAP2 000019ca: PUSH4 0x1cbd0519 000019cf: SWAP2 000019d0: PUSH1 0x24 000019d2: DUP1 000019d3: DUP4 000019d4: ADD 000019d5: SWAP3 000019d6: PUSH1 0x20 000019d8: SWAP3 000019d9: SWAP2 000019da: SWAP1 000019db: DUP3 000019dc: SWAP1 000019dd: SUB 000019de: ADD 000019df: DUP2 000019e0: PUSH1 0x00 000019e2: DUP8 000019e3: DUP1 000019e4: EXTCODESIZE 000019e5: ISZERO 000019e6: DUP1 000019e7: ISZERO 000019e8: PUSH2 0x19f0 000019eb: JUMPI 000019ec: PUSH1 0x00 000019ee: DUP1 000019ef: REVERT 000019f0: JUMPDEST 000019f1: POP 000019f2: GAS 000019f3: CALL 000019f4: ISZERO 000019f5: DUP1 000019f6: ISZERO 000019f7: PUSH2 0x1a04 000019fa: JUMPI 000019fb: RETURNDATASIZE 000019fc: PUSH1 0x00 000019fe: DUP1 000019ff: RETURNDATACOPY 00001a00: RETURNDATASIZE 00001a01: PUSH1 0x00 00001a03: REVERT 00001a04: JUMPDEST 00001a05: POP 00001a06: POP 00001a07: POP 00001a08: POP 00001a09: PUSH1 0x40 00001a0b: MLOAD 00001a0c: RETURNDATASIZE 00001a0d: PUSH1 0x20 00001a0f: DUP2 00001a10: LT 00001a11: ISZERO 00001a12: PUSH2 0x1a1a 00001a15: JUMPI 00001a16: PUSH1 0x00 00001a18: DUP1 00001a19: REVERT 00001a1a: JUMPDEST 00001a1b: POP 00001a1c: MLOAD 00001a1d: SWAP1 00001a1e: POP 00001a1f: PUSH1 0x01 00001a21: DUP2 00001a22: EQ 00001a23: ISZERO 00001a24: PUSH2 0x1a49 00001a27: JUMPI 00001a28: PUSH8 0x0de0b6b3a7640000 00001a31: PUSH2 0x1a3c 00001a34: DUP7 00001a35: PUSH1 0x05 00001a37: SLOAD 00001a38: PUSH2 0x1c19 00001a3b: JUMP 00001a3c: JUMPDEST 00001a3d: DUP2 00001a3e: ISZERO 00001a3f: ISZERO 00001a40: PUSH2 0x1a45 00001a43: JUMPI 00001a44: INVALID 00001a45: JUMPDEST 00001a46: DIV 00001a47: SWAP2 00001a48: POP 00001a49: JUMPDEST 00001a4a: DUP1 00001a4b: PUSH1 0x02 00001a4d: EQ 00001a4e: ISZERO 00001a4f: PUSH2 0x1a56 00001a52: JUMPI 00001a53: DUP3 00001a54: SWAP2 00001a55: POP 00001a56: JUMPDEST 00001a57: PUSH1 0x01 00001a59: PUSH1 0xa0 00001a5b: PUSH1 0x02 00001a5d: EXP 00001a5e: SUB 00001a5f: DUP11 00001a60: AND 00001a61: PUSH1 0x00 00001a63: SWAP1 00001a64: DUP2 00001a65: MSTORE 00001a66: PUSH1 0x06 00001a68: PUSH1 0x20 00001a6a: SWAP1 00001a6b: DUP2 00001a6c: MSTORE 00001a6d: PUSH1 0x40 00001a6f: DUP1 00001a70: DUP4 00001a71: KECCAK256 00001a72: CALLER 00001a73: DUP5 00001a74: MSTORE 00001a75: SWAP1 00001a76: SWAP2 00001a77: MSTORE 00001a78: SWAP1 00001a79: KECCAK256 00001a7a: SLOAD 00001a7b: PUSH2 0x1a8d 00001a7e: SWAP1 00001a7f: PUSH2 0x1a88 00001a82: DUP8 00001a83: DUP7 00001a84: PUSH2 0x1905 00001a87: JUMP 00001a88: JUMPDEST 00001a89: PUSH2 0x1c07 00001a8c: JUMP 00001a8d: JUMPDEST 00001a8e: PUSH1 0x01 00001a90: PUSH1 0xa0 00001a92: PUSH1 0x02 00001a94: EXP 00001a95: SUB 00001a96: DUP12 00001a97: DUP2 00001a98: AND 00001a99: PUSH1 0x00 00001a9b: SWAP1 00001a9c: DUP2 00001a9d: MSTORE 00001a9e: PUSH1 0x06 00001aa0: PUSH1 0x20 00001aa2: SWAP1 00001aa3: DUP2 00001aa4: MSTORE 00001aa5: PUSH1 0x40 00001aa7: DUP1 00001aa8: DUP4 00001aa9: KECCAK256 00001aaa: CALLER 00001aab: DUP5 00001aac: MSTORE 00001aad: SWAP1 00001aae: SWAP2 00001aaf: MSTORE 00001ab0: DUP1 00001ab1: DUP3 00001ab2: KECCAK256 00001ab3: SWAP4 00001ab4: SWAP1 00001ab5: SWAP4 00001ab6: SSTORE 00001ab7: SWAP1 00001ab8: DUP9 00001ab9: AND 00001aba: DUP2 00001abb: MSTORE 00001abc: KECCAK256 00001abd: SLOAD 00001abe: PUSH2 0x1ad9 00001ac1: SWAP1 00001ac2: PUSH2 0x1ad4 00001ac5: PUSH2 0x1ace 00001ac8: DUP9 00001ac9: DUP7 00001aca: PUSH2 0x1905 00001acd: JUMP 00001ace: JUMPDEST 00001acf: DUP8 00001ad0: PUSH2 0x1c07 00001ad3: JUMP 00001ad4: JUMPDEST 00001ad5: PUSH2 0x1905 00001ad8: JUMP 00001ad9: JUMPDEST 00001ada: PUSH1 0x01 00001adc: PUSH1 0xa0 00001ade: PUSH1 0x02 00001ae0: EXP 00001ae1: SUB 00001ae2: DUP12 00001ae3: DUP2 00001ae4: AND 00001ae5: PUSH1 0x00 00001ae7: SWAP1 00001ae8: DUP2 00001ae9: MSTORE 00001aea: PUSH1 0x06 00001aec: PUSH1 0x20 00001aee: SWAP1 00001aef: DUP2 00001af0: MSTORE 00001af1: PUSH1 0x40 00001af3: DUP1 00001af4: DUP4 00001af5: KECCAK256 00001af6: DUP12 00001af7: DUP6 00001af8: AND 00001af9: DUP5 00001afa: MSTORE 00001afb: SWAP1 00001afc: SWAP2 00001afd: MSTORE 00001afe: DUP1 00001aff: DUP3 00001b00: KECCAK256 00001b01: SWAP4 00001b02: SWAP1 00001b03: SWAP4 00001b04: SSTORE 00001b05: PUSH1 0x01 00001b07: SLOAD 00001b08: SWAP1 00001b09: SWAP2 00001b0a: AND 00001b0b: DUP2 00001b0c: MSTORE 00001b0d: KECCAK256 00001b0e: SLOAD 00001b0f: PUSH2 0x1b25 00001b12: SWAP1 00001b13: PUSH2 0x1ad4 00001b16: PUSH2 0x1b1f 00001b19: DUP8 00001b1a: DUP8 00001b1b: PUSH2 0x1905 00001b1e: JUMP 00001b1f: JUMPDEST 00001b20: DUP6 00001b21: PUSH2 0x1c07 00001b24: JUMP 00001b25: JUMPDEST 00001b26: PUSH1 0x01 00001b28: PUSH1 0xa0 00001b2a: PUSH1 0x02 00001b2c: EXP 00001b2d: SUB 00001b2e: DUP1 00001b2f: DUP13 00001b30: AND 00001b31: PUSH1 0x00 00001b33: SWAP1 00001b34: DUP2 00001b35: MSTORE 00001b36: PUSH1 0x06 00001b38: PUSH1 0x20 00001b3a: DUP2 00001b3b: DUP2 00001b3c: MSTORE 00001b3d: PUSH1 0x40 00001b3f: DUP1 00001b40: DUP5 00001b41: KECCAK256 00001b42: PUSH1 0x01 00001b44: SLOAD 00001b45: DUP7 00001b46: AND 00001b47: DUP6 00001b48: MSTORE 00001b49: DUP3 00001b4a: MSTORE 00001b4b: DUP1 00001b4c: DUP5 00001b4d: KECCAK256 00001b4e: SWAP6 00001b4f: SWAP1 00001b50: SWAP6 00001b51: SSTORE 00001b52: DUP13 00001b53: DUP5 00001b54: AND 00001b55: DUP4 00001b56: MSTORE 00001b57: SWAP1 00001b58: DUP2 00001b59: MSTORE 00001b5a: DUP4 00001b5b: DUP3 00001b5c: KECCAK256 00001b5d: SWAP3 00001b5e: DUP11 00001b5f: AND 00001b60: DUP3 00001b61: MSTORE 00001b62: SWAP2 00001b63: SWAP1 00001b64: SWAP2 00001b65: MSTORE 00001b66: KECCAK256 00001b67: SLOAD 00001b68: PUSH2 0x1b85 00001b6b: SWAP1 00001b6c: DUP11 00001b6d: PUSH2 0x1b76 00001b70: DUP11 00001b71: DUP10 00001b72: PUSH2 0x1c19 00001b75: JUMP 00001b76: JUMPDEST 00001b77: DUP2 00001b78: ISZERO 00001b79: ISZERO 00001b7a: PUSH2 0x1b7f 00001b7d: JUMPI 00001b7e: INVALID 00001b7f: JUMPDEST 00001b80: DIV 00001b81: PUSH2 0x1c07 00001b84: JUMP 00001b85: JUMPDEST 00001b86: PUSH1 0x01 00001b88: PUSH1 0xa0 00001b8a: PUSH1 0x02 00001b8c: EXP 00001b8d: SUB 00001b8e: DUP10 00001b8f: DUP2 00001b90: AND 00001b91: PUSH1 0x00 00001b93: SWAP1 00001b94: DUP2 00001b95: MSTORE 00001b96: PUSH1 0x06 00001b98: PUSH1 0x20 00001b9a: SWAP1 00001b9b: DUP2 00001b9c: MSTORE 00001b9d: PUSH1 0x40 00001b9f: DUP1 00001ba0: DUP4 00001ba1: KECCAK256 00001ba2: SWAP4 00001ba3: DUP12 00001ba4: AND 00001ba5: DUP4 00001ba6: MSTORE 00001ba7: SWAP3 00001ba8: SWAP1 00001ba9: MSTORE 00001baa: DUP2 00001bab: DUP2 00001bac: KECCAK256 00001bad: SWAP3 00001bae: SWAP1 00001baf: SWAP3 00001bb0: SSTORE 00001bb1: CALLER 00001bb2: DUP3 00001bb3: MSTORE 00001bb4: SWAP1 00001bb5: KECCAK256 00001bb6: SLOAD 00001bb7: PUSH2 0x1bd4 00001bba: SWAP1 00001bbb: DUP11 00001bbc: PUSH2 0x1bc5 00001bbf: DUP11 00001bc0: DUP10 00001bc1: PUSH2 0x1c19 00001bc4: JUMP 00001bc5: JUMPDEST 00001bc6: DUP2 00001bc7: ISZERO 00001bc8: ISZERO 00001bc9: PUSH2 0x1bce 00001bcc: JUMPI 00001bcd: INVALID 00001bce: JUMPDEST 00001bcf: DIV 00001bd0: PUSH2 0x1905 00001bd3: JUMP 00001bd4: JUMPDEST 00001bd5: PUSH1 0x01 00001bd7: PUSH1 0xa0 00001bd9: PUSH1 0x02 00001bdb: EXP 00001bdc: SUB 00001bdd: SWAP1 00001bde: SWAP9 00001bdf: AND 00001be0: PUSH1 0x00 00001be2: SWAP1 00001be3: DUP2 00001be4: MSTORE 00001be5: PUSH1 0x06 00001be7: PUSH1 0x20 00001be9: SWAP1 00001bea: DUP2 00001beb: MSTORE 00001bec: PUSH1 0x40 00001bee: DUP1 00001bef: DUP4 00001bf0: KECCAK256 00001bf1: CALLER 00001bf2: DUP5 00001bf3: MSTORE 00001bf4: SWAP1 00001bf5: SWAP2 00001bf6: MSTORE 00001bf7: SWAP1 00001bf8: KECCAK256 00001bf9: SWAP8 00001bfa: SWAP1 00001bfb: SWAP8 00001bfc: SSTORE 00001bfd: POP 00001bfe: POP 00001bff: POP 00001c00: POP 00001c01: POP 00001c02: POP 00001c03: POP 00001c04: POP 00001c05: POP 00001c06: JUMP 00001c07: JUMPDEST 00001c08: PUSH1 0x00 00001c0a: DUP3 00001c0b: DUP3 00001c0c: GT 00001c0d: ISZERO 00001c0e: PUSH2 0x1c13 00001c11: JUMPI 00001c12: INVALID 00001c13: JUMPDEST 00001c14: POP 00001c15: SWAP1 00001c16: SUB 00001c17: SWAP1 00001c18: JUMP 00001c19: JUMPDEST 00001c1a: PUSH1 0x00 00001c1c: DUP3 00001c1d: DUP3 00001c1e: MUL 00001c1f: DUP4 00001c20: ISZERO 00001c21: DUP1 00001c22: PUSH2 0x191a 00001c25: JUMPI 00001c26: POP 00001c27: DUP3 00001c28: DUP5 00001c29: DUP3 00001c2a: DUP2 00001c2b: ISZERO 00001c2c: ISZERO 00001c2d: PUSH2 0x1c32 00001c30: JUMPI 00001c31: INVALID 00001c32: JUMPDEST 00001c33: DIV 00001c34: EQ 00001c35: PUSH2 0x1922 00001c38: JUMPI 00001c39: INVALID 00001c3a: STOP 00001c3b: SLOAD 00001c3c: UNKNOWN(0xCD) 00001c3d: UNKNOWN(0xD3) 00001c3e: PUSH10 0xe4e8a8515e52ca72ec81 00001c49: PUSH13 0x2101831ad1f18bf44102ed1714 00001c57: MSIZE 00001c58: UNKNOWN(0xC9) 00001c59: UNKNOWN(0xB4) 00001c5a: UNKNOWN(0xF8) 00001c5b: LOG1 00001c5c: PUSH6 0x627a7a723058 00001c63: KECCAK256 00001c64: UNKNOWN(0xD9) 00001c65: JUMPI 00001c66: PUSH8 0xdf98dc53bd95fb06 00001c6f: UNKNOWN(0xD7) 00001c70: UNKNOWN(0xCC) 00001c71: STATICCALL 00001c72: UNKNOWN(0x4B) 00001c73: UNKNOWN(0xB9) 00001c74: BLOBBASEFEE 00001c75: CALLDATALOAD 00001c76: UNKNOWN(0xDB) 00001c77: PC 00001c78: UNKNOWN(0xCB) 00001c79: AND 00001c7a: PUSH15
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | yes | yes |
viewtrace_id: 0x3c05f1cebdca0ace220b5060ff0437eaf5043e9745fbecb8f8f045ff87c4e195
call_targets:
0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0x232ba9f3b3643ab28d28ed7ee18600708d60e5fe
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x3c05f1cebdca0ace220b5060ff0437eaf5043e9745fbecb8f8f045ff87c4e195",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000001",
"0x0000000000000000000000000000000000000002",
"0x232ba9f3b3643ab28d28ed7ee18600708d60e5fe"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0a19b14a",
"selector": "0x0a19b14a",
"calldata_variants": [
"0x0a19b14a",
"0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0b927666",
"selector": "0x0b927666",
"calldata_variants": [
"0x0b927666",
"0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19774d43",
"selector": "0x19774d43",
"calldata_variants": [
"0x19774d43",
"0x19774d430000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x338b5dea",
"selector": "0x338b5dea",
"calldata_variants": [
"0x338b5dea",
"0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x46be96c3",
"selector": "0x46be96c3",
"calldata_variants": [
"0x46be96c3",
"0x46be96c30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x508493bc",
"selector": "0x508493bc",
"calldata_variants": [
"0x508493bc",
"0x508493bc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1690,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2024,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2570,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 12,
"guards_detected": [],
"untrusted_call_count": 12
}
|
| high | other | detector | ETH value transfer possible | 55 | yes | yes |
viewtrace_id: 0x3c05f1cebdca0ace220b5060ff0437eaf5043e9745fbecb8f8f045ff87c4e195
call_targets:
0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0x232ba9f3b3643ab28d28ed7ee18600708d60e5fe
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x3c05f1cebdca0ace220b5060ff0437eaf5043e9745fbecb8f8f045ff87c4e195",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000001",
"0x0000000000000000000000000000000000000002",
"0x232ba9f3b3643ab28d28ed7ee18600708d60e5fe"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0a19b14a",
"selector": "0x0a19b14a",
"calldata_variants": [
"0x0a19b14a",
"0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0b927666",
"selector": "0x0b927666",
"calldata_variants": [
"0x0b927666",
"0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19774d43",
"selector": "0x19774d43",
"calldata_variants": [
"0x19774d43",
"0x19774d430000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x338b5dea",
"selector": "0x338b5dea",
"calldata_variants": [
"0x338b5dea",
"0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x46be96c3",
"selector": "0x46be96c3",
"calldata_variants": [
"0x46be96c3",
"0x46be96c30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x508493bc",
"selector": "0x508493bc",
"calldata_variants": [
"0x508493bc",
"0x508493bc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1690,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2024,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2570,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 12,
"guards_detected": []
}
|
| medium | reentrancy | slither | Reentrancy in Amplbitcratic.trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256) (contracts/Contract.sol#219-232): | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "reentrancy-no-eth",
"elements": [
{
"name": "trade",
"type": "function",
"source_mapping": {
"lines": [
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232
],
"start": 8551,
"length": 818,
"ending_column": 16,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 26,
"filename_absolute": "/tmp/slither-58e3kx89/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "Amplbitcratic",
"type": "contract",
"source_mapping": {
"lines": [
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
],
"start": 4094,
"length": 8460,
"ending_column": 22,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 25,
"filename_absolute": "/tmp/slither-58e3kx89/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256)"
}
},
{
"name": "tradeBalances(tokenGet,amountGet,tokenGive,amountGive,user,amount)",
"type": "node",
"source_mapping": {
"lines": [
228
],
"start": 9127,
"length": 71,
"ending_column": 86,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 15,
"filename_absolute": "/tmp/slither-58e3kx89/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "trade",
"type": "function",
"source_mapping": {
"lines": [
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232
],
"start": 8551,
"length": 818,
"ending_column": 16,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 26,
"filename_absolute": "/tmp/slither-58e3kx89/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "Amplbitcratic",
"type": "contract",
"source_mapping": {
"lines": [
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
],
"start": 4094,
"length": 8460,
"ending_column": 22,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 25,
"filename_absolute": "/tmp/slither-58e3kx89/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256)"
}
}
}
},
{
"name": "accountLevel = AccountLevels(accountLevelsAddr).accountLevel(user)",
"type": "node",
"source_mapping": {
"lines": [
237,
238
],
"start": 9695,
"length": 71,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 89,
"filename_absolute": "/tmp/slither-58e3kx89/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "tradeBalances",
"type": "function",
"source_mapping": {
"lines": [
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248
],
"start": 9373,
"length": 1118,
"ending_column": 112,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 20,
"filename_absolute": "/tmp/slither-58e3kx89/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "Amplbitcratic",
"type": "contract",
"source_mapping": {
"lines": [
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
],
"start": 4094,
"length": 8460,
"ending_column": 22,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 25,
"filename_absolute": "/tmp/slither-58e3kx89/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "tradeBalances(address,uint256,address,uint256,address,uint256)"
}
}
}
},
{
"name": "orderFills[user][hash] = safeAdd(orderFills[user][hash],amount)",
"type": "node",
"source_mapping": {
"lines": [
228,
229
],
"start": 9204,
"length": 64,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 92,
"filename_absolute": "/tmp/slither-58e3kx89/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "orderFills",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "trade",
"type": "function",
"source_mapping": {
"lines": [
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232
],
"start": 8551,
"length": 818,
"ending_column": 16,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 26,
"filename_absolute": "/tmp/slither-58e3kx89/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "Amplbitcratic",
"type": "contract",
"source_mapping": {
"lines": [
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
],
"start": 4094,
"length": 8460,
"ending_column": 22,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 25,
"filename_absolute": "/tmp/slither-58e3kx89/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "trade",
"type": "function",
"lines": [
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232
]
},
{
"file": "contracts/Contract.sol",
"name": "tradeBalances(tokenGet,amountGet,tokenGive,amountGive,user,amount)",
"type": "node",
"lines": [
228
]
},
{
"file": "contracts/Contract.sol",
"name": "accountLevel = AccountLevels(accountLevelsAddr).accountLevel(user)",
"type": "node",
"lines": [
237,
238
]
},
{
"file": "contracts/Contract.sol",
"name": "orderFills[user][hash] = safeAdd(orderFills[user][hash],amount)",
"type": "node",
"lines": [
228,
229
]
}
],
"description": "Reentrancy in Amplbitcratic.trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256) (contracts/Contract.sol#219-232):\n\tExternal calls:\n\t- tradeBalances(tokenGet,amountGet,tokenGive,amountGive,user,amount) (contracts/Contract.sol#228)\n\t\t- accountLevel = AccountLevels(accountLevelsAddr).accountLevel(user) (contracts/Contract.sol#237-238)\n\tState variables written after the call(s):\n\t- orderFills[user][hash] = safeAdd(orderFills[user][hash],amount) (contracts/Contract.sol#228-229)\n\tAmplbitcratic.orderFills (contracts/Contract.sol#131) can be used in cross function reentrancies:\n\t- Amplbitcratic.amountFilled(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32) (contracts/Contract.sol#265-273)\n\t- Amplbitcratic.availableVolume(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32) (contracts/Contract.sol#253-265)\n\t- Amplbitcratic.cancelOrder(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32) (contracts/Contract.sol#273-280)\n\t- Amplbitcratic.orderFills (contracts/Contract.sol#131)\n\t- Amplbitcratic.trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256) (contracts/Contract.sol#219-232)"
}
|