TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

c4ec9b86-f84f-462e-89f0-0a1a08973858

failed
Chain ID
1
Address
Block Number
Created
Sun, Dec 28, 2025 5:47 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
1
Validated
1
Source
Verified
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target reachable
crit 1 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30344 report.consolidate complete 1 / 1 3 months ago
74248 artifact.fetch failed 1 / 3 1 week ago
74249 tool.cast_disasm complete 1 / 3 1 week ago
74250 analysis.bundle complete 1 / 3 1 week ago
74251 capability.graph complete 1 / 3 1 week ago
74252 detector.run complete 1 / 3 1 week ago
74253 validation.fork complete 1 / 3 1 week ago
113560 tool.slither complete 1 / 2 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes
Verified Source: yes

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
1
Solc
0.8.25 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-c67tibmq)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-c67tibmq)

Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#123-202) has bitwise-xor operator ^ instead of the exponentiation operator **: 
	 - inverse = (3 * denominator) ^ 2 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#184)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-exponentiation

Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#169)
	- inverse = (3 * denominator) ^ 2 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#184)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#188)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#189)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#190)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#191)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#192)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#193)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- prod0 = prod0 / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#172)
	- result = prod0 * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#199)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply

Reentrancy in L1OpUSDCBridgeAdapter.burnLockedUSDC() (src/contracts/L1OpUSDCBridgeAdapter.sol#113-137):
	External calls:
	- IUSDC(USDC).burn(_burnAmount) (src/contracts/L1OpUSDCBridgeAdapter.sol#130)
	State variables written after the call(s):
	- burnAmount = 0 (src/contracts/L1OpUSDCBridgeAdapter.sol#134)
	L1OpUSDCBridgeAdapter.burnAmount (src/contracts/L1OpUSDCBridgeAdapter.sol#22) can be used in cross function reentrancies:
	- L1OpUSDCBridgeAdapter.burnAmount (src/contracts/L1OpUSDCBridgeAdapter.sol#22)
	- L1OpUSDCBridgeAdapter.burnLockedUSDC() (src/contracts/L1OpUSDCBridgeAdapter.sol#113-137)
	- L1OpUSDCBridgeAdapter.setBurnAmount(uint256) (src/contracts/L1OpUSDCBridgeAdapter.sol#100-107)
	- burnCaller = address(0) (src/contracts/L1OpUSDCBridgeAdapter.sol#135)
	L1OpUSDCBridgeAdapter.burnCaller (src/contracts/L1OpUSDCBridgeAdapter.sol#25) can be used in cross function reentrancies:
	- L1OpUSDCBridgeAdapter.burnCaller (src/contracts/L1OpUSDCBridgeAdapter.sol#25)
	- L1OpUSDCBridgeAdapter.burnLockedUSDC() (src/contracts/L1OpUSDCBridgeAdapter.sol#113-137)
	- L1OpUSDCBridgeAdapter.migrateToNative(address,address,uint32,uint32) (src/contracts/L1OpUSDCBridgeAdapter.sol#68-93)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1

ERC1967Utils.upgradeToAndCall(address,bytes) (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol#83-92) ignores return value by Address.functionDelegateCall(newImplementation,data) (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol#88)
ERC1967Utils.upgradeBeaconToAndCall(address,bytes) (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol#173-182) ignores return value by Address.functionDelegateCall(IBeacon(newBeacon).implementation(),data) (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol#178)
SignatureChecker.isValidSignatureNow(address,bytes32,bytes) (node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol#22-27) ignores return value by (recovered,error,None) = ECDSA.tryRecover(hash,signature) (node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol#23)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return

FallbackProxyAdmin.constructor(address)._usdc (src/contracts/utils/FallbackProxyAdmin.sol#23) lacks a zero-check on :
		- USDC = _usdc (src/contracts/utils/FallbackProxyAdmin.sol#24)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation

Reentrancy in L1OpUSDCBridgeAdapter.receiveMessage(address,address,uint256) (src/contracts/L1OpUSDCBridgeAdapter.sol#260-269):
	External calls:
	- this.attemptTransfer(_user,_amount) (src/contracts/L1OpUSDCBridgeAdapter.sol#262-268)
	State variables written after the call(s):
	- lockedFundsDetails[_spender][_user] += _amount (src/contracts/L1OpUSDCBridgeAdapter.sol#266)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2

Reentrancy in L1OpUSDCBridgeAdapter._sendMessage(address,address,uint256,uint32) (src/contracts/L1OpUSDCBridgeAdapter.sol#324-334):
	External calls:
	- IUSDC(USDC).safeTransferFrom(_from,address(this),_amount) (src/contracts/L1OpUSDCBridgeAdapter.sol#326)
	- ICrossDomainMessenger(MESSENGER).sendMessage(LINKED_ADAPTER,abi.encodeCall(IOpUSDCBridgeAdapter.receiveMessage,(_to,_from,_amount)),_minGasLimit) (src/contracts/L1OpUSDCBridgeAdapter.sol#329-331)
	Event emitted after the call(s):
	- MessageSent(_from,_to,_amount,MESSENGER,_minGasLimit) (src/contracts/L1OpUSDCBridgeAdapter.sol#333)
Reentrancy in L1OpUSDCBridgeAdapter.burnLockedUSDC() (src/contracts/L1OpUSDCBridgeAdapter.sol#113-137):
	External calls:
	- IUSDC(USDC).burn(_burnAmount) (src/contracts/L1OpUSDCBridgeAdapter.sol#130)
	Event emitted after the call(s):
	- MigrationComplete(_burnAmount) (src/contracts/L1OpUSDCBridgeAdapter.sol#136)
Reentrancy in L1OpUSDCBridgeAdapter.migrateToNative(address,address,uint32,uint32) (src/contracts/L1OpUSDCBridgeAdapter.sol#68-93):
	External calls:
	- ICrossDomainMessenger(MESSENGER).sendMessage(LINKED_ADAPTER,abi.encodeCall(IL2OpUSDCBridgeAdapter.receiveMigrateToNative,(_roleCaller,_minGasLimitSetBurnAmount)),_minGasLimitReceiveOnL2) (src/contracts/L1OpUSDCBridgeAdapter.sol#86-90)
	Event emitted after the call(s):
	- MigratingToNative(MESSENGER,_burnCaller) (src/contracts/L1OpUSDCBridgeAdapter.sol#92)
Reentrancy in L1OpUSDCBridgeAdapter.receiveMessage(address,address,uint256) (src/contracts/L1OpUSDCBridgeAdapter.sol#260-269):
	External calls:
	- this.attemptTransfer(_user,_amount) (src/contracts/L1OpUSDCBridgeAdapter.sol#262-268)
	Event emitted after the call(s):
	- MessageFailed(_spender,_user,_amount,MESSENGER) (src/contracts/L1OpUSDCBridgeAdapter.sol#267)
	- MessageReceived(_spender,_user,_amount,MESSENGER) (src/contracts/L1OpUSDCBridgeAdapter.sol#263)
Reentrancy in L1OpUSDCBridgeAdapter.receiveWithdrawLockedFundsPostMigration(address,uint256) (src/contracts/L1OpUSDCBridgeAdapter.sol#277-284):
	External calls:
	- IUSDC(USDC).safeTransfer(_spender,_amount) (src/contracts/L1OpUSDCBridgeAdapter.sol#281)
	Event emitted after the call(s):
	- LockedFundsWithdrawn(_spender,_amount) (src/contracts/L1OpUSDCBridgeAdapter.sol#283)
Reentrancy in L1OpUSDCBridgeAdapter.resumeMessaging(uint32) (src/contracts/L1OpUSDCBridgeAdapter.sol#170-184):
	External calls:
	- ICrossDomainMessenger(MESSENGER).sendMessage(LINKED_ADAPTER,abi.encodeCall(IL2OpUSDCBridgeAdapter.receiveResumeMessaging,()),_minGasLimit) (src/contracts/L1OpUSDCBridgeAdapter.sol#179-181)
	Event emitted after the call(s):
	- MessagingResumed(MESSENGER) (src/contracts/L1OpUSDCBridgeAdapter.sol#183)
Reentrancy in L1OpUSDCBridgeAdapter.stopMessaging(uint32) (src/contracts/L1OpUSDCBridgeAdapter.sol#148-162):
	External calls:
	- ICrossDomainMessenger(MESSENGER).sendMessage(LINKED_ADAPTER,abi.encodeCall(IL2OpUSDCBridgeAdapter.receiveStopMessaging,()),_minGasLimit) (src/contracts/L1OpUSDCBridgeAdapter.sol#157-159)
	Event emitted after the call(s):
	- MessagingStopped(MESSENGER) (src/contracts/L1OpUSDCBridgeAdapter.sol#161)
Reentrancy in L1OpUSDCBridgeAdapter.withdrawLockedFunds(address,address) (src/contracts/L1OpUSDCBridgeAdapter.sol#291-299):
	External calls:
	- IUSDC(USDC).safeTransfer(_user,_amount) (src/contracts/L1OpUSDCBridgeAdapter.sol#296)
	Event emitted after the call(s):
	- LockedFundsWithdrawn(_user,_amount) (src/contracts/L1OpUSDCBridgeAdapter.sol#298)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

L1OpUSDCBridgeAdapter.sendMessage(address,address,uint256,bytes,uint256,uint256,uint32) (src/contracts/L1OpUSDCBridgeAdapter.sol#218-250) uses timestamp for comparisons
	Dangerous comparisons:
	- block.timestamp > _deadline (src/contracts/L1OpUSDCBridgeAdapter.sol#239)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp

Address._revert(bytes) (node_modules/@openzeppelin/contracts/utils/Address.sol#146-158) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/Address.sol#151-154)
StorageSlot.getAddressSlot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#59-64) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#61-63)
StorageSlot.getBooleanSlot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#69-74) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#71-73)
StorageSlot.getBytes32Slot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#79-84) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#81-83)
StorageSlot.getUint256Slot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#89-94) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#91-93)
StorageSlot.getStringSlot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#99-104) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#101-103)
StorageSlot.getStringSlot(string) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#109-114) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#111-113)
StorageSlot.getBytesSlot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#119-124) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#121-123)
StorageSlot.getBytesSlot(bytes) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#129-134) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#131-133)
Strings.toString(uint256) (node_modules/@openzeppelin/contracts/utils/Strings.sol#24-44) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/Strings.sol#30-32)
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/Strings.sol#36-38)
ECDSA.tryRecover(bytes32,bytes) (node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#56-73) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#64-68)
MessageHashUtils.toEthSignedMessageHash(bytes32) (node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol#30-37) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol#32-36)
MessageHashUtils.toTypedDataHash(bytes32,bytes32) (node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol#76-85) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol#78-84)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#123-202) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/Math.sol#130-133)
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/Math.sol#154-161)
	- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/Math.sol#167-176)
OwnableUpgradeable._getOwnableStorage() (node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#30-34) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#31-33)
Initializable._getInitializableStorage() (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#223-227) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#224-226)
EIP712Upgradeable._getEIP712Storage() (node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#50-54) uses assembly
	- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#51-53)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

2 different versions of Solidity are used:
	- Version constraint ^0.8.20 is used by:
		-^0.8.20 (node_modules/@openzeppelin/contracts/access/Ownable.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/utils/Address.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/utils/Context.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#5)
		-^0.8.20 (node_modules/@openzeppelin/contracts/utils/Strings.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#4)
		-^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#4)
	- Version constraint 0.8.25 is used by:
		-0.8.25 (src/contracts/L1OpUSDCBridgeAdapter.sol#2)
		-0.8.25 (src/contracts/universal/OpUSDCBridgeAdapter.sol#2)
		-0.8.25 (src/contracts/utils/FallbackProxyAdmin.sol#2)
		-0.8.25 (src/interfaces/IL1OpUSDCBridgeAdapter.sol#2)
		-0.8.25 (src/interfaces/IL2OpUSDCBridgeAdapter.sol#2)
		-0.8.25 (src/interfaces/IOpUSDCBridgeAdapter.sol#2)
		-0.8.25 (src/interfaces/external/ICrossDomainMessenger.sol#1)
		-0.8.25 (src/interfaces/external/IUSDC.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- VerbatimInvalidDeduplication
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess.
It is used by:
	- ^0.8.20 (node_modules/@openzeppelin/contracts/access/Ownable.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/Address.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/Context.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#5)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/Strings.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#4)
	- ^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in SafeERC20._callOptionalReturnBool(IERC20,bytes) (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#110-117):
	- (success,returndata) = address(token).call(data) (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#115)
Low level call in Address.sendValue(address,uint256) (node_modules/@openzeppelin/contracts/utils/Address.sol#41-50):
	- (success,None) = recipient.call{value: amount}() (node_modules/@openzeppelin/contracts/utils/Address.sol#46)
Low level call in Address.functionCallWithValue(address,bytes,uint256) (node_modules/@openzeppelin/contracts/utils/Address.sol#83-89):
	- (success,returndata) = target.call{value: value}(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#87)
Low level call in Address.functionStaticCall(address,bytes) (node_modules/@openzeppelin/contracts/utils/Address.sol#95-98):
	- (success,returndata) = target.staticcall(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#96)
Low level call in Address.functionDelegateCall(address,bytes) (node_modules/@openzeppelin/contracts/utils/Address.sol#104-107):
	- (success,returndata) = target.delegatecall(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#105)
Low level call in SignatureChecker.isValidERC1271SignatureNow(address,bytes32,bytes) (node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol#36-47):
	- (success,result) = signer.staticcall(abi.encodeCall(IERC1271.isValidSignature,(hash,signature))) (node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol#41-43)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

Function IERC20Permit.DOMAIN_SEPARATOR() (node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol#89) is not in mixedCase
Function OwnableUpgradeable.__Ownable_init(address) (node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#51-53) is not in mixedCase
Function OwnableUpgradeable.__Ownable_init_unchained(address) (node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#55-60) is not in mixedCase
Constant OwnableUpgradeable.OwnableStorageLocation (node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#28) is not in UPPER_CASE_WITH_UNDERSCORES
Function UUPSUpgradeable.__UUPSUpgradeable_init() (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#65-66) is not in mixedCase
Function UUPSUpgradeable.__UUPSUpgradeable_init_unchained() (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#68-69) is not in mixedCase
Variable UUPSUpgradeable.__self (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#22) is not in mixedCase
Function ContextUpgradeable.__Context_init() (node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#18-19) is not in mixedCase
Function ContextUpgradeable.__Context_init_unchained() (node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#21-22) is not in mixedCase
Function EIP712Upgradeable.__EIP712_init(string,string) (node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#68-70) is not in mixedCase
Function EIP712Upgradeable.__EIP712_init_unchained(string,string) (node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#72-80) is not in mixedCase
Function EIP712Upgradeable._EIP712Name() (node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#151-154) is not in mixedCase
Function EIP712Upgradeable._EIP712Version() (node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#162-165) is not in mixedCase
Function EIP712Upgradeable._EIP712NameHash() (node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#172-187) is not in mixedCase
Function EIP712Upgradeable._EIP712VersionHash() (node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#194-209) is not in mixedCase
Constant EIP712Upgradeable.EIP712StorageLocation (node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol#48) is not in UPPER_CASE_WITH_UNDERSCORES
Parameter L1OpUSDCBridgeAdapter.initialize(address)._owner (src/contracts/L1OpUSDCBridgeAdapter.sol#49) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.migrateToNative(address,address,uint32,uint32)._roleCaller (src/contracts/L1OpUSDCBridgeAdapter.sol#69) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.migrateToNative(address,address,uint32,uint32)._burnCaller (src/contracts/L1OpUSDCBridgeAdapter.sol#70) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.migrateToNative(address,address,uint32,uint32)._minGasLimitReceiveOnL2 (src/contracts/L1OpUSDCBridgeAdapter.sol#71) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.migrateToNative(address,address,uint32,uint32)._minGasLimitSetBurnAmount (src/contracts/L1OpUSDCBridgeAdapter.sol#72) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.setBurnAmount(uint256)._amount (src/contracts/L1OpUSDCBridgeAdapter.sol#100) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.stopMessaging(uint32)._minGasLimit (src/contracts/L1OpUSDCBridgeAdapter.sol#148) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.resumeMessaging(uint32)._minGasLimit (src/contracts/L1OpUSDCBridgeAdapter.sol#170) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.sendMessage(address,uint256,uint32)._to (src/contracts/L1OpUSDCBridgeAdapter.sol#196) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.sendMessage(address,uint256,uint32)._amount (src/contracts/L1OpUSDCBridgeAdapter.sol#196) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.sendMessage(address,uint256,uint32)._minGasLimit (src/contracts/L1OpUSDCBridgeAdapter.sol#196) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.sendMessage(address,address,uint256,bytes,uint256,uint256,uint32)._signer (src/contracts/L1OpUSDCBridgeAdapter.sol#219) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.sendMessage(address,address,uint256,bytes,uint256,uint256,uint32)._to (src/contracts/L1OpUSDCBridgeAdapter.sol#220) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.sendMessage(address,address,uint256,bytes,uint256,uint256,uint32)._amount (src/contracts/L1OpUSDCBridgeAdapter.sol#221) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.sendMessage(address,address,uint256,bytes,uint256,uint256,uint32)._signature (src/contracts/L1OpUSDCBridgeAdapter.sol#222) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.sendMessage(address,address,uint256,bytes,uint256,uint256,uint32)._nonce (src/contracts/L1OpUSDCBridgeAdapter.sol#223) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.sendMessage(address,address,uint256,bytes,uint256,uint256,uint32)._deadline (src/contracts/L1OpUSDCBridgeAdapter.sol#224) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.sendMessage(address,address,uint256,bytes,uint256,uint256,uint32)._minGasLimit (src/contracts/L1OpUSDCBridgeAdapter.sol#225) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.receiveMessage(address,address,uint256)._user (src/contracts/L1OpUSDCBridgeAdapter.sol#260) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.receiveMessage(address,address,uint256)._spender (src/contracts/L1OpUSDCBridgeAdapter.sol#260) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.receiveMessage(address,address,uint256)._amount (src/contracts/L1OpUSDCBridgeAdapter.sol#260) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.receiveWithdrawLockedFundsPostMigration(address,uint256)._spender (src/contracts/L1OpUSDCBridgeAdapter.sol#277) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.receiveWithdrawLockedFundsPostMigration(address,uint256)._amount (src/contracts/L1OpUSDCBridgeAdapter.sol#277) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.withdrawLockedFunds(address,address)._spender (src/contracts/L1OpUSDCBridgeAdapter.sol#291) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.withdrawLockedFunds(address,address)._user (src/contracts/L1OpUSDCBridgeAdapter.sol#291) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.attemptTransfer(address,uint256)._to (src/contracts/L1OpUSDCBridgeAdapter.sol#309) is not in mixedCase
Parameter L1OpUSDCBridgeAdapter.attemptTransfer(address,uint256)._amount (src/contracts/L1OpUSDCBridgeAdapter.sol#309) is not in mixedCase
Variable L1OpUSDCBridgeAdapter.__gap (src/contracts/L1OpUSDCBridgeAdapter.sol#28) is not in mixedCase
Parameter OpUSDCBridgeAdapter.cancelSignature(uint256)._nonce (src/contracts/universal/OpUSDCBridgeAdapter.sol#123) is not in mixedCase
Variable OpUSDCBridgeAdapter.USDC (src/contracts/universal/OpUSDCBridgeAdapter.sol#21) is not in mixedCase
Variable OpUSDCBridgeAdapter.LINKED_ADAPTER (src/contracts/universal/OpUSDCBridgeAdapter.sol#24) is not in mixedCase
Variable OpUSDCBridgeAdapter.MESSENGER (src/contracts/universal/OpUSDCBridgeAdapter.sol#27) is not in mixedCase
Variable OpUSDCBridgeAdapter.__gap (src/contracts/universal/OpUSDCBridgeAdapter.sol#39) is not in mixedCase
Parameter FallbackProxyAdmin.changeAdmin(address)._newAdmin (src/contracts/utils/FallbackProxyAdmin.sol#33) is not in mixedCase
Parameter FallbackProxyAdmin.upgradeTo(address)._newImplementation (src/contracts/utils/FallbackProxyAdmin.sol#41) is not in mixedCase
Parameter FallbackProxyAdmin.upgradeToAndCall(address,bytes)._newImplementation (src/contracts/utils/FallbackProxyAdmin.sol#50) is not in mixedCase
Parameter FallbackProxyAdmin.upgradeToAndCall(address,bytes)._data (src/contracts/utils/FallbackProxyAdmin.sol#50) is not in mixedCase
Variable FallbackProxyAdmin.USDC (src/contracts/utils/FallbackProxyAdmin.sol#17) is not in mixedCase
Function IL2OpUSDCBridgeAdapter.FALLBACK_PROXY_ADMIN() (src/interfaces/IL2OpUSDCBridgeAdapter.sol#90) is not in mixedCase
Function IOpUSDCBridgeAdapter.USDC() (src/interfaces/IOpUSDCBridgeAdapter.sol#257) is not in mixedCase
Function IOpUSDCBridgeAdapter.LINKED_ADAPTER() (src/interfaces/IOpUSDCBridgeAdapter.sol#264) is not in mixedCase
Function IOpUSDCBridgeAdapter.MESSENGER() (src/interfaces/IOpUSDCBridgeAdapter.sol#271) is not in mixedCase
Function ICrossDomainMessenger.PORTAL() (src/interfaces/external/ICrossDomainMessenger.sol#35) is not in mixedCase
Function IUSDC.initializeV2_1(address) (src/interfaces/external/IUSDC.sol#69) is not in mixedCase
Function IUSDC.initializeV2_2(address[],string) (src/interfaces/external/IUSDC.sol#78) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

L1OpUSDCBridgeAdapter.__gap (src/contracts/L1OpUSDCBridgeAdapter.sol#28) is never used in L1OpUSDCBridgeAdapter (src/contracts/L1OpUSDCBridgeAdapter.sol#18-335)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variable
. analyzed (31 contracts with 100 detectors), 111 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.8.25",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.8.25",
        "install_stderr": null,
        "install_stdout": "Version '0.8.25' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-c67tibmq --include-path /tmp/slither-c67tibmq/lib --include-path /tmp/slither-c67tibmq/lib/openzeppelin-contracts --include-path /tmp/slither-c67tibmq/node_modules --allow-paths /tmp/slither-c67tibmq,/tmp/slither-c67tibmq/lib,/tmp/slither-c67tibmq/lib/openzeppelin-contracts,/tmp/slither-c67tibmq/node_modules,/tmp/slither-c67tibmq/src",
    "remappings": [
        "ds-test/=node_modules/ds-test/src/",
        "forge-std/=node_modules/forge-std/src/",
        "contracts/=src/contracts/",
        "interfaces/=src/interfaces/",
        "halmos-cheatcodes/=node_modules/halmos-cheatcodes/src/",
        "libraries/=src/libraries/",
        "@openzeppelin/=node_modules/@openzeppelin/",
        "solhint/=node_modules/solhint/",
        "src/=src/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/"
    ],
    "source_files": [
        "src/contracts/L1OpUSDCBridgeAdapter.sol",
        "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
        "src/contracts/universal/OpUSDCBridgeAdapter.sol",
        "src/interfaces/IL1OpUSDCBridgeAdapter.sol",
        "src/interfaces/IL2OpUSDCBridgeAdapter.sol",
        "src/interfaces/IOpUSDCBridgeAdapter.sol",
        "src/interfaces/external/ICrossDomainMessenger.sol",
        "src/interfaces/external/IUSDC.sol",
        "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
        "node_modules/@openzeppelin/contracts/utils/Address.sol",
        "node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol",
        "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol",
        "node_modules/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol",
        "node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol",
        "node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol",
        "src/contracts/utils/FallbackProxyAdmin.sol",
        "node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
        "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
        "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol",
        "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol",
        "node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol",
        "node_modules/@openzeppelin/contracts/utils/Strings.sol",
        "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol",
        "node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol",
        "node_modules/@openzeppelin/contracts/access/Ownable.sol",
        "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol",
        "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol",
        "node_modules/@openzeppelin/contracts/utils/math/Math.sol",
        "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol",
        "node_modules/@openzeppelin/contracts/utils/Context.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 111,
    "workspace_hash": "13ee5531a07bdb63a3789cbf96719f5d0d937ce3a2d18930197a6efce14eaa99",
    "duration_seconds": 1.5027837753295898,
    "solc_version_requested": "0.8.25"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found 1 medium issue: failed cross-domain message replays can over-credit locked funds.
View stderr
[codex:1183286] OpenAI Codex v0.77.0 (research preview)
[codex:1183286] --------
[codex:1183286] workdir: /tmp/codex-multi-_n56ybd1
[codex:1183286] model: gpt-5.2-codex
[codex:1183286] provider: openai
[codex:1183286] approval: never
[codex:1183286] sandbox: read-only
[codex:1183286] reasoning effort: xhigh
[codex:1183286] reasoning summaries: auto
[codex:1183286] session id: 019b660c-9da2-75f1-8cbb-92ffe3d812af
[codex:1183286] --------
[codex:1183286] user
[codex:1183286] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1183286] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1183286] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1183286] 
[codex:1183286] Scope rules:
[codex:1183286] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1183286] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1183286] 
[codex:1183286] Output MUST be valid JSON matching the provided schema.
[codex:1183286] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1183286] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1183286] 
[codex:1183286] Output constraints (IMPORTANT):
[codex:1183286] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1183286] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1183286] mcp startup: no servers
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Preparing to read audit file**
[codex:1183286] exec
[codex:1183286] /bin/bash -lc ls in /tmp/codex-multi-_n56ybd1 succeeded in 5ms:
[codex:1183286] AUDIT_BUNDLE.txt
[codex:1183286] codex-output-schema.json
[codex:1183286] contracts
[codex:1183286] exec
[codex:1183286] /bin/bash -lc 'wc -l AUDIT_BUNDLE.txt' in /tmp/codex-multi-_n56ybd1 succeeded in 5ms:
[codex:1183286] 3974 AUDIT_BUNDLE.txt
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Planning full file reading strategy**
[codex:1183286] exec
[codex:1183286] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_n56ybd1 succeeded in 6ms:
[codex:1183286] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1183286] 
[codex:1183286] ================================================================================
[codex:1183286] FILE: contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol
[codex:1183286] ================================================================================
[codex:1183286] // SPDX-License-Identifier: MIT
[codex:1183286] // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
[codex:1183286] 
[codex:1183286] pragma solidity ^0.8.20;
[codex:1183286] 
[codex:1183286] import {Context} from "../utils/Context.sol";
[codex:1183286] 
[codex:1183286] /**
[codex:1183286]  * @dev Contract module which provides a basic access control mechanism, where
[codex:1183286]  * there is an account (an owner) that can be granted exclusive access to
[codex:1183286]  * specific functions.
[codex:1183286]  *
[codex:1183286]  * The initial owner is set to the address provided by the deployer. This can
[codex:1183286]  * later be changed with {transferOwnership}.
[codex:1183286]  *
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Preparing to search first-party contracts**
[codex:1183286] exec
[codex:1183286] /bin/bash -lc 'rg -n "''^FILE: contracts/" AUDIT_BUNDLE.txt' in /tmp/codex-multi-_n56ybd1 succeeded in 7ms:
[codex:1183286] 4:FILE: contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol
[codex:1183286] 108:FILE: contracts/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol
[codex:1183286] 129:FILE: contracts/node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol
[codex:1183286] 161:FILE: contracts/node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol
[codex:1183286] 185:FILE: contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol
[codex:1183286] 382:FILE: contracts/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol
[codex:1183286] 402:FILE: contracts/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:1183286] 485:FILE: contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol
[codex:1183286] 579:FILE: contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
[codex:1183286] 701:FILE: contracts/node_modules/@openzeppelin/contracts/utils/Address.sol
[codex:1183286] 864:FILE: contracts/node_modules/@openzeppelin/contracts/utils/Context.sol
[codex:1183286] 896:FILE: contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol
[codex:1183286] 1035:FILE: contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol
[codex:1183286] 1133:FILE: contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol
[codex:1183286] 1311:FILE: contracts/node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol
[codex:1183286] 1401:FILE: contracts/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol
[codex:1183286] 1453:FILE: contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol
[codex:1183286] 1872:FILE: contracts/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol
[codex:1183286] 1919:FILE: contracts/node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol
[codex:1183286] 2042:FILE: contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Planning full file reading strategy**
[codex:1183286] exec
[codex:1183286] /bin/bash -lc "sed -n '201,500p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_n56ybd1 succeeded in 5ms:
[codex:1183286]     // We re-declare ERC-1967 events here because they can't be used directly from IERC1967.
[codex:1183286]     // This will be fixed in Solidity 0.8.21. At that point we should remove these events.
[codex:1183286]     /**
[codex:1183286]      * @dev Emitted when the implementation is upgraded.
[codex:1183286]      */
[codex:1183286]     event Upgraded(address indexed implementation);
[codex:1183286] 
[codex:1183286]     /**
[codex:1183286]      * @dev Emitted when the admin account has changed.
[codex:1183286]      */
[codex:1183286]     event AdminChanged(address previousAdmin, address newAdmin);
[codex:1183286] 
[codex:1183286]     /**
[codex:1183286]      * @dev Emitted when the beacon is changed.
[codex:1183286]      */
[codex:1183286]     event BeaconUpgraded(address indexed beacon);
[codex:1183286] 
[codex:1183286]     /**
[codex:1183286]      * @dev Storage slot with the address of the current implementation.
[codex:1183286]      * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1.
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Continuing to read content**
[codex:1183286] exec
[codex:1183286] /bin/bash -lc "sed -n '501,1000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_n56ybd1 succeeded in 6ms:
[codex:1183286]  *
[codex:1183286]  * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature
[codex:1183286]  * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be
[codex:1183286]  * considered as an intention to spend the allowance in any specific way. The second is that because permits have
[codex:1183286]  * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should
[codex:1183286]  * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be
[codex:1183286]  * generally recommended is:
[codex:1183286]  *
[codex:1183286]  * ```solidity
[codex:1183286]  * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {
[codex:1183286]  *     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}
[codex:1183286]  *     doThing(..., value);
[codex:1183286]  * }
[codex:1183286]  *
[codex:1183286]  * function doThing(..., uint256 value) public {
[codex:1183286]  *     token.safeTransferFrom(msg.sender, address(this), value);
[codex:1183286]  *     ...
[codex:1183286]  * }
[codex:1183286]  * ```
[codex:1183286]  *
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Continuing exploration**
[codex:1183286] exec
[codex:1183286] /bin/bash -lc "sed -n '1001,1500p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_n56ybd1 succeeded in 5ms:
[codex:1183286]     }
[codex:1183286] 
[codex:1183286]     /**
[codex:1183286]      * @dev Returns an `StringSlot` representation of the string storage pointer `store`.
[codex:1183286]      */
[codex:1183286]     function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {
[codex:1183286]         /// @solidity memory-safe-assembly
[codex:1183286]         assembly {
[codex:1183286]             r.slot := store.slot
[codex:1183286]         }
[codex:1183286]     }
[codex:1183286] 
[codex:1183286]     /**
[codex:1183286]      * @dev Returns an `BytesSlot` with member `value` located at `slot`.
[codex:1183286]      */
[codex:1183286]     function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {
[codex:1183286]         /// @solidity memory-safe-assembly
[codex:1183286]         assembly {
[codex:1183286]             r.slot := slot
[codex:1183286]         }
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Continuing process**
[codex:1183286] exec
[codex:1183286] /bin/bash -lc "sed -n '1501,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_n56ybd1 succeeded in 6ms:
[codex:1183286]         unchecked {
[codex:1183286]             // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
[codex:1183286]             // benefit is lost if 'b' is also tested.
[codex:1183286]             // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
[codex:1183286]             if (a == 0) return (true, 0);
[codex:1183286]             uint256 c = a * b;
[codex:1183286]             if (c / a != b) return (false, 0);
[codex:1183286]             return (true, c);
[codex:1183286]         }
[codex:1183286]     }
[codex:1183286] 
[codex:1183286]     /**
[codex:1183286]      * @dev Returns the division of two unsigned integers, with a division by zero flag.
[codex:1183286]      */
[codex:1183286]     function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
[codex:1183286]         unchecked {
[codex:1183286]             if (b == 0) return (false, 0);
[codex:1183286]             return (true, a / b);
[codex:1183286]         }
[codex:1183286]     }
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Continuing exploration**
[codex:1183286] exec
[codex:1183286] /bin/bash -lc "sed -n '2001,2500p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_n56ybd1 succeeded in 5ms:
[codex:1183286]     function _checkOwner() internal view virtual {
[codex:1183286]         if (owner() != _msgSender()) {
[codex:1183286]             revert OwnableUnauthorizedAccount(_msgSender());
[codex:1183286]         }
[codex:1183286]     }
[codex:1183286] 
[codex:1183286]     /**
[codex:1183286]      * @dev Leaves the contract without owner. It will not be possible to call
[codex:1183286]      * `onlyOwner` functions. Can only be called by the current owner.
[codex:1183286]      *
[codex:1183286]      * NOTE: Renouncing ownership will leave the contract without an owner,
[codex:1183286]      * thereby disabling any functionality that is only available to the owner.
[codex:1183286]      */
[codex:1183286]     function renounceOwnership() public virtual onlyOwner {
[codex:1183286]         _transferOwnership(address(0));
[codex:1183286]     }
[codex:1183286] 
[codex:1183286]     /**
[codex:1183286]      * @dev Transfers ownership of the contract to a new account (`newOwner`).
[codex:1183286]      * Can only be called by the current owner.
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Continuing process**
[codex:1183286] exec
[codex:1183286] /bin/bash -lc "sed -n '2501,3000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_n56ybd1 succeeded in 6ms:
[codex:1183286]  */
[codex:1183286] abstract contract EIP712Upgradeable is Initializable, IERC5267 {
[codex:1183286]     bytes32 private constant TYPE_HASH =
[codex:1183286]         keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");
[codex:1183286] 
[codex:1183286]     /// @custom:storage-location erc7201:openzeppelin.storage.EIP712
[codex:1183286]     struct EIP712Storage {
[codex:1183286]         /// @custom:oz-renamed-from _HASHED_NAME
[codex:1183286]         bytes32 _hashedName;
[codex:1183286]         /// @custom:oz-renamed-from _HASHED_VERSION
[codex:1183286]         bytes32 _hashedVersion;
[codex:1183286] 
[codex:1183286]         string _name;
[codex:1183286]         string _version;
[codex:1183286]     }
[codex:1183286] 
[codex:1183286]     // keccak256(abi.encode(uint256(keccak256("openzeppelin.storage.EIP712")) - 1)) & ~bytes32(uint256(0xff))
[codex:1183286]     bytes32 private constant EIP712StorageLocation = 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100;
[codex:1183286] 
[codex:1183286]     function _getEIP712Storage() private pure returns (EIP712Storage storage $) {
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Continuing process**
[codex:1183286] exec
[codex:1183286] /bin/bash -lc "sed -n '3001,3500p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_n56ybd1 succeeded in 6ms:
[codex:1183286]   /**
[codex:1183286]    * @notice Send the message to the linked adapter
[codex:1183286]    * @param _from address that originated the message
[codex:1183286]    * @param _to target address on the destination chain
[codex:1183286]    * @param _amount amount of tokens to be bridged
[codex:1183286]    * @param _minGasLimit minimum gas limit for the other chain to execute the message
[codex:1183286]    */
[codex:1183286]   function _sendMessage(address _from, address _to, uint256 _amount, uint32 _minGasLimit) internal {
[codex:1183286]     // Transfer the tokens to the contract
[codex:1183286]     IUSDC(USDC).safeTransferFrom(_from, address(this), _amount);
[codex:1183286] 
[codex:1183286]     // Send the message to the linked adapter
[codex:1183286]     ICrossDomainMessenger(MESSENGER).sendMessage(
[codex:1183286]       LINKED_ADAPTER, abi.encodeCall(IOpUSDCBridgeAdapter.receiveMessage, (_to, _from, _amount)), _minGasLimit
[codex:1183286]     );
[codex:1183286] 
[codex:1183286]     emit MessageSent(_from, _to, _amount, MESSENGER, _minGasLimit);
[codex:1183286]   }
[codex:1183286] }
[codex:1183286] 
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Continuing analysis**
[codex:1183286] exec
[codex:1183286] /bin/bash -lc "sed -n '3501,3974p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_n56ybd1 succeeded in 6ms:
[codex:1183286]    * @param _user The user that received the message
[codex:1183286]    * @param _amount The amount of tokens received
[codex:1183286]    * @param _messenger The address of the messenger contract that was received through
[codex:1183286]    */
[codex:1183286]   event MessageReceived(address indexed _spender, address indexed _user, uint256 _amount, address indexed _messenger);
[codex:1183286] 
[codex:1183286]   /**
[codex:1183286]    * @notice Emitted when messaging is resumed
[codex:1183286]    * @param _messenger The address of the messenger that was resumed
[codex:1183286]    */
[codex:1183286]   event MessagingResumed(address _messenger);
[codex:1183286] 
[codex:1183286]   /**
[codex:1183286]    * @notice Emitted when the adapter is migrating usdc to native
[codex:1183286]    * @param _messenger The address of the messenger contract that is doing the migration
[codex:1183286]    * @param _caller The address that will be allowed to call the permissioned function on the given chain
[codex:1183286]    * @dev On L1 _caller can call burnLockedUSDC
[codex:1183286]    * @dev On L2 _caller can call transferUSDCRoles
[codex:1183286]    */
[codex:1183286]   event MigratingToNative(address _messenger, address _caller);
[codex:1183286] 
[codex:1183286] 
[codex:1183286] 
[codex:1183286] 
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Auditing key contract vulnerabilities**
[codex:1183286] 
[codex:1183286] I'm carefully analyzing core contracts like L1OpUSDCBridgeAdapter, OpUSDCBridgeAdapter, and FallbackProxyAdmin for typical weaknesses including reentrancy, access control, upgradeability, and signature handling. I'm examining function logic, external calls, and state updates to assess security risks such as replay attacks, improper authorization, and unsafe upgrade patterns. This deep dive will help uncover subtle issues related to trusted external calls and contract design assumptions.
[codex:1183286] thinking
[codex:1183286] **Evaluating upgradeability and domain handling**
[codex:1183286] 
[codex:1183286] I'm digging into how immutables set in implementation contracts affect multiple proxy deployments and reviewing initializer patterns, especially UUPS-related ones. I’m also verifying EIP712 domain initialization and signature nonce handling while considering possible cross-chain replay or state inconsistencies. This analysis helps clarify subtle design choices around upgrade security, signature validity, and domain separation in the bridging system.
[codex:1183286] thinking
[codex:1183286] **Analyzing cross-chain call patterns and reentrancy risks**
[codex:1183286] 
[codex:1183286] I'm carefully reviewing how external calls interact with state updates, especially around reentrancy in receiveMessage, withdrawLockedFunds, and burnLockedUSDC. Considering proxy behavior, signature checks, and adapter trust assumptions, I want to confirm there’s no exploitable flow despite complex cross-domain calls and potential upgrade paths. This thorough look aims to ensure robust call sequencing and trust boundaries in the bridging logic.
[codex:1183286] thinking
[codex:1183286] **Identifying replay and accounting inconsistencies**
[codex:1183286] 
[codex:1183286] I'm exploring how replaying failed cross-chain messages can inflate lockedFundsDetails, potentially letting users withdraw more than they should once transfers succeed. This could happen because receiveMessage adds to locked amounts on each failure without deduplication, and the messenger can replay failed messages; it’s a subtle but significant accounting gap that might let malicious actors or conditions like token pauses skew balances.
[codex:1183286] thinking
[codex:1183286] **Reviewing signature checks and upgrade patterns**
[codex:1183286] 
[codex:1183286] I'm evaluating potential signature struct mismatches, how burnLockedUSDC handles burn amounts versus balances, and how upgradeability could change immutable addresses unexpectedly after upgrades. I’m also preparing to locate precise line numbers for receiveMessage to reference in findings and will check for any messaging pause enforcement gaps or accounting considerations tied to replayable messages.
[codex:1183286] exec
[codex:1183286] /bin/bash -lc "nl -ba contracts/src/contracts/L1OpUSDCBridgeAdapter.sol | sed -n '140,260p'" in /tmp/codex-multi-_n56ybd1 succeeded in 6ms:
[codex:1183286]    140	                          ADMIN CONTROL
[codex:1183286]    141	  ///////////////////////////////////////////////////////////////*/
[codex:1183286]    142	
[codex:1183286]    143	  /**
[codex:1183286]    144	   * @notice Send a message to the linked adapter to call receiveStopMessaging() and stop outgoing messages.
[codex:1183286]    145	   * @dev Only callable by the owner of the adapter
[codex:1183286]    146	   * @param _minGasLimit Minimum gas limit that the message can be executed with
[codex:1183286]    147	   */
[codex:1183286]    148	  function stopMessaging(uint32 _minGasLimit) external onlyOwner {
[codex:1183286]    149	    // Ensure messaging is enabled
[codex:1183286]    150	    // If its paused we still leave this function open to be called in case the message fails on L2
[codex:1183286]    151	    if (messengerStatus != Status.Active && messengerStatus != Status.Paused) {
[codex:1183286]    152	      revert IOpUSDCBridgeAdapter_MessagingDisabled();
[codex:1183286]    153	    }
[codex:1183286]    154	
[codex:1183286]    155	    messengerStatus = Status.Paused;
[codex:1183286]    156	
[codex:1183286]    157	    ICrossDomainMessenger(MESSENGER).sendMessage(
[codex:1183286]    158	      LINKED_ADAPTER, abi.encodeCall(IL2OpUSDCBridgeAdapter.receiveStopMessaging, ()), _minGasLimit
[codex:1183286]    159	    );
[codex:1183286] exec
[codex:1183286] /bin/bash -lc "nl -ba contracts/src/contracts/L1OpUSDCBridgeAdapter.sol | sed -n '260,340p'" in /tmp/codex-multi-_n56ybd1 succeeded in 6ms:
[codex:1183286]    260	  function receiveMessage(address _user, address _spender, uint256 _amount) external override onlyLinkedAdapter {
[codex:1183286]    261	    // Transfer the tokens to the user
[codex:1183286]    262	    try this.attemptTransfer(_user, _amount) {
[codex:1183286]    263	      emit MessageReceived(_spender, _user, _amount, MESSENGER);
[codex:1183286]    264	    } catch {
[codex:1183286]    265	      // If the transfer fails, the user could be locked for multiple reasons such as blacklist or usdc being paused
[codex:1183286]    266	      lockedFundsDetails[_spender][_user] += _amount;
[codex:1183286]    267	      emit MessageFailed(_spender, _user, _amount, MESSENGER);
[codex:1183286]    268	    }
[codex:1183286]    269	  }
[codex:1183286]    270	
[codex:1183286]    271	  /**
[codex:1183286]    272	   * @notice Receives a message from L2 if the adapter is deprecated and a user is withdrawing locked funds
[codex:1183286]    273	   * @dev If the _spender is still locked, the user will be forced to replay this message
[codex:1183286]    274	   * @param _spender The user that initially provided the tokens
[codex:1183286]    275	   * @param _amount The amount of tokens to withdraw
[codex:1183286]    276	   */
[codex:1183286]    277	  function receiveWithdrawLockedFundsPostMigration(address _spender, uint256 _amount) external onlyLinkedAdapter {
[codex:1183286]    278	    if (messengerStatus != Status.Deprecated) revert IOpUSDCBridgeAdapter_NotMigrated();
[codex:1183286]    279	
[codex:1183286] 
[codex:1183286] thinking
[codex:1183286] **Preparing vulnerability finding JSON**
[codex:1183286] 
[codex:1183286] I'm drafting the JSON output for one medium-severity finding where replayed failed L2-to-L1 messages inflate locked funds accounting, following the required schema with no extra text. I'll carefully include file locations, evidence snippet, and a concise summary as instructed.
[codex:1183286] codex
[codex:1183286] {"no_findings":false,"summary":"Found 1 medium issue: failed cross-domain message replays can over-credit locked funds.","findings":[{"severity":"medium","category":"other","title":"Replayable failed messages inflate locked funds accounting","exploit_scenario":"If USDC transfers fail (e.g., paused/blacklisted), `receiveMessage` records `_amount` in `lockedFundsDetails`. Because the cross-domain messenger allows replaying failed messages, an attacker can repeatedly relay the same failing message, incrementing `lockedFundsDetails` each time. Once transfers succeed again, `withdrawLockedFunds` lets the attacker withdraw the inflated amount, draining funds locked for other users.","recommendation":"Make `receiveMessage` idempotent for failed deliveries by tracking a unique message identifier and only crediting `lockedFundsDetails` once (e.g., include a nonce/messageId in the L2->L1 payload and store a processed/failure marker). Alternatively, store the locked amount as a set-once value instead of additive increments for the same message.","evidence":"`receiveMessage` increments `lockedFundsDetails[_spender][_user]` on every failed attempt without replay protection.","locations":["contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:260","contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:265","contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:266"]}]}
[codex:1183286] tokens used
[codex:1183286] 65,568
[codex:1183286] {"no_findings":false,"summary":"Found 1 medium issue: failed cross-domain message replays can over-credit locked funds.","findings":[{"severity":"medium","category":"other","title":"Replayable failed messages inflate locked funds accounting","exploit_scenario":"If USDC transfers fail (e.g., paused/blacklisted), `receiveMessage` records `_amount` in `lockedFundsDetails`. Because the cross-domain messenger allows replaying failed messages, an attacker can repeatedly relay the same failing message, incrementing `lockedFundsDetails` each time. Once transfers succeed again, `withdrawLockedFunds` lets the attacker withdraw the inflated amount, draining funds locked for other users.","recommendation":"Make `receiveMessage` idempotent for failed deliveries by tracking a unique message identifier and only crediting `lockedFundsDetails` once (e.g., include a nonce/messageId in the L2->L1 payload and store a processed/failure marker). Alternatively, store the locked amount as a set-once value instead of additive increments for the same message.","evidence":"`receiveMessage` increments `lockedFundsDetails[_spender][_user]` on every failed attempt without replay protection.","locations":["contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:260","contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:265","contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:266"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-28T17:47:06.711030+00:00",
        "returncode": 0
    },
    "summary": "Found 1 medium issue: failed cross-domain message replays can over-credit locked funds.",
    "raw_final": {
        "summary": "Found 1 medium issue: failed cross-domain message replays can over-credit locked funds.",
        "findings": [
            {
                "title": "Replayable failed messages inflate locked funds accounting",
                "category": "other",
                "evidence": "`receiveMessage` increments `lockedFundsDetails[_spender][_user]` on every failed attempt without replay protection.",
                "severity": "medium",
                "locations": [
                    "contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:260",
                    "contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:265",
                    "contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:266"
                ],
                "recommendation": "Make `receiveMessage` idempotent for failed deliveries by tracking a unique message identifier and only crediting `lockedFundsDetails` once (e.g., include a nonce/messageId in the L2->L1 payload and store a processed/failure marker). Alternatively, store the locked amount as a set-once value instead of additive increments for the same message.",
                "exploit_scenario": "If USDC transfers fail (e.g., paused/blacklisted), `receiveMessage` records `_amount` in `lockedFundsDetails`. Because the cross-domain messenger allows replaying failed messages, an attacker can repeatedly relay the same failing message, incrementing `lockedFundsDetails` each time. Once transfers succeed again, `withdrawLockedFunds` lets the attacker withdraw the inflated amount, draining funds locked for other users."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
16
EXT*/BALANCE
9
Total opcodes
5838
Flags
delegatecall_present heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: DUP1
00000003: PUSH1 0x40
00000005: MSTORE
00000006: PUSH1 0x04
00000008: CALLDATASIZE
00000009: LT
0000000a: ISZERO
0000000b: PUSH2 0x0013
0000000e: JUMPI
0000000f: PUSH1 0x00
00000011: DUP1
00000012: REVERT
00000013: JUMPDEST
00000014: PUSH1 0x00
00000016: SWAP1
00000017: DUP2
00000018: CALLDATALOAD
00000019: PUSH1 0xe0
0000001b: SHR
0000001c: SWAP1
0000001d: DUP2
0000001e: PUSH4 0x1902f068
00000023: EQ
00000024: PUSH2 0x1a97
00000027: JUMPI
00000028: POP
00000029: DUP1
0000002a: PUSH4 0x2c8a6ae1
0000002f: EQ
00000030: PUSH2 0x1a52
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0x32b3a987
0000003a: EQ
0000003b: PUSH2 0x1879
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0x3bbcb44b
00000045: EQ
00000046: PUSH2 0x1850
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0x486a7e6b
00000050: EQ
00000051: PUSH2 0x1832
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0x4c598b56
0000005b: EQ
0000005c: PUSH2 0x174c
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0x4f1ef286
00000066: EQ
00000067: PUSH2 0x1541
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0x4f872ec3
00000071: EQ
00000072: PUSH2 0x13e0
00000075: JUMPI
00000076: DUP1
00000077: PUSH4 0x52d1902d
0000007c: EQ
0000007d: PUSH2 0x1363
00000080: JUMPI
00000081: DUP1
00000082: PUSH4 0x5f8f4e9d
00000087: EQ
00000088: PUSH2 0x131a
0000008b: JUMPI
0000008c: DUP1
0000008d: PUSH4 0x5fae6025
00000092: EQ
00000093: PUSH2 0x11c5
00000096: JUMPI
00000097: DUP1
00000098: PUSH4 0x67bd044d
0000009d: EQ
0000009e: PUSH2 0x116d
000000a1: JUMPI
000000a2: DUP1
000000a3: PUSH4 0x715018a6
000000a8: EQ
000000a9: PUSH2 0x1102
000000ac: JUMPI
000000ad: DUP1
000000ae: PUSH4 0x84b0196e
000000b3: EQ
000000b4: PUSH2 0x0fa4
000000b7: JUMPI
000000b8: DUP1
000000b9: PUSH4 0x89a30271
000000be: EQ
000000bf: PUSH2 0x0f5f
000000c2: JUMPI
000000c3: DUP1
000000c4: PUSH4 0x8a5e52bb
000000c9: EQ
000000ca: PUSH2 0x0ddf
000000cd: JUMPI
000000ce: DUP1
000000cf: PUSH4 0x8da5cb5b
000000d4: EQ
000000d5: PUSH2 0x0da9
000000d8: JUMPI
000000d9: DUP1
000000da: PUSH4 0x927ede2d
000000df: EQ
000000e0: PUSH2 0x0d64
000000e3: JUMPI
000000e4: DUP1
000000e5: PUSH4 0xad3cb1cc
000000ea: EQ
000000eb: PUSH2 0x0d1a
000000ee: JUMPI
000000ef: DUP1
000000f0: PUSH4 0xadbcea75
000000f5: EQ
000000f6: PUSH2 0x0cae
000000f9: JUMPI
000000fa: DUP1
000000fb: PUSH4 0xaef26549
00000100: EQ
00000101: PUSH2 0x0c5f
00000104: JUMPI
00000105: DUP1
00000106: PUSH4 0xbb416b35
0000010b: EQ
0000010c: PUSH2 0x0c37
0000010f: JUMPI
00000110: DUP1
00000111: PUSH4 0xc4d66de8
00000116: EQ
00000117: PUSH2 0x0740
0000011a: JUMPI
0000011b: DUP1
0000011c: PUSH4 0xcc43f3d3
00000121: EQ
00000122: PUSH2 0x05e3
00000125: JUMPI
00000126: DUP1
00000127: PUSH4 0xcdb9d2ea
0000012c: EQ
0000012d: PUSH2 0x03ef
00000130: JUMPI
00000131: DUP1
00000132: PUSH4 0xe1ceec34
00000137: EQ
00000138: PUSH2 0x03b4
0000013b: JUMPI
0000013c: DUP1
0000013d: PUSH4 0xf2fde38b
00000142: EQ
00000143: PUSH2 0x0387
00000146: JUMPI
00000147: DUP1
00000148: PUSH4 0xf68d1b9f
0000014d: EQ
0000014e: PUSH2 0x021c
00000151: JUMPI
00000152: PUSH4 0xfbea6022
00000157: EQ
00000158: PUSH2 0x0160
0000015b: JUMPI
0000015c: PUSH1 0x00
0000015e: DUP1
0000015f: REVERT
00000160: JUMPDEST
00000161: CALLVALUE
00000162: PUSH2 0x0219
00000165: JUMPI
00000166: PUSH1 0x40
00000168: CALLDATASIZE
00000169: PUSH1 0x03
0000016b: NOT
0000016c: ADD
0000016d: SLT
0000016e: PUSH2 0x0219
00000171: JUMPI
00000172: PUSH2 0x0179
00000175: PUSH2 0x1edf
00000178: JUMP
00000179: JUMPDEST
0000017a: PUSH32 0xc47b52177930ba2672bfc1f75da55cf82adb3c61c2df74e28bdfefbf52ae9e05
0000019b: PUSH1 0x20
0000019d: PUSH2 0x01a4
000001a0: PUSH2 0x1ef5
000001a3: JUMP
000001a4: JUMPDEST
000001a5: SWAP3
000001a6: PUSH2 0x020f
000001a9: PUSH1 0x01
000001ab: DUP1
000001ac: PUSH1 0xa0
000001ae: SHL
000001af: SUB
000001b0: DUP1
000001b1: SWAP3
000001b2: AND
000001b3: DUP1
000001b4: DUP8
000001b5: MSTORE
000001b6: PUSH1 0x02
000001b8: DUP5
000001b9: MSTORE
000001ba: PUSH1 0x40
000001bc: DUP8
000001bd: KECCAK256
000001be: SWAP6
000001bf: DUP4
000001c0: DUP2
000001c1: AND
000001c2: SWAP7
000001c3: DUP8
000001c4: PUSH1 0x00
000001c6: MSTORE
000001c7: DUP6
000001c8: MSTORE
000001c9: PUSH1 0x40
000001cb: PUSH1 0x00
000001cd: KECCAK256
000001ce: SLOAD
000001cf: SWAP4
000001d0: DUP5
000001d1: SWAP3
000001d2: DUP10
000001d3: MSTORE
000001d4: PUSH1 0x02
000001d6: DUP7
000001d7: MSTORE
000001d8: PUSH1 0x40
000001da: DUP10
000001db: KECCAK256
000001dc: DUP9
000001dd: PUSH1 0x00
000001df: MSTORE
000001e0: DUP7
000001e1: MSTORE
000001e2: DUP9
000001e3: PUSH1 0x40
000001e5: PUSH1 0x00
000001e7: KECCAK256
000001e8: SSTORE
000001e9: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0000020a: AND
0000020b: PUSH2 0x229a
0000020e: JUMP
0000020f: JUMPDEST
00000210: PUSH1 0x40
00000212: MLOAD
00000213: SWAP1
00000214: DUP2
00000215: MSTORE
00000216: LOG2
00000217: DUP1
00000218: RETURN
00000219: JUMPDEST
0000021a: DUP1
0000021b: REVERT
0000021c: JUMPDEST
0000021d: POP
0000021e: CALLVALUE
0000021f: PUSH2 0x0219
00000222: JUMPI
00000223: PUSH1 0x20
00000225: CALLDATASIZE
00000226: PUSH1 0x03
00000228: NOT
00000229: ADD
0000022a: SLT
0000022b: PUSH2 0x0219
0000022e: JUMPI
0000022f: PUSH2 0x0236
00000232: PUSH2 0x1f1e
00000235: JUMP
00000236: JUMPDEST
00000237: PUSH2 0x023e
0000023a: PUSH2 0x22dd
0000023d: JUMP
0000023e: JUMPDEST
0000023f: DUP2
00000240: SLOAD
00000241: PUSH1 0xff
00000243: DUP2
00000244: AND
00000245: PUSH2 0x024d
00000248: DUP2
00000249: PUSH2 0x2012
0000024c: JUMP
0000024d: JUMPDEST
0000024e: DUP1
0000024f: ISZERO
00000250: ISZERO
00000251: SWAP1
00000252: DUP2
00000253: PUSH2 0x0372
00000256: JUMPI
00000257: JUMPDEST
00000258: POP
00000259: PUSH2 0x0360
0000025c: JUMPI
0000025d: PUSH1 0xff
0000025f: NOT
00000260: AND
00000261: PUSH1 0x01
00000263: OR
00000264: DUP3
00000265: SSTORE
00000266: PUSH1 0x40
00000268: MLOAD
00000269: PUSH4 0x4384a98f
0000026e: PUSH1 0xe0
00000270: SHL
00000271: PUSH1 0x20
00000273: DUP3
00000274: ADD
00000275: MSTORE
00000276: PUSH1 0x04
00000278: DUP2
00000279: MSTORE
0000027a: PUSH32 0x00000000000000000000000031b72d76fb666844c41edf08df0254875dbb7edb
0000029b: PUSH1 0x01
0000029d: PUSH1 0x01
0000029f: PUSH1 0xa0
000002a1: SHL
000002a2: SUB
000002a3: AND
000002a4: SWAP2
000002a5: DUP4
000002a6: SWAP2
000002a7: PUSH2 0x02af
000002aa: DUP2
000002ab: PUSH2 0x1f44
000002ae: JUMP
000002af: JUMPDEST
000002b0: DUP4
000002b1: EXTCODESIZE
000002b2: ISZERO
000002b3: PUSH2 0x035c
000002b6: JUMPI
000002b7: PUSH1 0x40
000002b9: MLOAD
000002ba: PUSH4 0x3dbb202b
000002bf: PUSH1 0xe0
000002c1: SHL
000002c2: DUP2
000002c3: MSTORE
000002c4: SWAP2
000002c5: DUP4
000002c6: SWAP2
000002c7: DUP4
000002c8: SWAP2
000002c9: DUP3
000002ca: SWAP2
000002cb: PUSH2 0x02f9
000002ce: SWAP2
000002cf: SWAP1
000002d0: PUSH32 0x0000000000000000000000003b1ac69368eb6447f5db2d4e1641380fa9e40d29
000002f1: PUSH1 0x04
000002f3: DUP6
000002f4: ADD
000002f5: PUSH2 0x2069
000002f8: JUMP
000002f9: JUMPDEST
000002fa: SUB
000002fb: DUP2
000002fc: DUP4
000002fd: DUP8
000002fe: GAS
000002ff: CALL
00000300: DUP1
00000301: ISZERO
00000302: PUSH2 0x0351
00000305: JUMPI
00000306: PUSH2 0x0339
00000309: JUMPI
0000030a: JUMPDEST
0000030b: POP
0000030c: PUSH32 0xc19ffaed16cc79d2c0c853889a5b1fd248a9208d0478bc07dd2da1cda4e89992
0000032d: PUSH1 0x20
0000032f: DUP4
00000330: PUSH1 0x40
00000332: MLOAD
00000333: SWAP1
00000334: DUP2
00000335: MSTORE
00000336: LOG1
00000337: DUP1
00000338: RETURN
00000339: JUMPDEST
0000033a: PUSH2 0x0342
0000033d: SWAP1
0000033e: PUSH2 0x1f31
00000341: JUMP
00000342: JUMPDEST
00000343: PUSH2 0x034d
00000346: JUMPI
00000347: DUP2
00000348: CODESIZE
00000349: PUSH2 0x030a
0000034c: JUMP
0000034d: JUMPDEST
0000034e: POP
0000034f: DUP1
00000350: REVERT
00000351: JUMPDEST
00000352: PUSH1 0x40
00000354: MLOAD
00000355: RETURNDATASIZE
00000356: DUP5
00000357: DUP3
00000358: RETURNDATACOPY
00000359: RETURNDATASIZE
0000035a: SWAP1
0000035b: REVERT
0000035c: JUMPDEST
0000035d: DUP3
0000035e: DUP1
0000035f: REVERT
00000360: JUMPDEST
00000361: PUSH1 0x40
00000363: MLOAD
00000364: PUSH4 0x6a14cf23
00000369: PUSH1 0xe0
0000036b: SHL
0000036c: DUP2
0000036d: MSTORE
0000036e: PUSH1 0x04
00000370: SWAP1
00000371: REVERT
00000372: JUMPDEST
00000373: PUSH1 0x01
00000375: SWAP2
00000376: POP
00000377: PUSH2 0x037f
0000037a: DUP2
0000037b: PUSH2 0x2012
0000037e: JUMP
0000037f: JUMPDEST
00000380: EQ
00000381: ISZERO
00000382: CODESIZE
00000383: PUSH2 0x0257
00000386: JUMP
00000387: JUMPDEST
00000388: POP
00000389: CALLVALUE
0000038a: PUSH2 0x0219
0000038d: JUMPI
0000038e: PUSH1 0x20
00000390: CALLDATASIZE
00000391: PUSH1 0x03
00000393: NOT
00000394: ADD
00000395: SLT
00000396: PUSH2 0x0219
00000399: JUMPI
0000039a: PUSH2 0x03b1
0000039d: PUSH2 0x03a4
000003a0: PUSH2 0x1edf
000003a3: JUMP
000003a4: JUMPDEST
000003a5: PUSH2 0x03ac
000003a8: PUSH2 0x22dd
000003ab: JUMP
000003ac: JUMPDEST
000003ad: PUSH2 0x209b
000003b0: JUMP
000003b1: JUMPDEST
000003b2: DUP1
000003b3: RETURN
000003b4: JUMPDEST
000003b5: POP
000003b6: CALLVALUE
000003b7: PUSH2 0x0219
000003ba: JUMPI
000003bb: DUP1
000003bc: PUSH1 0x03
000003be: NOT
000003bf: CALLDATASIZE
000003c0: ADD
000003c1: SLT
000003c2: PUSH2 0x0219
000003c5: JUMPI
000003c6: PUSH1 0x20
000003c8: PUSH1 0x40
000003ca: MLOAD
000003cb: PUSH32 0x87e4683aad14f1869b43140e06b846bd1b00c2e08e9825f6719d163b4cfef2a6
000003ec: DUP2
000003ed: MSTORE
000003ee: RETURN
000003ef: JUMPDEST
000003f0: POP
000003f1: CALLVALUE
000003f2: PUSH2 0x0219
000003f5: JUMPI
000003f6: PUSH1 0x80
000003f8: CALLDATASIZE
000003f9: PUSH1 0x03
000003fb: NOT
000003fc: ADD
000003fd: SLT
000003fe: PUSH2 0x0219
00000401: JUMPI
00000402: PUSH2 0x0409
00000405: PUSH2 0x1edf
00000408: JUMP
00000409: JUMPDEST
0000040a: PUSH2 0x0411
0000040d: PUSH2 0x1ef5
00000410: JUMP
00000411: JUMPDEST
00000412: PUSH2 0x0419
00000415: PUSH2 0x1f0b
00000418: JUMP
00000419: JUMPDEST
0000041a: SWAP2
0000041b: PUSH1 0x64
0000041d: CALLDATALOAD
0000041e: SWAP3
0000041f: PUSH4 0xffffffff
00000424: DUP5
00000425: AND
00000426: DUP1
00000427: SWAP5
00000428: SUB
00000429: PUSH2 0x05de
0000042c: JUMPI
0000042d: PUSH2 0x0434
00000430: PUSH2 0x22dd
00000433: JUMP
00000434: JUMPDEST
00000435: PUSH1 0x01
00000437: PUSH1 0x01
00000439: PUSH1 0xa0
0000043b: SHL
0000043c: SUB
0000043d: SWAP2
0000043e: DUP3
0000043f: AND
00000440: SWAP2
00000441: DUP3
00000442: ISZERO
00000443: DUP1
00000444: ISZERO
00000445: PUSH2 0x05d4
00000448: JUMPI
00000449: JUMPDEST
0000044a: PUSH2 0x05c2
0000044d: JUMPI
0000044e: DUP6
0000044f: SLOAD
00000450: SWAP4
00000451: PUSH1 0xff
00000453: DUP6
00000454: AND
00000455: PUSH2 0x045d
00000458: DUP2
00000459: PUSH2 0x2012
0000045c: JUMP
0000045d: JUMPDEST
0000045e: DUP1
0000045f: ISZERO
00000460: ISZERO
00000461: SWAP1
00000462: DUP2
00000463: PUSH2 0x05ad
00000466: JUMPI
00000467: JUMPDEST
00000468: POP
00000469: PUSH2 0x0360
0000046c: JUMPI
0000046d: DUP2
0000046e: PUSH1 0x02
00000470: SWAP2
00000471: AND
00000472: SWAP5
00000473: DUP6
00000474: PUSH12 0xffffffffffffffffffffffff
00000481: PUSH1 0xa0
00000483: SHL
00000484: PUSH1 0x36
00000486: SLOAD
00000487: AND
00000488: OR
00000489: PUSH1 0x36
0000048b: SSTORE
0000048c: PUSH1 0xff
0000048e: NOT
0000048f: AND
00000490: OR
00000491: DUP7
00000492: SSTORE
00000493: PUSH32 0x00000000000000000000000031b72d76fb666844c41edf08df0254875dbb7edb
000004b4: AND
000004b5: SWAP4
000004b6: PUSH1 0x40
000004b8: MLOAD
000004b9: SWAP3
000004ba: PUSH4 0x69c5f5f3
000004bf: PUSH1 0xe0
000004c1: SHL
000004c2: PUSH1 0x20
000004c4: DUP6
000004c5: ADD
000004c6: MSTORE
000004c7: PUSH1 0x24
000004c9: DUP5
000004ca: ADD
000004cb: MSTORE
000004cc: PUSH1 0x44
000004ce: DUP4
000004cf: ADD
000004d0: MSTORE
000004d1: PUSH1 0x44
000004d3: DUP3
000004d4: MSTORE
000004d5: PUSH1 0x80
000004d7: DUP3
000004d8: ADD
000004d9: SWAP1
000004da: DUP3
000004db: DUP3
000004dc: LT
000004dd: PUSH1 0x01
000004df: PUSH1 0x01
000004e1: PUSH1 0x40
000004e3: SHL
000004e4: SUB
000004e5: DUP4
000004e6: GT
000004e7: OR
000004e8: PUSH2 0x0597
000004eb: JUMPI
000004ec: DUP6
000004ed: SWAP3
000004ee: DUP3
000004ef: PUSH1 0x40
000004f1: MSTORE
000004f2: DUP6
000004f3: EXTCODESIZE
000004f4: ISZERO
000004f5: PUSH2 0x0593
000004f8: JUMPI
000004f9: PUSH4 0x3dbb202b
000004fe: PUSH1 0xe0
00000500: SHL
00000501: DUP4
00000502: MSTORE
00000503: DUP4
00000504: SWAP2
00000505: DUP4
00000506: SWAP2
00000507: PUSH1 0x7f
00000509: NOT
0000050a: SWAP2
0000050b: PUSH2 0x0539
0000050e: SWAP1
0000050f: DUP3
00000510: PUSH32 0x0000000000000000000000003b1ac69368eb6447f5db2d4e1641380fa9e40d29
00000531: PUSH1 0x84
00000533: DUP3
00000534: ADD
00000535: PUSH2 0x2069
00000538: JUMP
00000539: JUMPDEST
0000053a: SUB
0000053b: ADD
0000053c: DUP2
0000053d: DUP4
0000053e: DUP9
0000053f: GAS
00000540: CALL
00000541: DUP1
00000542: ISZERO
00000543: PUSH2 0x0351
00000546: JUMPI
00000547: PUSH2 0x057f
0000054a: JUMPI
0000054b: JUMPDEST
0000054c: POP
0000054d: PUSH32 0x06aeee5a19965b1536947b7571a17a681add9aad3efd41c1bec130257eaab6c9
0000056e: PUSH1 0x40
00000570: DUP5
00000571: DUP5
00000572: DUP3
00000573: MLOAD
00000574: SWAP2
00000575: DUP3
00000576: MSTORE
00000577: PUSH1 0x20
00000579: DUP3
0000057a: ADD
0000057b: MSTORE
0000057c: LOG1
0000057d: DUP1
0000057e: RETURN
0000057f: JUMPDEST
00000580: PUSH2 0x0588
00000583: SWAP1
00000584: PUSH2 0x1f31
00000587: JUMP
00000588: JUMPDEST
00000589: PUSH2 0x035c
0000058c: JUMPI
0000058d: DUP3
0000058e: CODESIZE
0000058f: PUSH2 0x054b
00000592: JUMP
00000593: JUMPDEST
00000594: DUP4
00000595: DUP1
00000596: REVERT
00000597: JUMPDEST
00000598: PUSH4 0x4e487b71
0000059d: PUSH1 0xe0
0000059f: SHL
000005a0: PUSH1 0x00
000005a2: MSTORE
000005a3: PUSH1 0x41
000005a5: PUSH1 0x04
000005a7: MSTORE
000005a8: PUSH1 0x24
000005aa: PUSH1 0x00
000005ac: REVERT
000005ad: JUMPDEST
000005ae: PUSH1 0x02
000005b0: SWAP2
000005b1: POP
000005b2: PUSH2 0x05ba
000005b5: DUP2
000005b6: PUSH2 0x2012
000005b9: JUMP
000005ba: JUMPDEST
000005bb: EQ
000005bc: ISZERO
000005bd: CODESIZE
000005be: PUSH2 0x0467
000005c1: JUMP
000005c2: JUMPDEST
000005c3: PUSH1 0x40
000005c5: MLOAD
000005c6: PUSH4 0x5432922d
000005cb: PUSH1 0xe0
000005cd: SHL
000005ce: DUP2
000005cf: MSTORE
000005d0: PUSH1 0x04
000005d2: SWAP1
000005d3: REVERT
000005d4: JUMPDEST
000005d5: POP
000005d6: DUP1
000005d7: DUP5
000005d8: AND
000005d9: ISZERO
000005da: PUSH2 0x0449
000005dd: JUMP
000005de: JUMPDEST
000005df: PUSH1 0x00
000005e1: DUP1
000005e2: REVERT
000005e3: JUMPDEST
000005e4: POP
000005e5: CALLVALUE
000005e6: PUSH2 0x0219
000005e9: JUMPI
000005ea: PUSH1 0x20
000005ec: CALLDATASIZE
000005ed: PUSH1 0x03
000005ef: NOT
000005f0: ADD
000005f1: SLT
000005f2: PUSH2 0x0219
000005f5: JUMPI
000005f6: PUSH1 0x04
000005f8: CALLDATALOAD
000005f9: PUSH1 0x01
000005fb: PUSH1 0x01
000005fd: PUSH1 0xa0
000005ff: SHL
00000600: SUB
00000601: PUSH32 0x00000000000000000000000031b72d76fb666844c41edf08df0254875dbb7edb
00000622: DUP2
00000623: AND
00000624: CALLER
00000625: DUP2
00000626: EQ
00000627: DUP1
00000628: ISZERO
00000629: SWAP3
0000062a: SWAP2
0000062b: SWAP1
0000062c: PUSH2 0x06ac
0000062f: JUMPI
00000630: JUMPDEST
00000631: POP
00000632: POP
00000633: PUSH2 0x069a
00000636: JUMPI
00000637: DUP2
00000638: SLOAD
00000639: PUSH1 0x02
0000063b: PUSH1 0xff
0000063d: DUP3
0000063e: AND
0000063f: PUSH2 0x0647
00000642: DUP2
00000643: PUSH2 0x2012
00000646: JUMP
00000647: JUMPDEST
00000648: SUB
00000649: PUSH2 0x0688
0000064c: JUMPI
0000064d: DUP2
0000064e: PUSH1 0x03
00000650: PUSH1 0x20
00000652: SWAP3
00000653: PUSH32 0x38acaebd0e3affc51737125878fe1e25cb5fdb627b3778416219d82f81ef42f8
00000674: SWAP5
00000675: PUSH1 0x35
00000677: SSTORE
00000678: PUSH1 0xff
0000067a: NOT
0000067b: AND
0000067c: OR
0000067d: DUP5
0000067e: SSTORE
0000067f: PUSH1 0x40
00000681: MLOAD
00000682: SWAP1
00000683: DUP2
00000684: MSTORE
00000685: LOG1
00000686: DUP1
00000687: RETURN
00000688: JUMPDEST
00000689: PUSH1 0x40
0000068b: MLOAD
0000068c: PUSH4 0x14ca5c17
00000691: PUSH1 0xe2
00000693: SHL
00000694: DUP2
00000695: MSTORE
00000696: PUSH1 0x04
00000698: SWAP1
00000699: REVERT
0000069a: JUMPDEST
0000069b: PUSH1 0x40
0000069d: MLOAD
0000069e: PUSH4 0x040e613d
000006a3: PUSH1 0xe2
000006a5: SHL
000006a6: DUP2
000006a7: MSTORE
000006a8: PUSH1 0x04
000006aa: SWAP1
000006ab: REVERT
000006ac: JUMPDEST
000006ad: PUSH1 0x40
000006af: MLOAD
000006b0: PUSH4 0x6e296e45
000006b5: PUSH1 0xe0
000006b7: SHL
000006b8: DUP2
000006b9: MSTORE
000006ba: SWAP3
000006bb: POP
000006bc: PUSH1 0x20
000006be: SWAP1
000006bf: DUP4
000006c0: SWAP1
000006c1: PUSH1 0x04
000006c3: SWAP1
000006c4: DUP3
000006c5: SWAP1
000006c6: GAS
000006c7: STATICCALL
000006c8: SWAP2
000006c9: DUP3
000006ca: ISZERO
000006cb: PUSH2 0x0735
000006ce: JUMPI
000006cf: DUP5
000006d0: SWAP3
000006d1: PUSH2 0x0704
000006d4: JUMPI
000006d5: JUMPDEST
000006d6: POP
000006d7: DUP1
000006d8: PUSH32 0x0000000000000000000000003b1ac69368eb6447f5db2d4e1641380fa9e40d29
000006f9: AND
000006fa: SWAP2
000006fb: AND
000006fc: EQ
000006fd: ISZERO
000006fe: CODESIZE
000006ff: DUP1
00000700: PUSH2 0x0630
00000703: JUMP
00000704: JUMPDEST
00000705: PUSH2 0x0727
00000708: SWAP2
00000709: SWAP3
0000070a: POP
0000070b: PUSH1 0x20
0000070d: RETURNDATASIZE
0000070e: PUSH1 0x20
00000710: GT
00000711: PUSH2 0x072e
00000714: JUMPI
00000715: JUMPDEST
00000716: PUSH2 0x071f
00000719: DUP2
0000071a: DUP4
0000071b: PUSH2 0x1f5f
0000071e: JUMP
0000071f: JUMPDEST
00000720: DUP2
00000721: ADD
00000722: SWAP1
00000723: PUSH2 0x204a
00000726: JUMP
00000727: JUMPDEST
00000728: SWAP1
00000729: CODESIZE
0000072a: PUSH2 0x06d5
0000072d: JUMP
0000072e: JUMPDEST
0000072f: POP
00000730: RETURNDATASIZE
00000731: PUSH2 0x0715
00000734: JUMP
00000735: JUMPDEST
00000736: PUSH1 0x40
00000738: MLOAD
00000739: RETURNDATASIZE
0000073a: DUP7
0000073b: DUP3
0000073c: RETURNDATACOPY
0000073d: RETURNDATASIZE
0000073e: SWAP1
0000073f: REVERT
00000740: JUMPDEST
00000741: POP
00000742: CALLVALUE
00000743: PUSH2 0x0219
00000746: JUMPI
00000747: PUSH1 0x20
00000749: CALLDATASIZE
0000074a: PUSH1 0x03
0000074c: NOT
0000074d: ADD
0000074e: SLT
0000074f: PUSH2 0x0219
00000752: JUMPI
00000753: PUSH2 0x075a
00000756: PUSH2 0x1edf
00000759: JUMP
0000075a: JUMPDEST
0000075b: SWAP1
0000075c: PUSH1 0x00
0000075e: DUP1
0000075f: MLOAD
00000760: PUSH1 0x20
00000762: PUSH2 0x27e5
00000765: DUP4
00000766: CODECOPY
00000767: DUP2
00000768: MLOAD
00000769: SWAP2
0000076a: MSTORE
0000076b: SLOAD
0000076c: SWAP2
0000076d: PUSH1 0x01
0000076f: PUSH1 0x01
00000771: PUSH1 0x40
00000773: SHL
00000774: SUB
00000775: DUP4
00000776: AND
00000777: DUP1
00000778: ISZERO
00000779: SWAP1
0000077a: DUP2
0000077b: PUSH2 0x0c27
0000077e: JUMPI
0000077f: JUMPDEST
00000780: PUSH1 0x01
00000782: EQ
00000783: SWAP1
00000784: DUP2
00000785: PUSH2 0x0c1d
00000788: JUMPI
00000789: JUMPDEST
0000078a: ISZERO
0000078b: SWAP1
0000078c: DUP2
0000078d: PUSH2 0x0c14
00000790: JUMPI
00000791: JUMPDEST
00000792: POP
00000793: PUSH2 0x0c02
00000796: JUMPI
00000797: PUSH2 0x07d5
0000079a: SWAP1
0000079b: PUSH1 0x01
0000079d: PUSH1 0x01
0000079f: PUSH1 0x01
000007a1: PUSH1 0x40
000007a3: SHL
000007a4: SUB
000007a5: NOT
000007a6: DUP6
000007a7: AND
000007a8: OR
000007a9: PUSH1 0x00
000007ab: DUP1
000007ac: MLOAD
000007ad: PUSH1 0x20
000007af: PUSH2 0x27e5
000007b2: DUP4
000007b3: CODECOPY
000007b4: DUP2
000007b5: MLOAD
000007b6: SWAP2
000007b7: MSTORE
000007b8: SSTORE
000007b9: PUSH1 0xff
000007bb: DUP5
000007bc: PUSH1 0x40
000007be: SHR
000007bf: AND
000007c0: ISZERO
000007c1: PUSH2 0x0bd5
000007c4: JUMPI
000007c5: JUMPDEST
000007c6: PUSH2 0x07cd
000007c9: PUSH2 0x2547
000007cc: JUMP
000007cd: JUMPDEST
000007ce: PUSH2 0x03ac
000007d1: PUSH2 0x2547
000007d4: JUMP
000007d5: JUMPDEST
000007d6: PUSH1 0x40
000007d8: MLOAD
000007d9: SWAP2
000007da: PUSH2 0x07e2
000007dd: DUP4
000007de: PUSH2 0x1f44
000007e1: JUMP
000007e2: JUMPDEST
000007e3: PUSH1 0x13
000007e5: DUP4
000007e6: MSTORE
000007e7: PUSH19 0x27b82aa9a221a13934b233b2a0b230b83a32b9
000007fb: PUSH1 0x69
000007fd: SHL
000007fe: PUSH1 0x20
00000800: DUP5
00000801: ADD
00000802: MSTORE
00000803: PUSH1 0x40
00000805: MLOAD
00000806: SWAP3
00000807: PUSH2 0x080f
0000080a: DUP5
0000080b: PUSH2 0x1f44
0000080e: JUMP
0000080f: JUMPDEST
00000810: PUSH1 0x05
00000812: DUP5
00000813: MSTORE
00000814: PUSH5 0x0312e302e3
0000081a: PUSH1 0xdc
0000081c: SHL
0000081d: PUSH1 0x20
0000081f: DUP6
00000820: ADD
00000821: MSTORE
00000822: PUSH2 0x0829
00000825: PUSH2 0x2547
00000828: JUMP
00000829: JUMPDEST
0000082a: PUSH2 0x0831
0000082d: PUSH2 0x2547
00000830: JUMP
00000831: JUMPDEST
00000832: DUP1
00000833: MLOAD
00000834: PUSH1 0x01
00000836: PUSH1 0x01
00000838: PUSH1 0x40
0000083a: SHL
0000083b: SUB
0000083c: DUP2
0000083d: GT
0000083e: PUSH2 0x0aaa
00000841: JUMPI
00000842: DUP1
00000843: PUSH2 0x085a
00000846: PUSH1 0x00
00000848: DUP1
00000849: MLOAD
0000084a: PUSH1 0x20
0000084c: PUSH2 0x2785
0000084f: DUP4
00000850: CODECOPY
00000851: DUP2
00000852: MLOAD
00000853: SWAP2
00000854: MSTORE
00000855: SLOAD
00000856: PUSH2 0x2316
00000859: JUMP
0000085a: JUMPDEST
0000085b: SWAP3
0000085c: PUSH1 0x1f
0000085e: SWAP4
0000085f: DUP5
00000860: DUP2
00000861: GT
00000862: PUSH2 0x0b54
00000865: JUMPI
00000866: JUMPDEST
00000867: POP
00000868: PUSH1 0x20
0000086a: SWAP1
0000086b: DUP5
0000086c: DUP4
0000086d: GT
0000086e: PUSH1 0x01
00000870: EQ
00000871: PUSH2 0x0ac9
00000874: JUMPI
00000875: DUP7
00000876: SWAP3
00000877: PUSH2 0x0abe
0000087a: JUMPI
0000087b: JUMPDEST
0000087c: POP
0000087d: POP
0000087e: DUP2
0000087f: PUSH1 0x01
00000881: SHL
00000882: SWAP2
00000883: PUSH1 0x00
00000885: NOT
00000886: SWAP1
00000887: PUSH1 0x03
00000889: SHL
0000088a: SHR
0000088b: NOT
0000088c: AND
0000088d: OR
0000088e: PUSH1 0x00
00000890: DUP1
00000891: MLOAD
00000892: PUSH1 0x20
00000894: PUSH2 0x2785
00000897: DUP4
00000898: CODECOPY
00000899: DUP2
0000089a: MLOAD
0000089b: SWAP2
0000089c: MSTORE
0000089d: SSTORE
0000089e: JUMPDEST
0000089f: DUP4
000008a0: MLOAD
000008a1: PUSH1 0x01
000008a3: PUSH1 0x01
000008a5: PUSH1 0x40
000008a7: SHL
000008a8: SUB
000008a9: DUP2
000008aa: GT
000008ab: PUSH2 0x0aaa
000008ae: JUMPI
000008af: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103
000008d0: SWAP2
000008d1: PUSH2 0x08da
000008d4: DUP4
000008d5: SLOAD
000008d6: PUSH2 0x2316
000008d9: JUMP
000008da: JUMPDEST
000008db: DUP2
000008dc: DUP2
000008dd: GT
000008de: PUSH2 0x0a4b
000008e1: JUMPI
000008e2: JUMPDEST
000008e3: POP
000008e4: PUSH1 0x20
000008e6: SWAP1
000008e7: DUP3
000008e8: GT
000008e9: PUSH1 0x01
000008eb: EQ
000008ec: PUSH2 0x09c8
000008ef: JUMPI
000008f0: DUP2
000008f1: SWAP1
000008f2: DUP6
000008f3: SWAP7
000008f4: PUSH1 0xff
000008f6: SWAP7
000008f7: SWAP3
000008f8: PUSH2 0x09bd
000008fb: JUMPI
000008fc: JUMPDEST
000008fd: POP
000008fe: POP
000008ff: DUP2
00000900: PUSH1 0x01
00000902: SHL
00000903: SWAP2
00000904: PUSH1 0x00
00000906: NOT
00000907: SWAP1
00000908: PUSH1 0x03
0000090a: SHL
0000090b: SHR
0000090c: NOT
0000090d: AND
0000090e: OR
0000090f: SWAP1
00000910: SSTORE
00000911: JUMPDEST
00000912: DUP3
00000913: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100
00000934: SSTORE
00000935: DUP3
00000936: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101
00000957: SSTORE
00000958: PUSH1 0x40
0000095a: SHR
0000095b: AND
0000095c: ISZERO
0000095d: PUSH2 0x0963
00000960: JUMPI
00000961: DUP1
00000962: RETURN
00000963: JUMPDEST
00000964: PUSH9 0xff0000000000000000
0000096e: NOT
0000096f: PUSH1 0x00
00000971: DUP1
00000972: MLOAD
00000973: PUSH1 0x20
00000975: PUSH2 0x27e5
00000978: DUP4
00000979: CODECOPY
0000097a: DUP2
0000097b: MLOAD
0000097c: SWAP2
0000097d: MSTORE
0000097e: SLOAD
0000097f: AND
00000980: PUSH1 0x00
00000982: DUP1
00000983: MLOAD
00000984: PUSH1 0x20
00000986: PUSH2 0x27e5
00000989: DUP4
0000098a: CODECOPY
0000098b: DUP2
0000098c: MLOAD
0000098d: SWAP2
0000098e: MSTORE
0000098f: SSTORE
00000990: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
000009b1: PUSH1 0x20
000009b3: PUSH1 0x40
000009b5: MLOAD
000009b6: PUSH1 0x01
000009b8: DUP2
000009b9: MSTORE
000009ba: LOG1
000009bb: DUP1
000009bc: RETURN
000009bd: JUMPDEST
000009be: ADD
000009bf: MLOAD
000009c0: SWAP1
000009c1: POP
000009c2: CODESIZE
000009c3: DUP1
000009c4: PUSH2 0x08fc
000009c7: JUMP
000009c8: JUMPDEST
000009c9: DUP3
000009ca: DUP6
000009cb: MSTORE
000009cc: PUSH32 0x5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75
000009ed: SWAP6
000009ee: PUSH1 0x1f
000009f0: NOT
000009f1: DUP4
000009f2: AND
000009f3: DUP7
000009f4: JUMPDEST
000009f5: DUP2
000009f6: DUP2
000009f7: LT
000009f8: PUSH2 0x0a33
000009fb: JUMPI
000009fc: POP
000009fd: SWAP2
000009fe: PUSH1 0xff
00000a00: SWAP7
00000a01: SWAP8
00000a02: SWAP2
00000a03: DUP5
00000a04: PUSH1 0x01
00000a06: SWAP6
00000a07: SWAP5
00000a08: LT
00000a09: PUSH2 0x0a1a
00000a0c: JUMPI
00000a0d: JUMPDEST
00000a0e: POP
00000a0f: POP
00000a10: POP
00000a11: DUP2
00000a12: SHL
00000a13: ADD
00000a14: SWAP1
00000a15: SSTORE
00000a16: PUSH2 0x0911
00000a19: JUMP
00000a1a: JUMPDEST
00000a1b: ADD
00000a1c: MLOAD
00000a1d: PUSH1 0x00
00000a1f: NOT
00000a20: PUSH1 0xf8
00000a22: DUP5
00000a23: PUSH1 0x03
00000a25: SHL
00000a26: AND
00000a27: SHR
00000a28: NOT
00000a29: AND
00000a2a: SWAP1
00000a2b: SSTORE
00000a2c: CODESIZE
00000a2d: DUP1
00000a2e: DUP1
00000a2f: PUSH2 0x0a0d
00000a32: JUMP
00000a33: JUMPDEST
00000a34: DUP4
00000a35: DUP4
00000a36: ADD
00000a37: MLOAD
00000a38: DUP10
00000a39: SSTORE
00000a3a: PUSH1 0x01
00000a3c: SWAP1
00000a3d: SWAP9
00000a3e: ADD
00000a3f: SWAP8
00000a40: PUSH1 0x20
00000a42: SWAP4
00000a43: DUP5
00000a44: ADD
00000a45: SWAP4
00000a46: ADD
00000a47: PUSH2 0x09f4
00000a4a: JUMP
00000a4b: JUMPDEST
00000a4c: DUP4
00000a4d: DUP7
00000a4e: MSTORE
00000a4f: PUSH32 0x5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75
00000a70: DUP3
00000a71: DUP1
00000a72: DUP6
00000a73: ADD
00000a74: PUSH1 0x05
00000a76: SHR
00000a77: DUP3
00000a78: ADD
00000a79: SWAP3
00000a7a: PUSH1 0x20
00000a7c: DUP7
00000a7d: LT
00000a7e: PUSH2 0x0aa1
00000a81: JUMPI
00000a82: JUMPDEST
00000a83: ADD
00000a84: PUSH1 0x05
00000a86: SHR
00000a87: ADD
00000a88: SWAP1
00000a89: JUMPDEST
00000a8a: DUP2
00000a8b: DUP2
00000a8c: LT
00000a8d: PUSH2 0x0a96
00000a90: JUMPI
00000a91: POP
00000a92: PUSH2 0x08e2
00000a95: JUMP
00000a96: JUMPDEST
00000a97: DUP7
00000a98: DUP2
00000a99: SSTORE
00000a9a: PUSH1 0x01
00000a9c: ADD
00000a9d: PUSH2 0x0a89
00000aa0: JUMP
00000aa1: JUMPDEST
00000aa2: SWAP3
00000aa3: POP
00000aa4: DUP2
00000aa5: SWAP3
00000aa6: PUSH2 0x0a82
00000aa9: JUMP
00000aaa: JUMPDEST
00000aab: PUSH4 0x4e487b71
00000ab0: PUSH1 0xe0
00000ab2: SHL
00000ab3: DUP5
00000ab4: MSTORE
00000ab5: PUSH1 0x41
00000ab7: PUSH1 0x04
00000ab9: MSTORE
00000aba: PUSH1 0x24
00000abc: DUP5
00000abd: REVERT
00000abe: JUMPDEST
00000abf: ADD
00000ac0: MLOAD
00000ac1: SWAP1
00000ac2: POP
00000ac3: CODESIZE
00000ac4: DUP1
00000ac5: PUSH2 0x087b
00000ac8: JUMP
00000ac9: JUMPDEST
00000aca: PUSH1 0x00
00000acc: DUP1
00000acd: MLOAD
00000ace: PUSH1 0x20
00000ad0: PUSH2 0x2785
00000ad3: DUP4
00000ad4: CODECOPY
00000ad5: DUP2
00000ad6: MLOAD
00000ad7: SWAP2
00000ad8: MSTORE
00000ad9: DUP8
00000ada: MSTORE
00000adb: PUSH1 0x00
00000add: DUP1
00000ade: MLOAD
00000adf: PUSH1 0x20
00000ae1: PUSH2 0x27c5
00000ae4: DUP4
00000ae5: CODECOPY
00000ae6: DUP2
00000ae7: MLOAD
00000ae8: SWAP2
00000ae9: MSTORE
00000aea: SWAP3
00000aeb: POP
00000aec: PUSH1 0x1f
00000aee: NOT
00000aef: DUP5
00000af0: AND
00000af1: DUP8
00000af2: JUMPDEST
00000af3: DUP2
00000af4: DUP2
00000af5: LT
00000af6: PUSH2 0x0b3c
00000af9: JUMPI
00000afa: POP
00000afb: SWAP1
00000afc: DUP5
00000afd: PUSH1 0x01
00000aff: SWAP6
00000b00: SWAP5
00000b01: SWAP4
00000b02: SWAP3
00000b03: LT
00000b04: PUSH2 0x0b23
00000b07: JUMPI
00000b08: JUMPDEST
00000b09: POP
00000b0a: POP
00000b0b: POP
00000b0c: DUP2
00000b0d: SHL
00000b0e: ADD
00000b0f: PUSH1 0x00
00000b11: DUP1
00000b12: MLOAD
00000b13: PUSH1 0x20
00000b15: PUSH2 0x2785
00000b18: DUP4
00000b19: CODECOPY
00000b1a: DUP2
00000b1b: MLOAD
00000b1c: SWAP2
00000b1d: MSTORE
00000b1e: SSTORE
00000b1f: PUSH2 0x089e
00000b22: JUMP
00000b23: JUMPDEST
00000b24: ADD
00000b25: MLOAD
00000b26: PUSH1 0x00
00000b28: NOT
00000b29: PUSH1 0xf8
00000b2b: DUP5
00000b2c: PUSH1 0x03
00000b2e: SHL
00000b2f: AND
00000b30: SHR
00000b31: NOT
00000b32: AND
00000b33: SWAP1
00000b34: SSTORE
00000b35: CODESIZE
00000b36: DUP1
00000b37: DUP1
00000b38: PUSH2 0x0b08
00000b3b: JUMP
00000b3c: JUMPDEST
00000b3d: SWAP3
00000b3e: SWAP4
00000b3f: PUSH1 0x20
00000b41: PUSH1 0x01
00000b43: DUP2
00000b44: SWAP3
00000b45: DUP8
00000b46: DUP7
00000b47: ADD
00000b48: MLOAD
00000b49: DUP2
00000b4a: SSTORE
00000b4b: ADD
00000b4c: SWAP6
00000b4d: ADD
00000b4e: SWAP4
00000b4f: ADD
00000b50: PUSH2 0x0af2
00000b53: JUMP
00000b54: JUMPDEST
00000b55: SWAP1
00000b56: SWAP2
00000b57: POP
00000b58: PUSH1 0x00
00000b5a: DUP1
00000b5b: MLOAD
00000b5c: PUSH1 0x20
00000b5e: PUSH2 0x2785
00000b61: DUP4
00000b62: CODECOPY
00000b63: DUP2
00000b64: MLOAD
00000b65: SWAP2
00000b66: MSTORE
00000b67: DUP7
00000b68: MSTORE
00000b69: DUP4
00000b6a: DUP1
00000b6b: DUP5
00000b6c: ADD
00000b6d: PUSH1 0x05
00000b6f: SHR
00000b70: PUSH1 0x00
00000b72: DUP1
00000b73: MLOAD
00000b74: PUSH1 0x20
00000b76: PUSH2 0x27c5
00000b79: DUP4
00000b7a: CODECOPY
00000b7b: DUP2
00000b7c: MLOAD
00000b7d: SWAP2
00000b7e: MSTORE
00000b7f: ADD
00000b80: SWAP2
00000b81: PUSH1 0x20
00000b83: DUP6
00000b84: LT
00000b85: PUSH2 0x0bbf
00000b88: JUMPI
00000b89: JUMPDEST
00000b8a: SWAP1
00000b8b: DUP5
00000b8c: SWAP4
00000b8d: SWAP3
00000b8e: SWAP2
00000b8f: ADD
00000b90: PUSH1 0x05
00000b92: SHR
00000b93: PUSH1 0x00
00000b95: DUP1
00000b96: MLOAD
00000b97: PUSH1 0x20
00000b99: PUSH2 0x27c5
00000b9c: DUP4
00000b9d: CODECOPY
00000b9e: DUP2
00000b9f: MLOAD
00000ba0: SWAP2
00000ba1: MSTORE
00000ba2: ADD
00000ba3: SWAP1
00000ba4: JUMPDEST
00000ba5: DUP2
00000ba6: DUP2
00000ba7: LT
00000ba8: PUSH2 0x0bb1
00000bab: JUMPI
00000bac: POP
00000bad: PUSH2 0x0866
00000bb0: JUMP
00000bb1: JUMPDEST
00000bb2: DUP8
00000bb3: DUP2
00000bb4: SSTORE
00000bb5: DUP5
00000bb6: SWAP4
00000bb7: POP
00000bb8: PUSH1 0x01
00000bba: ADD
00000bbb: PUSH2 0x0ba4
00000bbe: JUMP
00000bbf: JUMPDEST
00000bc0: PUSH1 0x00
00000bc2: DUP1
00000bc3: MLOAD
00000bc4: PUSH1 0x20
00000bc6: PUSH2 0x27c5
00000bc9: DUP4
00000bca: CODECOPY
00000bcb: DUP2
00000bcc: MLOAD
00000bcd: SWAP2
00000bce: MSTORE
00000bcf: SWAP3
00000bd0: POP
00000bd1: PUSH2 0x0b89
00000bd4: JUMP
00000bd5: JUMPDEST
00000bd6: PUSH9 0xffffffffffffffffff
00000be0: NOT
00000be1: DUP5
00000be2: AND
00000be3: PUSH9 0x010000000000000001
00000bed: OR
00000bee: PUSH1 0x00
00000bf0: DUP1
00000bf1: MLOAD
00000bf2: PUSH1 0x20
00000bf4: PUSH2 0x27e5
00000bf7: DUP4
00000bf8: CODECOPY
00000bf9: DUP2
00000bfa: MLOAD
00000bfb: SWAP2
00000bfc: MSTORE
00000bfd: SSTORE
00000bfe: PUSH2 0x07c5
00000c01: JUMP
00000c02: JUMPDEST
00000c03: PUSH1 0x40
00000c05: MLOAD
00000c06: PUSH4 0xf92ee8a9
00000c0b: PUSH1 0xe0
00000c0d: SHL
00000c0e: DUP2
00000c0f: MSTORE
00000c10: PUSH1 0x04
00000c12: SWAP1
00000c13: REVERT
00000c14: JUMPDEST
00000c15: SWAP1
00000c16: POP
00000c17: ISZERO
00000c18: CODESIZE
00000c19: PUSH2 0x0791
00000c1c: JUMP
00000c1d: JUMPDEST
00000c1e: ADDRESS
00000c1f: EXTCODESIZE
00000c20: ISZERO
00000c21: SWAP2
00000c22: POP
00000c23: PUSH2 0x0789
00000c26: JUMP
00000c27: JUMPDEST
00000c28: PUSH1 0x40
00000c2a: DUP6
00000c2b: SWAP1
00000c2c: SHR
00000c2d: PUSH1 0xff
00000c2f: AND
00000c30: ISZERO
00000c31: SWAP2
00000c32: POP
00000c33: PUSH2 0x077f
00000c36: JUMP
00000c37: JUMPDEST
00000c38: POP
00000c39: CALLVALUE
00000c3a: PUSH2 0x0219
00000c3d: JUMPI
00000c3e: DUP1
00000c3f: PUSH1 0x03
00000c41: NOT
00000c42: CALLDATASIZE
00000c43: ADD
00000c44: SLT
00000c45: PUSH2 0x0219
00000c48: JUMPI
00000c49: SLOAD
00000c4a: PUSH1 0x40
00000c4c: MLOAD
00000c4d: PUSH1 0x20
00000c4f: SWAP2
00000c50: PUSH1 0xff
00000c52: AND
00000c53: PUSH2 0x0c5b
00000c56: DUP2
00000c57: PUSH2 0x2012
00000c5a: JUMP
00000c5b: JUMPDEST
00000c5c: DUP2
00000c5d: MSTORE
00000c5e: RETURN
00000c5f: JUMPDEST
00000c60: POP
00000c61: CALLVALUE
00000c62: PUSH2 0x0219
00000c65: JUMPI
00000c66: PUSH1 0x40
00000c68: CALLDATASIZE
00000c69: PUSH1 0x03
00000c6b: NOT
00000c6c: ADD
00000c6d: SLT
00000c6e: PUSH2 0x0219
00000c71: JUMPI
00000c72: PUSH2 0x0c79
00000c75: PUSH2 0x1edf
00000c78: JUMP
00000c79: JUMPDEST
00000c7a: PUSH1 0x40
00000c7c: PUSH2 0x0c83
00000c7f: PUSH2 0x1ef5
00000c82: JUMP
00000c83: JUMPDEST
00000c84: SWAP3
00000c85: PUSH1 0x01
00000c87: DUP1
00000c88: PUSH1 0xa0
00000c8a: SHL
00000c8b: SUB
00000c8c: DUP1
00000c8d: SWAP4
00000c8e: AND
00000c8f: DUP2
00000c90: MSTORE
00000c91: PUSH1 0x02
00000c93: PUSH1 0x20
00000c95: MSTORE
00000c96: KECCAK256
00000c97: SWAP2
00000c98: AND
00000c99: PUSH1 0x00
00000c9b: MSTORE
00000c9c: PUSH1 0x20
00000c9e: MSTORE
00000c9f: PUSH1 0x20
00000ca1: PUSH1 0x40
00000ca3: PUSH1 0x00
00000ca5: KECCAK256
00000ca6: SLOAD
00000ca7: PUSH1 0x40
00000ca9: MLOAD
00000caa: SWAP1
00000cab: DUP2
00000cac: MSTORE
00000cad: RETURN
00000cae: JUMPDEST
00000caf: POP
00000cb0: CALLVALUE
00000cb1: PUSH2 0x0219
00000cb4: JUMPI
00000cb5: PUSH1 0x20
00000cb7: CALLDATASIZE
00000cb8: PUSH1 0x03
00000cba: NOT
00000cbb: ADD
00000cbc: SLT
00000cbd: PUSH2 0x0219
00000cc0: JUMPI
00000cc1: CALLER
00000cc2: DUP1
00000cc3: DUP3
00000cc4: MSTORE
00000cc5: PUSH1 0x01
00000cc7: PUSH1 0x20
00000cc9: DUP2
00000cca: DUP2
00000ccb: MSTORE
00000ccc: PUSH1 0x40
00000cce: DUP1
00000ccf: DUP6
00000cd0: KECCAK256
00000cd1: PUSH1 0x04
00000cd3: CALLDATALOAD
00000cd4: DUP1
00000cd5: DUP8
00000cd6: MSTORE
00000cd7: SWAP1
00000cd8: DUP4
00000cd9: MSTORE
00000cda: DUP2
00000cdb: DUP7
00000cdc: KECCAK256
00000cdd: DUP1
00000cde: SLOAD
00000cdf: PUSH1 0xff
00000ce1: NOT
00000ce2: AND
00000ce3: SWAP1
00000ce4: SWAP5
00000ce5: OR
00000ce6: SWAP1
00000ce7: SWAP4
00000ce8: SSTORE
00000ce9: DUP1
00000cea: MLOAD
00000ceb: SWAP4
00000cec: DUP5
00000ced: MSTORE
00000cee: SWAP1
00000cef: DUP4
00000cf0: ADD
00000cf1: SWAP2
00000cf2: SWAP1
00000cf3: SWAP2
00000cf4: MSTORE
00000cf5: PUSH32 0x0e6a4f4985873f666a9aa21268ce8c462bedf4231c9ed2811360ce956701cb28
00000d16: SWAP2
00000d17: LOG1
00000d18: DUP1
00000d19: RETURN
00000d1a: JUMPDEST
00000d1b: POP
00000d1c: CALLVALUE
00000d1d: PUSH2 0x0219
00000d20: JUMPI
00000d21: DUP1
00000d22: PUSH1 0x03
00000d24: NOT
00000d25: CALLDATASIZE
00000d26: ADD
00000d27: SLT
00000d28: PUSH2 0x0219
00000d2b: JUMPI
00000d2c: PUSH2 0x0d60
00000d2f: PUSH1 0x40
00000d31: MLOAD
00000d32: PUSH2 0x0d3a
00000d35: DUP2
00000d36: PUSH2 0x1f44
00000d39: JUMP
00000d3a: JUMPDEST
00000d3b: PUSH1 0x05
00000d3d: DUP2
00000d3e: MSTORE
00000d3f: PUSH5 0x0352e302e3
00000d45: PUSH1 0xdc
00000d47: SHL
00000d48: PUSH1 0x20
00000d4a: DUP3
00000d4b: ADD
00000d4c: MSTORE
00000d4d: PUSH1 0x40
00000d4f: MLOAD
00000d50: SWAP2
00000d51: DUP3
00000d52: SWAP2
00000d53: PUSH1 0x20
00000d55: DUP4
00000d56: MSTORE
00000d57: PUSH1 0x20
00000d59: DUP4
00000d5a: ADD
00000d5b: SWAP1
00000d5c: PUSH2 0x1fd2
00000d5f: JUMP
00000d60: JUMPDEST
00000d61: SUB
00000d62: SWAP1
00000d63: RETURN
00000d64: JUMPDEST
00000d65: POP
00000d66: CALLVALUE
00000d67: PUSH2 0x0219
00000d6a: JUMPI
00000d6b: DUP1
00000d6c: PUSH1 0x03
00000d6e: NOT
00000d6f: CALLDATASIZE
00000d70: ADD
00000d71: SLT
00000d72: PUSH2 0x0219
00000d75: JUMPI
00000d76: PUSH1 0x40
00000d78: MLOAD
00000d79: PUSH32 0x00000000000000000000000031b72d76fb666844c41edf08df0254875dbb7edb
00000d9a: PUSH1 0x01
00000d9c: PUSH1 0x01
00000d9e: PUSH1 0xa0
00000da0: SHL
00000da1: SUB
00000da2: AND
00000da3: DUP2
00000da4: MSTORE
00000da5: PUSH1 0x20
00000da7: SWAP1
00000da8: RETURN
00000da9: JUMPDEST
00000daa: POP
00000dab: CALLVALUE
00000dac: PUSH2 0x0219
00000daf: JUMPI
00000db0: DUP1
00000db1: PUSH1 0x03
00000db3: NOT
00000db4: CALLDATASIZE
00000db5: ADD
00000db6: SLT
00000db7: PUSH2 0x0219
00000dba: JUMPI
00000dbb: PUSH1 0x00
00000dbd: DUP1
00000dbe: MLOAD
00000dbf: PUSH1 0x20
00000dc1: PUSH2 0x27a5
00000dc4: DUP4
00000dc5: CODECOPY
00000dc6: DUP2
00000dc7: MLOAD
00000dc8: SWAP2
00000dc9: MSTORE
00000dca: SLOAD
00000dcb: PUSH1 0x40
00000dcd: MLOAD
00000dce: PUSH1 0x01
00000dd0: PUSH1 0x01
00000dd2: PUSH1 0xa0
00000dd4: SHL
00000dd5: SUB
00000dd6: SWAP1
00000dd7: SWAP2
00000dd8: AND
00000dd9: DUP2
00000dda: MSTORE
00000ddb: PUSH1 0x20
00000ddd: SWAP1
00000dde: RETURN
00000ddf: JUMPDEST
00000de0: POP
00000de1: CALLVALUE
00000de2: PUSH2 0x0219
00000de5: JUMPI
00000de6: DUP1
00000de7: PUSH1 0x03
00000de9: NOT
00000dea: CALLDATASIZE
00000deb: ADD
00000dec: SLT
00000ded: PUSH2 0x0219
00000df0: JUMPI
00000df1: PUSH1 0x36
00000df3: SLOAD
00000df4: PUSH1 0x01
00000df6: PUSH1 0x01
00000df8: PUSH1 0xa0
00000dfa: SHL
00000dfb: SUB
00000dfc: SWAP1
00000dfd: DUP2
00000dfe: AND
00000dff: CALLER
00000e00: SUB
00000e01: PUSH2 0x069a
00000e04: JUMPI
00000e05: PUSH1 0x03
00000e07: PUSH1 0xff
00000e09: DUP4
00000e0a: SLOAD
00000e0b: AND
00000e0c: PUSH2 0x0e14
00000e0f: DUP2
00000e10: PUSH2 0x2012
00000e13: JUMP
00000e14: JUMPDEST
00000e15: SUB
00000e16: PUSH2 0x0f4d
00000e19: JUMPI
00000e1a: PUSH1 0x35
00000e1c: SLOAD
00000e1d: PUSH1 0x40
00000e1f: MLOAD
00000e20: PUSH4 0x70a08231
00000e25: PUSH1 0xe0
00000e27: SHL
00000e28: DUP2
00000e29: MSTORE
00000e2a: ADDRESS
00000e2b: PUSH1 0x04
00000e2d: DUP3
00000e2e: ADD
00000e2f: MSTORE
00000e30: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00000e51: SWAP1
00000e52: SWAP3
00000e53: AND
00000e54: SWAP2
00000e55: DUP4
00000e56: SWAP2
00000e57: PUSH1 0x20
00000e59: DUP3
00000e5a: PUSH1 0x24
00000e5c: DUP2
00000e5d: DUP8
00000e5e: GAS
00000e5f: STATICCALL
00000e60: SWAP2
00000e61: DUP3
00000e62: ISZERO
00000e63: PUSH2 0x0f42
00000e66: JUMPI
00000e67: DUP4
00000e68: SWAP3
00000e69: PUSH2 0x0f0e
00000e6c: JUMPI
00000e6d: JUMPDEST
00000e6e: POP
00000e6f: DUP2
00000e70: DUP2
00000e71: GT
00000e72: ISZERO
00000e73: PUSH2 0x0f06
00000e76: JUMPI
00000e77: POP
00000e78: SWAP2
00000e79: JUMPDEST
00000e7a: DUP3
00000e7b: PUSH2 0x0ec2
00000e7e: JUMPI
00000e7f: JUMPDEST
00000e80: POP
00000e81: PUSH1 0x35
00000e83: SSTORE
00000e84: PUSH1 0x36
00000e86: DUP1
00000e87: SLOAD
00000e88: PUSH1 0x01
00000e8a: PUSH1 0x01
00000e8c: PUSH1 0xa0
00000e8e: SHL
00000e8f: SUB
00000e90: NOT
00000e91: AND
00000e92: SWAP1
00000e93: SSTORE
00000e94: PUSH1 0x40
00000e96: MLOAD
00000e97: SWAP1
00000e98: DUP2
00000e99: MSTORE
00000e9a: PUSH32 0x82691da855159f603f5aecf930c44c33ed2b5838cbb20d7009074b3853c6a31d
00000ebb: SWAP1
00000ebc: PUSH1 0x20
00000ebe: SWAP1
00000ebf: LOG1
00000ec0: DUP1
00000ec1: RETURN
00000ec2: JUMPDEST
00000ec3: DUP1
00000ec4: EXTCODESIZE
00000ec5: ISZERO
00000ec6: PUSH2 0x034d
00000ec9: JUMPI
00000eca: DUP2
00000ecb: DUP1
00000ecc: SWAP2
00000ecd: PUSH1 0x24
00000ecf: PUSH1 0x40
00000ed1: MLOAD
00000ed2: DUP1
00000ed3: SWAP5
00000ed4: DUP2
00000ed5: SWAP4
00000ed6: PUSH4 0x0852cd8d
00000edb: PUSH1 0xe3
00000edd: SHL
00000ede: DUP4
00000edf: MSTORE
00000ee0: DUP9
00000ee1: PUSH1 0x04
00000ee3: DUP5
00000ee4: ADD
00000ee5: MSTORE
00000ee6: GAS
00000ee7: CALL
00000ee8: DUP1
00000ee9: ISZERO
00000eea: PUSH2 0x0351
00000eed: JUMPI
00000eee: ISZERO
00000eef: PUSH2 0x0e7f
00000ef2: JUMPI
00000ef3: PUSH2 0x0efb
00000ef6: SWAP1
00000ef7: PUSH2 0x1f31
00000efa: JUMP
00000efb: JUMPDEST
00000efc: PUSH2 0x034d
00000eff: JUMPI
00000f00: DUP2
00000f01: CODESIZE
00000f02: PUSH2 0x0e7f
00000f05: JUMP
00000f06: JUMPDEST
00000f07: SWAP1
00000f08: POP
00000f09: SWAP2
00000f0a: PUSH2 0x0e79
00000f0d: JUMP
00000f0e: JUMPDEST
00000f0f: SWAP1
00000f10: SWAP2
00000f11: POP
00000f12: PUSH1 0x20
00000f14: DUP2
00000f15: RETURNDATASIZE
00000f16: PUSH1 0x20
00000f18: GT
00000f19: PUSH2 0x0f3a
00000f1c: JUMPI
00000f1d: JUMPDEST
00000f1e: DUP2
00000f1f: PUSH2 0x0f2a
00000f22: PUSH1 0x20
00000f24: SWAP4
00000f25: DUP4
00000f26: PUSH2 0x1f5f
00000f29: JUMP
00000f2a: JUMPDEST
00000f2b: DUP2
00000f2c: ADD
00000f2d: SUB
00000f2e: SLT
00000f2f: PUSH2 0x035c
00000f32: JUMPI
00000f33: MLOAD
00000f34: SWAP1
00000f35: CODESIZE
00000f36: PUSH2 0x0e6d
00000f39: JUMP
00000f3a: JUMPDEST
00000f3b: RETURNDATASIZE
00000f3c: SWAP2
00000f3d: POP
00000f3e: PUSH2 0x0f1d
00000f41: JUMP
00000f42: JUMPDEST
00000f43: PUSH1 0x40
00000f45: MLOAD
00000f46: RETURNDATASIZE
00000f47: DUP6
00000f48: DUP3
00000f49: RETURNDATACOPY
00000f4a: RETURNDATASIZE
00000f4b: SWAP1
00000f4c: REVERT
00000f4d: JUMPDEST
00000f4e: PUSH1 0x40
00000f50: MLOAD
00000f51: PUSH4 0x622facd5
00000f56: PUSH1 0xe1
00000f58: SHL
00000f59: DUP2
00000f5a: MSTORE
00000f5b: PUSH1 0x04
00000f5d: SWAP1
00000f5e: REVERT
00000f5f: JUMPDEST
00000f60: POP
00000f61: CALLVALUE
00000f62: PUSH2 0x0219
00000f65: JUMPI
00000f66: DUP1
00000f67: PUSH1 0x03
00000f69: NOT
00000f6a: CALLDATASIZE
00000f6b: ADD
00000f6c: SLT
00000f6d: PUSH2 0x0219
00000f70: JUMPI
00000f71: PUSH1 0x40
00000f73: MLOAD
00000f74: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00000f95: PUSH1 0x01
00000f97: PUSH1 0x01
00000f99: PUSH1 0xa0
00000f9b: SHL
00000f9c: SUB
00000f9d: AND
00000f9e: DUP2
00000f9f: MSTORE
00000fa0: PUSH1 0x20
00000fa2: SWAP1
00000fa3: RETURN
00000fa4: JUMPDEST
00000fa5: POP
00000fa6: CALLVALUE
00000fa7: PUSH2 0x0219
00000faa: JUMPI
00000fab: DUP1
00000fac: PUSH1 0x03
00000fae: NOT
00000faf: CALLDATASIZE
00000fb0: ADD
00000fb1: SLT
00000fb2: PUSH2 0x0219
00000fb5: JUMPI
00000fb6: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100
00000fd7: SLOAD
00000fd8: ISZERO
00000fd9: DUP1
00000fda: PUSH2 0x10d9
00000fdd: JUMPI
00000fde: JUMPDEST
00000fdf: ISZERO
00000fe0: PUSH2 0x109c
00000fe3: JUMPI
00000fe4: PUSH2 0x0feb
00000fe7: PUSH2 0x2350
00000fea: JUMP
00000feb: JUMPDEST
00000fec: SWAP1
00000fed: PUSH2 0x0ff4
00000ff0: PUSH2 0x2414
00000ff3: JUMP
00000ff4: JUMPDEST
00000ff5: SWAP1
00000ff6: PUSH1 0x40
00000ff8: MLOAD
00000ff9: SWAP1
00000ffa: PUSH1 0x20
00000ffc: SWAP1
00000ffd: PUSH1 0x20
00000fff: DUP4
00001000: ADD
00001001: SWAP4
00001002: DUP4
00001003: DUP6
00001004: LT
00001005: PUSH1 0x01
00001007: PUSH1 0x01
00001009: PUSH1 0x40
0000100b: SHL
0000100c: SUB
0000100d: DUP7
0000100e: GT
0000100f: OR
00001010: PUSH2 0x0597
00001013: JUMPI
00001014: SWAP3
00001015: DUP5
00001016: SWAP3
00001017: PUSH1 0x20
00001019: PUSH2 0x1052
0000101c: DUP9
0000101d: SWAP7
0000101e: PUSH2 0x1044
00001021: SWAP9
00001022: PUSH1 0x40
00001024: MSTORE
00001025: DUP6
00001026: DUP6
00001027: MSTORE
00001028: PUSH1 0x40
0000102a: MLOAD
0000102b: SWAP9
0000102c: DUP10
0000102d: SWAP9
0000102e: PUSH1 0x0f
00001030: PUSH1 0xf8
00001032: SHL
00001033: DUP11
00001034: MSTORE
00001035: PUSH1 0xe0
00001037: DUP6
00001038: DUP12
00001039: ADD
0000103a: MSTORE
0000103b: PUSH1 0xe0
0000103d: DUP11
0000103e: ADD
0000103f: SWAP1
00001040: PUSH2 0x1fd2
00001043: JUMP
00001044: JUMPDEST
00001045: SWAP1
00001046: DUP9
00001047: DUP3
00001048: SUB
00001049: PUSH1 0x40
0000104b: DUP11
0000104c: ADD
0000104d: MSTORE
0000104e: PUSH2 0x1fd2
00001051: JUMP
00001052: JUMPDEST
00001053: SWAP3
00001054: CHAINID
00001055: PUSH1 0x60
00001057: DUP9
00001058: ADD
00001059: MSTORE
0000105a: ADDRESS
0000105b: PUSH1 0x80
0000105d: DUP9
0000105e: ADD
0000105f: MSTORE
00001060: DUP5
00001061: PUSH1 0xa0
00001063: DUP9
00001064: ADD
00001065: MSTORE
00001066: DUP7
00001067: DUP5
00001068: SUB
00001069: PUSH1 0xc0
0000106b: DUP9
0000106c: ADD
0000106d: MSTORE
0000106e: MLOAD
0000106f: SWAP3
00001070: DUP4
00001071: DUP2
00001072: MSTORE
00001073: ADD
00001074: SWAP4
00001075: SWAP3
00001076: JUMPDEST
00001077: DUP3
00001078: DUP2
00001079: LT
0000107a: PUSH2 0x1085
0000107d: JUMPI
0000107e: POP
0000107f: POP
00001080: POP
00001081: POP
00001082: SUB
00001083: SWAP1
00001084: RETURN
00001085: JUMPDEST
00001086: DUP4
00001087: MLOAD
00001088: DUP6
00001089: MSTORE
0000108a: DUP7
0000108b: SWAP6
0000108c: POP
0000108d: SWAP4
0000108e: DUP2
0000108f: ADD
00001090: SWAP4
00001091: SWAP3
00001092: DUP2
00001093: ADD
00001094: SWAP3
00001095: PUSH1 0x01
00001097: ADD
00001098: PUSH2 0x1076
0000109b: JUMP
0000109c: JUMPDEST
0000109d: PUSH1 0x40
0000109f: MLOAD
000010a0: PUSH3 0x461bcd
000010a4: PUSH1 0xe5
000010a6: SHL
000010a7: DUP2
000010a8: MSTORE
000010a9: PUSH1 0x20
000010ab: PUSH1 0x04
000010ad: DUP3
000010ae: ADD
000010af: MSTORE
000010b0: PUSH1 0x15
000010b2: PUSH1 0x24
000010b4: DUP3
000010b5: ADD
000010b6: MSTORE
000010b7: PUSH21 0x1152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959
000010cd: PUSH1 0x5a
000010cf: SHL
000010d0: PUSH1 0x44
000010d2: DUP3
000010d3: ADD
000010d4: MSTORE
000010d5: PUSH1 0x64
000010d7: SWAP1
000010d8: REVERT
000010d9: JUMPDEST
000010da: POP
000010db: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101
000010fc: SLOAD
000010fd: ISZERO
000010fe: PUSH2 0x0fde
00001101: JUMP
00001102: JUMPDEST
00001103: POP
00001104: CALLVALUE
00001105: PUSH2 0x0219
00001108: JUMPI
00001109: DUP1
0000110a: PUSH1 0x03
0000110c: NOT
0000110d: CALLDATASIZE
0000110e: ADD
0000110f: SLT
00001110: PUSH2 0x0219
00001113: JUMPI
00001114: PUSH2 0x111b
00001117: PUSH2 0x22dd
0000111a: JUMP
0000111b: JUMPDEST
0000111c: PUSH1 0x00
0000111e: DUP1
0000111f: MLOAD
00001120: PUSH1 0x20
00001122: PUSH2 0x27a5
00001125: DUP4
00001126: CODECOPY
00001127: DUP2
00001128: MLOAD
00001129: SWAP2
0000112a: MSTORE
0000112b: DUP1
0000112c: SLOAD
0000112d: PUSH1 0x01
0000112f: PUSH1 0x01
00001131: PUSH1 0xa0
00001133: SHL
00001134: SUB
00001135: NOT
00001136: DUP2
00001137: AND
00001138: SWAP1
00001139: SWAP2
0000113a: SSTORE
0000113b: PUSH1 0x00
0000113d: SWAP1
0000113e: PUSH1 0x01
00001140: PUSH1 0x01
00001142: PUSH1 0xa0
00001144: SHL
00001145: SUB
00001146: AND
00001147: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001168: DUP3
00001169: DUP1
0000116a: LOG3
0000116b: DUP1
0000116c: RETURN
0000116d: JUMPDEST
0000116e: POP
0000116f: CALLVALUE
00001170: PUSH2 0x0219
00001173: JUMPI
00001174: PUSH1 0x40
00001176: CALLDATASIZE
00001177: PUSH1 0x03
00001179: NOT
0000117a: ADD
0000117b: SLT
0000117c: PUSH2 0x0219
0000117f: JUMPI
00001180: PUSH2 0x1187
00001183: PUSH2 0x1edf
00001186: JUMP
00001187: JUMPDEST
00001188: ADDRESS
00001189: CALLER
0000118a: SUB
0000118b: PUSH2 0x069a
0000118e: JUMPI
0000118f: PUSH2 0x03b1
00001192: SWAP1
00001193: PUSH1 0x24
00001195: CALLDATALOAD
00001196: SWAP1
00001197: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
000011b8: PUSH1 0x01
000011ba: PUSH1 0x01
000011bc: PUSH1 0xa0
000011be: SHL
000011bf: SUB
000011c0: AND
000011c1: PUSH2 0x229a
000011c4: JUMP
000011c5: JUMPDEST
000011c6: POP
000011c7: CALLVALUE
000011c8: PUSH2 0x0219
000011cb: JUMPI
000011cc: PUSH1 0x20
000011ce: CALLDATASIZE
000011cf: PUSH1 0x03
000011d1: NOT
000011d2: ADD
000011d3: SLT
000011d4: PUSH2 0x0219
000011d7: JUMPI
000011d8: PUSH2 0x11df
000011db: PUSH2 0x1f1e
000011de: JUMP
000011df: JUMPDEST
000011e0: PUSH2 0x11e7
000011e3: PUSH2 0x22dd
000011e6: JUMP
000011e7: JUMPDEST
000011e8: DUP2
000011e9: SLOAD
000011ea: PUSH1 0xff
000011ec: DUP2
000011ed: AND
000011ee: PUSH2 0x11f6
000011f1: DUP2
000011f2: PUSH2 0x2012
000011f5: JUMP
000011f6: JUMPDEST
000011f7: PUSH1 0x01
000011f9: DUP2
000011fa: EQ
000011fb: ISZERO
000011fc: SWAP1
000011fd: DUP2
000011fe: PUSH2 0x1307
00001201: JUMPI
00001202: JUMPDEST
00001203: POP
00001204: PUSH2 0x12f5
00001207: JUMPI
00001208: PUSH1 0xff
0000120a: NOT
0000120b: AND
0000120c: DUP3
0000120d: SSTORE
0000120e: PUSH1 0x40
00001210: MLOAD
00001211: PUSH4 0xfc8b55c7
00001216: PUSH1 0xe0
00001218: SHL
00001219: PUSH1 0x20
0000121b: DUP3
0000121c: ADD
0000121d: MSTORE
0000121e: PUSH1 0x04
00001220: DUP2
00001221: MSTORE
00001222: PUSH32 0x00000000000000000000000031b72d76fb666844c41edf08df0254875dbb7edb
00001243: PUSH1 0x01
00001245: PUSH1 0x01
00001247: PUSH1 0xa0
00001249: SHL
0000124a: SUB
0000124b: AND
0000124c: SWAP2
0000124d: DUP4
0000124e: SWAP2
0000124f: PUSH2 0x1257
00001252: DUP2
00001253: PUSH2 0x1f44
00001256: JUMP
00001257: JUMPDEST
00001258: DUP4
00001259: EXTCODESIZE
0000125a: ISZERO
0000125b: PUSH2 0x035c
0000125e: JUMPI
0000125f: PUSH1 0x40
00001261: MLOAD
00001262: PUSH4 0x3dbb202b
00001267: PUSH1 0xe0
00001269: SHL
0000126a: DUP2
0000126b: MSTORE
0000126c: SWAP2
0000126d: DUP4
0000126e: SWAP2
0000126f: DUP4
00001270: SWAP2
00001271: DUP3
00001272: SWAP2
00001273: PUSH2 0x12a1
00001276: SWAP2
00001277: SWAP1
00001278: PUSH32 0x0000000000000000000000003b1ac69368eb6447f5db2d4e1641380fa9e40d29
00001299: PUSH1 0x04
0000129b: DUP6
0000129c: ADD
0000129d: PUSH2 0x2069
000012a0: JUMP
000012a1: JUMPDEST
000012a2: SUB
000012a3: DUP2
000012a4: DUP4
000012a5: DUP8
000012a6: GAS
000012a7: CALL
000012a8: DUP1
000012a9: ISZERO
000012aa: PUSH2 0x0351
000012ad: JUMPI
000012ae: PUSH2 0x12e1
000012b1: JUMPI
000012b2: JUMPDEST
000012b3: POP
000012b4: PUSH32 0xf1e9473f25478fe3af97fb26517a1882c3addc66e942ce3c98a2aeffaec54a58
000012d5: PUSH1 0x20
000012d7: DUP4
000012d8: PUSH1 0x40
000012da: MLOAD
000012db: SWAP1
000012dc: DUP2
000012dd: MSTORE
000012de: LOG1
000012df: DUP1
000012e0: RETURN
000012e1: JUMPDEST
000012e2: PUSH2 0x12ea
000012e5: SWAP1
000012e6: PUSH2 0x1f31
000012e9: JUMP
000012ea: JUMPDEST
000012eb: PUSH2 0x034d
000012ee: JUMPI
000012ef: DUP2
000012f0: CODESIZE
000012f1: PUSH2 0x12b2
000012f4: JUMP
000012f5: JUMPDEST
000012f6: PUSH1 0x40
000012f8: MLOAD
000012f9: PUSH4 0x7812aefb
000012fe: PUSH1 0xe1
00001300: SHL
00001301: DUP2
00001302: MSTORE
00001303: PUSH1 0x04
00001305: SWAP1
00001306: REVERT
00001307: JUMPDEST
00001308: SWAP1
00001309: POP
0000130a: PUSH2 0x1312
0000130d: DUP2
0000130e: PUSH2 0x2012
00001311: JUMP
00001312: JUMPDEST
00001313: ISZERO
00001314: ISZERO
00001315: CODESIZE
00001316: PUSH2 0x1202
00001319: JUMP
0000131a: JUMPDEST
0000131b: POP
0000131c: CALLVALUE
0000131d: PUSH2 0x0219
00001320: JUMPI
00001321: PUSH1 0x40
00001323: CALLDATASIZE
00001324: PUSH1 0x03
00001326: NOT
00001327: ADD
00001328: SLT
00001329: PUSH2 0x0219
0000132c: JUMPI
0000132d: PUSH1 0x20
0000132f: SWAP1
00001330: PUSH1 0xff
00001332: SWAP1
00001333: PUSH1 0x40
00001335: SWAP1
00001336: PUSH1 0x01
00001338: PUSH1 0x01
0000133a: PUSH1 0xa0
0000133c: SHL
0000133d: SUB
0000133e: PUSH2 0x1345
00001341: PUSH2 0x1edf
00001344: JUMP
00001345: JUMPDEST
00001346: AND
00001347: DUP2
00001348: MSTORE
00001349: PUSH1 0x01
0000134b: DUP5
0000134c: MSTORE
0000134d: DUP2
0000134e: DUP2
0000134f: KECCAK256
00001350: PUSH1 0x24
00001352: CALLDATALOAD
00001353: DUP3
00001354: MSTORE
00001355: DUP5
00001356: MSTORE
00001357: KECCAK256
00001358: SLOAD
00001359: AND
0000135a: PUSH1 0x40
0000135c: MLOAD
0000135d: SWAP1
0000135e: ISZERO
0000135f: ISZERO
00001360: DUP2
00001361: MSTORE
00001362: RETURN
00001363: JUMPDEST
00001364: POP
00001365: CALLVALUE
00001366: PUSH2 0x0219
00001369: JUMPI
0000136a: DUP1
0000136b: PUSH1 0x03
0000136d: NOT
0000136e: CALLDATASIZE
0000136f: ADD
00001370: SLT
00001371: PUSH2 0x0219
00001374: JUMPI
00001375: PUSH32 0x00000000000000000000000061488ae9dedca3f29f5e72bbf23ba975862c20ba
00001396: PUSH1 0x01
00001398: PUSH1 0x01
0000139a: PUSH1 0xa0
0000139c: SHL
0000139d: SUB
0000139e: AND
0000139f: ADDRESS
000013a0: SUB
000013a1: PUSH2 0x13ce
000013a4: JUMPI
000013a5: PUSH1 0x20
000013a7: PUSH1 0x40
000013a9: MLOAD
000013aa: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
000013cb: DUP2
000013cc: MSTORE
000013cd: RETURN
000013ce: JUMPDEST
000013cf: PUSH1 0x40
000013d1: MLOAD
000013d2: PUSH4 0x703e46dd
000013d7: PUSH1 0xe1
000013d9: SHL
000013da: DUP2
000013db: MSTORE
000013dc: PUSH1 0x04
000013de: SWAP1
000013df: REVERT
000013e0: JUMPDEST
000013e1: POP
000013e2: CALLVALUE
000013e3: PUSH2 0x0219
000013e6: JUMPI
000013e7: PUSH1 0x40
000013e9: CALLDATASIZE
000013ea: PUSH1 0x03
000013ec: NOT
000013ed: ADD
000013ee: SLT
000013ef: PUSH2 0x0219
000013f2: JUMPI
000013f3: PUSH2 0x13fa
000013f6: PUSH2 0x1edf
000013f9: JUMP
000013fa: JUMPDEST
000013fb: PUSH1 0x24
000013fd: CALLDATALOAD
000013fe: SWAP1
000013ff: PUSH1 0x01
00001401: PUSH1 0x01
00001403: PUSH1 0xa0
00001405: SHL
00001406: SUB
00001407: SWAP1
00001408: PUSH32 0x00000000000000000000000031b72d76fb666844c41edf08df0254875dbb7edb
00001429: DUP3
0000142a: AND
0000142b: CALLER
0000142c: DUP2
0000142d: EQ
0000142e: DUP1
0000142f: ISZERO
00001430: SWAP2
00001431: SWAP1
00001432: PUSH2 0x14c0
00001435: JUMPI
00001436: JUMPDEST
00001437: POP
00001438: PUSH2 0x069a
0000143b: JUMPI
0000143c: PUSH1 0x03
0000143e: PUSH1 0xff
00001440: DUP6
00001441: SLOAD
00001442: AND
00001443: PUSH2 0x144b
00001446: DUP2
00001447: PUSH2 0x2012
0000144a: JUMP
0000144b: JUMPDEST
0000144c: SUB
0000144d: PUSH2 0x14ae
00001450: JUMPI
00001451: DUP2
00001452: DUP2
00001453: PUSH2 0x14a2
00001456: DUP6
00001457: PUSH1 0x20
00001459: SWAP5
0000145a: PUSH32 0xc47b52177930ba2672bfc1f75da55cf82adb3c61c2df74e28bdfefbf52ae9e05
0000147b: SWAP7
0000147c: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0000149d: AND
0000149e: PUSH2 0x229a
000014a1: JUMP
000014a2: JUMPDEST
000014a3: PUSH1 0x40
000014a5: MLOAD
000014a6: SWAP5
000014a7: DUP6
000014a8: MSTORE
000014a9: AND
000014aa: SWAP3
000014ab: LOG2
000014ac: DUP1
000014ad: RETURN
000014ae: JUMPDEST
000014af: PUSH1 0x40
000014b1: MLOAD
000014b2: PUSH4 0x9e76a5b9
000014b7: PUSH1 0xe0
000014b9: SHL
000014ba: DUP2
000014bb: MSTORE
000014bc: PUSH1 0x04
000014be: SWAP1
000014bf: REVERT
000014c0: JUMPDEST
000014c1: PUSH1 0x40
000014c3: MLOAD
000014c4: PUSH4 0x6e296e45
000014c9: PUSH1 0xe0
000014cb: SHL
000014cc: DUP2
000014cd: MSTORE
000014ce: SWAP2
000014cf: POP
000014d0: PUSH1 0x20
000014d2: SWAP1
000014d3: DUP3
000014d4: SWAP1
000014d5: PUSH1 0x04
000014d7: SWAP1
000014d8: DUP3
000014d9: SWAP1
000014da: GAS
000014db: STATICCALL
000014dc: SWAP1
000014dd: DUP2
000014de: ISZERO
000014df: PUSH2 0x1536
000014e2: JUMPI
000014e3: DUP6
000014e4: SWAP2
000014e5: PUSH2 0x1517
000014e8: JUMPI
000014e9: JUMPDEST
000014ea: POP
000014eb: DUP3
000014ec: AND
000014ed: PUSH32 0x0000000000000000000000003b1ac69368eb6447f5db2d4e1641380fa9e40d29
0000150e: DUP4
0000150f: AND
00001510: EQ
00001511: ISZERO
00001512: CODESIZE
00001513: PUSH2 0x1436
00001516: JUMP
00001517: JUMPDEST
00001518: PUSH2 0x1530
0000151b: SWAP2
0000151c: POP
0000151d: PUSH1 0x20
0000151f: RETURNDATASIZE
00001520: PUSH1 0x20
00001522: GT
00001523: PUSH2 0x072e
00001526: JUMPI
00001527: PUSH2 0x071f
0000152a: DUP2
0000152b: DUP4
0000152c: PUSH2 0x1f5f
0000152f: JUMP
00001530: JUMPDEST
00001531: CODESIZE
00001532: PUSH2 0x14e9
00001535: JUMP
00001536: JUMPDEST
00001537: PUSH1 0x40
00001539: MLOAD
0000153a: RETURNDATASIZE
0000153b: DUP8
0000153c: DUP3
0000153d: RETURNDATACOPY
0000153e: RETURNDATASIZE
0000153f: SWAP1
00001540: REVERT
00001541: JUMPDEST
00001542: POP
00001543: PUSH1 0x40
00001545: CALLDATASIZE
00001546: PUSH1 0x03
00001548: NOT
00001549: ADD
0000154a: SLT
0000154b: PUSH2 0x0219
0000154e: JUMPI
0000154f: PUSH2 0x1556
00001552: PUSH2 0x1edf
00001555: JUMP
00001556: JUMPDEST
00001557: PUSH1 0x24
00001559: CALLDATALOAD
0000155a: PUSH1 0x01
0000155c: PUSH1 0x01
0000155e: PUSH1 0x40
00001560: SHL
00001561: SUB
00001562: DUP2
00001563: GT
00001564: PUSH2 0x035c
00001567: JUMPI
00001568: CALLDATASIZE
00001569: PUSH1 0x23
0000156b: DUP3
0000156c: ADD
0000156d: SLT
0000156e: ISZERO
0000156f: PUSH2 0x035c
00001572: JUMPI
00001573: PUSH2 0x1586
00001576: SWAP1
00001577: CALLDATASIZE
00001578: SWAP1
00001579: PUSH1 0x24
0000157b: DUP2
0000157c: PUSH1 0x04
0000157e: ADD
0000157f: CALLDATALOAD
00001580: SWAP2
00001581: ADD
00001582: PUSH2 0x1f9b
00001585: JUMP
00001586: JUMPDEST
00001587: PUSH1 0x01
00001589: PUSH1 0x01
0000158b: PUSH1 0xa0
0000158d: SHL
0000158e: SUB
0000158f: PUSH32 0x00000000000000000000000061488ae9dedca3f29f5e72bbf23ba975862c20ba
000015b0: DUP2
000015b1: AND
000015b2: ADDRESS
000015b3: DUP2
000015b4: EQ
000015b5: SWAP1
000015b6: DUP2
000015b7: ISZERO
000015b8: PUSH2 0x171e
000015bb: JUMPI
000015bc: JUMPDEST
000015bd: POP
000015be: PUSH2 0x13ce
000015c1: JUMPI
000015c2: PUSH2 0x15c9
000015c5: PUSH2 0x22dd
000015c8: JUMP
000015c9: JUMPDEST
000015ca: DUP3
000015cb: AND
000015cc: SWAP2
000015cd: PUSH1 0x40
000015cf: MLOAD
000015d0: PUSH4 0x52d1902d
000015d5: PUSH1 0xe0
000015d7: SHL
000015d8: DUP2
000015d9: MSTORE
000015da: PUSH1 0x20
000015dc: DUP2
000015dd: PUSH1 0x04
000015df: DUP2
000015e0: DUP8
000015e1: GAS
000015e2: STATICCALL
000015e3: DUP6
000015e4: SWAP2
000015e5: DUP2
000015e6: PUSH2 0x16ea
000015e9: JUMPI
000015ea: JUMPDEST
000015eb: POP
000015ec: PUSH2 0x1608
000015ef: JUMPI
000015f0: PUSH1 0x40
000015f2: MLOAD
000015f3: PUSH4 0x4c9c8ce3
000015f8: PUSH1 0xe0
000015fa: SHL
000015fb: DUP2
000015fc: MSTORE
000015fd: PUSH1 0x04
000015ff: DUP2
00001600: ADD
00001601: DUP6
00001602: SWAP1
00001603: MSTORE
00001604: PUSH1 0x24
00001606: SWAP1
00001607: REVERT
00001608: JUMPDEST
00001609: SWAP3
0000160a: DUP5
0000160b: SWAP4
0000160c: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
0000162d: SWAP1
0000162e: DUP2
0000162f: DUP2
00001630: SUB
00001631: PUSH2 0x16d2
00001634: JUMPI
00001635: POP
00001636: DUP3
00001637: EXTCODESIZE
00001638: ISZERO
00001639: PUSH2 0x16b9
0000163c: JUMPI
0000163d: DUP1
0000163e: SLOAD
0000163f: PUSH1 0x01
00001641: PUSH1 0x01
00001643: PUSH1 0xa0
00001645: SHL
00001646: SUB
00001647: NOT
00001648: AND
00001649: DUP3
0000164a: OR
0000164b: SWAP1
0000164c: SSTORE
0000164d: PUSH1 0x40
0000164f: MLOAD
00001650: DUP5
00001651: SWAP2
00001652: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
00001673: DUP4
00001674: DUP1
00001675: LOG2
00001676: DUP4
00001677: MLOAD
00001678: ISZERO
00001679: PUSH2 0x169d
0000167c: JUMPI
0000167d: POP
0000167e: DUP1
0000167f: DUP4
00001680: PUSH1 0x20
00001682: PUSH2 0x1699
00001685: SWAP6
00001686: MLOAD
00001687: SWAP2
00001688: ADD
00001689: DUP5
0000168a: GAS
0000168b: DELEGATECALL
0000168c: PUSH2 0x1693
0000168f: PUSH2 0x25b2
00001692: JUMP
00001693: JUMPDEST
00001694: SWAP2
00001695: PUSH2 0x2672
00001698: JUMP
00001699: JUMPDEST
0000169a: POP
0000169b: DUP1
0000169c: RETURN
0000169d: JUMPDEST
0000169e: SWAP3
0000169f: POP
000016a0: POP
000016a1: POP
000016a2: CALLVALUE
000016a3: PUSH2 0x16aa
000016a6: JUMPI
000016a7: POP
000016a8: DUP1
000016a9: RETURN
000016aa: JUMPDEST
000016ab: PUSH4 0xb398979f
000016b0: PUSH1 0xe0
000016b2: SHL
000016b3: DUP2
000016b4: MSTORE
000016b5: PUSH1 0x04
000016b7: SWAP1
000016b8: REVERT
000016b9: JUMPDEST
000016ba: PUSH1 0x40
000016bc: MLOAD
000016bd: PUSH4 0x4c9c8ce3
000016c2: PUSH1 0xe0
000016c4: SHL
000016c5: DUP2
000016c6: MSTORE
000016c7: PUSH1 0x04
000016c9: DUP2
000016ca: ADD
000016cb: DUP4
000016cc: SWAP1
000016cd: MSTORE
000016ce: PUSH1 0x24
000016d0: SWAP1
000016d1: REVERT
000016d2: JUMPDEST
000016d3: PUSH1 0x24
000016d5: SWAP1
000016d6: PUSH1 0x40
000016d8: MLOAD
000016d9: SWAP1
000016da: PUSH4 0x2a875269
000016df: PUSH1 0xe2
000016e1: SHL
000016e2: DUP3
000016e3: MSTORE
000016e4: PUSH1 0x04
000016e6: DUP3
000016e7: ADD
000016e8: MSTORE
000016e9: REVERT
000016ea: JUMPDEST
000016eb: SWAP1
000016ec: SWAP2
000016ed: POP
000016ee: PUSH1 0x20
000016f0: DUP2
000016f1: RETURNDATASIZE
000016f2: PUSH1 0x20
000016f4: GT
000016f5: PUSH2 0x1716
000016f8: JUMPI
000016f9: JUMPDEST
000016fa: DUP2
000016fb: PUSH2 0x1706
000016fe: PUSH1 0x20
00001700: SWAP4
00001701: DUP4
00001702: PUSH2 0x1f5f
00001705: JUMP
00001706: JUMPDEST
00001707: DUP2
00001708: ADD
00001709: SUB
0000170a: SLT
0000170b: PUSH2 0x05de
0000170e: JUMPI
0000170f: MLOAD
00001710: SWAP1
00001711: CODESIZE
00001712: PUSH2 0x15ea
00001715: JUMP
00001716: JUMPDEST
00001717: RETURNDATASIZE
00001718: SWAP2
00001719: POP
0000171a: PUSH2 0x16f9
0000171d: JUMP
0000171e: JUMPDEST
0000171f: SWAP1
00001720: POP
00001721: DUP2
00001722: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
00001743: SLOAD
00001744: AND
00001745: EQ
00001746: ISZERO
00001747: CODESIZE
00001748: PUSH2 0x15bc
0000174b: JUMP
0000174c: JUMPDEST
0000174d: POP
0000174e: CALLVALUE
0000174f: PUSH2 0x0219
00001752: JUMPI
00001753: PUSH1 0x60
00001755: CALLDATASIZE
00001756: PUSH1 0x03
00001758: NOT
00001759: ADD
0000175a: SLT
0000175b: PUSH2 0x0219
0000175e: JUMPI
0000175f: PUSH2 0x1766
00001762: PUSH2 0x1edf
00001765: JUMP
00001766: JUMPDEST
00001767: PUSH2 0x176e
0000176a: PUSH2 0x1f0b
0000176d: JUMP
0000176e: JUMPDEST
0000176f: PUSH1 0x01
00001771: PUSH1 0x01
00001773: PUSH1 0xa0
00001775: SHL
00001776: SUB
00001777: DUP3
00001778: DUP2
00001779: AND
0000177a: DUP1
0000177b: ISZERO
0000177c: PUSH2 0x05c2
0000177f: JUMPI
00001780: PUSH1 0x20
00001782: SWAP1
00001783: PUSH1 0x24
00001785: PUSH1 0x40
00001787: MLOAD
00001788: DUP1
00001789: SWAP5
0000178a: DUP2
0000178b: SWAP4
0000178c: PUSH4 0xfe575a87
00001791: PUSH1 0xe0
00001793: SHL
00001794: DUP4
00001795: MSTORE
00001796: PUSH1 0x04
00001798: DUP4
00001799: ADD
0000179a: MSTORE
0000179b: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
000017bc: AND
000017bd: GAS
000017be: STATICCALL
000017bf: SWAP1
000017c0: DUP2
000017c1: ISZERO
000017c2: PUSH2 0x0735
000017c5: JUMPI
000017c6: DUP5
000017c7: SWAP2
000017c8: PUSH2 0x1803
000017cb: JUMPI
000017cc: JUMPDEST
000017cd: POP
000017ce: PUSH2 0x17f1
000017d1: JUMPI
000017d2: PUSH1 0xff
000017d4: DUP4
000017d5: SLOAD
000017d6: AND
000017d7: PUSH2 0x17df
000017da: DUP2
000017db: PUSH2 0x2012
000017de: JUMP
000017df: JUMPDEST
000017e0: PUSH2 0x0360
000017e3: JUMPI
000017e4: PUSH2 0x03b1
000017e7: SWAP2
000017e8: PUSH1 0x24
000017ea: CALLDATALOAD
000017eb: SWAP1
000017ec: CALLER
000017ed: PUSH2 0x210f
000017f0: JUMP
000017f1: JUMPDEST
000017f2: PUSH1 0x40
000017f4: MLOAD
000017f5: PUSH4 0x6e7fdaf7
000017fa: PUSH1 0xe1
000017fc: SHL
000017fd: DUP2
000017fe: MSTORE
000017ff: PUSH1 0x04
00001801: SWAP1
00001802: REVERT
00001803: JUMPDEST
00001804: PUSH2 0x1825
00001807: SWAP2
00001808: POP
00001809: PUSH1 0x20
0000180b: RETURNDATASIZE
0000180c: PUSH1 0x20
0000180e: GT
0000180f: PUSH2 0x182b
00001812: JUMPI
00001813: JUMPDEST
00001814: PUSH2 0x181d
00001817: DUP2
00001818: DUP4
00001819: PUSH2 0x1f5f
0000181c: JUMP
0000181d: JUMPDEST
0000181e: DUP2
0000181f: ADD
00001820: SWAP1
00001821: PUSH2 0x2032
00001824: JUMP
00001825: JUMPDEST
00001826: CODESIZE
00001827: PUSH2 0x17cc
0000182a: JUMP
0000182b: JUMPDEST
0000182c: POP
0000182d: RETURNDATASIZE
0000182e: PUSH2 0x1813
00001831: JUMP
00001832: JUMPDEST
00001833: POP
00001834: CALLVALUE
00001835: PUSH2 0x0219
00001838: JUMPI
00001839: DUP1
0000183a: PUSH1 0x03
0000183c: NOT
0000183d: CALLDATASIZE
0000183e: ADD
0000183f: SLT
00001840: PUSH2 0x0219
00001843: JUMPI
00001844: PUSH1 0x20
00001846: PUSH1 0x35
00001848: SLOAD
00001849: PUSH1 0x40
0000184b: MLOAD
0000184c: SWAP1
0000184d: DUP2
0000184e: MSTORE
0000184f: RETURN
00001850: JUMPDEST
00001851: POP
00001852: CALLVALUE
00001853: PUSH2 0x0219
00001856: JUMPI
00001857: DUP1
00001858: PUSH1 0x03
0000185a: NOT
0000185b: CALLDATASIZE
0000185c: ADD
0000185d: SLT
0000185e: PUSH2 0x0219
00001861: JUMPI
00001862: PUSH1 0x36
00001864: SLOAD
00001865: PUSH1 0x40
00001867: MLOAD
00001868: PUSH1 0x01
0000186a: PUSH1 0x01
0000186c: PUSH1 0xa0
0000186e: SHL
0000186f: SUB
00001870: SWAP1
00001871: SWAP2
00001872: AND
00001873: DUP2
00001874: MSTORE
00001875: PUSH1 0x20
00001877: SWAP1
00001878: RETURN
00001879: JUMPDEST
0000187a: POP
0000187b: CALLVALUE
0000187c: PUSH2 0x0219
0000187f: JUMPI
00001880: PUSH1 0x60
00001882: CALLDATASIZE
00001883: PUSH1 0x03
00001885: NOT
00001886: ADD
00001887: SLT
00001888: PUSH2 0x0219
0000188b: JUMPI
0000188c: PUSH2 0x1893
0000188f: PUSH2 0x1edf
00001892: JUMP
00001893: JUMPDEST
00001894: PUSH2 0x189b
00001897: PUSH2 0x1ef5
0000189a: JUMP
0000189b: JUMPDEST
0000189c: PUSH1 0x01
0000189e: PUSH1 0x01
000018a0: PUSH1 0xa0
000018a2: SHL
000018a3: SUB
000018a4: PUSH32 0x00000000000000000000000031b72d76fb666844c41edf08df0254875dbb7edb
000018c5: DUP2
000018c6: AND
000018c7: SWAP3
000018c8: SWAP2
000018c9: PUSH1 0x44
000018cb: CALLDATALOAD
000018cc: SWAP1
000018cd: CALLER
000018ce: DUP6
000018cf: EQ
000018d0: DUP1
000018d1: ISZERO
000018d2: SWAP1
000018d3: PUSH2 0x19d6
000018d6: JUMPI
000018d7: JUMPDEST
000018d8: PUSH2 0x069a
000018db: JUMPI
000018dc: ADDRESS
000018dd: EXTCODESIZE
000018de: ISZERO
000018df: PUSH2 0x19d2
000018e2: JUMPI
000018e3: PUSH1 0x40
000018e5: MLOAD
000018e6: PUSH4 0x67bd044d
000018eb: PUSH1 0xe0
000018ed: SHL
000018ee: DUP2
000018ef: MSTORE
000018f0: PUSH1 0x01
000018f2: PUSH1 0x01
000018f4: PUSH1 0xa0
000018f6: SHL
000018f7: SUB
000018f8: DUP6
000018f9: AND
000018fa: PUSH1 0x04
000018fc: DUP3
000018fd: ADD
000018fe: MSTORE
000018ff: PUSH1 0x24
00001901: DUP2
00001902: ADD
00001903: DUP4
00001904: SWAP1
00001905: MSTORE
00001906: DUP7
00001907: DUP2
00001908: PUSH1 0x44
0000190a: DUP2
0000190b: DUP4
0000190c: ADDRESS
0000190d: GAS
0000190e: CALL
0000190f: SWAP1
00001910: DUP2
00001911: PUSH2 0x19bf
00001914: JUMPI
00001915: JUMPDEST
00001916: POP
00001917: PUSH2 0x1989
0000191a: JUMPI
0000191b: DUP3
0000191c: AND
0000191d: SWAP2
0000191e: DUP3
0000191f: DUP7
00001920: MSTORE
00001921: PUSH1 0x02
00001923: PUSH1 0x20
00001925: MSTORE
00001926: PUSH1 0x40
00001928: DUP7
00001929: KECCAK256
0000192a: SWAP4
0000192b: AND
0000192c: SWAP3
0000192d: DUP4
0000192e: PUSH1 0x00
00001930: MSTORE
00001931: PUSH1 0x20
00001933: MSTORE
00001934: PUSH1 0x40
00001936: PUSH1 0x00
00001938: KECCAK256
00001939: DUP1
0000193a: SLOAD
0000193b: SWAP1
0000193c: DUP3
0000193d: DUP3
0000193e: ADD
0000193f: DUP1
00001940: SWAP3
00001941: GT
00001942: PUSH2 0x1975
00001945: JUMPI
00001946: SSTORE
00001947: PUSH1 0x40
00001949: MLOAD
0000194a: SWAP1
0000194b: DUP2
0000194c: MSTORE
0000194d: PUSH32 0x57b0fa6deabbc9b92da071a794e0ee49fda25fca31a9e5a0336632a6731bda84
0000196e: SWAP1
0000196f: PUSH1 0x20
00001971: SWAP1
00001972: LOG4
00001973: DUP1
00001974: RETURN
00001975: JUMPDEST
00001976: PUSH4 0x4e487b71
0000197b: PUSH1 0xe0
0000197d: SHL
0000197e: DUP8
0000197f: MSTORE
00001980: PUSH1 0x11
00001982: PUSH1 0x04
00001984: MSTORE
00001985: PUSH1 0x24
00001987: DUP8
00001988: REVERT
00001989: JUMPDEST
0000198a: SWAP3
0000198b: DUP3
0000198c: PUSH32 0x6bf7034bf4a66e25fc097062a5aad392485138a48987ad77209e332e25359156
000019ad: SWAP3
000019ae: SWAP4
000019af: PUSH1 0x20
000019b1: SWAP3
000019b2: PUSH1 0x40
000019b4: MLOAD
000019b5: SWAP6
000019b6: DUP7
000019b7: MSTORE
000019b8: AND
000019b9: SWAP5
000019ba: AND
000019bb: SWAP3
000019bc: LOG4
000019bd: DUP1
000019be: RETURN
000019bf: JUMPDEST
000019c0: PUSH2 0x19cb
000019c3: SWAP1
000019c4: SWAP8
000019c5: SWAP2
000019c6: SWAP8
000019c7: PUSH2 0x1f31
000019ca: JUMP
000019cb: JUMPDEST
000019cc: SWAP6
000019cd: CODESIZE
000019ce: PUSH2 0x1915
000019d1: JUMP
000019d2: JUMPDEST
000019d3: DUP6
000019d4: DUP1
000019d5: REVERT
000019d6: JUMPDEST
000019d7: POP
000019d8: PUSH1 0x40
000019da: MLOAD
000019db: PUSH4 0x6e296e45
000019e0: PUSH1 0xe0
000019e2: SHL
000019e3: DUP2
000019e4: MSTORE
000019e5: PUSH1 0x20
000019e7: DUP2
000019e8: PUSH1 0x04
000019ea: DUP2
000019eb: DUP10
000019ec: GAS
000019ed: STATICCALL
000019ee: SWAP1
000019ef: DUP2
000019f0: ISZERO
000019f1: PUSH2 0x1a47
000019f4: JUMPI
000019f5: DUP8
000019f6: SWAP2
000019f7: PUSH2 0x1a28
000019fa: JUMPI
000019fb: JUMPDEST
000019fc: POP
000019fd: DUP4
000019fe: AND
000019ff: PUSH32 0x0000000000000000000000003b1ac69368eb6447f5db2d4e1641380fa9e40d29
00001a20: DUP5
00001a21: AND
00001a22: EQ
00001a23: ISZERO
00001a24: PUSH2 0x18d7
00001a27: JUMP
00001a28: JUMPDEST
00001a29: PUSH2 0x1a41
00001a2c: SWAP2
00001a2d: POP
00001a2e: PUSH1 0x20
00001a30: RETURNDATASIZE
00001a31: PUSH1 0x20
00001a33: GT
00001a34: PUSH2 0x072e
00001a37: JUMPI
00001a38: PUSH2 0x071f
00001a3b: DUP2
00001a3c: DUP4
00001a3d: PUSH2 0x1f5f
00001a40: JUMP
00001a41: JUMPDEST
00001a42: CODESIZE
00001a43: PUSH2 0x19fb
00001a46: JUMP
00001a47: JUMPDEST
00001a48: PUSH1 0x40
00001a4a: MLOAD
00001a4b: RETURNDATASIZE
00001a4c: DUP10
00001a4d: DUP3
00001a4e: RETURNDATACOPY
00001a4f: RETURNDATASIZE
00001a50: SWAP1
00001a51: REVERT
00001a52: JUMPDEST
00001a53: POP
00001a54: CALLVALUE
00001a55: PUSH2 0x0219
00001a58: JUMPI
00001a59: DUP1
00001a5a: PUSH1 0x03
00001a5c: NOT
00001a5d: CALLDATASIZE
00001a5e: ADD
00001a5f: SLT
00001a60: PUSH2 0x0219
00001a63: JUMPI
00001a64: PUSH1 0x40
00001a66: MLOAD
00001a67: PUSH32 0x0000000000000000000000003b1ac69368eb6447f5db2d4e1641380fa9e40d29
00001a88: PUSH1 0x01
00001a8a: PUSH1 0x01
00001a8c: PUSH1 0xa0
00001a8e: SHL
00001a8f: SUB
00001a90: AND
00001a91: DUP2
00001a92: MSTORE
00001a93: PUSH1 0x20
00001a95: SWAP1
00001a96: RETURN
00001a97: JUMPDEST
00001a98: SWAP1
00001a99: POP
00001a9a: CALLVALUE
00001a9b: PUSH2 0x034d
00001a9e: JUMPI
00001a9f: PUSH1 0xe0
00001aa1: CALLDATASIZE
00001aa2: PUSH1 0x03
00001aa4: NOT
00001aa5: ADD
00001aa6: SLT
00001aa7: PUSH2 0x034d
00001aaa: JUMPI
00001aab: PUSH2 0x1ab2
00001aae: PUSH2 0x1edf
00001ab1: JUMP
00001ab2: JUMPDEST
00001ab3: SWAP1
00001ab4: PUSH2 0x1abb
00001ab7: PUSH2 0x1ef5
00001aba: JUMP
00001abb: JUMPDEST
00001abc: SWAP1
00001abd: PUSH1 0x01
00001abf: PUSH1 0x01
00001ac1: PUSH1 0x40
00001ac3: SHL
00001ac4: SUB
00001ac5: PUSH1 0x64
00001ac7: CALLDATALOAD
00001ac8: GT
00001ac9: PUSH2 0x0593
00001acc: JUMPI
00001acd: CALLDATASIZE
00001ace: PUSH1 0x23
00001ad0: PUSH1 0x64
00001ad2: CALLDATALOAD
00001ad3: ADD
00001ad4: SLT
00001ad5: ISZERO
00001ad6: PUSH2 0x0593
00001ad9: JUMPI
00001ada: PUSH1 0x01
00001adc: PUSH1 0x01
00001ade: PUSH1 0x40
00001ae0: SHL
00001ae1: SUB
00001ae2: PUSH1 0x64
00001ae4: CALLDATALOAD
00001ae5: PUSH1 0x04
00001ae7: ADD
00001ae8: CALLDATALOAD
00001ae9: GT
00001aea: PUSH2 0x0593
00001aed: JUMPI
00001aee: CALLDATASIZE
00001aef: PUSH1 0x24
00001af1: PUSH1 0x64
00001af3: CALLDATALOAD
00001af4: PUSH1 0x04
00001af6: ADD
00001af7: CALLDATALOAD
00001af8: PUSH1 0x64
00001afa: CALLDATALOAD
00001afb: ADD
00001afc: ADD
00001afd: GT
00001afe: PUSH2 0x0593
00001b01: JUMPI
00001b02: PUSH4 0xffffffff
00001b07: PUSH1 0xc4
00001b09: CALLDATALOAD
00001b0a: AND
00001b0b: PUSH1 0xc4
00001b0d: CALLDATALOAD
00001b0e: SUB
00001b0f: PUSH2 0x0593
00001b12: JUMPI
00001b13: PUSH1 0x01
00001b15: PUSH1 0x01
00001b17: PUSH1 0xa0
00001b19: SHL
00001b1a: SUB
00001b1b: DUP3
00001b1c: AND
00001b1d: ISZERO
00001b1e: PUSH2 0x1ed0
00001b21: JUMPI
00001b22: POP
00001b23: PUSH1 0x40
00001b25: MLOAD
00001b26: PUSH4 0xfe575a87
00001b2b: PUSH1 0xe0
00001b2d: SHL
00001b2e: DUP2
00001b2f: MSTORE
00001b30: PUSH1 0x01
00001b32: PUSH1 0x01
00001b34: PUSH1 0xa0
00001b36: SHL
00001b37: SUB
00001b38: DUP3
00001b39: DUP2
00001b3a: AND
00001b3b: PUSH1 0x04
00001b3d: DUP4
00001b3e: ADD
00001b3f: MSTORE
00001b40: PUSH1 0x20
00001b42: SWAP1
00001b43: DUP3
00001b44: SWAP1
00001b45: PUSH1 0x24
00001b47: SWAP1
00001b48: DUP3
00001b49: SWAP1
00001b4a: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00001b6b: AND
00001b6c: GAS
00001b6d: STATICCALL
00001b6e: SWAP1
00001b6f: DUP2
00001b70: ISZERO
00001b71: PUSH2 0x0735
00001b74: JUMPI
00001b75: DUP5
00001b76: SWAP2
00001b77: PUSH2 0x1eb1
00001b7a: JUMPI
00001b7b: JUMPDEST
00001b7c: POP
00001b7d: PUSH2 0x17f1
00001b80: JUMPI
00001b81: PUSH1 0xff
00001b83: DUP4
00001b84: SLOAD
00001b85: AND
00001b86: PUSH2 0x1b8e
00001b89: DUP2
00001b8a: PUSH2 0x2012
00001b8d: JUMP
00001b8e: JUMPDEST
00001b8f: PUSH2 0x0360
00001b92: JUMPI
00001b93: PUSH1 0x01
00001b95: PUSH1 0x01
00001b97: PUSH1 0xa0
00001b99: SHL
00001b9a: SUB
00001b9b: DUP3
00001b9c: AND
00001b9d: DUP4
00001b9e: MSTORE
00001b9f: PUSH1 0x01
00001ba1: PUSH1 0x20
00001ba3: SWAP1
00001ba4: DUP2
00001ba5: MSTORE
00001ba6: PUSH1 0x40
00001ba8: DUP1
00001ba9: DUP6
00001baa: KECCAK256
00001bab: PUSH1 0x84
00001bad: CALLDATALOAD
00001bae: DUP7
00001baf: MSTORE
00001bb0: SWAP1
00001bb1: SWAP2
00001bb2: MSTORE
00001bb3: DUP4
00001bb4: KECCAK256
00001bb5: SLOAD
00001bb6: PUSH1 0xff
00001bb8: AND
00001bb9: PUSH2 0x1e9f
00001bbc: JUMPI
00001bbd: PUSH1 0xa4
00001bbf: CALLDATALOAD
00001bc0: TIMESTAMP
00001bc1: GT
00001bc2: PUSH2 0x1e8d
00001bc5: JUMPI
00001bc6: PUSH1 0x40
00001bc8: MLOAD
00001bc9: DUP1
00001bca: PUSH1 0xa0
00001bcc: DUP2
00001bcd: ADD
00001bce: LT
00001bcf: PUSH1 0x01
00001bd1: PUSH1 0x01
00001bd3: PUSH1 0x40
00001bd5: SHL
00001bd6: SUB
00001bd7: PUSH1 0xa0
00001bd9: DUP4
00001bda: ADD
00001bdb: GT
00001bdc: OR
00001bdd: PUSH2 0x0aaa
00001be0: JUMPI
00001be1: PUSH1 0xa0
00001be3: DUP2
00001be4: ADD
00001be5: PUSH1 0x40
00001be7: MSTORE
00001be8: PUSH1 0x01
00001bea: DUP1
00001beb: PUSH1 0xa0
00001bed: SHL
00001bee: SUB
00001bef: DUP3
00001bf0: AND
00001bf1: DUP2
00001bf2: MSTORE
00001bf3: PUSH1 0x44
00001bf5: CALLDATALOAD
00001bf6: PUSH1 0x20
00001bf8: DUP3
00001bf9: ADD
00001bfa: MSTORE
00001bfb: PUSH1 0xa4
00001bfd: CALLDATALOAD
00001bfe: PUSH1 0x40
00001c00: DUP3
00001c01: ADD
00001c02: MSTORE
00001c03: PUSH1 0x84
00001c05: CALLDATALOAD
00001c06: PUSH1 0x60
00001c08: DUP3
00001c09: ADD
00001c0a: MSTORE
00001c0b: PUSH1 0x80
00001c0d: PUSH4 0xffffffff
00001c12: PUSH1 0xc4
00001c14: CALLDATALOAD
00001c15: AND
00001c16: SWAP2
00001c17: ADD
00001c18: MSTORE
00001c19: PUSH1 0x40
00001c1b: MLOAD
00001c1c: PUSH1 0x20
00001c1e: DUP2
00001c1f: ADD
00001c20: SWAP1
00001c21: PUSH32 0x87e4683aad14f1869b43140e06b846bd1b00c2e08e9825f6719d163b4cfef2a6
00001c42: DUP3
00001c43: MSTORE
00001c44: PUSH1 0x01
00001c46: DUP1
00001c47: PUSH1 0xa0
00001c49: SHL
00001c4a: SUB
00001c4b: DUP4
00001c4c: AND
00001c4d: PUSH1 0x40
00001c4f: DUP3
00001c50: ADD
00001c51: MSTORE
00001c52: PUSH1 0x44
00001c54: CALLDATALOAD
00001c55: PUSH1 0x60
00001c57: DUP3
00001c58: ADD
00001c59: MSTORE
00001c5a: PUSH1 0xa4
00001c5c: CALLDATALOAD
00001c5d: PUSH1 0x80
00001c5f: DUP3
00001c60: ADD
00001c61: MSTORE
00001c62: PUSH1 0x84
00001c64: CALLDATALOAD
00001c65: PUSH1 0xa0
00001c67: DUP3
00001c68: ADD
00001c69: MSTORE
00001c6a: PUSH4 0xffffffff
00001c6f: PUSH1 0xc4
00001c71: CALLDATALOAD
00001c72: AND
00001c73: PUSH1 0xc0
00001c75: DUP3
00001c76: ADD
00001c77: MSTORE
00001c78: PUSH1 0xc0
00001c7a: DUP2
00001c7b: MSTORE
00001c7c: PUSH1 0xe0
00001c7e: DUP2
00001c7f: ADD
00001c80: DUP2
00001c81: DUP2
00001c82: LT
00001c83: PUSH1 0x01
00001c85: PUSH1 0x01
00001c87: PUSH1 0x40
00001c89: SHL
00001c8a: SUB
00001c8b: DUP3
00001c8c: GT
00001c8d: OR
00001c8e: PUSH2 0x1e79
00001c91: JUMPI
00001c92: PUSH1 0x40
00001c94: MSTORE
00001c95: MLOAD
00001c96: SWAP1
00001c97: KECCAK256
00001c98: PUSH2 0x1cad
00001c9b: CALLDATASIZE
00001c9c: PUSH1 0x64
00001c9e: CALLDATALOAD
00001c9f: PUSH1 0x04
00001ca1: ADD
00001ca2: CALLDATALOAD
00001ca3: PUSH1 0x24
00001ca5: PUSH1 0x64
00001ca7: CALLDATALOAD
00001ca8: ADD
00001ca9: PUSH2 0x1f9b
00001cac: JUMP
00001cad: JUMPDEST
00001cae: SWAP1
00001caf: PUSH2 0x1cb6
00001cb2: PUSH2 0x26d5
00001cb5: JUMP
00001cb6: JUMPDEST
00001cb7: SWAP1
00001cb8: PUSH2 0x1cbf
00001cbb: PUSH2 0x273f
00001cbe: JUMP
00001cbf: JUMPDEST
00001cc0: PUSH1 0x40
00001cc2: MLOAD
00001cc3: SWAP1
00001cc4: PUSH1 0x20
00001cc6: DUP3
00001cc7: ADD
00001cc8: SWAP4
00001cc9: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00001cea: DUP6
00001ceb: MSTORE
00001cec: PUSH1 0x40
00001cee: DUP4
00001cef: ADD
00001cf0: MSTORE
00001cf1: PUSH1 0x60
00001cf3: DUP3
00001cf4: ADD
00001cf5: MSTORE
00001cf6: CHAINID
00001cf7: PUSH1 0x80
00001cf9: DUP3
00001cfa: ADD
00001cfb: MSTORE
00001cfc: ADDRESS
00001cfd: PUSH1 0xa0
00001cff: DUP3
00001d00: ADD
00001d01: MSTORE
00001d02: PUSH1 0xa0
00001d04: DUP2
00001d05: MSTORE
00001d06: PUSH1 0xc0
00001d08: DUP2
00001d09: ADD
00001d0a: SWAP3
00001d0b: DUP2
00001d0c: DUP5
00001d0d: LT
00001d0e: PUSH1 0x01
00001d10: PUSH1 0x01
00001d12: PUSH1 0x40
00001d14: SHL
00001d15: SUB
00001d16: DUP6
00001d17: GT
00001d18: OR
00001d19: PUSH2 0x1e65
00001d1c: JUMPI
00001d1d: PUSH1 0x40
00001d1f: DUP5
00001d20: SWAP1
00001d21: MSTORE
00001d22: DUP2
00001d23: MLOAD
00001d24: SWAP1
00001d25: KECCAK256
00001d26: PUSH2 0x1901
00001d29: PUSH1 0xf0
00001d2b: SHL
00001d2c: DUP5
00001d2d: MSTORE
00001d2e: PUSH1 0xc2
00001d30: DUP3
00001d31: ADD
00001d32: MSTORE
00001d33: PUSH1 0xe2
00001d35: ADD
00001d36: MSTORE
00001d37: PUSH1 0x42
00001d39: SWAP1
00001d3a: KECCAK256
00001d3b: DUP5
00001d3c: PUSH2 0x1d45
00001d3f: DUP4
00001d40: DUP4
00001d41: PUSH2 0x2576
00001d44: JUMP
00001d45: JUMPDEST
00001d46: POP
00001d47: PUSH2 0x1d52
00001d4a: DUP2
00001d4b: SWAP6
00001d4c: SWAP3
00001d4d: SWAP6
00001d4e: PUSH2 0x2012
00001d51: JUMP
00001d52: JUMPDEST
00001d53: ISZERO
00001d54: SWAP4
00001d55: DUP5
00001d56: PUSH2 0x1e4f
00001d59: JUMPI
00001d5a: JUMPDEST
00001d5b: POP
00001d5c: DUP4
00001d5d: ISZERO
00001d5e: PUSH2 0x1dba
00001d61: JUMPI
00001d62: JUMPDEST
00001d63: POP
00001d64: POP
00001d65: POP
00001d66: ISZERO
00001d67: PUSH2 0x1da8
00001d6a: JUMPI
00001d6b: PUSH1 0x01
00001d6d: PUSH1 0x01
00001d6f: PUSH1 0xa0
00001d71: SHL
00001d72: SUB
00001d73: DUP3
00001d74: AND
00001d75: DUP4
00001d76: MSTORE
00001d77: PUSH1 0x01
00001d79: PUSH1 0x20
00001d7b: DUP2
00001d7c: DUP2
00001d7d: MSTORE
00001d7e: PUSH1 0x40
00001d80: DUP1
00001d81: DUP7
00001d82: KECCAK256
00001d83: PUSH1 0x84
00001d85: CALLDATALOAD
00001d86: DUP8
00001d87: MSTORE
00001d88: SWAP1
00001d89: SWAP2
00001d8a: MSTORE
00001d8b: DUP5
00001d8c: KECCAK256
00001d8d: DUP1
00001d8e: SLOAD
00001d8f: PUSH1 0xff
00001d91: NOT
00001d92: AND
00001d93: SWAP1
00001d94: SWAP2
00001d95: OR
00001d96: SWAP1
00001d97: SSTORE
00001d98: PUSH2 0x03b1
00001d9b: SWAP2
00001d9c: PUSH1 0xc4
00001d9e: CALLDATALOAD
00001d9f: SWAP2
00001da0: PUSH1 0x44
00001da2: CALLDATALOAD
00001da3: SWAP2
00001da4: PUSH2 0x210f
00001da7: JUMP
00001da8: JUMPDEST
00001da9: PUSH1 0x40
00001dab: MLOAD
00001dac: PUSH4 0x98ceb44f
00001db1: PUSH1 0xe0
00001db3: SHL
00001db4: DUP2
00001db5: MSTORE
00001db6: PUSH1 0x04
00001db8: SWAP1
00001db9: REVERT
00001dba: JUMPDEST
00001dbb: DUP2
00001dbc: SWAP3
00001dbd: SWAP4
00001dbe: POP
00001dbf: PUSH1 0x40
00001dc1: MLOAD
00001dc2: PUSH2 0x1dfd
00001dc5: DUP2
00001dc6: PUSH2 0x1def
00001dc9: PUSH1 0x20
00001dcb: DUP3
00001dcc: ADD
00001dcd: SWAP5
00001dce: PUSH4 0x0b135d3f
00001dd3: PUSH1 0xe1
00001dd5: SHL
00001dd6: SWAP9
00001dd7: DUP10
00001dd8: DUP8
00001dd9: MSTORE
00001dda: PUSH1 0x24
00001ddc: DUP5
00001ddd: ADD
00001dde: MSTORE
00001ddf: PUSH1 0x40
00001de1: PUSH1 0x44
00001de3: DUP5
00001de4: ADD
00001de5: MSTORE
00001de6: PUSH1 0x64
00001de8: DUP4
00001de9: ADD
00001dea: SWAP1
00001deb: PUSH2 0x1fd2
00001dee: JUMP
00001def: JUMPDEST
00001df0: SUB
00001df1: PUSH1 0x1f
00001df3: NOT
00001df4: DUP2
00001df5: ADD
00001df6: DUP4
00001df7: MSTORE
00001df8: DUP3
00001df9: PUSH2 0x1f5f
00001dfc: JUMP
00001dfd: JUMPDEST
00001dfe: MLOAD
00001dff: SWAP1
00001e00: DUP7
00001e01: GAS
00001e02: STATICCALL
00001e03: SWAP1
00001e04: PUSH2 0x1e0b
00001e07: PUSH2 0x25b2
00001e0a: JUMP
00001e0b: JUMPDEST
00001e0c: DUP3
00001e0d: PUSH2 0x1e41
00001e10: JUMPI
00001e11: JUMPDEST
00001e12: DUP3
00001e13: PUSH2 0x1e21
00001e16: JUMPI
00001e17: JUMPDEST
00001e18: POP
00001e19: POP
00001e1a: CODESIZE
00001e1b: DUP5
00001e1c: DUP2
00001e1d: PUSH2 0x1d62
00001e20: JUMP
00001e21: JUMPDEST
00001e22: SWAP1
00001e23: SWAP2
00001e24: POP
00001e25: PUSH1 0x20
00001e27: DUP2
00001e28: DUP1
00001e29: MLOAD
00001e2a: DUP2
00001e2b: ADD
00001e2c: SUB
00001e2d: SLT
00001e2e: PUSH2 0x1e3d
00001e31: JUMPI
00001e32: PUSH1 0x20
00001e34: ADD
00001e35: MLOAD
00001e36: EQ
00001e37: CODESIZE
00001e38: DUP1
00001e39: PUSH2 0x1e17
00001e3c: JUMP
00001e3d: JUMPDEST
00001e3e: DUP5
00001e3f: DUP1
00001e40: REVERT
00001e41: JUMPDEST
00001e42: SWAP2
00001e43: POP
00001e44: PUSH1 0x20
00001e46: DUP3
00001e47: MLOAD
00001e48: LT
00001e49: ISZERO
00001e4a: SWAP2
00001e4b: PUSH2 0x1e11
00001e4e: JUMP
00001e4f: JUMPDEST
00001e50: PUSH1 0x01
00001e52: PUSH1 0x01
00001e54: PUSH1 0xa0
00001e56: SHL
00001e57: SUB
00001e58: DUP8
00001e59: DUP2
00001e5a: AND
00001e5b: SWAP2
00001e5c: AND
00001e5d: EQ
00001e5e: SWAP4
00001e5f: POP
00001e60: CODESIZE
00001e61: PUSH2 0x1d5a
00001e64: JUMP
00001e65: JUMPDEST
00001e66: PUSH4 0x4e487b71
00001e6b: PUSH1 0xe0
00001e6d: SHL
00001e6e: DUP9
00001e6f: MSTORE
00001e70: PUSH1 0x41
00001e72: PUSH1 0x04
00001e74: MSTORE
00001e75: PUSH1 0x24
00001e77: DUP9
00001e78: REVERT
00001e79: JUMPDEST
00001e7a: PUSH4 0x4e487b71
00001e7f: PUSH1 0xe0
00001e81: SHL
00001e82: DUP7
00001e83: MSTORE
00001e84: PUSH1 0x41
00001e86: PUSH1 0x04
00001e88: MSTORE
00001e89: PUSH1 0x24
00001e8b: DUP7
00001e8c: REVERT
00001e8d: JUMPDEST
00001e8e: PUSH1 0x40
00001e90: MLOAD
00001e91: PUSH4 0x3c3c6677
00001e96: PUSH1 0xe0
00001e98: SHL
00001e99: DUP2
00001e9a: MSTORE
00001e9b: PUSH1 0x04
00001e9d: SWAP1
00001e9e: REVERT
00001e9f: JUMPDEST
00001ea0: PUSH1 0x40
00001ea2: MLOAD
00001ea3: PUSH4 0x08be5f9d
00001ea8: PUSH1 0xe3
00001eaa: SHL
00001eab: DUP2
00001eac: MSTORE
00001ead: PUSH1 0x04
00001eaf: SWAP1
00001eb0: REVERT
00001eb1: JUMPDEST
00001eb2: PUSH2 0x1eca
00001eb5: SWAP2
00001eb6: POP
00001eb7: PUSH1 0x20
00001eb9: RETURNDATASIZE
00001eba: PUSH1 0x20
00001ebc: GT
00001ebd: PUSH2 0x182b
00001ec0: JUMPI
00001ec1: PUSH2 0x181d
00001ec4: DUP2
00001ec5: DUP4
00001ec6: PUSH2 0x1f5f
00001ec9: JUMP
00001eca: JUMPDEST
00001ecb: CODESIZE
00001ecc: PUSH2 0x1b7b
00001ecf: JUMP
00001ed0: JUMPDEST
00001ed1: PUSH4 0x5432922d
00001ed6: PUSH1 0xe0
00001ed8: SHL
00001ed9: DUP2
00001eda: MSTORE
00001edb: PUSH1 0x04
00001edd: SWAP1
00001ede: REVERT
00001edf: JUMPDEST
00001ee0: PUSH1 0x04
00001ee2: CALLDATALOAD
00001ee3: SWAP1
00001ee4: PUSH1 0x01
00001ee6: PUSH1 0x01
00001ee8: PUSH1 0xa0
00001eea: SHL
00001eeb: SUB
00001eec: DUP3
00001eed: AND
00001eee: DUP3
00001eef: SUB
00001ef0: PUSH2 0x05de
00001ef3: JUMPI
00001ef4: JUMP
00001ef5: JUMPDEST
00001ef6: PUSH1 0x24
00001ef8: CALLDATALOAD
00001ef9: SWAP1
00001efa: PUSH1 0x01
00001efc: PUSH1 0x01
00001efe: PUSH1 0xa0
00001f00: SHL
00001f01: SUB
00001f02: DUP3
00001f03: AND
00001f04: DUP3
00001f05: SUB
00001f06: PUSH2 0x05de
00001f09: JUMPI
00001f0a: JUMP
00001f0b: JUMPDEST
00001f0c: PUSH1 0x44
00001f0e: CALLDATALOAD
00001f0f: SWAP1
00001f10: PUSH4 0xffffffff
00001f15: DUP3
00001f16: AND
00001f17: DUP3
00001f18: SUB
00001f19: PUSH2 0x05de
00001f1c: JUMPI
00001f1d: JUMP
00001f1e: JUMPDEST
00001f1f: PUSH1 0x04
00001f21: CALLDATALOAD
00001f22: SWAP1
00001f23: PUSH4 0xffffffff
00001f28: DUP3
00001f29: AND
00001f2a: DUP3
00001f2b: SUB
00001f2c: PUSH2 0x05de
00001f2f: JUMPI
00001f30: JUMP
00001f31: JUMPDEST
00001f32: PUSH1 0x01
00001f34: PUSH1 0x01
00001f36: PUSH1 0x40
00001f38: SHL
00001f39: SUB
00001f3a: DUP2
00001f3b: GT
00001f3c: PUSH2 0x0597
00001f3f: JUMPI
00001f40: PUSH1 0x40
00001f42: MSTORE
00001f43: JUMP
00001f44: JUMPDEST
00001f45: PUSH1 0x40
00001f47: DUP2
00001f48: ADD
00001f49: SWAP1
00001f4a: DUP2
00001f4b: LT
00001f4c: PUSH1 0x01
00001f4e: PUSH1 0x01
00001f50: PUSH1 0x40
00001f52: SHL
00001f53: SUB
00001f54: DUP3
00001f55: GT
00001f56: OR
00001f57: PUSH2 0x0597
00001f5a: JUMPI
00001f5b: PUSH1 0x40
00001f5d: MSTORE
00001f5e: JUMP
00001f5f: JUMPDEST
00001f60: SWAP1
00001f61: PUSH1 0x1f
00001f63: DUP1
00001f64: NOT
00001f65: SWAP2
00001f66: ADD
00001f67: AND
00001f68: DUP2
00001f69: ADD
00001f6a: SWAP1
00001f6b: DUP2
00001f6c: LT
00001f6d: PUSH1 0x01
00001f6f: PUSH1 0x01
00001f71: PUSH1 0x40
00001f73: SHL
00001f74: SUB
00001f75: DUP3
00001f76: GT
00001f77: OR
00001f78: PUSH2 0x0597
00001f7b: JUMPI
00001f7c: PUSH1 0x40
00001f7e: MSTORE
00001f7f: JUMP
00001f80: JUMPDEST
00001f81: PUSH1 0x01
00001f83: PUSH1 0x01
00001f85: PUSH1 0x40
00001f87: SHL
00001f88: SUB
00001f89: DUP2
00001f8a: GT
00001f8b: PUSH2 0x0597
00001f8e: JUMPI
00001f8f: PUSH1 0x1f
00001f91: ADD
00001f92: PUSH1 0x1f
00001f94: NOT
00001f95: AND
00001f96: PUSH1 0x20
00001f98: ADD
00001f99: SWAP1
00001f9a: JUMP
00001f9b: JUMPDEST
00001f9c: SWAP3
00001f9d: SWAP2
00001f9e: SWAP3
00001f9f: PUSH2 0x1fa7
00001fa2: DUP3
00001fa3: PUSH2 0x1f80
00001fa6: JUMP
00001fa7: JUMPDEST
00001fa8: SWAP2
00001fa9: PUSH2 0x1fb5
00001fac: PUSH1 0x40
00001fae: MLOAD
00001faf: SWAP4
00001fb0: DUP5
00001fb1: PUSH2 0x1f5f
00001fb4: JUMP
00001fb5: JUMPDEST
00001fb6: DUP3
00001fb7: SWAP5
00001fb8: DUP2
00001fb9: DUP5
00001fba: MSTORE
00001fbb: DUP2
00001fbc: DUP4
00001fbd: ADD
00001fbe: GT
00001fbf: PUSH2 0x05de
00001fc2: JUMPI
00001fc3: DUP3
00001fc4: DUP2
00001fc5: PUSH1 0x20
00001fc7: SWAP4
00001fc8: DUP5
00001fc9: PUSH1 0x00
00001fcb: SWAP7
00001fcc: ADD
00001fcd: CALLDATACOPY
00001fce: ADD
00001fcf: ADD
00001fd0: MSTORE
00001fd1: JUMP
00001fd2: JUMPDEST
00001fd3: SWAP2
00001fd4: SWAP1
00001fd5: DUP3
00001fd6: MLOAD
00001fd7: SWAP3
00001fd8: DUP4
00001fd9: DUP3
00001fda: MSTORE
00001fdb: PUSH1 0x00
00001fdd: JUMPDEST
00001fde: DUP5
00001fdf: DUP2
00001fe0: LT
00001fe1: PUSH2 0x1ffe
00001fe4: JUMPI
00001fe5: POP
00001fe6: POP
00001fe7: DUP3
00001fe8: PUSH1 0x00
00001fea: PUSH1 0x20
00001fec: DUP1
00001fed: SWAP5
00001fee: SWAP6
00001fef: DUP5
00001ff0: ADD
00001ff1: ADD
00001ff2: MSTORE
00001ff3: PUSH1 0x1f
00001ff5: DUP1
00001ff6: NOT
00001ff7: SWAP2
00001ff8: ADD
00001ff9: AND
00001ffa: ADD
00001ffb: ADD
00001ffc: SWAP1
00001ffd: JUMP
00001ffe: JUMPDEST
00001fff: PUSH1 0x20
00002001: DUP2
00002002: DUP4
00002003: ADD
00002004: DUP2
00002005: ADD
00002006: MLOAD
00002007: DUP5
00002008: DUP4
00002009: ADD
0000200a: DUP3
0000200b: ADD
0000200c: MSTORE
0000200d: ADD
0000200e: PUSH2 0x1fdd
00002011: JUMP
00002012: JUMPDEST
00002013: PUSH1 0x04
00002015: GT
00002016: ISZERO
00002017: PUSH2 0x201c
0000201a: JUMPI
0000201b: JUMP
0000201c: JUMPDEST
0000201d: PUSH4 0x4e487b71
00002022: PUSH1 0xe0
00002024: SHL
00002025: PUSH1 0x00
00002027: MSTORE
00002028: PUSH1 0x21
0000202a: PUSH1 0x04
0000202c: MSTORE
0000202d: PUSH1 0x24
0000202f: PUSH1 0x00
00002031: REVERT
00002032: JUMPDEST
00002033: SWAP1
00002034: DUP2
00002035: PUSH1 0x20
00002037: SWAP2
00002038: SUB
00002039: SLT
0000203a: PUSH2 0x05de
0000203d: JUMPI
0000203e: MLOAD
0000203f: DUP1
00002040: ISZERO
00002041: ISZERO
00002042: DUP2
00002043: SUB
00002044: PUSH2 0x05de
00002047: JUMPI
00002048: SWAP1
00002049: JUMP
0000204a: JUMPDEST
0000204b: SWAP1
0000204c: DUP2
0000204d: PUSH1 0x20
0000204f: SWAP2
00002050: SUB
00002051: SLT
00002052: PUSH2 0x05de
00002055: JUMPI
00002056: MLOAD
00002057: PUSH1 0x01
00002059: PUSH1 0x01
0000205b: PUSH1 0xa0
0000205d: SHL
0000205e: SUB
0000205f: DUP2
00002060: AND
00002061: DUP2
00002062: SUB
00002063: PUSH2 0x05de
00002066: JUMPI
00002067: SWAP1
00002068: JUMP
00002069: JUMPDEST
0000206a: SWAP2
0000206b: PUSH2 0x2094
0000206e: PUSH4 0xffffffff
00002073: SWAP2
00002074: PUSH1 0x40
00002076: SWAP4
00002077: SWAP7
00002078: SWAP6
00002079: SWAP7
0000207a: PUSH1 0x01
0000207c: DUP1
0000207d: PUSH1 0xa0
0000207f: SHL
00002080: SUB
00002081: AND
00002082: DUP6
00002083: MSTORE
00002084: PUSH1 0x60
00002086: PUSH1 0x20
00002088: DUP7
00002089: ADD
0000208a: MSTORE
0000208b: PUSH1 0x60
0000208d: DUP6
0000208e: ADD
0000208f: SWAP1
00002090: PUSH2 0x1fd2
00002093: JUMP
00002094: JUMPDEST
00002095: SWAP5
00002096: AND
00002097: SWAP2
00002098: ADD
00002099: MSTORE
0000209a: JUMP
0000209b: JUMPDEST
0000209c: PUSH1 0x01
0000209e: PUSH1 0x01
000020a0: PUSH1 0xa0
000020a2: SHL
000020a3: SUB
000020a4: SWAP1
000020a5: DUP2
000020a6: AND
000020a7: SWAP1
000020a8: DUP2
000020a9: ISZERO
000020aa: PUSH2 0x20f6
000020ad: JUMPI
000020ae: PUSH1 0x00
000020b0: DUP1
000020b1: MLOAD
000020b2: PUSH1 0x20
000020b4: PUSH2 0x27a5
000020b7: DUP4
000020b8: CODECOPY
000020b9: DUP2
000020ba: MLOAD
000020bb: SWAP2
000020bc: MSTORE
000020bd: DUP1
000020be: SLOAD
000020bf: PUSH1 0x01
000020c1: PUSH1 0x01
000020c3: PUSH1 0xa0
000020c5: SHL
000020c6: SUB
000020c7: NOT
000020c8: DUP2
000020c9: AND
000020ca: DUP5
000020cb: OR
000020cc: SWAP1
000020cd: SWAP2
000020ce: SSTORE
000020cf: AND
000020d0: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
000020f1: PUSH1 0x00
000020f3: DUP1
000020f4: LOG3
000020f5: JUMP
000020f6: JUMPDEST
000020f7: PUSH1 0x40
000020f9: MLOAD
000020fa: PUSH4 0x1e4fbdf7
000020ff: PUSH1 0xe0
00002101: SHL
00002102: DUP2
00002103: MSTORE
00002104: PUSH1 0x00
00002106: PUSH1 0x04
00002108: DUP3
00002109: ADD
0000210a: MSTORE
0000210b: PUSH1 0x24
0000210d: SWAP1
0000210e: REVERT
0000210f: JUMPDEST
00002110: PUSH1 0x40
00002112: DUP1
00002113: MLOAD
00002114: PUSH4 0x23b872dd
00002119: PUSH1 0xe0
0000211b: SHL
0000211c: PUSH1 0x20
0000211e: DUP3
0000211f: ADD
00002120: MSTORE
00002121: PUSH1 0x01
00002123: PUSH1 0x01
00002125: PUSH1 0xa0
00002127: SHL
00002128: SUB
00002129: DUP4
0000212a: DUP2
0000212b: AND
0000212c: PUSH1 0x24
0000212e: DUP4
0000212f: ADD
00002130: MSTORE
00002131: ADDRESS
00002132: PUSH1 0x44
00002134: DUP4
00002135: ADD
00002136: MSTORE
00002137: PUSH1 0x64
00002139: DUP1
0000213a: DUP4
0000213b: ADD
0000213c: DUP8
0000213d: SWAP1
0000213e: MSTORE
0000213f: DUP3
00002140: MSTORE
00002141: PUSH1 0x1f
00002143: NOT
00002144: SWAP7
00002145: SWAP4
00002146: SWAP6
00002147: SWAP5
00002148: SWAP3
00002149: SWAP4
0000214a: SWAP1
0000214b: SWAP3
0000214c: SWAP2
0000214d: PUSH2 0x2183
00002150: SWAP1
00002151: PUSH2 0x215b
00002154: PUSH1 0x84
00002156: DUP3
00002157: PUSH2 0x1f5f
0000215a: JUMP
0000215b: JUMPDEST
0000215c: DUP5
0000215d: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0000217e: AND
0000217f: PUSH2 0x24d5
00002182: JUMP
00002183: JUMPDEST
00002184: DUP4
00002185: MLOAD
00002186: PUSH4 0x32b3a987
0000218b: PUSH1 0xe0
0000218d: SHL
0000218e: PUSH1 0x20
00002190: DUP3
00002191: ADD
00002192: MSTORE
00002193: PUSH1 0x01
00002195: PUSH1 0x01
00002197: PUSH1 0xa0
00002199: SHL
0000219a: SUB
0000219b: DUP4
0000219c: DUP2
0000219d: AND
0000219e: PUSH1 0x24
000021a0: DUP4
000021a1: ADD
000021a2: MSTORE
000021a3: DUP8
000021a4: AND
000021a5: PUSH1 0x44
000021a7: DUP3
000021a8: ADD
000021a9: MSTORE
000021aa: PUSH1 0x64
000021ac: DUP2
000021ad: ADD
000021ae: DUP7
000021af: SWAP1
000021b0: MSTORE
000021b1: PUSH1 0x84
000021b3: SWAP8
000021b4: DUP9
000021b5: ADD
000021b6: DUP2
000021b7: MSTORE
000021b8: PUSH32 0x00000000000000000000000031b72d76fb666844c41edf08df0254875dbb7edb
000021d9: DUP5
000021da: AND
000021db: SWAP8
000021dc: PUSH2 0x21e5
000021df: SWAP1
000021e0: DUP3
000021e1: PUSH2 0x1f5f
000021e4: JUMP
000021e5: JUMPDEST
000021e6: DUP8
000021e7: EXTCODESIZE
000021e8: ISZERO
000021e9: PUSH2 0x05de
000021ec: JUMPI
000021ed: PUSH1 0x00
000021ef: DUP3
000021f0: PUSH2 0x222e
000021f3: SWAP3
000021f4: DUP8
000021f5: MLOAD
000021f6: SWAP4
000021f7: DUP5
000021f8: SWAP3
000021f9: DUP4
000021fa: SWAP3
000021fb: PUSH4 0x3dbb202b
00002200: PUSH1 0xe0
00002202: SHL
00002203: DUP5
00002204: MSTORE
00002205: PUSH32 0x0000000000000000000000003b1ac69368eb6447f5db2d4e1641380fa9e40d29
00002226: PUSH1 0x04
00002228: DUP6
00002229: ADD
0000222a: PUSH2 0x2069
0000222d: JUMP
0000222e: JUMPDEST
0000222f: SUB
00002230: DUP2
00002231: DUP4
00002232: DUP13
00002233: GAS
00002234: CALL
00002235: DUP1
00002236: ISZERO
00002237: PUSH2 0x228f
0000223a: JUMPI
0000223b: DUP5
0000223c: SWAP4
0000223d: SWAP2
0000223e: SWAP3
0000223f: PUSH32 0xb8fa5fd165287d2cb897cb3ee53488b768ead242c87070b349394d2639824d4c
00002260: SWAP7
00002261: SWAP6
00002262: SWAP4
00002263: PUSH4 0xffffffff
00002268: SWAP3
00002269: PUSH2 0x2280
0000226c: JUMPI
0000226d: JUMPDEST
0000226e: POP
0000226f: DUP6
00002270: MLOAD
00002271: SWAP8
00002272: DUP9
00002273: MSTORE
00002274: AND
00002275: PUSH1 0x20
00002277: DUP8
00002278: ADD
00002279: MSTORE
0000227a: AND
0000227b: SWAP5
0000227c: AND
0000227d: SWAP3
0000227e: LOG4
0000227f: JUMP
00002280: JUMPDEST
00002281: PUSH2 0x2289
00002284: SWAP1
00002285: PUSH2 0x1f31
00002288: JUMP
00002289: JUMPDEST
0000228a: CODESIZE
0000228b: PUSH2 0x226d
0000228e: JUMP
0000228f: JUMPDEST
00002290: DUP6
00002291: MLOAD
00002292: RETURNDATASIZE
00002293: PUSH1 0x00
00002295: DUP3
00002296: RETURNDATACOPY
00002297: RETURNDATASIZE
00002298: SWAP1
00002299: REVERT
0000229a: JUMPDEST
0000229b: PUSH1 0x40
0000229d: MLOAD
0000229e: PUSH4 0xa9059cbb
000022a3: PUSH1 0xe0
000022a5: SHL
000022a6: PUSH1 0x20
000022a8: DUP3
000022a9: ADD
000022aa: MSTORE
000022ab: PUSH1 0x01
000022ad: PUSH1 0x01
000022af: PUSH1 0xa0
000022b1: SHL
000022b2: SUB
000022b3: SWAP3
000022b4: SWAP1
000022b5: SWAP3
000022b6: AND
000022b7: PUSH1 0x24
000022b9: DUP4
000022ba: ADD
000022bb: MSTORE
000022bc: PUSH1 0x44
000022be: DUP1
000022bf: DUP4
000022c0: ADD
000022c1: SWAP4
000022c2: SWAP1
000022c3: SWAP4
000022c4: MSTORE
000022c5: SWAP2
000022c6: DUP2
000022c7: MSTORE
000022c8: PUSH2 0x22db
000022cb: SWAP2
000022cc: PUSH2 0x22d6
000022cf: PUSH1 0x64
000022d1: DUP4
000022d2: PUSH2 0x1f5f
000022d5: JUMP
000022d6: JUMPDEST
000022d7: PUSH2 0x24d5
000022da: JUMP
000022db: JUMPDEST
000022dc: JUMP
000022dd: JUMPDEST
000022de: PUSH1 0x00
000022e0: DUP1
000022e1: MLOAD
000022e2: PUSH1 0x20
000022e4: PUSH2 0x27a5
000022e7: DUP4
000022e8: CODECOPY
000022e9: DUP2
000022ea: MLOAD
000022eb: SWAP2
000022ec: MSTORE
000022ed: SLOAD
000022ee: PUSH1 0x01
000022f0: PUSH1 0x01
000022f2: PUSH1 0xa0
000022f4: SHL
000022f5: SUB
000022f6: AND
000022f7: CALLER
000022f8: SUB
000022f9: PUSH2 0x22fe
000022fc: JUMPI
000022fd: JUMP
000022fe: JUMPDEST
000022ff: PUSH1 0x40
00002301: MLOAD
00002302: PUSH4 0x118cdaa7
00002307: PUSH1 0xe0
00002309: SHL
0000230a: DUP2
0000230b: MSTORE
0000230c: CALLER
0000230d: PUSH1 0x04
0000230f: DUP3
00002310: ADD
00002311: MSTORE
00002312: PUSH1 0x24
00002314: SWAP1
00002315: REVERT
00002316: JUMPDEST
00002317: SWAP1
00002318: PUSH1 0x01
0000231a: DUP3
0000231b: DUP2
0000231c: SHR
0000231d: SWAP3
0000231e: AND
0000231f: DUP1
00002320: ISZERO
00002321: PUSH2 0x2346
00002324: JUMPI
00002325: JUMPDEST
00002326: PUSH1 0x20
00002328: DUP4
00002329: LT
0000232a: EQ
0000232b: PUSH2 0x2330
0000232e: JUMPI
0000232f: JUMP
00002330: JUMPDEST
00002331: PUSH4 0x4e487b71
00002336: PUSH1 0xe0
00002338: SHL
00002339: PUSH1 0x00
0000233b: MSTORE
0000233c: PUSH1 0x22
0000233e: PUSH1 0x04
00002340: MSTORE
00002341: PUSH1 0x24
00002343: PUSH1 0x00
00002345: REVERT
00002346: JUMPDEST
00002347: SWAP2
00002348: PUSH1 0x7f
0000234a: AND
0000234b: SWAP2
0000234c: PUSH2 0x2325
0000234f: JUMP
00002350: JUMPDEST
00002351: PUSH1 0x40
00002353: MLOAD
00002354: SWAP1
00002355: PUSH1 0x00
00002357: DUP3
00002358: PUSH1 0x00
0000235a: DUP1
0000235b: MLOAD
0000235c: PUSH1 0x20
0000235e: PUSH2 0x2785
00002361: DUP4
00002362: CODECOPY
00002363: DUP2
00002364: MLOAD
00002365: SWAP2
00002366: MSTORE
00002367: SWAP2
00002368: DUP3
00002369: SLOAD
0000236a: SWAP3
0000236b: PUSH2 0x2373
0000236e: DUP5
0000236f: PUSH2 0x2316
00002372: JUMP
00002373: JUMPDEST
00002374: DUP1
00002375: DUP5
00002376: MSTORE
00002377: SWAP4
00002378: PUSH1 0x20
0000237a: SWAP2
0000237b: PUSH1 0x01
0000237d: SWAP2
0000237e: DUP3
0000237f: DUP2
00002380: AND
00002381: SWAP1
00002382: DUP2
00002383: ISZERO
00002384: PUSH2 0x23ee
00002387: JUMPI
00002388: POP
00002389: PUSH1 0x01
0000238b: EQ
0000238c: PUSH2 0x239f
0000238f: JUMPI
00002390: JUMPDEST
00002391: POP
00002392: POP
00002393: POP
00002394: PUSH2 0x22db
00002397: SWAP3
00002398: POP
00002399: SUB
0000239a: DUP4
0000239b: PUSH2 0x1f5f
0000239e: JUMP
0000239f: JUMPDEST
000023a0: PUSH1 0x00
000023a2: SWAP1
000023a3: DUP2
000023a4: MSTORE
000023a5: PUSH1 0x00
000023a7: DUP1
000023a8: MLOAD
000023a9: PUSH1 0x20
000023ab: PUSH2 0x27c5
000023ae: DUP4
000023af: CODECOPY
000023b0: DUP2
000023b1: MLOAD
000023b2: SWAP2
000023b3: MSTORE
000023b4: SWAP6
000023b5: SWAP1
000023b6: SWAP4
000023b7: POP
000023b8: SWAP2
000023b9: SWAP1
000023ba: JUMPDEST
000023bb: DUP3
000023bc: DUP5
000023bd: LT
000023be: PUSH2 0x23d6
000023c1: JUMPI
000023c2: POP
000023c3: PUSH2 0x22db
000023c6: SWAP5
000023c7: POP
000023c8: POP
000023c9: POP
000023ca: DUP2
000023cb: ADD
000023cc: PUSH1 0x20
000023ce: ADD
000023cf: CODESIZE
000023d0: DUP1
000023d1: DUP1
000023d2: PUSH2 0x2390
000023d5: JUMP
000023d6: JUMPDEST
000023d7: DUP6
000023d8: SLOAD
000023d9: DUP9
000023da: DUP6
000023db: ADD
000023dc: DUP4
000023dd: ADD
000023de: MSTORE
000023df: SWAP5
000023e0: DUP6
000023e1: ADD
000023e2: SWAP5
000023e3: DUP8
000023e4: SWAP5
000023e5: POP
000023e6: SWAP3
000023e7: DUP2
000023e8: ADD
000023e9: SWAP3
000023ea: PUSH2 0x23ba
000023ed: JUMP
000023ee: JUMPDEST
000023ef: SWAP3
000023f0: POP
000023f1: POP
000023f2: POP
000023f3: PUSH1 0x20
000023f5: SWAP3
000023f6: POP
000023f7: PUSH2 0x22db
000023fa: SWAP5
000023fb: SWAP2
000023fc: POP
000023fd: PUSH1 0xff
000023ff: NOT
00002400: AND
00002401: DUP3
00002402: DUP5
00002403: ADD
00002404: MSTORE
00002405: ISZERO
00002406: ISZERO
00002407: PUSH1 0x05
00002409: SHL
0000240a: DUP3
0000240b: ADD
0000240c: ADD
0000240d: CODESIZE
0000240e: DUP1
0000240f: DUP1
00002410: PUSH2 0x2390
00002413: JUMP
00002414: JUMPDEST
00002415: PUSH1 0x40
00002417: MLOAD
00002418: SWAP1
00002419: PUSH1 0x00
0000241b: DUP3
0000241c: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103
0000243d: SWAP2
0000243e: DUP3
0000243f: SLOAD
00002440: SWAP3
00002441: PUSH2 0x2449
00002444: DUP5
00002445: PUSH2 0x2316
00002448: JUMP
00002449: JUMPDEST
0000244a: DUP1
0000244b: DUP5
0000244c: MSTORE
0000244d: SWAP4
0000244e: PUSH1 0x20
00002450: SWAP2
00002451: PUSH1 0x01
00002453: SWAP2
00002454: DUP3
00002455: DUP2
00002456: AND
00002457: SWAP1
00002458: DUP2
00002459: ISZERO
0000245a: PUSH2 0x23ee
0000245d: JUMPI
0000245e: POP
0000245f: PUSH1 0x01
00002461: EQ
00002462: PUSH2 0x2474
00002465: JUMPI
00002466: POP
00002467: POP
00002468: POP
00002469: PUSH2 0x22db
0000246c: SWAP3
0000246d: POP
0000246e: SUB
0000246f: DUP4
00002470: PUSH2 0x1f5f
00002473: JUMP
00002474: JUMPDEST
00002475: PUSH1 0x00
00002477: SWAP1
00002478: DUP2
00002479: MSTORE
0000247a: PUSH32 0x5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75
0000249b: SWAP6
0000249c: SWAP1
0000249d: SWAP4
0000249e: POP
0000249f: SWAP2
000024a0: SWAP1
000024a1: JUMPDEST
000024a2: DUP3
000024a3: DUP5
000024a4: LT
000024a5: PUSH2 0x24bd
000024a8: JUMPI
000024a9: POP
000024aa: PUSH2 0x22db
000024ad: SWAP5
000024ae: POP
000024af: POP
000024b0: POP
000024b1: DUP2
000024b2: ADD
000024b3: PUSH1 0x20
000024b5: ADD
000024b6: CODESIZE
000024b7: DUP1
000024b8: DUP1
000024b9: PUSH2 0x2390
000024bc: JUMP
000024bd: JUMPDEST
000024be: DUP6
000024bf: SLOAD
000024c0: DUP9
000024c1: DUP6
000024c2: ADD
000024c3: DUP4
000024c4: ADD
000024c5: MSTORE
000024c6: SWAP5
000024c7: DUP6
000024c8: ADD
000024c9: SWAP5
000024ca: DUP8
000024cb: SWAP5
000024cc: POP
000024cd: SWAP3
000024ce: DUP2
000024cf: ADD
000024d0: SWAP3
000024d1: PUSH2 0x24a1
000024d4: JUMP
000024d5: JUMPDEST
000024d6: PUSH1 0x00
000024d8: DUP1
000024d9: PUSH2 0x24fe
000024dc: SWAP3
000024dd: PUSH1 0x01
000024df: DUP1
000024e0: PUSH1 0xa0
000024e2: SHL
000024e3: SUB
000024e4: AND
000024e5: SWAP4
000024e6: PUSH1 0x20
000024e8: DUP2
000024e9: MLOAD
000024ea: SWAP2
000024eb: ADD
000024ec: DUP3
000024ed: DUP7
000024ee: GAS
000024ef: CALL
000024f0: PUSH2 0x24f7
000024f3: PUSH2 0x25b2
000024f6: JUMP
000024f7: JUMPDEST
000024f8: SWAP1
000024f9: DUP4
000024fa: PUSH2 0x2672
000024fd: JUMP
000024fe: JUMPDEST
000024ff: DUP1
00002500: MLOAD
00002501: SWAP1
00002502: DUP2
00002503: ISZERO
00002504: ISZERO
00002505: SWAP2
00002506: DUP3
00002507: PUSH2 0x252c
0000250a: JUMPI
0000250b: JUMPDEST
0000250c: POP
0000250d: POP
0000250e: PUSH2 0x2514
00002511: JUMPI
00002512: POP
00002513: JUMP
00002514: JUMPDEST
00002515: PUSH1 0x24
00002517: SWAP1
00002518: PUSH1 0x40
0000251a: MLOAD
0000251b: SWAP1
0000251c: PUSH4 0x5274afe7
00002521: PUSH1 0xe0
00002523: SHL
00002524: DUP3
00002525: MSTORE
00002526: PUSH1 0x04
00002528: DUP3
00002529: ADD
0000252a: MSTORE
0000252b: REVERT
0000252c: JUMPDEST
0000252d: PUSH2 0x253f
00002530: SWAP3
00002531: POP
00002532: PUSH1 0x20
00002534: DUP1
00002535: SWAP2
00002536: DUP4
00002537: ADD
00002538: ADD
00002539: SWAP2
0000253a: ADD
0000253b: PUSH2 0x2032
0000253e: JUMP
0000253f: JUMPDEST
00002540: ISZERO
00002541: CODESIZE
00002542: DUP1
00002543: PUSH2 0x250b
00002546: JUMP
00002547: JUMPDEST
00002548: PUSH1 0xff
0000254a: PUSH1 0x00
0000254c: DUP1
0000254d: MLOAD
0000254e: PUSH1 0x20
00002550: PUSH2 0x27e5
00002553: DUP4
00002554: CODECOPY
00002555: DUP2
00002556: MLOAD
00002557: SWAP2
00002558: MSTORE
00002559: SLOAD
0000255a: PUSH1 0x40
0000255c: SHR
0000255d: AND
0000255e: ISZERO
0000255f: PUSH2 0x2564
00002562: JUMPI
00002563: JUMP
00002564: JUMPDEST
00002565: PUSH1 0x40
00002567: MLOAD
00002568: PUSH4 0x1afcd79f
0000256d: PUSH1 0xe3
0000256f: SHL
00002570: DUP2
00002571: MSTORE
00002572: PUSH1 0x04
00002574: SWAP1
00002575: REVERT
00002576: JUMPDEST
00002577: DUP2
00002578: MLOAD
00002579: SWAP2
0000257a: SWAP1
0000257b: PUSH1 0x41
0000257d: DUP4
0000257e: SUB
0000257f: PUSH2 0x25a7
00002582: JUMPI
00002583: PUSH2 0x25a0
00002586: SWAP3
00002587: POP
00002588: PUSH1 0x20
0000258a: DUP3
0000258b: ADD
0000258c: MLOAD
0000258d: SWAP1
0000258e: PUSH1 0x60
00002590: PUSH1 0x40
00002592: DUP5
00002593: ADD
00002594: MLOAD
00002595: SWAP4
00002596: ADD
00002597: MLOAD
00002598: PUSH1 0x00
0000259a: BYTE
0000259b: SWAP1
0000259c: PUSH2 0x25e2
0000259f: JUMP
000025a0: JUMPDEST
000025a1: SWAP2
000025a2: SWAP3
000025a3: SWAP1
000025a4: SWAP2
000025a5: SWAP1
000025a6: JUMP
000025a7: JUMPDEST
000025a8: POP
000025a9: POP
000025aa: PUSH1 0x00
000025ac: SWAP2
000025ad: PUSH1 0x02
000025af: SWAP2
000025b0: SWAP1
000025b1: JUMP
000025b2: JUMPDEST
000025b3: RETURNDATASIZE
000025b4: ISZERO
000025b5: PUSH2 0x25dd
000025b8: JUMPI
000025b9: RETURNDATASIZE
000025ba: SWAP1
000025bb: PUSH2 0x25c3
000025be: DUP3
000025bf: PUSH2 0x1f80
000025c2: JUMP
000025c3: JUMPDEST
000025c4: SWAP2
000025c5: PUSH2 0x25d1
000025c8: PUSH1 0x40
000025ca: MLOAD
000025cb: SWAP4
000025cc: DUP5
000025cd: PUSH2 0x1f5f
000025d0: JUMP
000025d1: JUMPDEST
000025d2: DUP3
000025d3: MSTORE
000025d4: RETURNDATASIZE
000025d5: PUSH1 0x00
000025d7: PUSH1 0x20
000025d9: DUP5
000025da: ADD
000025db: RETURNDATACOPY
000025dc: JUMP
000025dd: JUMPDEST
000025de: PUSH1 0x60
000025e0: SWAP1
000025e1: JUMP
000025e2: JUMPDEST
000025e3: SWAP2
000025e4: SWAP1
000025e5: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
00002606: DUP5
00002607: GT
00002608: PUSH2 0x2666
0000260b: JUMPI
0000260c: SWAP3
0000260d: PUSH1 0x20
0000260f: SWAP3
00002610: SWAP2
00002611: PUSH1 0xff
00002613: PUSH1 0x80
00002615: SWAP6
00002616: PUSH1 0x40
00002618: MLOAD
00002619: SWAP5
0000261a: DUP6
0000261b: MSTORE
0000261c: AND
0000261d: DUP5
0000261e: DUP5
0000261f: ADD
00002620: MSTORE
00002621: PUSH1 0x40
00002623: DUP4
00002624: ADD
00002625: MSTORE
00002626: PUSH1 0x60
00002628: DUP3
00002629: ADD
0000262a: MSTORE
0000262b: PUSH1 0x00
0000262d: SWAP3
0000262e: DUP4
0000262f: SWAP2
00002630: DUP3
00002631: DUP1
00002632: MSTORE
00002633: PUSH1 0x01
00002635: GAS
00002636: STATICCALL
00002637: ISZERO
00002638: PUSH2 0x265a
0000263b: JUMPI
0000263c: DUP1
0000263d: MLOAD
0000263e: PUSH1 0x01
00002640: PUSH1 0x01
00002642: PUSH1 0xa0
00002644: SHL
00002645: SUB
00002646: DUP2
00002647: AND
00002648: ISZERO
00002649: PUSH2 0x2651
0000264c: JUMPI
0000264d: SWAP2
0000264e: DUP2
0000264f: SWAP1
00002650: JUMP
00002651: JUMPDEST
00002652: POP
00002653: DUP1
00002654: SWAP2
00002655: PUSH1 0x01
00002657: SWAP2
00002658: SWAP1
00002659: JUMP
0000265a: JUMPDEST
0000265b: PUSH1 0x40
0000265d: MLOAD
0000265e: SWAP1
0000265f: RETURNDATASIZE
00002660: SWAP1
00002661: DUP3
00002662: RETURNDATACOPY
00002663: RETURNDATASIZE
00002664: SWAP1
00002665: REVERT
00002666: JUMPDEST
00002667: POP
00002668: POP
00002669: POP
0000266a: PUSH1 0x00
0000266c: SWAP2
0000266d: PUSH1 0x03
0000266f: SWAP2
00002670: SWAP1
00002671: JUMP
00002672: JUMPDEST
00002673: SWAP1
00002674: PUSH2 0x2699
00002677: JUMPI
00002678: POP
00002679: DUP1
0000267a: MLOAD
0000267b: ISZERO
0000267c: PUSH2 0x2687
0000267f: JUMPI
00002680: DUP1
00002681: MLOAD
00002682: SWAP1
00002683: PUSH1 0x20
00002685: ADD
00002686: REVERT
00002687: JUMPDEST
00002688: PUSH1 0x40
0000268a: MLOAD
0000268b: PUSH4 0x0a12f521
00002690: PUSH1 0xe1
00002692: SHL
00002693: DUP2
00002694: MSTORE
00002695: PUSH1 0x04
00002697: SWAP1
00002698: REVERT
00002699: JUMPDEST
0000269a: DUP2
0000269b: MLOAD
0000269c: ISZERO
0000269d: DUP1
0000269e: PUSH2 0x26cc
000026a1: JUMPI
000026a2: JUMPDEST
000026a3: PUSH2 0x26aa
000026a6: JUMPI
000026a7: POP
000026a8: SWAP1
000026a9: JUMP
000026aa: JUMPDEST
000026ab: PUSH1 0x40
000026ad: MLOAD
000026ae: PUSH4 0x9996b315
000026b3: PUSH1 0xe0
000026b5: SHL
000026b6: DUP2
000026b7: MSTORE
000026b8: PUSH1 0x01
000026ba: PUSH1 0x01
000026bc: PUSH1 0xa0
000026be: SHL
000026bf: SUB
000026c0: SWAP1
000026c1: SWAP2
000026c2: AND
000026c3: PUSH1 0x04
000026c5: DUP3
000026c6: ADD
000026c7: MSTORE
000026c8: PUSH1 0x24
000026ca: SWAP1
000026cb: REVERT
000026cc: JUMPDEST
000026cd: POP
000026ce: DUP1
000026cf: EXTCODESIZE
000026d0: ISZERO
000026d1: PUSH2 0x26a2
000026d4: JUMP
000026d5: JUMPDEST
000026d6: PUSH2 0x26dd
000026d9: PUSH2 0x2350
000026dc: JUMP
000026dd: JUMPDEST
000026de: DUP1
000026df: MLOAD
000026e0: SWAP1
000026e1: DUP2
000026e2: ISZERO
000026e3: PUSH2 0x26ed
000026e6: JUMPI
000026e7: PUSH1 0x20
000026e9: ADD
000026ea: KECCAK256
000026eb: SWAP1
000026ec: JUMP
000026ed: JUMPDEST
000026ee: POP
000026ef: POP
000026f0: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100
00002711: SLOAD
00002712: DUP1
00002713: ISZERO
00002714: PUSH2 0x271a
00002717: JUMPI
00002718: SWAP1
00002719: JUMP
0000271a: JUMPDEST
0000271b: POP
0000271c: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
0000273d: SWAP1
0000273e: JUMP
0000273f: JUMPDEST
00002740: PUSH2 0x2747
00002743: PUSH2 0x2414
00002746: JUMP
00002747: JUMPDEST
00002748: DUP1
00002749: MLOAD
0000274a: SWAP1
0000274b: DUP2
0000274c: ISZERO
0000274d: PUSH2 0x2757
00002750: JUMPI
00002751: PUSH1 0x20
00002753: ADD
00002754: KECCAK256
00002755: SWAP1
00002756: JUMP
00002757: JUMPDEST
00002758: POP
00002759: POP
0000275a: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101
0000277b: SLOAD
0000277c: DUP1
0000277d: ISZERO
0000277e: PUSH2 0x271a
00002781: JUMPI
00002782: SWAP1
00002783: JUMP
00002784: INVALID
00002785: LOG1
00002786: PUSH11 0x46d94261c7517cc8ff89f6
00002792: SHR
00002793: UNKNOWN(0x0C)
00002794: UNKNOWN(0xE9)
00002795: CALLDATALOAD
00002796: SWAP9
00002797: UNKNOWN(0xE3)
00002798: UNKNOWN(0xC8)
00002799: BLOBHASH
0000279a: DUP1
0000279b: LT
0000279c: GT
0000279d: UNKNOWN(0xDE)
0000279e: UNKNOWN(0xE6)
0000279f: BLOBHASH
000027a0: UNKNOWN(0xA6)
000027a1: UNKNOWN(0xA5)
000027a2: JUMPI
000027a3: UNKNOWN(0xD1)
000027a4: MUL
000027a5: SWAP1
000027a6: AND
000027a7: UNKNOWN(0xD0)
000027a8: SWAP14
000027a9: PUSH19 0xd40fdae2fd8ceac6b6234c7706214fd39c1cd1
000027bd: UNKNOWN(0xE6)
000027be: MULMOD
000027bf: LOG0
000027c0: MSTORE
000027c1: DUP13
000027c2: NOT
000027c3: SWAP4
000027c4: STOP
000027c5: TIMESTAMP
000027c6: UNKNOWN(0xAD)
000027c7: TSTORE
000027c8: RETURNDATACOPY
000027c9: UNKNOWN(0x1F)
000027ca: UNKNOWN(0x2E)
000027cb: PUSH15 0x70edcf6d991b8a3023d3fca8047a13
000027db: ISZERO
000027dc: SWAP3
000027dd: UNKNOWN(0xF9)
000027de: UNKNOWN(0xED)
000027df: UNKNOWN(0xB9)
000027e0: REVERT
000027e1: SWAP12
000027e2: DUP10
000027e3: UNKNOWN(0xD5)
000027e4: PUSH30 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c
00002803: PUSH11 0x00a2646970667358221220
0000280f: UNKNOWN(0x0E)
00002810: CALLDATACOPY
00002811: UNKNOWN(0xDF)
00002812: MCOPY
00002813: UNKNOWN(0xEA)
00002814: DUP9
00002815: UNKNOWN(0xD5)
00002816: PUSH29 0x32006e2252777f176a3809f74f9c1296a299673340c836f464736f6c63
00002834: NUMBER
00002835: STOP
00002836: ADDMOD
00002837: NOT
00002838: STOP
00002839: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 yes yes
view
trace_id: 0x2d1294d77fc9ee81e447b42c85ede1f362aa40c45cf5232a93250bf956d572f7
call_targets: 0x43506849d7c04f9138d1a2050bbf3a0c054402dd, 0xab9d6cb7a427c0765163a7f45bb91cafe5f2d375, 0xd3494713a5cfad3f5359379dfa074e2ac8c6fd65, 0xe2f826324b2faf99e513d16d266c3f80ae87832b
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 63,
    "trace_id": "0x2d1294d77fc9ee81e447b42c85ede1f362aa40c45cf5232a93250bf956d572f7",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x43506849d7c04f9138d1a2050bbf3a0c054402dd",
        "0xab9d6cb7a427c0765163a7f45bb91cafe5f2d375",
        "0xd3494713a5cfad3f5359379dfa074e2ac8c6fd65",
        "0xe2f826324b2faf99e513d16d266c3f80ae87832b"
    ],
    "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": "0x1902f068",
            "selector": "0x1902f068",
            "calldata_variants": [
                "0x1902f068",
                "0x1902f0680000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2c8a6ae1",
            "selector": "0x2c8a6ae1",
            "calldata_variants": [
                "0x2c8a6ae1",
                "0x2c8a6ae10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x32b3a987",
            "selector": "0x32b3a987",
            "calldata_variants": [
                "0x32b3a987",
                "0x32b3a9870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3bbcb44b",
            "selector": "0x3bbcb44b",
            "calldata_variants": [
                "0x3bbcb44b",
                "0x3bbcb44b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x486a7e6b",
            "selector": "0x486a7e6b",
            "calldata_variants": [
                "0x486a7e6b",
                "0x486a7e6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4c598b56",
            "selector": "0x4c598b56",
            "calldata_variants": [
                "0x4c598b56",
                "0x4c598b560000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4f1ef286",
            "selector": "0x4f1ef286",
            "calldata_variants": [
                "0x4f1ef286",
                "0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4f872ec3",
            "selector": "0x4f872ec3",
            "calldata_variants": [
                "0x4f872ec3",
                "0x4f872ec30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5771,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x44ed21f73107d4734ac572f48e890ef0ea3f9675947c57226e3512db4e330d3b
call_targets: 0x61488ae9dedca3f29f5e72bbf23ba975862c20ba
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x44ed21f73107d4734ac572f48e890ef0ea3f9675947c57226e3512db4e330d3b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x61488ae9dedca3f29f5e72bbf23ba975862c20ba"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x1902f068",
            "selector": "0x1902f068",
            "calldata_variants": [
                "0x1902f068",
                "0x1902f0680000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2c8a6ae1",
            "selector": "0x2c8a6ae1",
            "calldata_variants": [
                "0x2c8a6ae1",
                "0x2c8a6ae10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x32b3a987",
            "selector": "0x32b3a987",
            "calldata_variants": [
                "0x32b3a987",
                "0x32b3a9870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3bbcb44b",
            "selector": "0x3bbcb44b",
            "calldata_variants": [
                "0x3bbcb44b",
                "0x3bbcb44b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x486a7e6b",
            "selector": "0x486a7e6b",
            "calldata_variants": [
                "0x486a7e6b",
                "0x486a7e6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4c598b56",
            "selector": "0x4c598b56",
            "calldata_variants": [
                "0x4c598b56",
                "0x4c598b560000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4f1ef286",
            "selector": "0x4f1ef286",
            "calldata_variants": [
                "0x4f1ef286",
                "0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4f872ec3",
            "selector": "0x4f872ec3",
            "calldata_variants": [
                "0x4f872ec3",
                "0x4f872ec30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 767,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1344,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3815,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 7,
    "guards_detected": []
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x44ed21f73107d4734ac572f48e890ef0ea3f9675947c57226e3512db4e330d3b
call_targets: 0x61488ae9dedca3f29f5e72bbf23ba975862c20ba
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x44ed21f73107d4734ac572f48e890ef0ea3f9675947c57226e3512db4e330d3b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x61488ae9dedca3f29f5e72bbf23ba975862c20ba"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x1902f068",
            "selector": "0x1902f068",
            "calldata_variants": [
                "0x1902f068",
                "0x1902f0680000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2c8a6ae1",
            "selector": "0x2c8a6ae1",
            "calldata_variants": [
                "0x2c8a6ae1",
                "0x2c8a6ae10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x32b3a987",
            "selector": "0x32b3a987",
            "calldata_variants": [
                "0x32b3a987",
                "0x32b3a9870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3bbcb44b",
            "selector": "0x3bbcb44b",
            "calldata_variants": [
                "0x3bbcb44b",
                "0x3bbcb44b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x486a7e6b",
            "selector": "0x486a7e6b",
            "calldata_variants": [
                "0x486a7e6b",
                "0x486a7e6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4c598b56",
            "selector": "0x4c598b56",
            "calldata_variants": [
                "0x4c598b56",
                "0x4c598b560000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4f1ef286",
            "selector": "0x4f1ef286",
            "calldata_variants": [
                "0x4f1ef286",
                "0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4f872ec3",
            "selector": "0x4f872ec3",
            "calldata_variants": [
                "0x4f872ec3",
                "0x4f872ec30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 767,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1344,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3815,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 7,
    "guards_detected": [],
    "untrusted_call_count": 7
}
medium reentrancy slither Reentrancy in L1OpUSDCBridgeAdapter.burnLockedUSDC() (src/contracts/L1OpUSDCBridgeAdapter.sol#113-137): 75 no
view
evidence_json
{
    "impact": "Medium",
    "detector": "reentrancy-no-eth",
    "elements": [
        {
            "name": "burnLockedUSDC",
            "type": "function",
            "source_mapping": {
                "lines": [
                    113,
                    114,
                    115,
                    116,
                    117,
                    118,
                    119,
                    120,
                    121,
                    122,
                    123,
                    124,
                    125,
                    126,
                    127,
                    128,
                    129,
                    130,
                    131,
                    132,
                    133,
                    134,
                    135,
                    136,
                    137
                ],
                "start": 4694,
                "length": 1141,
                "ending_column": 4,
                "is_dependency": false,
                "filename_short": "src/contracts/L1OpUSDCBridgeAdapter.sol",
                "starting_column": 3,
                "filename_absolute": "/tmp/slither-c67tibmq/src/contracts/L1OpUSDCBridgeAdapter.sol",
                "filename_relative": "src/contracts/L1OpUSDCBridgeAdapter.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "L1OpUSDCBridgeAdapter",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            18,
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40,
                            41,
                            42,
                            43,
                            44,
                            45,
                            46,
                            47,
                            48,
                            49,
                            50,
                            51,
                            52,
                            53,
                            54,
                            55,
                            56,
                            57,
                            58,
                            59,
                            60,
                            61,
                            62,
                            63,
                            64,
                            65,
                            66,
                            67,
                            68,
                            69,
                            70,
                            71,
                            72,
                            73,
                            74,
                            75,
                            76,
                            77,
                            78,
                            79,
                            80,
                            81,
                            82,
                            83,
                            84,
                            85,
                            86,
                            87,
                            88,
                            89,
                            90,
                            91,
                            92,
                            93,
                            94,
                            95,
                            96,
                            97,
                            98,
                            99,
                            100,
                            101,
                            102,
                            103,
                            104,
                            105,
                            106,
                            107,
                            108,
                            109,
                            110,
                            111,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125,
                            126,
                            127,
                            128,
                            129,
                            130,
                            131,
                            132,
                            133,
                            134,
                            135,
                            136,
                            137,
                            138,
                            139,
                            140,
                            141,
                            142,
                            143,
                            144,
                            145,
                            146,
                            147,
                            148,
                            149,
                            150,
                            151,
                            152,
                            153,
                            154,
                            155,
                            156,
                            157,
                            158,
                            159,
                            160,
                            161,
                            162,
                            163,
                            164,
                            165,
                            166,
                            167,
                            168,
                            169,
                            170,
                            171,
                            172,
                            173,
                            174,
                            175,
                            176,
                            177,
                            178,
                            179,
                            180,
                            181,
                            182,
                            183,
                            184,
                            185,
                            186,
                            187,
                            188,
                            189,
                            190,
                            191,
                            192,
                            193,
                            194,
                            195,
                            196,
                            197,
                            198,
                            199,
                            200,
                            201,
                            202,
                            203,
                            204,
                            205,
                            206,
                            207,
                            208,
                            209,
                            210,
                            211,
                            212,
                            213,
                            214,
                            215,
                            216,
                            217,
                            218,
                            219,
                            220,
                            221,
                            222,
                            223,
                            224,
                            225,
                            226,
                            227,
                            228,
                            229,
                            230,
                            231,
                            232,
                            233,
                            234,
                            235,
                            236,
                            237,
                            238,
                            239,
                            240,
                            241,
                            242,
                            243,
                            244,
                            245,
                            246,
                            247,
                            248,
                            249,
                            250,
                            251,
                            252,
                            253,
                            254,
                            255,
                            256,
                            257,
                            258,
                            259,
                            260,
                            261,
                            262,
                            263,
                            264,
                            265,
                            266,
                            267,
                            268,
                            269,
                            270,
                            271,
                            272,
                            273,
                            274,
                            275,
                            276,
                            277,
                            278,
                            279,
                            280,
                            281,
                            282,
                            283,
                            284,
                            285,
                            286,
                            287,
                            288,
                            289,
                            290,
                            291,
                            292,
                            293,
                            294,
                            295,
                            296,
                            297,
                            298,
                            299,
                            300,
                            301,
                            302,
                            303,
                            304,
                            305,
                            306,
                            307,
                            308,
                            309,
                            310,
                            311,
                            312,
                            313,
                            314,
                            315,
                            316,
                            317,
                            318,
                            319,
                            320,
                            321,
                            322,
                            323,
                            324,
                            325,
                            326,
                            327,
                            328,
                            329,
                            330,
                            331,
                            332,
                            333,
                            334,
                            335
                        ],
                        "start": 920,
                        "length": 13162,
                        "ending_column": 2,
                        "is_dependency": false,
                        "filename_short": "src/contracts/L1OpUSDCBridgeAdapter.sol",
                        "starting_column": 1,
                        "filename_absolute": "/tmp/slither-c67tibmq/src/contracts/L1OpUSDCBridgeAdapter.sol",
                        "filename_relative": "src/contracts/L1OpUSDCBridgeAdapter.sol"
                    }
                },
                "signature": "burnLockedUSDC()"
            }
        },
        {
            "name": "IUSDC(USDC).burn(_burnAmount)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    130
                ],
                "start": 5672,
                "length": 29,
                "ending_column": 36,
                "is_dependency": false,
                "filename_short": "src/contracts/L1OpUSDCBridgeAdapter.sol",
                "starting_column": 7,
                "filename_absolute": "/tmp/slither-c67tibmq/src/contracts/L1OpUSDCBridgeAdapter.sol",
                "filename_relative": "src/contracts/L1OpUSDCBridgeAdapter.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "burnLockedUSDC",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125,
                            126,
                            127,
                            128,
                            129,
                            130,
                            131,
                            132,
                            133,
                            134,
                            135,
                            136,
                            137
                        ],
                        "start": 4694,
                        "length": 1141,
                        "ending_column": 4,
                        "is_dependency": false,
                        "filename_short": "src/contracts/L1OpUSDCBridgeAdapter.sol",
                        "starting_column": 3,
                        "filename_absolute": "/tmp/slither-c67tibmq/src/contracts/L1OpUSDCBridgeAdapter.sol",
                        "filename_relative": "src/contracts/L1OpUSDCBridgeAdapter.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "L1OpUSDCBridgeAdapter",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    18,
                                    19,
                                    20,
                                    21,
                                    22,
                                    23,
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131,
                                    132,
                                    133,
                                    134,
                                    135,
                                    136,
                                    137,
                                    138,
                                    139,
                                    140,
                                    141,
                                    142,
                                    143,
                                    144,
                                    145,
                                    146,
                                    147,
                                    148,
                                    149,
                                    150,
                                    151,
                                    152,
                                    153,
                                    154,
                                    155,
                                    156,
                                    157,
                                    158,
                                    159,
                                    160,
                                    161,
                                    162,
                                    163,
                                    164,
                                    165,
                                    166,
                                    167,
                                    168,
                                    169,
                                    170,
                                    171,
                                    172,
                                    173,
                                    174,
                                    175,
                                    176,
                                    177,
                                    178,
                                    179,
                                    180,
                                    181,
                                    182,
                                    183,
                                    184,
                                    185,
                                    186,
                                    187,
                                    188,
                                    189,
                                    190,
                                    191,
                                    192,
                                    193,
                                    194,
                                    195,
                                    196,
                                    197,
                                    198,
                                    199,
                                    200,
                                    201,
                                    202,
                                    203,
                                    204,
                                    205,
                                    206,
                                    207,
                                    208,
                                    209,
                                    210,
                                    211,
                                    212,
                                    213,
                                    214,
                                    215,
                                    216,
                                    217,
                                    218,
                                    219,
                                    220,
                                    221,
                                    222,
                                    223,
                                    224,
                                    225,
                                    226,
                                    227,
                                    228,
                                    229,
                                    230,
                                    231,
                                    232,
                                    233,
                                    234,
                                    235,
                                    236,
                                    237,
                                    238,
                                    239,
                                    240,
                                    241,
                                    242,
                                    243,
                                    244,
                                    245,
                                    246,
                                    247,
                                    248,
                                    249,
                                    250,
                                    251,
                                    252,
                                    253,
                                    254,
                                    255,
                                    256,
                                    257,
                                    258,
                                    259,
                                    260,
                                    261,
                                    262,
                                    263,
                                    264,
                                    265,
                                    266,
                                    267,
                                    268,
                                    269,
                                    270,
                                    271,
                                    272,
                                    273,
                                    274,
                                    275,
                                    276,
                                    277,
                                    278,
                                    279,
                                    280,
                                    281,
                                    282,
                                    283,
                                    284,
                                    285,
                                    286,
                                    287,
                                    288,
                                    289,
                                    290,
                                    291,
                                    292,
                                    293,
                                    294,
                                    295,
                                    296,
                                    297,
                                    298,
                                    299,
                                    300,
                                    301,
                                    302,
                                    303,
                                    304,
                                    305,
                                    306,
                                    307,
                                    308,
                                    309,
                                    310,
                                    311,
                                    312,
                                    313,
                                    314,
                                    315,
                                    316,
                                    317,
                                    318,
                                    319,
                                    320,
                                    321,
                                    322,
                                    323,
                                    324,
                                    325,
                                    326,
                                    327,
                                    328,
                                    329,
                                    330,
                                    331,
                                    332,
                                    333,
                                    334,
                                    335
                                ],
                                "start": 920,
                                "length": 13162,
                                "ending_column": 2,
                                "is_dependency": false,
                                "filename_short": "src/contracts/L1OpUSDCBridgeAdapter.sol",
                                "starting_column": 1,
                                "filename_absolute": "/tmp/slither-c67tibmq/src/contracts/L1OpUSDCBridgeAdapter.sol",
                                "filename_relative": "src/contracts/L1OpUSDCBridgeAdapter.sol"
                            }
                        },
                        "signature": "burnLockedUSDC()"
                    }
                }
            }
        },
        {
            "name": "burnAmount = 0",
            "type": "node",
            "source_mapping": {
                "lines": [
                    134
                ],
                "start": 5746,
                "length": 14,
                "ending_column": 19,
                "is_dependency": false,
                "filename_short": "src/contracts/L1OpUSDCBridgeAdapter.sol",
                "starting_column": 5,
                "filename_absolute": "/tmp/slither-c67tibmq/src/contracts/L1OpUSDCBridgeAdapter.sol",
                "filename_relative": "src/contracts/L1OpUSDCBridgeAdapter.sol"
            },
            "additional_fields": {
                "variable_name": "burnAmount",
                "underlying_type": "variables_written"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "burnLockedUSDC",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125,
                            126,
                            127,
                            128,
                            129,
                            130,
                            131,
                            132,
                            133,
                            134,
                            135,
                            136,
                            137
                        ],
                        "start": 4694,
                        "length": 1141,
                        "ending_column": 4,
                        "is_dependency": false,
                        "filename_short": "src/contracts/L1OpUSDCBridgeAdapter.sol",
                        "starting_column": 3,
                        "filename_absolute": "/tmp/slither-c67tibmq/src/contracts/L1OpUSDCBridgeAdapter.sol",
                        "filename_relative": "src/contracts/L1OpUSDCBridgeAdapter.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "L1OpUSDCBridgeAdapter",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    18,
                                    19,
                                    20,
                                    21,
                                    22,
                                    23,
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131,
                                    132,
                                    133,
                                    134,
                                    135,
                                    136,
                                    137,
                                    138,
                                    139,
                                    140,
                                    141,
                                    142,
                                    143,
                                    144,
                                    145,
                                    146,
                                    147,
                                    148,
                                    149,
                                    150,
                                    151,
                                    152,
                                    153,
                                    154,
                                    155,
                                    156,
                                    157,
                                    158,
                                    159,
                                    160,
                                    161,
                                    162,
                                    163,
                                    164,
                                    165,
                                    166,
                                    167,
                                    168,
                                    169,
                                    170,
                                    171,
                                    172,
                                    173,
                                    174,
                                    175,
                                    176,
                                    177,
                                    178,
                                    179,
                                    180,
                                    181,
                                    182,
                                    183,
                                    184,
                                    185,
                                    186,
                                    187,
                                    188,
                                    189,
                                    190,
                                    191,
                                    192,
                                    193,
                                    194,
                                    195,
                                    196,
                                    197,
                                    198,
                                    199,
                                    200,
                                    201,
                                    202,
                                    203,
                                    204,
                                    205,
                                    206,
                                    207,
                                    208,
                                    209,
                                    210,
                                    211,
                                    212,
                                    213,
                                    214,
                                    215,
                                    216,
                                    217,
                                    218,
                                    219,
                                    220,
                                    221,
                                    222,
                                    223,
                                    224,
                                    225,
                                    226,
                                    227,
                                    228,
                                    229,
                                    230,
                                    231,
                                    232,
                                    233,
                                    234,
                                    235,
                                    236,
                                    237,
                                    238,
                                    239,
                                    240,
                                    241,
                                    242,
                                    243,
                                    244,
                                    245,
                                    246,
                                    247,
                                    248,
                                    249,
                                    250,
                                    251,
                                    252,
                                    253,
                                    254,
                                    255,
                                    256,
                                    257,
                                    258,
                                    259,
                                    260,
                                    261,
                                    262,
                                    263,
                                    264,
                                    265,
                                    266,
                                    267,
                                    268,
                                    269,
                                    270,
                                    271,
                                    272,
                                    273,
                                    274,
                                    275,
                                    276,
                                    277,
                                    278,
                                    279,
                                    280,
                                    281,
                                    282,
                                    283,
                                    284,
                                    285,
                                    286,
                                    287,
                                    288,
                                    289,
                                    290,
                                    291,
                                    292,
                                    293,
                                    294,
                                    295,
                                    296,
                                    297,
                                    298,
                                    299,
                                    300,
                                    301,
                                    302,
                                    303,
                                    304,
                                    305,
                                    306,
                                    307,
                                    308,
                                    309,
                                    310,
                                    311,
                                    312,
                                    313,
                                    314,
                                    315,
                                    316,
                                    317,
                                    318,
                                    319,
                                    320,
                                    321,
                                    322,
                                    323,
                                    324,
                                    325,
                                    326,
                                    327,
                                    328,
                                    329,
                                    330,
                                    331,
                                    332,
                                    333,
                                    334,
                                    335
                                ],
                                "start": 920,
                                "length": 13162,
                                "ending_column": 2,
                                "is_dependency": false,
                                "filename_short": "src/contracts/L1OpUSDCBridgeAdapter.sol",
                                "starting_column": 1,
                                "filename_absolute": "/tmp/slither-c67tibmq/src/contracts/L1OpUSDCBridgeAdapter.sol",
                                "filename_relative": "src/contracts/L1OpUSDCBridgeAdapter.sol"
                            }
                        },
                        "signature": "burnLockedUSDC()"
                    }
                }
            }
        },
        {
            "name": "burnCaller = address(0)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    135
                ],
                "start": 5766,
                "length": 23,
                "ending_column": 28,
                "is_dependency": false,
                "filename_short": "src/contracts/L1OpUSDCBridgeAdapter.sol",
                "starting_column": 5,
                "filename_absolute": "/tmp/slither-c67tibmq/src/contracts/L1OpUSDCBridgeAdapter.sol",
                "filename_relative": "src/contracts/L1OpUSDCBridgeAdapter.sol"
            },
            "additional_fields": {
                "variable_name": "burnCaller",
                "underlying_type": "variables_written"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "burnLockedUSDC",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125,
                            126,
                            127,
                            128,
                            129,
                            130,
                            131,
                            132,
                            133,
                            134,
                            135,
                            136,
                            137
                        ],
                        "start": 4694,
                        "length": 1141,
                        "ending_column": 4,
                        "is_dependency": false,
                        "filename_short": "src/contracts/L1OpUSDCBridgeAdapter.sol",
                        "starting_column": 3,
                        "filename_absolute": "/tmp/slither-c67tibmq/src/contracts/L1OpUSDCBridgeAdapter.sol",
                        "filename_relative": "src/contracts/L1OpUSDCBridgeAdapter.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "L1OpUSDCBridgeAdapter",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    18,
                                    19,
                                    20,
                                    21,
                                    22,
                                    23,
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131,
                                    132,
                                    133,
                                    134,
                                    135,
                                    136,
                                    137,
                                    138,
                                    139,
                                    140,
                                    141,
                                    142,
                                    143,
                                    144,
                                    145,
                                    146,
                                    147,
                                    148,
                                    149,
                                    150,
                                    151,
                                    152,
                                    153,
                                    154,
                                    155,
                                    156,
                                    157,
                                    158,
                                    159,
                                    160,
                                    161,
                                    162,
                                    163,
                                    164,
                                    165,
                                    166,
                                    167,
                                    168,
                                    169,
                                    170,
                                    171,
                                    172,
                                    173,
                                    174,
                                    175,
                                    176,
                                    177,
                                    178,
                                    179,
                                    180,
                                    181,
                                    182,
                                    183,
                                    184,
                                    185,
                                    186,
                                    187,
                                    188,
                                    189,
                                    190,
                                    191,
                                    192,
                                    193,
                                    194,
                                    195,
                                    196,
                                    197,
                                    198,
                                    199,
                                    200,
                                    201,
                                    202,
                                    203,
                                    204,
                                    205,
                                    206,
                                    207,
                                    208,
                                    209,
                                    210,
                                    211,
                                    212,
                                    213,
                                    214,
                                    215,
                                    216,
                                    217,
                                    218,
                                    219,
                                    220,
                                    221,
                                    222,
                                    223,
                                    224,
                                    225,
                                    226,
                                    227,
                                    228,
                                    229,
                                    230,
                                    231,
                                    232,
                                    233,
                                    234,
                                    235,
                                    236,
                                    237,
                                    238,
                                    239,
                                    240,
                                    241,
                                    242,
                                    243,
                                    244,
                                    245,
                                    246,
                                    247,
                                    248,
                                    249,
                                    250,
                                    251,
                                    252,
                                    253,
                                    254,
                                    255,
                                    256,
                                    257,
                                    258,
                                    259,
                                    260,
                                    261,
                                    262,
                                    263,
                                    264,
                                    265,
                                    266,
                                    267,
                                    268,
                                    269,
                                    270,
                                    271,
                                    272,
                                    273,
                                    274,
                                    275,
                                    276,
                                    277,
                                    278,
                                    279,
                                    280,
                                    281,
                                    282,
                                    283,
                                    284,
                                    285,
                                    286,
                                    287,
                                    288,
                                    289,
                                    290,
                                    291,
                                    292,
                                    293,
                                    294,
                                    295,
                                    296,
                                    297,
                                    298,
                                    299,
                                    300,
                                    301,
                                    302,
                                    303,
                                    304,
                                    305,
                                    306,
                                    307,
                                    308,
                                    309,
                                    310,
                                    311,
                                    312,
                                    313,
                                    314,
                                    315,
                                    316,
                                    317,
                                    318,
                                    319,
                                    320,
                                    321,
                                    322,
                                    323,
                                    324,
                                    325,
                                    326,
                                    327,
                                    328,
                                    329,
                                    330,
                                    331,
                                    332,
                                    333,
                                    334,
                                    335
                                ],
                                "start": 920,
                                "length": 13162,
                                "ending_column": 2,
                                "is_dependency": false,
                                "filename_short": "src/contracts/L1OpUSDCBridgeAdapter.sol",
                                "starting_column": 1,
                                "filename_absolute": "/tmp/slither-c67tibmq/src/contracts/L1OpUSDCBridgeAdapter.sol",
                                "filename_relative": "src/contracts/L1OpUSDCBridgeAdapter.sol"
                            }
                        },
                        "signature": "burnLockedUSDC()"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "src/contracts/L1OpUSDCBridgeAdapter.sol",
            "name": "burnLockedUSDC",
            "type": "function",
            "lines": [
                113,
                114,
                115,
                116,
                117,
                118,
                119,
                120,
                121,
                122,
                123,
                124,
                125,
                126,
                127,
                128,
                129,
                130,
                131,
                132,
                133,
                134,
                135,
                136,
                137
            ]
        },
        {
            "file": "src/contracts/L1OpUSDCBridgeAdapter.sol",
            "name": "IUSDC(USDC).burn(_burnAmount)",
            "type": "node",
            "lines": [
                130
            ]
        },
        {
            "file": "src/contracts/L1OpUSDCBridgeAdapter.sol",
            "name": "burnAmount = 0",
            "type": "node",
            "lines": [
                134
            ]
        },
        {
            "file": "src/contracts/L1OpUSDCBridgeAdapter.sol",
            "name": "burnCaller = address(0)",
            "type": "node",
            "lines": [
                135
            ]
        }
    ],
    "description": "Reentrancy in L1OpUSDCBridgeAdapter.burnLockedUSDC() (src/contracts/L1OpUSDCBridgeAdapter.sol#113-137):\n\tExternal calls:\n\t- IUSDC(USDC).burn(_burnAmount) (src/contracts/L1OpUSDCBridgeAdapter.sol#130)\n\tState variables written after the call(s):\n\t- burnAmount = 0 (src/contracts/L1OpUSDCBridgeAdapter.sol#134)\n\tL1OpUSDCBridgeAdapter.burnAmount (src/contracts/L1OpUSDCBridgeAdapter.sol#22) can be used in cross function reentrancies:\n\t- L1OpUSDCBridgeAdapter.burnAmount (src/contracts/L1OpUSDCBridgeAdapter.sol#22)\n\t- L1OpUSDCBridgeAdapter.burnLockedUSDC() (src/contracts/L1OpUSDCBridgeAdapter.sol#113-137)\n\t- L1OpUSDCBridgeAdapter.setBurnAmount(uint256) (src/contracts/L1OpUSDCBridgeAdapter.sol#100-107)\n\t- burnCaller = address(0) (src/contracts/L1OpUSDCBridgeAdapter.sol#135)\n\tL1OpUSDCBridgeAdapter.burnCaller (src/contracts/L1OpUSDCBridgeAdapter.sol#25) can be used in cross function reentrancies:\n\t- L1OpUSDCBridgeAdapter.burnCaller (src/contracts/L1OpUSDCBridgeAdapter.sol#25)\n\t- L1OpUSDCBridgeAdapter.burnLockedUSDC() (src/contracts/L1OpUSDCBridgeAdapter.sol#113-137)\n\t- L1OpUSDCBridgeAdapter.migrateToNative(address,address,uint32,uint32) (src/contracts/L1OpUSDCBridgeAdapter.sol#68-93)"
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium other codex Replayable failed messages inflate locked funds accounting 75 no
view
evidence_json
{
    "evidence": "`receiveMessage` increments `lockedFundsDetails[_spender][_user]` on every failed attempt without replay protection.",
    "locations": [
        "contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:260",
        "contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:265",
        "contracts/src/contracts/L1OpUSDCBridgeAdapter.sol:266"
    ],
    "recommendation": "Make `receiveMessage` idempotent for failed deliveries by tracking a unique message identifier and only crediting `lockedFundsDetails` once (e.g., include a nonce/messageId in the L2->L1 payload and store a processed/failure marker). Alternatively, store the locked amount as a set-once value instead of additive increments for the same message.",
    "exploit_scenario": "If USDC transfers fail (e.g., paused/blacklisted), `receiveMessage` records `_amount` in `lockedFundsDetails`. Because the cross-domain messenger allows replaying failed messages, an attacker can repeatedly relay the same failing message, incrementing `lockedFundsDetails` each time. Once transfers succeed again, `withdrawLockedFunds` lets the attacker withdraw the inflated amount, draining funds locked for other users."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 9
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 16
}