diff --git a/Makefile b/Makefile index f92d7bb..9e61395 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ update:; forge update build:; forge fmt && forge build -test :; forge test +test :; forge fmt && forge build && forge test snapshot :; forge snapshot diff --git a/foundry.toml b/foundry.toml index 982904a..9b1f029 100644 --- a/foundry.toml +++ b/foundry.toml @@ -2,6 +2,6 @@ src = 'src' out = 'out' libs = ['lib'] -remappings = ["@openzeppelin/contracts-upgradeable=lib/openzeppelin-contracts-upgradeable/contracts", "@openzeppelin/contracts=lib/openzeppelin-contracts/contracts"] +remappings = ["@openzeppelin/contracts-upgradeable=lib/openzeppelin-contracts-upgradeable/contracts", "@openzeppelin/contracts=lib/openzeppelin-contracts/contracts", "solmate=lib/solmate/src"] # See more config options https://github.com/foundry-rs/foundry/tree/master/config \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0a5cfc1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,24 @@ +{ + "name": "GIVfi", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "solmate": "^6.6.1" + } + }, + "node_modules/solmate": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/solmate/-/solmate-6.6.1.tgz", + "integrity": "sha512-WHvRXQvGtgR6R9nmkDTz/d+oULMqf/D33rlzQyadTX2SbuTmaW7ToEjGjGtWUVCQwZsZ/JP3vbOEVv7fB50btg==" + } + }, + "dependencies": { + "solmate": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/solmate/-/solmate-6.6.1.tgz", + "integrity": "sha512-WHvRXQvGtgR6R9nmkDTz/d+oULMqf/D33rlzQyadTX2SbuTmaW7ToEjGjGtWUVCQwZsZ/JP3vbOEVv7fB50btg==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e553e7c --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "solmate": "^6.6.1" + } +} diff --git a/script/Config.sol b/script/Config.sol index 72916b4..18a1f07 100644 --- a/script/Config.sol +++ b/script/Config.sol @@ -7,6 +7,7 @@ contract Config { address[] donationRecipient; address[] feeReceiver; address[] admins; + uint256 minFee; } NetworkConfig private activeNetworkConfig; @@ -34,7 +35,7 @@ contract Config { feeReceivers[0] = address(1); admins[0] = address(1); - return getConfig(acceptedTokens, donationRecipients, feeReceivers, admins); + return getConfig(acceptedTokens, donationRecipients, feeReceivers, admins, 5e16); } // ================== Gnosis Config ================== @@ -50,7 +51,7 @@ contract Config { feeReceivers[0] = address(1); admins[0] = address(1); - return getConfig(acceptedTokens, donationRecipients, feeReceivers, admins); + return getConfig(acceptedTokens, donationRecipients, feeReceivers, admins, 5e16); } // ================== Goerli Config ================== @@ -66,7 +67,7 @@ contract Config { feeReceivers[0] = address(1); admins[0] = address(1); - return getConfig(acceptedTokens, donationRecipients, feeReceivers, admins); + return getConfig(acceptedTokens, donationRecipients, feeReceivers, admins, 5e16); } // ================== Helper ================== @@ -79,7 +80,8 @@ contract Config { address[] memory _acceptedToken, address[] memory _donationRecipient, address[] memory _feeReceiver, - address[] memory _admins + address[] memory _admins, + uint256 _minFee ) internal pure returns (NetworkConfig memory) { uint256 tLength = _acceptedToken.length; uint256 dLength = _donationRecipient.length; @@ -90,7 +92,8 @@ contract Config { acceptedToken: new address[](tLength), donationRecipient: new address[](dLength), feeReceiver: new address[](fLength), - admins: new address[](aLength) + admins: new address[](aLength), + minFee: _minFee }); for (uint256 i = 0; i < tLength; i++) { @@ -127,4 +130,8 @@ contract Config { function getAdmins() public view returns (address[] memory) { return activeNetworkConfig.admins; } + + function getMinFee() public view returns (uint256) { + return activeNetworkConfig.minFee; + } } diff --git a/script/DonationHandler.s.sol b/script/DonationHandler.s.sol index 39c1afe..ae2269b 100644 --- a/script/DonationHandler.s.sol +++ b/script/DonationHandler.s.sol @@ -5,7 +5,7 @@ import "forge-std/Script.sol"; import "./Config.sol"; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; -import "../src/DonationHandler.sol"; +import "../src/DonationHandler/DonationHandler.sol"; contract DeployDonationHandler is Script, Config { function run() external { @@ -23,7 +23,11 @@ contract DeployDonationHandler is Script, Config { ); DonationHandler(address(proxy)).initialize( - config.getAcceptedTokens(), config.getDonationRecipients(), config.getFeeReceivers(), config.getAdmins() + config.getAcceptedTokens(), + config.getDonationRecipients(), + config.getFeeReceivers(), + config.getAdmins(), + config.getMinFee() ); vm.stopBroadcast(); diff --git a/src/DonationHandler.sol b/src/DonationHandler/DonationHandler.sol similarity index 67% rename from src/DonationHandler.sol rename to src/DonationHandler/DonationHandler.sol index 919e83e..561f921 100644 --- a/src/DonationHandler.sol +++ b/src/DonationHandler/DonationHandler.sol @@ -6,19 +6,18 @@ import {SafeERC20Upgradeable as SafeERC20} from "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol"; import {ReentrancyGuardUpgradeable as ReentrancyGuard} from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol"; -import {MulticallUpgradeable as Multicall} from "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol"; import "./DonationHandlerRoles.sol"; +import "../gitcoin/IVotingStrategy.sol"; /// @title DonationHandler /// @author @Kurt for Giveth /// @notice This contract is used to handle donations /// This contract is build to use with proxies. /// -/// The user can donate whitelisted token to whitelisted recipients by calling the donate function. -/// A donation fee can be set by the user. The fee is taken from the donation amount. -/// The donation fee is a percentage of the donation amount where 1e18 is 100%, 1e17 10%, etc.. -/// The donation fee can be set by the user and is limited by the minFee and maxFee. -/// The min fee is set by default to 0 and can be changed by the protocol admins. +/// The user can donate whitelisted token to whitelisted recipients by calling the vote function. +/// +/// The fee is deducted from the users donation, assigned to the contracts address and can be withdrawn by a fee receiver. +/// The min fee is set during initialization and can be changed by the protocol admins. /// The max fee is set by default to 1e18 and can't be changed. /// /// The user can withdraw the donation of a single token by calling the withdraw function. @@ -32,7 +31,7 @@ import "./DonationHandlerRoles.sol"; /// /// The donation balance of one token can be checked by calling the balanceOf function. /// The donation balance of multiple token can be checked by calling the balancesOf function. -contract DonationHandler is DonationHandlerRoles, ReentrancyGuard, Multicall { +contract DonationHandler is IVotingStrategy, DonationHandlerRoles, ReentrancyGuard { using SafeERC20 for IERC20; /// @notice 1e18 represents 100%, 1e16 represents 1% @@ -41,6 +40,9 @@ contract DonationHandler is DonationHandlerRoles, ReentrancyGuard, Multicall { /// @notice Minimum donation fee. 0 by default uint256 public minFee; + bool public isTokenWhitelistActive; + bool public isRecipientWhitelistActive; + /// @notice mapping: user => token => amount mapping(address => mapping(address => uint256)) public balances; @@ -49,45 +51,87 @@ contract DonationHandler is DonationHandlerRoles, ReentrancyGuard, Multicall { /// @param _donationReceiver Array of donation receivers /// @param _feeReceiver Array of fee receivers /// @param _admins Array of admins + /// @param _minFee Minimum donation fee function initialize( address[] calldata _acceptedToken, address[] calldata _donationReceiver, address[] calldata _feeReceiver, - address[] calldata _admins + address[] calldata _admins, + uint256 _minFee ) public initializer { + __DonationHandler_init(_acceptedToken, _donationReceiver, _feeReceiver, _admins, _minFee); + } + + function __DonationHandler_init( + address[] calldata _acceptedToken, + address[] calldata _donationReceiver, + address[] calldata _feeReceiver, + address[] calldata _admins, + uint256 _minFee + ) internal onlyInitializing { __DonationHandlerRoles_init(_acceptedToken, _donationReceiver, _feeReceiver, _admins); __ReentrancyGuard_init(); - __Multicall_init(); + + if (_acceptedToken.length > 0) { + isTokenWhitelistActive = true; + } + if (_donationReceiver.length > 0) { + isRecipientWhitelistActive = true; + } + + if (_minFee > 0) { + _setMinFee(_minFee); + } } - /// @notice Donate tokens to a recipient. The fee is deducted from the donation amount. - /// @param _token Address of the token to donate - /// @param _recipient Address of the recipient - /// @param _amount Amount of tokens to donate - /// @param _fee Fee to be paid to the fee receiver (protocol) - function donate(address _token, address _recipient, uint256 _amount, uint256 _fee) external payable nonReentrant { - if (_fee > HUNDRED) revert FeeTooHigh(); - if (_fee < minFee) revert FeeTooLow(); - if (_amount == 0) revert InvalidAmount(); + /// @notice Donate(vote) to a whitelisted recipient. + /// @param encodedVotes Array of donations + /// @param voterAddress Address of the voter + function vote(bytes[] calldata encodedVotes, address voterAddress) + external + payable + override + nonReentrant + isRoundContract + { + /// @dev iterate over multiple donations and transfer funds + uint256 length = encodedVotes.length; + uint256 msgValue = 0; - _validateDonation(_token, _recipient); + for (uint256 i = 0; i < length;) { + (address _token, uint256 _amount, address _grantAddress) = + abi.decode(encodedVotes[i], (address, uint256, address)); - if (_token != NATIVE) { - _transfer(_token, _amount); - } else { - if (msg.value != _amount) revert InvalidAmount(); - } + if (isTokenWhitelistActive) _checkToken(_token); + if (isRecipientWhitelistActive) { + _checkDonationRecipient(_grantAddress); + } - if (_fee == 0) { - _registerDonation(_token, _recipient, _amount); - } else if (_fee == HUNDRED) { - _registerFee(_token, _amount); - } else { - uint256 feeAmount = (_amount * _fee) / HUNDRED; - uint256 donationAmount = _amount - feeAmount; + if (_token != NATIVE) { + _transfer(voterAddress, _token, _amount); + } else { + msgValue += _amount; + } + + /// @dev emit event for transfer + emit Voted(_token, _amount, voterAddress, _grantAddress, msg.sender); - _registerDonation(_token, _recipient, donationAmount); - _registerFee(_token, feeAmount); + if (minFee > 0) { + uint256 fee = (_amount * minFee) / HUNDRED; + + _registerDonation(_token, _grantAddress, _amount - fee); + _registerFee(_token, fee); + } else { + _registerDonation(_token, _grantAddress, _amount); + } + + unchecked { + i++; + } + } + + if (msgValue > msg.value) { + revert InvalidAmount(); } } @@ -108,19 +152,11 @@ contract DonationHandler is DonationHandlerRoles, ReentrancyGuard, Multicall { emit DonationRegistered(_token, msg.sender, _recipient, _amount); } - /// @notice Internal function. Validates a donation by checking if token and donation recipient are whitelisted. - /// @param _token Address of the token - /// @param _recipient Address of the recipient - function _validateDonation(address _token, address _recipient) internal view { - _checkToken(_token); - _checkDonationRecipient(_recipient); - } - /// @notice Internal function. Transfers tokens from the sender to the contract. /// @param _token Address of the token /// @param _amount Amount of tokens - function _transfer(address _token, uint256 _amount) internal { - IERC20(_token).safeTransferFrom(msg.sender, address(this), _amount); + function _transfer(address _from, address _token, uint256 _amount) internal { + IERC20(_token).safeTransferFrom(_from, address(this), _amount); } /// @notice Withdraw tokens from the contract to msg.sender. @@ -200,7 +236,7 @@ contract DonationHandler is DonationHandlerRoles, ReentrancyGuard, Multicall { /// @param _from Address of the spender /// @param _to Address of the recipient /// @param _amount Amount of tokens to withdraw - function _withdraw(address _token, address _from, address _to, uint256 _amount) internal { + function _withdraw(address _token, address _from, address _to, uint256 _amount) internal virtual { if (_amount > balances[_from][_token]) revert InsufficientBalance(); balances[_from][_token] -= _amount; @@ -243,11 +279,33 @@ contract DonationHandler is DonationHandlerRoles, ReentrancyGuard, Multicall { /// @param _minFee Minimum donation fee function setMinFee(uint256 _minFee) external { _checkAdmin(msg.sender); + _setMinFee(_minFee); + } + + /// @notice Internal function. Set minimum donation fee. Emits MinFeeSet event. + /// @param _minFee Minimum donation fee + function _setMinFee(uint256 _minFee) internal { if (_minFee > HUNDRED) revert FeeTooHigh(); minFee = _minFee; emit MinFeeSet(_minFee); } + /// @notice Enable/Disable token whitelist. Can only be called by an Admin. Emits IsTokenWhitelistActiveSet event. + /// @param _isTokenWhitelistActive Enable/Disable token whitelist + function setIsTokenWhitelistActive(bool _isTokenWhitelistActive) external { + _checkAdmin(msg.sender); + isTokenWhitelistActive = _isTokenWhitelistActive; + emit IsTokenWhitelistActiveSet(_isTokenWhitelistActive); + } + + /// @notice Enable/Disable recipient whitelist. Can only be called by an Admin. Emits IsRecipientWhitelistActiveSet event. + /// @param _isRecipientWhitelistActive Enable/Disable recipient whitelist + function setIsRecipientWhitelistActive(bool _isRecipientWhitelistActive) external { + _checkAdmin(msg.sender); + isRecipientWhitelistActive = _isRecipientWhitelistActive; + emit IsRecipientWhitelistActiveSet(_isRecipientWhitelistActive); + } + /// @notice Throws if passed fee is above 100%. error FeeTooHigh(); @@ -286,4 +344,20 @@ contract DonationHandler is DonationHandlerRoles, ReentrancyGuard, Multicall { /// @notice Emitted when the minimum fee is set /// @param minFee The minimum fee event MinFeeSet(uint256 minFee); + + /// @notice Emitted when the token whitelist is set to active or inactive + /// @param isTokenWhitelistActive The token whitelist status + event IsTokenWhitelistActiveSet(bool isTokenWhitelistActive); + + /// @notice Emitted when the recipient whitelist is set to active or inactive + /// @param isRecipientWhitelistActive The recipient whitelist status + event IsRecipientWhitelistActiveSet(bool isRecipientWhitelistActive); + + /// @notice Emitted when a new vote is sent + event Voted( // voting token + // voting amount + // voter address + // grant address + // round address + address token, uint256 amount, address indexed voter, address indexed grantAddress, address indexed roundAddress); } diff --git a/src/DonationHandler/DonationHandlerBridgeable.sol b/src/DonationHandler/DonationHandlerBridgeable.sol new file mode 100644 index 0000000..46ccccc --- /dev/null +++ b/src/DonationHandler/DonationHandlerBridgeable.sol @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "./DonationHandler.sol"; +import "./interface/IDonationHandlerBridgeable.sol"; +import "../Vault/interfaces/IVaultBridge.sol"; + +contract DonationHandlerBridgeable is DonationHandler { + using SafeERC20 for IERC20; + + address public vaultBridge; + bool public withdrawLocked; + + /// @notice Initialize the contract. + /// @param _acceptedToken Array of accepted tokens + /// @param _donationReceiver Array of donation receivers + /// @param _feeReceiver Array of fee receivers + /// @param _admins Array of admins + /// @param _vaultBridge vault bridge address + /// @param _withdrawLocked withdraw enabled + function initialize( + address[] calldata _acceptedToken, + address[] calldata _donationReceiver, + address[] calldata _feeReceiver, + address[] calldata _admins, + uint256 _minFee, + address _vaultBridge, + bool _withdrawLocked + ) public initializer { + __DonationHandler_init(_acceptedToken, _donationReceiver, _feeReceiver, _admins, _minFee); + vaultBridge = _vaultBridge; + withdrawLocked = _withdrawLocked; + } + + // ################## Withdraw Lock ################## + + function _withdraw(address _token, address _from, address _to, uint256 _amount) internal override { + if (withdrawLocked) revert WithdrawLocked(); + if ( // todo: handle multiple assets properly + vaultBridge != address(0) && IVaultBridge(vaultBridge).getAsset() == _token + && balances[_from][_token] <= _amount && IERC20(_token).balanceOf(address(this)) < _amount + ) { + IVaultBridge(vaultBridge).withdraw(_amount); + } + super._withdraw(_token, _from, _to, _amount); + } + + /// @notice set withdraw lock + /// @param _withdrawLocked withdraw lock + function setWithdrawLocked(bool _withdrawLocked) external { + _checkAdmin(msg.sender); + withdrawLocked = _withdrawLocked; + } + + // ################## Vault Bridge Role ################## + + /// @notice Internal function. Checks if msg.sender is the vault bridge and reverts NotVaultBridge() if address is not the vault bridge. + function _checkVaultBridge() internal view { + if (msg.sender != vaultBridge) revert NotVaultBridge(); + } + + /// @notice Assigns address to vault bridge role. Can only be called by an admin. + /// @param _vaultBridge The address to assign to vault bridge role. + function setVaultBridge(address _vaultBridge) external { + _checkAdmin(msg.sender); + vaultBridge = _vaultBridge; + emit VaultBridgeSet(_vaultBridge); + } + + /// @notice Wrapper function to check if an address is a vault bridge. + /// @param _vaultBridge The address to check. + /// @return bool True if address is a vault bridge, false otherwise. + function isVaultBridge(address _vaultBridge) external view returns (bool) { + return _vaultBridge == vaultBridge; + } + + // ################## Special Bridge Functions ################## + + function take(address _token, uint256 _amount) external { + _checkVaultBridge(); + IERC20(_token).safeTransfer(msg.sender, _amount); + + emit Take(_token, msg.sender, _amount); + } + + /// @notice Throws if called by any account other than the vault bridge. + error NotVaultBridge(); + + /// @notice Throws if withdraw is locked. + error WithdrawLocked(); + + event Take(address indexed token, address indexed to, uint256 amount); + event VaultBridgeSet(address indexed vaultBridge); +} diff --git a/src/DonationHandlerRoles.sol b/src/DonationHandler/DonationHandlerRoles.sol similarity index 97% rename from src/DonationHandlerRoles.sol rename to src/DonationHandler/DonationHandlerRoles.sol index a0d26c5..58712af 100644 --- a/src/DonationHandlerRoles.sol +++ b/src/DonationHandler/DonationHandlerRoles.sol @@ -13,8 +13,8 @@ contract DonationHandlerRoles is AccessControl { bytes32 public constant FEE_RECEIVER = keccak256("FEE_RECEIVER"); bytes32 public constant ADMIN = keccak256("ADMIN"); - /// @notice special address which represents the native network currency - address public constant NATIVE = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; + /// @notice special address which represents the native network currency. address(0) is used by gitcoin. + address public constant NATIVE = address(0); //0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; /// @notice Initializes the contract settings by adding all addresses to their roles. /// @param _acceptedToken The list of accepted tokens. @@ -29,6 +29,7 @@ contract DonationHandlerRoles is AccessControl { ) internal onlyInitializing { __AccessControl_init(); _setupRole(DEFAULT_ADMIN_ROLE, msg.sender); + _setupRole(DONATION_RECIPIENT, address(this)); // this contract is a donation recipient (for fees) by default _setRoleAdmin(ACCEPTED_TOKEN, ADMIN); _setRoleAdmin(DONATION_RECIPIENT, ADMIN); diff --git a/src/DonationHandler/artifacts/DonationHandler.json b/src/DonationHandler/artifacts/DonationHandler.json new file mode 100644 index 0000000..e09da29 --- /dev/null +++ b/src/DonationHandler/artifacts/DonationHandler.json @@ -0,0 +1,19329 @@ +{ + "deploy": { + "VM:-": { + "linkReferences": {}, + "autoDeployLib": true + }, + "main:1": { + "linkReferences": {}, + "autoDeployLib": true + }, + "ropsten:3": { + "linkReferences": {}, + "autoDeployLib": true + }, + "rinkeby:4": { + "linkReferences": {}, + "autoDeployLib": true + }, + "kovan:42": { + "linkReferences": {}, + "autoDeployLib": true + }, + "goerli:5": { + "linkReferences": {}, + "autoDeployLib": true + }, + "Custom": { + "linkReferences": {}, + "autoDeployLib": true + } + }, + "data": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506145bb806100206000396000f3fe6080604052600436106102725760003560e01c8063658e48211161014f578063d3e78e4d116100c1578063f46b80ca1161007a578063f46b80ca14610930578063f7888aec1461096d578063f85fc0ab146109aa578063fbfe3ab2146109d5578063fc6d4e3914610a12578063fdbb219d14610a2e57610272565b8063d3e78e4d14610848578063d547741f14610873578063dcda7dad1461089c578063e1c7392a146108c7578063f2d4120e146108de578063f3fef3a31461090757610272565b8063a0cf0aea11610113578063a0cf0aea14610726578063a217fddf14610751578063ae876f611461077c578063b278110f146107a5578063bf7cb70b146107e2578063c23f001f1461080b57610272565b8063658e4821146106455780636bb85f4c1461066e57806380c78f1c1461069757806391d14854146106c05780639d082c98146106fd57610272565b806324d7806c116101e857806331ac9920116101ac57806331ac99201461054d57806336568abe146105765780633b8453ca1461059f5780633d0950a8146105c857806342e228ef146105f157806360e007a61461061a57610272565b806324d7806c1461046857806324ec7590146104a55780632620d800146104d05780632a0acc6a146104f95780632f2ff15d1461052457610272565b8063102d79271161023a578063102d79271461035c5780631037d18c1461038757806310881166146103b0578063155dc549146103d95780631ac3ddeb14610402578063248a9ca31461042b57610272565b806301ffc9a714610277578063041c60ee146102b45780630560bd96146102dd5780630b67d9251461031a5780630d6aef0414610345575b600080fd5b34801561028357600080fd5b5061029e6004803603810190610299919061323c565b610a59565b6040516102ab9190613284565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d69190613304565b610ad3565b005b3480156102e957600080fd5b5061030460048036038101906102ff91906133af565b610b3c565b6040516103119190613284565b60405180910390f35b34801561032657600080fd5b5061032f610b6f565b60405161033c91906133eb565b60405180910390f35b34801561035157600080fd5b5061035a610b93565b005b34801561036857600080fd5b50610371610bc8565b60405161037e9190613284565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190613304565b610bdb565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190613304565b610c13565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190613432565b610c4b565b005b34801561040e57600080fd5b50610429600480360381019061042491906133af565b610ca8565b005b34801561043757600080fd5b50610452600480360381019061044d9190613495565b610d6d565b60405161045f91906134d1565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a91906133af565b610d8d565b60405161049c9190613284565b60405180910390f35b3480156104b157600080fd5b506104ba610dc0565b6040516104c79190613505565b60405180910390f35b3480156104dc57600080fd5b506104f760048036038101906104f29190613304565b610dc6565b005b34801561050557600080fd5b5061050e610dfe565b60405161051b91906134d1565b60405180910390f35b34801561053057600080fd5b5061054b60048036038101906105469190613520565b610e22565b005b34801561055957600080fd5b50610574600480360381019061056f919061358c565b610e43565b005b34801561058257600080fd5b5061059d60048036038101906105989190613520565b610e58565b005b3480156105ab57600080fd5b506105c660048036038101906105c191906135b9565b610edb565b005b3480156105d457600080fd5b506105ef60048036038101906105ea9190613304565b610fad565b005b3480156105fd57600080fd5b506106186004803603810190610613919061363a565b610fe5565b005b34801561062657600080fd5b5061062f611046565b60405161063c9190613284565b60405180910390f35b34801561065157600080fd5b5061066c60048036038101906106679190613304565b611059565b005b34801561067a57600080fd5b5061069560048036038101906106909190613432565b6110b9565b005b3480156106a357600080fd5b506106be60048036038101906106b99190613304565b611116565b005b3480156106cc57600080fd5b506106e760048036038101906106e29190613520565b61114e565b6040516106f49190613284565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f9190613304565b6111b9565b005b34801561073257600080fd5b5061073b6111f1565b60405161074891906133eb565b60405180910390f35b34801561075d57600080fd5b506107666111f6565b60405161077391906134d1565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e9190613304565b6111fd565b005b3480156107b157600080fd5b506107cc60048036038101906107c791906133af565b61126f565b6040516107d99190613284565b60405180910390f35b3480156107ee57600080fd5b5061080960048036038101906108049190613304565b6112a2565b005b34801561081757600080fd5b50610832600480360381019061082d919061369a565b6112da565b60405161083f9190613505565b60405180910390f35b34801561085457600080fd5b5061085d6112ff565b60405161086a91906134d1565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190613520565b611323565b005b3480156108a857600080fd5b506108b1611344565b6040516108be91906134d1565b60405180910390f35b3480156108d357600080fd5b506108dc611368565b005b3480156108ea57600080fd5b50610905600480360381019061090091906136da565b611439565b005b34801561091357600080fd5b5061092e600480360381019061092991906137d6565b61158e565b005b34801561093c57600080fd5b506109576004803603810190610952919061363a565b6115e8565b60405161096491906138d4565b60405180910390f35b34801561097957600080fd5b50610994600480360381019061098f919061369a565b611727565b6040516109a19190613505565b60405180910390f35b3480156109b657600080fd5b506109bf6117ae565b6040516109cc9190613505565b60405180910390f35b3480156109e157600080fd5b506109fc60048036038101906109f791906133af565b6117ba565b604051610a099190613284565b60405180910390f35b610a2c6004803603810190610a27919061394c565b6117ed565b005b348015610a3a57600080fd5b50610a43611b2e565b604051610a5091906134d1565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610acc5750610acb82611b52565b5b9050919050565b610adb611bbc565b610ae433611c0b565b610b30828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050503033611c6e565b610b38611d5f565b5050565b6000610b687f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198361114e565b9050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9c33611d69565b610bc67fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233611dcc565b565b60ca60019054906101000a900460ff1681565b610be433611d69565b610c0f7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383611eae565b5050565b610c1c33611d69565b610c477f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383611f06565b5050565b610c5433611d69565b8060ca60006101000a81548160ff0219169083151502179055507f46d6d1a61669d91ea3801d9d57b7398c4ced2120f35ca8559749a391047a24ae81604051610c9d9190613284565b60405180910390a150565b610cb0611bbc565b6000600167ffffffffffffffff811115610ccd57610ccc6139ac565b5b604051908082528060200260200182016040528015610cfb5781602001602082028036833780820191505090505b5090508181600081518110610d1357610d126139db565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610d5633611c0b565b610d61813033611c6e565b50610d6a611d5f565b50565b600060656000838152602001908152602001600020600101549050919050565b6000610db97fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428361114e565b9050919050565b60c95481565b610dcf33611d69565b610dfa7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383611eae565b5050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4281565b610e2b82610d6d565b610e3481611f5e565b610e3e8383611f72565b505050565b610e4c33611d69565b610e5581612053565b50565b610e606120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec490613a8d565b60405180910390fd5b610ed78282611dcc565b5050565b610ee3611bbc565b600082829050905060005b81811015610f9d57610f90868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050858584818110610f4e57610f4d6139db565b5b9050602002016020810190610f6391906133af565b868685818110610f7657610f756139db565b5b9050602002016020810190610f8b91906133af565b611c6e565b8080600101915050610eee565b5050610fa7611d5f565b50505050565b610fb633611d69565b610fe17fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611f06565b5050565b610fed611bbc565b611039838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508283611c6e565b611041611d5f565b505050565b60ca60009054906101000a900460ff1681565b611061611bbc565b6110ad828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050503333611c6e565b6110b5611d5f565b5050565b6110c233611d69565b8060ca60016101000a81548160ff0219169083151502179055507f618c1dfcdc0554eaa0869d571defb09f99ae2add7c190d59444db6d0392489a78160405161110b9190613284565b60405180910390a150565b61111f33611d69565b61114a7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383611f06565b5050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6111c233611d69565b6111ed7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383611f06565b5050565b600081565b6000801b81565b61120a6000801b3361114e565b611240576040517f46ab053d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61126b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611eae565b5050565b600061129b7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838361114e565b9050919050565b6112ab33611d69565b6112d67f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383611eae565b5050565b60cb602052816000526040600020602052806000526040600020600091509150505481565b7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f08381565b61132c82610d6d565b61133581611f5e565b61133f8383611dcc565b505050565b7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc63281565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90613af9565b60405180910390fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060159054906101000a900460ff1615905080801561146c57506001600060149054906101000a900460ff1660ff16105b8061149b575061147b306120de565b15801561149a57506001600060149054906101000a900460ff1660ff16145b5b6114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613b8b565b60405180910390fd5b6001600060146101000a81548160ff021916908360ff1602179055508015611518576001600060156101000a81548160ff0219169083151502179055505b6115298a8a8a8a8a8a8a8a8a612101565b80156115825760008060156101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516115799190613bfd565b60405180910390a15b50505050505050505050565b611596611bbc565b600081036115d0576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115dc823333846121d6565b6115e4611d5f565b5050565b6060600084849050905060008167ffffffffffffffff81111561160e5761160d6139ac565b5b60405190808252806020026020018201604052801561163c5781602001602082028036833780820191505090505b50905060005b8281101561171a5760cb60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888481811061169e5761169d6139db565b5b90506020020160208101906116b391906133af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054828281518110611701576117006139db565b5b6020026020010181815250508080600101915050611642565b5080925050509392505050565b600060cb60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b670de0b6b3a764000081565b60006117e67fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328361114e565b9050919050565b6117f5611bbc565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b90613c8a565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613d1c565b60405180910390fd5b60008383905090506000805b82811015611ae457600080600088888581811061193e5761193d6139db565b5b90506020028101906119509190613d4b565b81019061195d9190613dec565b92509250925060ca60009054906101000a900460ff161561198257611981836124aa565b5b60ca60019054906101000a900460ff16156119a1576119a08161250d565b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119e5576119e0878484612570565b6119f4565b81856119f19190613e6e565b94505b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f023f5e053cbb2c4e0d563d51f8cafaa385fc620caa979fbcac023059ad1687d98686604051611a6a929190613ea2565b60405180910390a4600060c9541115611ac8576000670de0b6b3a764000060c95484611a969190613ecb565b611aa09190613f3c565b9050611ab884838386611ab39190613f6d565b6125a2565b611ac284826126b6565b50611ad4565b611ad38382846125a2565b5b838060010194505050505061191e565b5034811115611b1f576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050611b29611d5f565b505050565b7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed1981565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600260975403611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890613fed565b60405180910390fd5b6002609781905550565b611c357fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838261114e565b611c6b576040517f9d13e6e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60008351905060005b81811015611d5857600060cb60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878481518110611cd557611cd46139db565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611d4a57611d49868381518110611d3957611d386139db565b5b60200260200101518686846121d6565b5b818060010192505050611c77565b5050505050565b6001609781905550565b611d937fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428261114e565b611dc9576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b611dd6828261114e565b15611eaa5760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e4f6120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600082829050905060005b81811015611eff57611ef285858584818110611ed857611ed76139db565b5b9050602002016020810190611eed91906133af565b611323565b8080600101915050611eb9565b5050505050565b600082829050905060005b81811015611f5757611f4a85858584818110611f3057611f2f6139db565b5b9050602002016020810190611f4591906133af565b6127b2565b8080600101915050611f11565b5050505050565b611f6f81611f6a6120d6565b6127c0565b50565b611f7c828261114e565b61204f5760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ff46120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b670de0b6b3a7640000811115612095576040517fcd4e616700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c9819055507fd4c19c993aeeb50b76da8b158f84806c9d235eff5b86f3a36f12a2e1dd4e6eac816040516120cb9190613505565b60405180910390a150565b600033905090565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060159054906101000a900460ff16612150576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121479061407f565b60405180910390fd5b6121608989898989898989612845565b612168612a92565b600089899050111561219057600160ca60006101000a81548160ff0219169083151502179055505b60008787905011156121b857600160ca60016101000a81548160ff0219169083151502179055505b60008111156121cb576121ca81612053565b5b505050505050505050565b60cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561228c576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060cb60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123189190613f6d565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123fc5760008273ffffffffffffffffffffffffffffffffffffffff1682604051612379906140d0565b60006040518083038185875af1925050503d80600081146123b6576040519150601f19603f3d011682016040523d82523d6000602084013e6123bb565b606091505b50509050806123f6576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50612428565b61242782828673ffffffffffffffffffffffffffffffffffffffff16612aeb9092919063ffffffff16565b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f78460405161249c9190613505565b60405180910390a450505050565b6124d47f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198261114e565b61250a576040517fe51cf7bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6125377fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328261114e565b61256d576040517f375a7a9200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b61259d8330838573ffffffffffffffffffffffffffffffffffffffff16612b71909392919063ffffffff16565b505050565b8060cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461262e9190613e6e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fb91b2d1906a6e6e2b45b99eb26ac141804eb2684a0df30699fdcb8b5ced1d518846040516126a99190613505565b60405180910390a4505050565b8060cb60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127429190613e6e565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f468c2f4ec7ce54b88b575db5d64710429b1880e4581f5328aaa4b3f51dadc58b836040516127a69190613505565b60405180910390a35050565b6127bc8282611f72565b5050565b6127ca828261114e565b612841576127d781612bfa565b6127e58360001c6020612c27565b6040516020016127f69291906141ee565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128389190614272565b60405180910390fd5b5050565b600060159054906101000a900460ff16612894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288b9061407f565b60405180910390fd5b61289c612e63565b6128a96000801b336127b2565b6128d37fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632306127b2565b61291d7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed197fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129677fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6327fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129b17fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0837fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129dc7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198989611f06565b612a077fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328787611f06565b612a327fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838585611f06565b612a5d7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611f06565b612a887f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed1960006127b2565b5050505050505050565b600060159054906101000a900460ff16612ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad89061407f565b60405180910390fd5b612ae9612f10565b565b612b6c8363a9059cbb60e01b8484604051602401612b0a929190613ea2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f69565b505050565b612bf4846323b872dd60e01b858585604051602401612b9293929190614294565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f69565b50505050565b6060612c208273ffffffffffffffffffffffffffffffffffffffff16601460ff16612c27565b9050919050565b606060006002836002612c3a9190613ecb565b612c449190613e6e565b67ffffffffffffffff811115612c5d57612c5c6139ac565b5b6040519080825280601f01601f191660200182016040528015612c8f5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612cc757612cc66139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612d2b57612d2a6139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612d6b9190613ecb565b612d759190613e6e565b90505b6001811115612e15577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612db757612db66139db565b5b1a60f81b828281518110612dce57612dcd6139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612e0e906142cb565b9050612d78565b5060008414612e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5090614340565b60405180910390fd5b8091505092915050565b600060159054906101000a900460ff16612eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea99061407f565b60405180910390fd5b565b6000612ebf83610d6d565b90508160656000858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600060159054906101000a900460ff16612f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f569061407f565b60405180910390fd5b6001609781905550565b6000612fcb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166130309092919063ffffffff16565b905060008151111561302b5780806020019051810190612feb9190614375565b61302a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302190614414565b60405180910390fd5b5b505050565b606061303f8484600085613048565b90509392505050565b60608247101561308d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613084906144a6565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516130b69190614502565b60006040518083038185875af1925050503d80600081146130f3576040519150601f19603f3d011682016040523d82523d6000602084013e6130f8565b606091505b509150915061310987838387613115565b92505050949350505050565b6060831561317757600083510361316f5761312f856120de565b61316e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316590614565565b60405180910390fd5b5b829050613182565b613181838361318a565b5b949350505050565b60008251111561319d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d19190614272565b60405180910390fd5b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613219816131e4565b811461322457600080fd5b50565b60008135905061323681613210565b92915050565b600060208284031215613252576132516131da565b5b600061326084828501613227565b91505092915050565b60008115159050919050565b61327e81613269565b82525050565b60006020820190506132996000830184613275565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126132c4576132c361329f565b5b8235905067ffffffffffffffff8111156132e1576132e06132a4565b5b6020830191508360208202830111156132fd576132fc6132a9565b5b9250929050565b6000806020838503121561331b5761331a6131da565b5b600083013567ffffffffffffffff811115613339576133386131df565b5b613345858286016132ae565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061337c82613351565b9050919050565b61338c81613371565b811461339757600080fd5b50565b6000813590506133a981613383565b92915050565b6000602082840312156133c5576133c46131da565b5b60006133d38482850161339a565b91505092915050565b6133e581613371565b82525050565b600060208201905061340060008301846133dc565b92915050565b61340f81613269565b811461341a57600080fd5b50565b60008135905061342c81613406565b92915050565b600060208284031215613448576134476131da565b5b60006134568482850161341d565b91505092915050565b6000819050919050565b6134728161345f565b811461347d57600080fd5b50565b60008135905061348f81613469565b92915050565b6000602082840312156134ab576134aa6131da565b5b60006134b984828501613480565b91505092915050565b6134cb8161345f565b82525050565b60006020820190506134e660008301846134c2565b92915050565b6000819050919050565b6134ff816134ec565b82525050565b600060208201905061351a60008301846134f6565b92915050565b60008060408385031215613537576135366131da565b5b600061354585828601613480565b92505060206135568582860161339a565b9150509250929050565b613569816134ec565b811461357457600080fd5b50565b60008135905061358681613560565b92915050565b6000602082840312156135a2576135a16131da565b5b60006135b084828501613577565b91505092915050565b600080600080604085870312156135d3576135d26131da565b5b600085013567ffffffffffffffff8111156135f1576135f06131df565b5b6135fd878288016132ae565b9450945050602085013567ffffffffffffffff8111156136205761361f6131df565b5b61362c878288016132ae565b925092505092959194509250565b600080600060408486031215613653576136526131da565b5b600084013567ffffffffffffffff811115613671576136706131df565b5b61367d868287016132ae565b935093505060206136908682870161339a565b9150509250925092565b600080604083850312156136b1576136b06131da565b5b60006136bf8582860161339a565b92505060206136d08582860161339a565b9150509250929050565b600080600080600080600080600060a08a8c0312156136fc576136fb6131da565b5b60008a013567ffffffffffffffff81111561371a576137196131df565b5b6137268c828d016132ae565b995099505060208a013567ffffffffffffffff811115613749576137486131df565b5b6137558c828d016132ae565b975097505060408a013567ffffffffffffffff811115613778576137776131df565b5b6137848c828d016132ae565b955095505060608a013567ffffffffffffffff8111156137a7576137a66131df565b5b6137b38c828d016132ae565b935093505060806137c68c828d01613577565b9150509295985092959850929598565b600080604083850312156137ed576137ec6131da565b5b60006137fb8582860161339a565b925050602061380c85828601613577565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61384b816134ec565b82525050565b600061385d8383613842565b60208301905092915050565b6000602082019050919050565b600061388182613816565b61388b8185613821565b935061389683613832565b8060005b838110156138c75781516138ae8882613851565b97506138b983613869565b92505060018101905061389a565b5085935050505092915050565b600060208201905081810360008301526138ee8184613876565b905092915050565b60008083601f84011261390c5761390b61329f565b5b8235905067ffffffffffffffff811115613929576139286132a4565b5b602083019150836020820283011115613945576139446132a9565b5b9250929050565b600080600060408486031215613965576139646131da565b5b600084013567ffffffffffffffff811115613983576139826131df565b5b61398f868287016138f6565b935093505060206139a28682870161339a565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613a77602f83613a0a565b9150613a8282613a1b565b604082019050919050565b60006020820190508181036000830152613aa681613a6a565b9050919050565b7f696e69743a20726f756e644164647265737320616c7265616479207365740000600082015250565b6000613ae3601e83613a0a565b9150613aee82613aad565b602082019050919050565b60006020820190508181036000830152613b1281613ad6565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613b75602e83613a0a565b9150613b8082613b19565b604082019050919050565b60006020820190508181036000830152613ba481613b68565b9050919050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b6000613be7613be2613bdd84613bab565b613bc2565b613bb5565b9050919050565b613bf781613bcc565b82525050565b6000602082019050613c126000830184613bee565b92915050565b7f6572726f723a20766f74696e6720636f6e7472616374206e6f74206c696e6b6560008201527f6420746f206120726f756e640000000000000000000000000000000000000000602082015250565b6000613c74602c83613a0a565b9150613c7f82613c18565b604082019050919050565b60006020820190508181036000830152613ca381613c67565b9050919050565b7f6572726f723a2063616e20626520696e766f6b6564206f6e6c7920627920726f60008201527f756e6420636f6e74726163740000000000000000000000000000000000000000602082015250565b6000613d06602c83613a0a565b9150613d1182613caa565b604082019050919050565b60006020820190508181036000830152613d3581613cf9565b9050919050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613d6857613d67613d3c565b5b80840192508235915067ffffffffffffffff821115613d8a57613d89613d41565b5b602083019250600182023603831315613da657613da5613d46565b5b509250929050565b6000613db982613351565b9050919050565b613dc981613dae565b8114613dd457600080fd5b50565b600081359050613de681613dc0565b92915050565b600080600060608486031215613e0557613e046131da565b5b6000613e1386828701613dd7565b9350506020613e2486828701613577565b9250506040613e3586828701613dd7565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e79826134ec565b9150613e84836134ec565b9250828201905080821115613e9c57613e9b613e3f565b5b92915050565b6000604082019050613eb760008301856133dc565b613ec460208301846134f6565b9392505050565b6000613ed6826134ec565b9150613ee1836134ec565b9250828202613eef816134ec565b91508282048414831517613f0657613f05613e3f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f47826134ec565b9150613f52836134ec565b925082613f6257613f61613f0d565b5b828204905092915050565b6000613f78826134ec565b9150613f83836134ec565b9250828203905081811115613f9b57613f9a613e3f565b5b92915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000613fd7601f83613a0a565b9150613fe282613fa1565b602082019050919050565b6000602082019050818103600083015261400681613fca565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000614069602b83613a0a565b91506140748261400d565b604082019050919050565b600060208201905081810360008301526140988161405c565b9050919050565b600081905092915050565b50565b60006140ba60008361409f565b91506140c5826140aa565b600082019050919050565b60006140db826140ad565b9150819050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006141266017836140e5565b9150614131826140f0565b601782019050919050565b600081519050919050565b60005b8381101561416557808201518184015260208101905061414a565b60008484015250505050565b600061417c8261413c565b61418681856140e5565b9350614196818560208601614147565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006141d86011836140e5565b91506141e3826141a2565b601182019050919050565b60006141f982614119565b91506142058285614171565b9150614210826141cb565b915061421c8284614171565b91508190509392505050565b6000601f19601f8301169050919050565b60006142448261413c565b61424e8185613a0a565b935061425e818560208601614147565b61426781614228565b840191505092915050565b6000602082019050818103600083015261428c8184614239565b905092915050565b60006060820190506142a960008301866133dc565b6142b660208301856133dc565b6142c360408301846134f6565b949350505050565b60006142d6826134ec565b9150600082036142e9576142e8613e3f565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061432a602083613a0a565b9150614335826142f4565b602082019050919050565b600060208201905081810360008301526143598161431d565b9050919050565b60008151905061436f81613406565b92915050565b60006020828403121561438b5761438a6131da565b5b600061439984828501614360565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006143fe602a83613a0a565b9150614409826143a2565b604082019050919050565b6000602082019050818103600083015261442d816143f1565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000614490602683613a0a565b915061449b82614434565b604082019050919050565b600060208201905081810360008301526144bf81614483565b9050919050565b600081519050919050565b60006144dc826144c6565b6144e6818561409f565b93506144f6818560208601614147565b80840191505092915050565b600061450e82846144d1565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061454f601d83613a0a565b915061455a82614519565b602082019050919050565b6000602082019050818103600083015261457e81614542565b905091905056fea26469706673582212201fcf5d16c95d4a4b926e62a8773ac7a8323e139f06764cee68c39bb9f600314364736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45BB DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x272 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x658E4821 GT PUSH2 0x14F JUMPI DUP1 PUSH4 0xD3E78E4D GT PUSH2 0xC1 JUMPI DUP1 PUSH4 0xF46B80CA GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xF46B80CA EQ PUSH2 0x930 JUMPI DUP1 PUSH4 0xF7888AEC EQ PUSH2 0x96D JUMPI DUP1 PUSH4 0xF85FC0AB EQ PUSH2 0x9AA JUMPI DUP1 PUSH4 0xFBFE3AB2 EQ PUSH2 0x9D5 JUMPI DUP1 PUSH4 0xFC6D4E39 EQ PUSH2 0xA12 JUMPI DUP1 PUSH4 0xFDBB219D EQ PUSH2 0xA2E JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0xD3E78E4D EQ PUSH2 0x848 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x873 JUMPI DUP1 PUSH4 0xDCDA7DAD EQ PUSH2 0x89C JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x8C7 JUMPI DUP1 PUSH4 0xF2D4120E EQ PUSH2 0x8DE JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x907 JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0xA0CF0AEA GT PUSH2 0x113 JUMPI DUP1 PUSH4 0xA0CF0AEA EQ PUSH2 0x726 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x751 JUMPI DUP1 PUSH4 0xAE876F61 EQ PUSH2 0x77C JUMPI DUP1 PUSH4 0xB278110F EQ PUSH2 0x7A5 JUMPI DUP1 PUSH4 0xBF7CB70B EQ PUSH2 0x7E2 JUMPI DUP1 PUSH4 0xC23F001F EQ PUSH2 0x80B JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x658E4821 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x6BB85F4C EQ PUSH2 0x66E JUMPI DUP1 PUSH4 0x80C78F1C EQ PUSH2 0x697 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x6C0 JUMPI DUP1 PUSH4 0x9D082C98 EQ PUSH2 0x6FD JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C GT PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x31AC9920 GT PUSH2 0x1AC JUMPI DUP1 PUSH4 0x31AC9920 EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x576 JUMPI DUP1 PUSH4 0x3B8453CA EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0x3D0950A8 EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0x42E228EF EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x60E007A6 EQ PUSH2 0x61A JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0x24EC7590 EQ PUSH2 0x4A5 JUMPI DUP1 PUSH4 0x2620D800 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x524 JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x102D7927 GT PUSH2 0x23A JUMPI DUP1 PUSH4 0x102D7927 EQ PUSH2 0x35C JUMPI DUP1 PUSH4 0x1037D18C EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x10881166 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x155DC549 EQ PUSH2 0x3D9 JUMPI DUP1 PUSH4 0x1AC3DDEB EQ PUSH2 0x402 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x42B JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0x41C60EE EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x560BD96 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xB67D925 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0xD6AEF04 EQ PUSH2 0x345 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x299 SWAP2 SWAP1 PUSH2 0x323C JUMP JUMPDEST PUSH2 0xA59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xAD3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FF SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xB3C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32F PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x33EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x35A PUSH2 0xB93 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH2 0xBC8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A9 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xBDB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D2 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xC13 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x400 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3FB SWAP2 SWAP1 PUSH2 0x3432 JUMP JUMPDEST PUSH2 0xC4B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x424 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xCA8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x437 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44D SWAP2 SWAP1 PUSH2 0x3495 JUMP JUMPDEST PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45F SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x474 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x48F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x48A SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xD8D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x49C SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BA PUSH2 0xDC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C7 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F2 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xDC6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50E PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51B SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x54B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0xE22 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x574 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x56F SWAP2 SWAP1 PUSH2 0x358C JUMP JUMPDEST PUSH2 0xE43 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x582 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x598 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0xE58 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x35B9 JUMP JUMPDEST PUSH2 0xEDB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5EF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xFAD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x618 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x613 SWAP2 SWAP1 PUSH2 0x363A JUMP JUMPDEST PUSH2 0xFE5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62F PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x63C SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x66C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x667 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x1059 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x695 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x690 SWAP2 SWAP1 PUSH2 0x3432 JUMP JUMPDEST PUSH2 0x10B9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6B9 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x1116 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E2 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0x114E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F4 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x709 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x724 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x11B9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x732 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x73B PUSH2 0x11F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x748 SWAP2 SWAP1 PUSH2 0x33EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x766 PUSH2 0x11F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x773 SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x788 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x79E SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x11FD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7CC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C7 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x126F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7D9 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x809 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x804 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x12A2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x817 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x832 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x82D SWAP2 SWAP1 PUSH2 0x369A JUMP JUMPDEST PUSH2 0x12DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83F SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x854 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x85D PUSH2 0x12FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x86A SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x89A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x895 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8B1 PUSH2 0x1344 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8BE SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8DC PUSH2 0x1368 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x905 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x900 SWAP2 SWAP1 PUSH2 0x36DA JUMP JUMPDEST PUSH2 0x1439 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x929 SWAP2 SWAP1 PUSH2 0x37D6 JUMP JUMPDEST PUSH2 0x158E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x957 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x952 SWAP2 SWAP1 PUSH2 0x363A JUMP JUMPDEST PUSH2 0x15E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x964 SWAP2 SWAP1 PUSH2 0x38D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x979 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x994 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x98F SWAP2 SWAP1 PUSH2 0x369A JUMP JUMPDEST PUSH2 0x1727 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9A1 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9BF PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9CC SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9F7 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x17BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA09 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA2C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x394C JUMP JUMPDEST PUSH2 0x17ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x1B2E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA50 SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xACC JUMPI POP PUSH2 0xACB DUP3 PUSH2 0x1B52 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xADB PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0xAE4 CALLER PUSH2 0x1C0B JUMP JUMPDEST PUSH2 0xB30 DUP3 DUP3 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP ADDRESS CALLER PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0xB38 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB68 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0xB9C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xBC6 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 CALLER PUSH2 0x1DCC JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xCA PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xBE4 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xC0F PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC1C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xC47 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC54 CALLER PUSH2 0x1D69 JUMP JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x46D6D1A61669D91EA3801D9D57B7398C4CED2120F35CA8559749A391047A24AE DUP2 PUSH1 0x40 MLOAD PUSH2 0xC9D SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xCB0 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCCD JUMPI PUSH2 0xCCC PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCFB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xD13 JUMPI PUSH2 0xD12 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH2 0xD56 CALLER PUSH2 0x1C0B JUMP JUMPDEST PUSH2 0xD61 DUP2 ADDRESS CALLER PUSH2 0x1C6E JUMP JUMPDEST POP PUSH2 0xD6A PUSH2 0x1D5F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB9 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xDCF CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xDFA PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP2 JUMP JUMPDEST PUSH2 0xE2B DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH2 0xE34 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0xE3E DUP4 DUP4 PUSH2 0x1F72 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xE4C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xE55 DUP2 PUSH2 0x2053 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE60 PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xECD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC4 SWAP1 PUSH2 0x3A8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xED7 DUP3 DUP3 PUSH2 0x1DCC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xEE3 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF9D JUMPI PUSH2 0xF90 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xF4E JUMPI PUSH2 0xF4D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xF63 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0xF76 JUMPI PUSH2 0xF75 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xF8B SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x1C6E JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xEEE JUMP JUMPDEST POP POP PUSH2 0xFA7 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xFB6 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xFE1 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFED PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0x1039 DUP4 DUP4 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP3 DUP4 PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0x1041 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1061 PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0x10AD DUP3 DUP3 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP CALLER CALLER PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0x10B5 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x10C2 CALLER PUSH2 0x1D69 JUMP JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x618C1DFCDC0554EAA0869D571DEFB09F99AE2ADD7C190D59444DB6D0392489A7 DUP2 PUSH1 0x40 MLOAD PUSH2 0x110B SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x111F CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x114A PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11C2 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x11ED PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x120A PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1240 JUMPI PUSH1 0x40 MLOAD PUSH32 0x46AB053D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x126B PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x129B PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12AB CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x12D6 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xCB PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP2 JUMP JUMPDEST PUSH2 0x132C DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH2 0x1335 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x133F DUP4 DUP4 PUSH2 0x1DCC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x13F7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13EE SWAP1 PUSH2 0x3AF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x146C JUMPI POP PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND LT JUMPDEST DUP1 PUSH2 0x149B JUMPI POP PUSH2 0x147B ADDRESS PUSH2 0x20DE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x149A JUMPI POP PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ JUMPDEST JUMPDEST PUSH2 0x14DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14D1 SWAP1 PUSH2 0x3B8B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x1518 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x15 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1529 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x2101 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1582 JUMPI PUSH1 0x0 DUP1 PUSH1 0x15 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x1579 SWAP2 SWAP1 PUSH2 0x3BFD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1596 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 DUP2 SUB PUSH2 0x15D0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15DC DUP3 CALLER CALLER DUP5 PUSH2 0x21D6 JUMP JUMPDEST PUSH2 0x15E4 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 DUP5 SWAP1 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x160E JUMPI PUSH2 0x160D PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x163C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x171A JUMPI PUSH1 0xCB PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x169E JUMPI PUSH2 0x169D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x16B3 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1701 JUMPI PUSH2 0x1700 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1642 JUMP JUMPDEST POP DUP1 SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCB PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17E6 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17F5 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1884 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x187B SWAP1 PUSH2 0x3C8A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1909 SWAP1 PUSH2 0x3D1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP4 SWAP1 POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AE4 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x193E JUMPI PUSH2 0x193D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1950 SWAP2 SWAP1 PUSH2 0x3D4B JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x195D SWAP2 SWAP1 PUSH2 0x3DEC JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1982 JUMPI PUSH2 0x1981 DUP4 PUSH2 0x24AA JUMP JUMPDEST JUMPDEST PUSH1 0xCA PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x19A1 JUMPI PUSH2 0x19A0 DUP2 PUSH2 0x250D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x19E5 JUMPI PUSH2 0x19E0 DUP8 DUP5 DUP5 PUSH2 0x2570 JUMP JUMPDEST PUSH2 0x19F4 JUMP JUMPDEST DUP2 DUP6 PUSH2 0x19F1 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP5 POP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x23F5E053CBB2C4E0D563D51F8CAFAA385FC620CAA979FBCAC023059AD1687D9 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1A6A SWAP3 SWAP2 SWAP1 PUSH2 0x3EA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x0 PUSH1 0xC9 SLOAD GT ISZERO PUSH2 0x1AC8 JUMPI PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 PUSH1 0xC9 SLOAD DUP5 PUSH2 0x1A96 SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x1AA0 SWAP2 SWAP1 PUSH2 0x3F3C JUMP JUMPDEST SWAP1 POP PUSH2 0x1AB8 DUP5 DUP4 DUP4 DUP7 PUSH2 0x1AB3 SWAP2 SWAP1 PUSH2 0x3F6D JUMP JUMPDEST PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x1AC2 DUP5 DUP3 PUSH2 0x26B6 JUMP JUMPDEST POP PUSH2 0x1AD4 JUMP JUMPDEST PUSH2 0x1AD3 DUP4 DUP3 DUP5 PUSH2 0x25A2 JUMP JUMPDEST JUMPDEST DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP POP POP POP POP PUSH2 0x191E JUMP JUMPDEST POP CALLVALUE DUP2 GT ISZERO PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH2 0x1B29 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x97 SLOAD SUB PUSH2 0x1C01 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BF8 SWAP1 PUSH2 0x3FED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x1C35 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1C6B JUMPI PUSH1 0x40 MLOAD PUSH32 0x9D13E6E300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1D58 JUMPI PUSH1 0x0 PUSH1 0xCB PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1CD5 JUMPI PUSH2 0x1CD4 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1D4A JUMPI PUSH2 0x1D49 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1D39 JUMPI PUSH2 0x1D38 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP7 DUP5 PUSH2 0x21D6 JUMP JUMPDEST JUMPDEST DUP2 DUP1 PUSH1 0x1 ADD SWAP3 POP POP POP PUSH2 0x1C77 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x1D93 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1DC9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x7BFA4B9F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1DD6 DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST ISZERO PUSH2 0x1EAA JUMPI PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1E4F PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1EFF JUMPI PUSH2 0x1EF2 DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x1ED8 JUMPI PUSH2 0x1ED7 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1EED SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1EB9 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F57 JUMPI PUSH2 0x1F4A DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x1F30 JUMPI PUSH2 0x1F2F PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1F45 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x27B2 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1F11 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F6F DUP2 PUSH2 0x1F6A PUSH2 0x20D6 JUMP JUMPDEST PUSH2 0x27C0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1F7C DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x204F JUMPI PUSH1 0x1 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1FF4 PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCD4E616700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 DUP2 SWAP1 SSTORE POP PUSH32 0xD4C19C993AEEB50B76DA8B158F84806C9D235EFF5B86F3A36F12A2E1DD4E6EAC DUP2 PUSH1 0x40 MLOAD PUSH2 0x20CB SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2150 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2147 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2160 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x2845 JUMP JUMPDEST PUSH2 0x2168 PUSH2 0x2A92 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP10 SWAP1 POP GT ISZERO PUSH2 0x2190 JUMPI PUSH1 0x1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 DUP8 DUP8 SWAP1 POP GT ISZERO PUSH2 0x21B8 JUMPI PUSH1 0x1 PUSH1 0xCA PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x21CB JUMPI PUSH2 0x21CA DUP2 PUSH2 0x2053 JUMP JUMPDEST JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xCB PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x228C JUMPI PUSH1 0x40 MLOAD PUSH32 0xF4D678B800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2318 SWAP2 SWAP1 PUSH2 0x3F6D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x23FC JUMPI PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x2379 SWAP1 PUSH2 0x40D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x23B6 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x23BB JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x23F6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x90B8EC1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0x2428 JUMP JUMPDEST PUSH2 0x2427 DUP3 DUP3 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AEB SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3115D1449A7B732C986CBA18244E897A450F61E1BB8D589CD2E69E6C8924F9F7 DUP5 PUSH1 0x40 MLOAD PUSH2 0x249C SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH2 0x24D4 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x250A JUMPI PUSH1 0x40 MLOAD PUSH32 0xE51CF7BF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2537 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x256D JUMPI PUSH1 0x40 MLOAD PUSH32 0x375A7A9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x259D DUP4 ADDRESS DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2B71 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x262E SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB91B2D1906A6E6E2B45B99EB26AC141804EB2684A0DF30699FDCB8B5CED1D518 DUP5 PUSH1 0x40 MLOAD PUSH2 0x26A9 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2742 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x468C2F4EC7CE54B88B575DB5D64710429B1880E4581F5328AAA4B3F51DADC58B DUP4 PUSH1 0x40 MLOAD PUSH2 0x27A6 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x27BC DUP3 DUP3 PUSH2 0x1F72 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x27CA DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x2841 JUMPI PUSH2 0x27D7 DUP2 PUSH2 0x2BFA JUMP JUMPDEST PUSH2 0x27E5 DUP4 PUSH1 0x0 SHR PUSH1 0x20 PUSH2 0x2C27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x27F6 SWAP3 SWAP2 SWAP1 PUSH2 0x41EE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2838 SWAP2 SWAP1 PUSH2 0x4272 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2894 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x288B SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x289C PUSH2 0x2E63 JUMP JUMPDEST PUSH2 0x28A9 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x27B2 JUMP JUMPDEST PUSH2 0x28D3 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 ADDRESS PUSH2 0x27B2 JUMP JUMPDEST PUSH2 0x291D PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x2967 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x29B1 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x29DC PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP10 DUP10 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A07 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP8 DUP8 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A32 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP6 DUP6 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A5D PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A88 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 PUSH1 0x0 PUSH2 0x27B2 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2AE1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2AD8 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2AE9 PUSH2 0x2F10 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x2B6C DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2B0A SWAP3 SWAP2 SWAP1 PUSH2 0x3EA2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2F69 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x2BF4 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2B92 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2F69 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2C20 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x14 PUSH1 0xFF AND PUSH2 0x2C27 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x2 DUP4 PUSH1 0x2 PUSH2 0x2C3A SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x2C44 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5D JUMPI PUSH2 0x2C5C PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2C8F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2CC7 JUMPI PUSH2 0x2CC6 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2D2B JUMPI PUSH2 0x2D2A PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH1 0x1 DUP5 PUSH1 0x2 PUSH2 0x2D6B SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x2D75 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2E15 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xF DUP7 AND PUSH1 0x10 DUP2 LT PUSH2 0x2DB7 JUMPI PUSH2 0x2DB6 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2DCE JUMPI PUSH2 0x2DCD PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 DUP6 SWAP1 SHR SWAP5 POP DUP1 PUSH2 0x2E0E SWAP1 PUSH2 0x42CB JUMP JUMPDEST SWAP1 POP PUSH2 0x2D78 JUMP JUMPDEST POP PUSH1 0x0 DUP5 EQ PUSH2 0x2E59 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E50 SWAP1 PUSH2 0x4340 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2EB2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EA9 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EBF DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP2 DUP2 DUP5 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2F5F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F56 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FCB DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x3030 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x302B JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2FEB SWAP2 SWAP1 PUSH2 0x4375 JUMP JUMPDEST PUSH2 0x302A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3021 SWAP1 PUSH2 0x4414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x303F DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x3048 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x308D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3084 SWAP1 PUSH2 0x44A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x30B6 SWAP2 SWAP1 PUSH2 0x4502 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x30F3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x30F8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3109 DUP8 DUP4 DUP4 DUP8 PUSH2 0x3115 JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3177 JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x316F JUMPI PUSH2 0x312F DUP6 PUSH2 0x20DE JUMP JUMPDEST PUSH2 0x316E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3165 SWAP1 PUSH2 0x4565 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x3182 JUMP JUMPDEST PUSH2 0x3181 DUP4 DUP4 PUSH2 0x318A JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x319D JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31D1 SWAP2 SWAP1 PUSH2 0x4272 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3219 DUP2 PUSH2 0x31E4 JUMP JUMPDEST DUP2 EQ PUSH2 0x3224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3236 DUP2 PUSH2 0x3210 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3252 JUMPI PUSH2 0x3251 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3260 DUP5 DUP3 DUP6 ADD PUSH2 0x3227 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x327E DUP2 PUSH2 0x3269 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3299 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3275 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x32C4 JUMPI PUSH2 0x32C3 PUSH2 0x329F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x32E1 JUMPI PUSH2 0x32E0 PUSH2 0x32A4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x32FD JUMPI PUSH2 0x32FC PUSH2 0x32A9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x331B JUMPI PUSH2 0x331A PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3339 JUMPI PUSH2 0x3338 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3345 DUP6 DUP3 DUP7 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x337C DUP3 PUSH2 0x3351 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x338C DUP2 PUSH2 0x3371 JUMP JUMPDEST DUP2 EQ PUSH2 0x3397 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x33A9 DUP2 PUSH2 0x3383 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33C5 JUMPI PUSH2 0x33C4 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x33D3 DUP5 DUP3 DUP6 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x33E5 DUP2 PUSH2 0x3371 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3400 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x33DC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x340F DUP2 PUSH2 0x3269 JUMP JUMPDEST DUP2 EQ PUSH2 0x341A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x342C DUP2 PUSH2 0x3406 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3448 JUMPI PUSH2 0x3447 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3456 DUP5 DUP3 DUP6 ADD PUSH2 0x341D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3472 DUP2 PUSH2 0x345F JUMP JUMPDEST DUP2 EQ PUSH2 0x347D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x348F DUP2 PUSH2 0x3469 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x34AB JUMPI PUSH2 0x34AA PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x34B9 DUP5 DUP3 DUP6 ADD PUSH2 0x3480 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x34CB DUP2 PUSH2 0x345F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x34E6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34C2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34FF DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x351A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3537 JUMPI PUSH2 0x3536 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3545 DUP6 DUP3 DUP7 ADD PUSH2 0x3480 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3556 DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x3569 DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP2 EQ PUSH2 0x3574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3586 DUP2 PUSH2 0x3560 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35A2 JUMPI PUSH2 0x35A1 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x35B0 DUP5 DUP3 DUP6 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x35D3 JUMPI PUSH2 0x35D2 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35F1 JUMPI PUSH2 0x35F0 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x35FD DUP8 DUP3 DUP9 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3620 JUMPI PUSH2 0x361F PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x362C DUP8 DUP3 DUP9 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3653 JUMPI PUSH2 0x3652 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3671 JUMPI PUSH2 0x3670 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x367D DUP7 DUP3 DUP8 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0x3690 DUP7 DUP3 DUP8 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x36B1 JUMPI PUSH2 0x36B0 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x36BF DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x36D0 DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x36FC JUMPI PUSH2 0x36FB PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x371A JUMPI PUSH2 0x3719 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3726 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP10 POP SWAP10 POP POP PUSH1 0x20 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3749 JUMPI PUSH2 0x3748 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3755 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP8 POP SWAP8 POP POP PUSH1 0x40 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3778 JUMPI PUSH2 0x3777 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3784 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x60 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37A7 JUMPI PUSH2 0x37A6 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x37B3 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x80 PUSH2 0x37C6 DUP13 DUP3 DUP14 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x37ED JUMPI PUSH2 0x37EC PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x37FB DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x380C DUP6 DUP3 DUP7 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x384B DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x385D DUP4 DUP4 PUSH2 0x3842 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3881 DUP3 PUSH2 0x3816 JUMP JUMPDEST PUSH2 0x388B DUP2 DUP6 PUSH2 0x3821 JUMP JUMPDEST SWAP4 POP PUSH2 0x3896 DUP4 PUSH2 0x3832 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x38C7 JUMPI DUP2 MLOAD PUSH2 0x38AE DUP9 DUP3 PUSH2 0x3851 JUMP JUMPDEST SWAP8 POP PUSH2 0x38B9 DUP4 PUSH2 0x3869 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x389A JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x38EE DUP2 DUP5 PUSH2 0x3876 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x390C JUMPI PUSH2 0x390B PUSH2 0x329F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3929 JUMPI PUSH2 0x3928 PUSH2 0x32A4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3945 JUMPI PUSH2 0x3944 PUSH2 0x32A9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3965 JUMPI PUSH2 0x3964 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3983 JUMPI PUSH2 0x3982 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x398F DUP7 DUP3 DUP8 ADD PUSH2 0x38F6 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0x39A2 DUP7 DUP3 DUP8 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A77 PUSH1 0x2F DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3A82 DUP3 PUSH2 0x3A1B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3AA6 DUP2 PUSH2 0x3A6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x696E69743A20726F756E644164647265737320616C7265616479207365740000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AE3 PUSH1 0x1E DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3AEE DUP3 PUSH2 0x3AAD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3B12 DUP2 PUSH2 0x3AD6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B75 PUSH1 0x2E DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3B80 DUP3 PUSH2 0x3B19 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3BA4 DUP2 PUSH2 0x3B68 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BE7 PUSH2 0x3BE2 PUSH2 0x3BDD DUP5 PUSH2 0x3BAB JUMP JUMPDEST PUSH2 0x3BC2 JUMP JUMPDEST PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3BF7 DUP2 PUSH2 0x3BCC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3C12 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3BEE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6572726F723A20766F74696E6720636F6E7472616374206E6F74206C696E6B65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6420746F206120726F756E640000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C74 PUSH1 0x2C DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3C7F DUP3 PUSH2 0x3C18 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3CA3 DUP2 PUSH2 0x3C67 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6572726F723A2063616E20626520696E766F6B6564206F6E6C7920627920726F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x756E6420636F6E74726163740000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D06 PUSH1 0x2C DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3D11 DUP3 PUSH2 0x3CAA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3D35 DUP2 PUSH2 0x3CF9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x3D68 JUMPI PUSH2 0x3D67 PUSH2 0x3D3C JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3D8A JUMPI PUSH2 0x3D89 PUSH2 0x3D41 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x3DA6 JUMPI PUSH2 0x3DA5 PUSH2 0x3D46 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DB9 DUP3 PUSH2 0x3351 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DC9 DUP2 PUSH2 0x3DAE JUMP JUMPDEST DUP2 EQ PUSH2 0x3DD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3DE6 DUP2 PUSH2 0x3DC0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3E05 JUMPI PUSH2 0x3E04 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3E13 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3E24 DUP7 DUP3 DUP8 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3E35 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E79 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3E84 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x3E9C JUMPI PUSH2 0x3E9B PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3EB7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x3EC4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3ED6 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3EE1 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x3EEF DUP2 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3F06 JUMPI PUSH2 0x3F05 PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F47 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3F52 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3F62 JUMPI PUSH2 0x3F61 PUSH2 0x3F0D JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F78 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3F83 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3F9B JUMPI PUSH2 0x3F9A PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FD7 PUSH1 0x1F DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3FE2 DUP3 PUSH2 0x3FA1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4006 DUP2 PUSH2 0x3FCA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4069 PUSH1 0x2B DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4074 DUP3 PUSH2 0x400D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4098 DUP2 PUSH2 0x405C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40BA PUSH1 0x0 DUP4 PUSH2 0x409F JUMP JUMPDEST SWAP2 POP PUSH2 0x40C5 DUP3 PUSH2 0x40AA JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40DB DUP3 PUSH2 0x40AD JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4126 PUSH1 0x17 DUP4 PUSH2 0x40E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x4131 DUP3 PUSH2 0x40F0 JUMP JUMPDEST PUSH1 0x17 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4165 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x414A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417C DUP3 PUSH2 0x413C JUMP JUMPDEST PUSH2 0x4186 DUP2 DUP6 PUSH2 0x40E5 JUMP JUMPDEST SWAP4 POP PUSH2 0x4196 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41D8 PUSH1 0x11 DUP4 PUSH2 0x40E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x41E3 DUP3 PUSH2 0x41A2 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41F9 DUP3 PUSH2 0x4119 JUMP JUMPDEST SWAP2 POP PUSH2 0x4205 DUP3 DUP6 PUSH2 0x4171 JUMP JUMPDEST SWAP2 POP PUSH2 0x4210 DUP3 PUSH2 0x41CB JUMP JUMPDEST SWAP2 POP PUSH2 0x421C DUP3 DUP5 PUSH2 0x4171 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4244 DUP3 PUSH2 0x413C JUMP JUMPDEST PUSH2 0x424E DUP2 DUP6 PUSH2 0x3A0A JUMP JUMPDEST SWAP4 POP PUSH2 0x425E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST PUSH2 0x4267 DUP2 PUSH2 0x4228 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x428C DUP2 DUP5 PUSH2 0x4239 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x42A9 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x42B6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x42C3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D6 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 SUB PUSH2 0x42E9 JUMPI PUSH2 0x42E8 PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x432A PUSH1 0x20 DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4335 DUP3 PUSH2 0x42F4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4359 DUP2 PUSH2 0x431D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x436F DUP2 PUSH2 0x3406 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x438B JUMPI PUSH2 0x438A PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4399 DUP5 DUP3 DUP6 ADD PUSH2 0x4360 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43FE PUSH1 0x2A DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4409 DUP3 PUSH2 0x43A2 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x442D DUP2 PUSH2 0x43F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4490 PUSH1 0x26 DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x449B DUP3 PUSH2 0x4434 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x44BF DUP2 PUSH2 0x4483 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x44DC DUP3 PUSH2 0x44C6 JUMP JUMPDEST PUSH2 0x44E6 DUP2 DUP6 PUSH2 0x409F JUMP JUMPDEST SWAP4 POP PUSH2 0x44F6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x450E DUP3 DUP5 PUSH2 0x44D1 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x454F PUSH1 0x1D DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x455A DUP3 PUSH2 0x4519 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x457E DUP2 PUSH2 0x4542 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1F 0xCF 0x5D AND 0xC9 0x5D 0x4A 0x4B SWAP3 PUSH15 0x62A8773AC7A8323E139F06764CEE68 0xC3 SWAP12 0xB9 0xF6 STOP BALANCE NUMBER PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "1887:13662:13:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@ACCEPTED_TOKEN_3343": { + "entryPoint": 6958, + "id": 3343, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@ADMIN_3358": { + "entryPoint": 3582, + "id": 3358, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@DEFAULT_ADMIN_ROLE_42": { + "entryPoint": 4598, + "id": 42, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@DONATION_RECIPIENT_3348": { + "entryPoint": 4932, + "id": 3348, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@FEE_RECEIVER_3353": { + "entryPoint": 4863, + "id": 3353, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@HUNDRED_2492": { + "entryPoint": 6062, + "id": 2492, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@NATIVE_3365": { + "entryPoint": 4593, + "id": 3365, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__AccessControl_init_21": { + "entryPoint": 11875, + "id": 21, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__DonationHandlerRoles_init_3441": { + "entryPoint": 10309, + "id": 3441, + "parameterSlots": 8, + "returnSlots": 0 + }, + "@__DonationHandler_init_2594": { + "entryPoint": 8449, + "id": 2594, + "parameterSlots": 9, + "returnSlots": 0 + }, + "@__ReentrancyGuard_init_600": { + "entryPoint": 10898, + "id": 600, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__ReentrancyGuard_init_unchained_610": { + "entryPoint": 12048, + "id": 610, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_addRoles_3476": { + "entryPoint": 7942, + "id": 3476, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_callOptionalReturn_1044": { + "entryPoint": 12137, + "id": 1044, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkAdmin_3527": { + "entryPoint": 7529, + "id": 3527, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkDonationRecipient_3680": { + "entryPoint": 9485, + "id": 3680, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkFeeReceiver_3746": { + "entryPoint": 7179, + "id": 3746, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkRole_107": { + "entryPoint": 8030, + "id": 107, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkRole_146": { + "entryPoint": 10176, + "id": 146, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkToken_3613": { + "entryPoint": 9386, + "id": 3613, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_grantRole_298": { + "entryPoint": 8050, + "id": 298, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_1356": { + "entryPoint": 8406, + "id": 1356, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_nonReentrantAfter_644": { + "entryPoint": 7519, + "id": 644, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_nonReentrantBefore_636": { + "entryPoint": 7100, + "id": 636, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_registerDonation_2787": { + "entryPoint": 9634, + "id": 2787, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_registerFee_2760": { + "entryPoint": 9910, + "id": 2760, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_removeRoles_3511": { + "entryPoint": 7854, + "id": 3511, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_revert_1328": { + "entryPoint": 12682, + "id": 1328, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_revokeRole_329": { + "entryPoint": 7628, + "id": 329, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setMinFee_3216": { + "entryPoint": 8275, + "id": 3216, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setRoleAdmin_266": { + "entryPoint": 11956, + "id": 266, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setupRole_238": { + "entryPoint": 10162, + "id": 238, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transfer_2810": { + "entryPoint": 9584, + "id": 2810, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_withdrawAll_3034": { + "entryPoint": 7278, + "id": 3034, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_withdraw_3105": { + "entryPoint": 8662, + "id": 3105, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@addAdmin_3545": { + "entryPoint": 4013, + "id": 3545, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addDonationRecipient_3698": { + "entryPoint": 4374, + "id": 3698, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addFeeReceiver_3764": { + "entryPoint": 4537, + "id": 3764, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addToken_3631": { + "entryPoint": 3091, + "id": 3631, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_3122": { + "entryPoint": 5927, + "id": 3122, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balancesOf_3178": { + "entryPoint": 5608, + "id": 3178, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@balances_2506": { + "entryPoint": 4826, + "id": 2506, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@distributeMany_2914": { + "entryPoint": 3803, + "id": 2914, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@distribute_2873": { + "entryPoint": 4069, + "id": 2873, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@functionCallWithValue_1199": { + "entryPoint": 12360, + "id": 1199, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@functionCall_1135": { + "entryPoint": 12336, + "id": 1135, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getRoleAdmin_161": { + "entryPoint": 3437, + "id": 161, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@grantRole_181": { + "entryPoint": 3618, + "id": 181, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@hasRole_94": { + "entryPoint": 4430, + "id": 94, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@init_3861": { + "entryPoint": 4968, + "id": 3861, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@initialize_2535": { + "entryPoint": 5177, + "id": 2535, + "parameterSlots": 9, + "returnSlots": 0 + }, + "@isAdmin_3597": { + "entryPoint": 3469, + "id": 3597, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isContract_1063": { + "entryPoint": 8414, + "id": 1063, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isDonationRecipient_3730": { + "entryPoint": 6074, + "id": 3730, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isFeeReceiver_3796": { + "entryPoint": 4719, + "id": 3796, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isRecipientWhitelistActive_2499": { + "entryPoint": 3016, + "id": 2499, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@isTokenAccepted_3663": { + "entryPoint": 2876, + "id": 3663, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isTokenWhitelistActive_2497": { + "entryPoint": 4166, + "id": 2497, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@minFee_2495": { + "entryPoint": 3520, + "id": 2495, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@removeAdmin_3568": { + "entryPoint": 4605, + "id": 3568, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@removeDonationRecipient_3716": { + "entryPoint": 3035, + "id": 3716, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@removeFeeReceiver_3782": { + "entryPoint": 3526, + "id": 3782, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@removeToken_3649": { + "entryPoint": 4770, + "id": 3649, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@renounceRole_224": { + "entryPoint": 3672, + "id": 224, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@revokeAdmin_3583": { + "entryPoint": 2963, + "id": 3583, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@revokeRole_201": { + "entryPoint": 4899, + "id": 201, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@roundAddress_3818": { + "entryPoint": 2927, + "id": 3818, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@safeTransferFrom_822": { + "entryPoint": 11121, + "id": 822, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@safeTransfer_796": { + "entryPoint": 10987, + "id": 796, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@setIsRecipientWhitelistActive_3256": { + "entryPoint": 4281, + "id": 3256, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setIsTokenWhitelistActive_3236": { + "entryPoint": 3147, + "id": 3236, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setMinFee_3194": { + "entryPoint": 3651, + "id": 3194, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@supportsInterface_1584": { + "entryPoint": 6994, + "id": 1584, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_75": { + "entryPoint": 2649, + "id": 75, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@toHexString_1525": { + "entryPoint": 11303, + "id": 1525, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@toHexString_1545": { + "entryPoint": 11258, + "id": 1545, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@verifyCallResultFromTarget_1284": { + "entryPoint": 12565, + "id": 1284, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@vote_2733": { + "entryPoint": 6125, + "id": 2733, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@withdrawFeeMany_2980": { + "entryPoint": 2771, + "id": 2980, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@withdrawFee_2955": { + "entryPoint": 3240, + "id": 2955, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@withdrawMany_2855": { + "entryPoint": 4185, + "id": 2855, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@withdraw_2837": { + "entryPoint": 5518, + "id": 2837, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 13210, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_payable": { + "entryPoint": 15831, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 12974, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr": { + "entryPoint": 14582, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_bool": { + "entryPoint": 13341, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 17248, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes32": { + "entryPoint": 13440, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 12839, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 13687, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 13231, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_payablet_uint256t_address_payable": { + "entryPoint": 15852, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 13978, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 14294, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 13060, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address": { + "entryPoint": 13882, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 13753, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_uint256": { + "entryPoint": 14042, + "id": null, + "parameterSlots": 2, + "returnSlots": 9 + }, + "abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_address": { + "entryPoint": 14668, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bool": { + "entryPoint": 13362, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 17269, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 13461, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 13600, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 12860, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 13708, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 14417, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 13276, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 14454, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 12917, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 13506, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 17617, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_rational_1_by_1_to_t_uint8_fromStack": { + "entryPoint": 15342, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 16953, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16753, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack": { + "entryPoint": 17181, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 17539, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15208, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15609, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15062, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16557, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack": { + "entryPoint": 17730, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 16476, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16665, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack": { + "entryPoint": 17393, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15463, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack": { + "entryPoint": 16330, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16843, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14954, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 14402, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 13558, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 17666, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 16592, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 16878, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 13291, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 17044, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 16034, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 14548, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 12932, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 13521, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed": { + "entryPoint": 15357, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 17010, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 17216, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 17574, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15243, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15644, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15097, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 17765, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 16511, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 17428, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15498, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 16365, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14989, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 13573, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "access_calldata_tail_t_bytes_calldata_ptr": { + "entryPoint": 15691, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 14386, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 14358, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 17606, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 16700, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 14441, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 14369, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16543, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 14858, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16613, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 15982, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 16188, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 16075, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 16237, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 13169, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_address_payable": { + "entryPoint": 15790, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 12905, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 13407, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 12772, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_1_by_1": { + "entryPoint": 15275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 13137, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 13548, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 15285, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_rational_1_by_1_to_t_uint8": { + "entryPoint": 15308, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 16711, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "decrement_t_uint256": { + "entryPoint": 17099, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 15298, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 15935, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 16141, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 14811, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 14764, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 12964, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 12959, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a": { + "entryPoint": 15681, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad": { + "entryPoint": 15676, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 12969, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e": { + "entryPoint": 15686, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 12767, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 12762, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 16936, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2": { + "entryPoint": 17140, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c": { + "entryPoint": 17460, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759": { + "entryPoint": 15129, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7": { + "entryPoint": 15530, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716": { + "entryPoint": 15021, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470": { + "entryPoint": 16554, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad": { + "entryPoint": 17689, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b": { + "entryPoint": 16397, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874": { + "entryPoint": 16624, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd": { + "entryPoint": 17314, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f": { + "entryPoint": 15384, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619": { + "entryPoint": 16289, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69": { + "entryPoint": 16802, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b": { + "entryPoint": 14875, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 13187, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address_payable": { + "entryPoint": 15808, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 13318, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 13417, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 12816, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 13664, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:38392:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "378:105:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "388:89:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "403:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "410:66:16", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "399:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "399:78:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "388:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "360:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "370:7:16", + "type": "" + } + ], + "src": "334:149:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "531:78:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "587:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "596:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "599:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "589:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "589:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "589:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "554:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "578:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "561:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "561:23:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "551:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "551:34:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "544:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "544:42:16" + }, + "nodeType": "YulIf", + "src": "541:62:16" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "524:5:16", + "type": "" + } + ], + "src": "489:120:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:86:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "698:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "685:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "685:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "740:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "714:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "714:32:16" + }, + "nodeType": "YulExpressionStatement", + "src": "714:32:16" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "644:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "652:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "660:5:16", + "type": "" + } + ], + "src": "615:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "823:262:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "871:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "871:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "871:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "844:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "853:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "840:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "840:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "836:32:16" + }, + "nodeType": "YulIf", + "src": "833:119:16" + }, + { + "nodeType": "YulBlock", + "src": "962:116:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "977:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "991:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "981:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1006:62:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1040:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1051:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1036:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1036:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1060:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1016:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "1016:52:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1006:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "793:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "804:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "816:6:16", + "type": "" + } + ], + "src": "758:327:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1133:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1143:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1168:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1161:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1161:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1154:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1154:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1143:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1115:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1125:7:16", + "type": "" + } + ], + "src": "1091:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1246:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1263:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1283:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "1268:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "1268:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1256:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1256:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1256:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1234:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1241:3:16", + "type": "" + } + ], + "src": "1187:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1394:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1404:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1416:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1412:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1412:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1404:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1478:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1491:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1487:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1440:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "1440:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1440:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1366:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1378:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1389:4:16", + "type": "" + } + ], + "src": "1302:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1607:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1624:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1627:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1617:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1617:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1617:12:16" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "1518:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1730:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1747:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1750:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1740:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1740:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1740:12:16" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "1641:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1870:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1873:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1863:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1863:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1863:12:16" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "1764:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1994:478:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2043:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2045:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2045:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2045:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2022:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2018:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2018:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2037:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2014:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2014:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2007:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2007:35:16" + }, + "nodeType": "YulIf", + "src": "2004:122:16" + }, + { + "nodeType": "YulAssignment", + "src": "2135:30:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2145:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:20:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2135:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2208:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "2210:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2210:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2210:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2180:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2188:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2177:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2177:30:16" + }, + "nodeType": "YulIf", + "src": "2174:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "2300:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2316:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2324:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2312:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2312:17:16" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "2300:8:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2383:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "2385:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2385:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2385:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "2348:8:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2362:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2370:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "2358:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2358:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2344:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2344:32:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2378:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2341:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2341:41:16" + }, + "nodeType": "YulIf", + "src": "2338:128:16" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1961:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1969:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "1977:8:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1987:6:16", + "type": "" + } + ], + "src": "1904:568:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2579:458:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2625:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2627:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2627:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2627:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2600:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2609:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2596:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2596:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2621:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2592:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2592:32:16" + }, + "nodeType": "YulIf", + "src": "2589:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2718:312:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2733:45:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2764:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2775:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2760:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2760:17:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2747:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2747:31:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2737:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2825:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "2827:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2827:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2827:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2797:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2805:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2794:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2794:30:16" + }, + "nodeType": "YulIf", + "src": "2791:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "2922:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2992:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3003:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2988:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2988:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3012:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "2940:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "2940:80:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2922:6:16" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2930:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2541:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2552:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2564:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2572:6:16", + "type": "" + } + ], + "src": "2478:559:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3088:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3098:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3113:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3120:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3109:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3109:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3098:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3070:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3080:7:16", + "type": "" + } + ], + "src": "3043:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3220:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3230:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3259:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "3241:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3241:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3230:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3202:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3212:7:16", + "type": "" + } + ], + "src": "3175:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3320:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3377:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3386:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3389:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3379:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3379:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3379:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3343:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3368:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "3350:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3350:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3340:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3333:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3333:43:16" + }, + "nodeType": "YulIf", + "src": "3330:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3313:5:16", + "type": "" + } + ], + "src": "3277:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3457:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3467:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3489:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3476:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "3476:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3467:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3532:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "3505:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "3505:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3505:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3435:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3443:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3451:5:16", + "type": "" + } + ], + "src": "3405:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3616:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3662:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3664:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3664:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3664:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3637:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3646:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3633:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3633:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3658:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3629:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3629:32:16" + }, + "nodeType": "YulIf", + "src": "3626:119:16" + }, + { + "nodeType": "YulBlock", + "src": "3755:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3770:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3784:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3774:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3799:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3834:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3845:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3830:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3830:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3854:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3809:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "3809:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3799:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3586:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3597:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3609:6:16", + "type": "" + } + ], + "src": "3550:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3950:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3967:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3990:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "3972:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3972:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3960:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3960:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3960:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3938:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3945:3:16", + "type": "" + } + ], + "src": "3885:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4107:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4117:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4129:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4140:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4125:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4125:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4117:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4197:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4210:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4221:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4206:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4206:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "4153:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "4153:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4153:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4079:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4091:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4102:4:16", + "type": "" + } + ], + "src": "4009:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4277:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4331:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4340:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4343:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4333:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4333:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4333:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4300:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4322:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "4307:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "4307:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4297:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4297:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4290:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4290:40:16" + }, + "nodeType": "YulIf", + "src": "4287:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4270:5:16", + "type": "" + } + ], + "src": "4237:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4408:84:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4418:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4440:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4427:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "4427:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4418:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4480:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "4456:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "4456:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4456:30:16" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4386:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4394:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4402:5:16", + "type": "" + } + ], + "src": "4359:133:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4561:260:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4607:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4609:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4609:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4609:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4582:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4591:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4578:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4578:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4603:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4574:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4574:32:16" + }, + "nodeType": "YulIf", + "src": "4571:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4700:114:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4715:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4729:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4719:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4744:60:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4776:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4787:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4772:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4772:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4796:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "4754:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "4754:50:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4744:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4531:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4542:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4554:6:16", + "type": "" + } + ], + "src": "4498:323:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4872:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4882:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4893:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4882:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4854:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4864:7:16", + "type": "" + } + ], + "src": "4827:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "4983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "4983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4966:43:16" + }, + "nodeType": "YulIf", + "src": "4963:63:16" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4946:5:16", + "type": "" + } + ], + "src": "4910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "5109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nodeType": "YulIdentifier", + "src": "5138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "5138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5138:33:16" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5084:5:16", + "type": "" + } + ], + "src": "5038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5249:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5295:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5297:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5297:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5297:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5270:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5279:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5266:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5266:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5291:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5262:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5262:32:16" + }, + "nodeType": "YulIf", + "src": "5259:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5388:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5403:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5417:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5407:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5432:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5467:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5478:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5463:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5463:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5487:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "5442:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5442:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5432:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5219:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5230:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5242:6:16", + "type": "" + } + ], + "src": "5183:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5583:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5600:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5623:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "5605:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "5605:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5593:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5593:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5593:37:16" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5571:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5578:3:16", + "type": "" + } + ], + "src": "5518:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5740:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5750:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5762:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5773:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5758:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5758:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5750:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5830:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5843:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5854:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5839:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5839:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "5786:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "5786:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5786:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5712:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5724:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5735:4:16", + "type": "" + } + ], + "src": "5642:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5915:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5925:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5936:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5925:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5897:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5907:7:16", + "type": "" + } + ], + "src": "5870:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6018:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6035:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6058:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6040:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6040:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6028:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6028:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6028:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6006:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6013:3:16", + "type": "" + } + ], + "src": "5953:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6175:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6185:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6197:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6208:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6193:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6193:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6185:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6265:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6278:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6289:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6274:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6274:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6221:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6221:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6221:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6147:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6159:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6170:4:16", + "type": "" + } + ], + "src": "6077:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6388:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6434:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6436:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "6436:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6436:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6409:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6418:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6405:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6405:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6430:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6401:32:16" + }, + "nodeType": "YulIf", + "src": "6398:119:16" + }, + { + "nodeType": "YulBlock", + "src": "6527:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6542:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6556:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6546:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6571:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6606:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6617:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6602:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6626:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "6581:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6581:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6571:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6654:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6669:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6683:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6673:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6699:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6734:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6745:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6730:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6730:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6754:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6709:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6709:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6699:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6350:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6361:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6373:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6381:6:16", + "type": "" + } + ], + "src": "6305:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6828:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6885:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6894:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6897:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6887:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6887:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6887:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6851:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6876:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6858:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6858:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6848:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6848:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6841:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6841:43:16" + }, + "nodeType": "YulIf", + "src": "6838:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6821:5:16", + "type": "" + } + ], + "src": "6785:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6965:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6975:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6997:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6984:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "6984:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6975:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7040:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "7013:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "7013:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7013:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6943:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6951:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6959:5:16", + "type": "" + } + ], + "src": "6913:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7124:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7170:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7172:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "7172:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7172:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7145:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7154:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7141:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7141:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7166:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7137:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7137:32:16" + }, + "nodeType": "YulIf", + "src": "7134:119:16" + }, + { + "nodeType": "YulBlock", + "src": "7263:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7278:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7292:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7282:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7307:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7342:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7353:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7338:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7338:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7362:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7317:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7307:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7094:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7105:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7117:6:16", + "type": "" + } + ], + "src": "7058:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7546:781:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7592:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7594:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "7594:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7594:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7567:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7576:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7563:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7563:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7588:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7559:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7559:32:16" + }, + "nodeType": "YulIf", + "src": "7556:119:16" + }, + { + "nodeType": "YulBlock", + "src": "7685:312:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7700:45:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7731:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7742:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7727:17:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7714:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "7714:31:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7704:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7792:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "7794:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "7794:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7794:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7764:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7772:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7761:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7761:30:16" + }, + "nodeType": "YulIf", + "src": "7758:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "7889:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7959:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7970:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7955:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7955:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7979:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "7907:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "7907:80:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7889:6:16" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7897:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8007:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8022:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8053:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8064:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8049:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8049:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8036:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "8036:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8026:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8115:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "8117:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8117:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8117:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8087:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8095:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8084:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8084:30:16" + }, + "nodeType": "YulIf", + "src": "8081:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "8212:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8282:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8293:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8278:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8278:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8302:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "8230:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "8230:80:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "8212:6:16" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "8220:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7492:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7503:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7515:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7523:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "7531:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "7539:6:16", + "type": "" + } + ], + "src": "7393:934:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8451:586:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8497:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8499:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8499:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8499:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8472:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8481:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8468:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8493:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8464:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8464:32:16" + }, + "nodeType": "YulIf", + "src": "8461:119:16" + }, + { + "nodeType": "YulBlock", + "src": "8590:312:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8605:45:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8636:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8647:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8632:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8632:17:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8619:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "8619:31:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8609:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8697:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "8699:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8699:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8699:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8669:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8677:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8666:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8666:30:16" + }, + "nodeType": "YulIf", + "src": "8663:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "8794:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8864:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8875:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8860:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8860:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8884:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "8812:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "8812:80:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8794:6:16" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "8802:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8912:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8927:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8941:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8931:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8957:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8992:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9003:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8988:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8988:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9012:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8967:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "8967:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "8957:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8405:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8416:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8428:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8436:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8444:6:16", + "type": "" + } + ], + "src": "8333:704:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9126:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9172:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9174:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9174:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9174:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9147:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9156:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9143:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9143:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9168:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9139:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9139:32:16" + }, + "nodeType": "YulIf", + "src": "9136:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9265:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9280:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9294:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9284:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9309:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9344:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9355:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9340:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9364:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9319:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9319:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9309:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9392:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9407:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9421:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9411:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9437:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9472:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9483:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9468:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9492:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9447:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9447:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9437:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9088:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9099:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9111:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9119:6:16", + "type": "" + } + ], + "src": "9043:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9797:1557:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9844:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9846:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9846:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9846:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9818:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9827:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9814:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9814:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9839:3:16", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9810:33:16" + }, + "nodeType": "YulIf", + "src": "9807:120:16" + }, + { + "nodeType": "YulBlock", + "src": "9937:312:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9952:45:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9983:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9994:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9979:17:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9966:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "9966:31:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9956:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10044:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "10046:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "10046:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10046:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10016:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10024:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10013:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10013:30:16" + }, + "nodeType": "YulIf", + "src": "10010:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "10141:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10211:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10222:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10207:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10207:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10231:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "10159:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "10159:80:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10141:6:16" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10149:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10259:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10274:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10305:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10316:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10301:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10301:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "10288:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "10288:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10278:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10367:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "10369:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "10369:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10369:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10339:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10347:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10336:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10336:30:16" + }, + "nodeType": "YulIf", + "src": "10333:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "10464:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10534:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10545:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10530:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10530:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10554:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "10482:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "10482:80:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10464:6:16" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "10472:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10582:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10597:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10628:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10639:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10624:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10624:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "10611:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "10611:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10601:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10690:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "10692:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "10692:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10692:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10662:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10670:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10659:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10659:30:16" + }, + "nodeType": "YulIf", + "src": "10656:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "10787:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10857:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10868:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10853:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10853:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10877:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "10805:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "10805:80:16" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "10787:6:16" + }, + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "10795:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10905:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10920:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10951:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10962:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10947:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10947:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "10934:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "10934:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10924:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11013:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "11015:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "11015:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11015:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10985:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10993:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10982:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10982:30:16" + }, + "nodeType": "YulIf", + "src": "10979:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "11110:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11180:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11191:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11176:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11176:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11200:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "11128:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "11128:80:16" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "11110:6:16" + }, + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "11118:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11228:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11243:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11257:3:16", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11247:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11274:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11309:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11320:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11305:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11305:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11329:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11284:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "11284:53:16" + }, + "variableNames": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "11274:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9703:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9714:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9726:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9734:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "9742:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "9750:6:16", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "9758:6:16", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "9766:6:16", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "9774:6:16", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "9782:6:16", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "9790:6:16", + "type": "" + } + ], + "src": "9523:1831:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11443:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11489:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11491:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "11491:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11491:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11464:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11473:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11460:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11460:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11485:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11456:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11456:32:16" + }, + "nodeType": "YulIf", + "src": "11453:119:16" + }, + { + "nodeType": "YulBlock", + "src": "11582:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11597:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11611:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11601:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11626:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11661:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11672:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11657:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11657:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11681:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "11636:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "11636:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11626:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11709:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11724:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11738:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11728:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11754:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11789:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11800:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11785:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11785:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11809:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11764:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "11764:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11754:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11405:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11416:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11428:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11436:6:16", + "type": "" + } + ], + "src": "11360:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11914:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11925:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11941:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "11935:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "11935:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11925:6:16" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11897:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "11907:6:16", + "type": "" + } + ], + "src": "11840:114:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12071:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12088:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "12093:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12081:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12081:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12081:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "12109:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12128:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12133:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12124:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12124:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "12109:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12043:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "12048:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "12059:11:16", + "type": "" + } + ], + "src": "11960:184:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12222:60:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12232:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "12240:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "12232:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12253:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "12265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12261:14:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "12253:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "12209:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "12217:4:16", + "type": "" + } + ], + "src": "12150:132:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12343:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12360:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12383:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "12365:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "12365:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12353:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12353:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12353:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12331:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12338:3:16", + "type": "" + } + ], + "src": "12288:108:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12482:99:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12526:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12534:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "12492:33:16" + }, + "nodeType": "YulFunctionCall", + "src": "12492:46:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12492:46:16" + }, + { + "nodeType": "YulAssignment", + "src": "12547:28:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12565:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12570:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12561:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12561:14:16" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "12547:10:16" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12455:6:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12463:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "12471:10:16", + "type": "" + } + ], + "src": "12402:179:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12662:38:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12672:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "12684:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12689:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12680:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12680:14:16" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "12672:4:16" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "12649:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "12657:4:16", + "type": "" + } + ], + "src": "12587:113:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12860:608:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12870:68:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12932:5:16" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12884:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "12884:54:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "12874:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12947:93:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13028:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13033:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12954:73:16" + }, + "nodeType": "YulFunctionCall", + "src": "12954:86:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12947:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "13049:71:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13114:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "13064:49:16" + }, + "nodeType": "YulFunctionCall", + "src": "13064:56:16" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "13053:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "13129:21:16", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "13143:7:16" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "13133:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13219:224:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13233:34:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "13260:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "13254:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "13254:13:16" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "13237:13:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13280:70:16", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "13331:13:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13346:3:16" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "13287:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "13287:63:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13280:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13363:70:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "13426:6:16" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "13373:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "13373:60:16" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "13363:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "13181:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13184:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "13178:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "13178:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "13192:18:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13194:14:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "13203:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13206:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13199:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13199:9:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "13194:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "13163:14:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13165:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13174:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "13169:1:16", + "type": "" + } + ] + } + ] + }, + "src": "13159:284:16" + }, + { + "nodeType": "YulAssignment", + "src": "13452:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13459:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13452:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12839:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12846:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12855:3:16", + "type": "" + } + ], + "src": "12736:732:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13622:225:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13632:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13644:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13655:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13640:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13640:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13632:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13679:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13690:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13675:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13675:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13698:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13704:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13694:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13694:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13668:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13668:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13668:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "13724:116:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13826:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13835:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13732:93:16" + }, + "nodeType": "YulFunctionCall", + "src": "13732:108:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13724:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13594:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13606:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13617:4:16", + "type": "" + } + ], + "src": "13474:373:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13969:478:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14018:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "14020:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14020:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14020:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13997:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14005:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13993:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13993:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14012:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13989:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13989:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "13982:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13982:35:16" + }, + "nodeType": "YulIf", + "src": "13979:122:16" + }, + { + "nodeType": "YulAssignment", + "src": "14110:30:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14133:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "14120:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "14120:20:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14110:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14183:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "14185:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14185:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14185:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14155:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14163:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "14152:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "14152:30:16" + }, + "nodeType": "YulIf", + "src": "14149:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "14275:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14291:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14299:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14287:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14287:17:16" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "14275:8:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14358:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "14360:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14360:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14360:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "14323:8:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14337:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14345:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "14333:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14333:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14319:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14319:32:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14353:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "14316:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "14316:41:16" + }, + "nodeType": "YulIf", + "src": "14313:128:16" + } + ] + }, + "name": "abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13936:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13944:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "13952:8:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13962:6:16", + "type": "" + } + ], + "src": "13868:579:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14582:597:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14628:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "14630:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14630:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14630:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14603:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14612:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14599:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14599:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14624:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14595:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14595:32:16" + }, + "nodeType": "YulIf", + "src": "14592:119:16" + }, + { + "nodeType": "YulBlock", + "src": "14721:323:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14736:45:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14767:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14778:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14763:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14763:17:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "14750:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "14750:31:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14740:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14828:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "14830:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14830:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14830:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14800:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14808:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "14797:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "14797:30:16" + }, + "nodeType": "YulIf", + "src": "14794:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "14925:109:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15006:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15017:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15002:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15002:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15026:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "14943:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "14943:91:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14925:6:16" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14933:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "15054:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15069:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15083:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "15073:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15099:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15134:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15145:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15130:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15130:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15154:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "15109:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "15109:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "15099:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14536:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14547:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14559:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14567:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "14575:6:16", + "type": "" + } + ], + "src": "14453:726:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15213:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15230:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15233:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15223:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15223:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15223:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15327:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15330:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15320:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15320:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15320:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15351:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15354:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15344:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15344:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15344:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "15185:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15399:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15416:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15419:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15409:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15409:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15409:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15513:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15516:4:16", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15506:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15506:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15506:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15537:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15540:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15530:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15530:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15530:15:16" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "15371:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15653:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15670:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15675:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15663:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15663:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15663:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "15691:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15710:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15715:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15706:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15706:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "15691:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15625:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "15630:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "15641:11:16", + "type": "" + } + ], + "src": "15557:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15838:128:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15860:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15868:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15856:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15856:14:16" + }, + { + "hexValue": "416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15872:34:16", + "type": "", + "value": "AccessControl: can only renounce" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15849:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15849:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15849:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15928:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15936:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15924:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15924:15:16" + }, + { + "hexValue": "20726f6c657320666f722073656c66", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15941:17:16", + "type": "", + "value": " roles for self" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15917:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15917:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15917:42:16" + } + ] + }, + "name": "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15830:6:16", + "type": "" + } + ], + "src": "15732:234:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16118:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16128:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16194:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16199:2:16", + "type": "", + "value": "47" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16135:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "16135:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16128:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16300:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "nodeType": "YulIdentifier", + "src": "16211:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "16211:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16211:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "16313:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16324:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16329:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16320:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16320:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16313:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16106:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16114:3:16", + "type": "" + } + ], + "src": "15972:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16515:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16525:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16537:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16548:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16533:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16533:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16525:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16572:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16583:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16568:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16568:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16591:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16597:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16587:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16587:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16561:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16561:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16561:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "16617:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16751:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16625:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "16625:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16617:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16495:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16510:4:16", + "type": "" + } + ], + "src": "16344:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16875:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16897:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16905:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16893:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16893:14:16" + }, + { + "hexValue": "696e69743a20726f756e644164647265737320616c726561647920736574", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16909:32:16", + "type": "", + "value": "init: roundAddress already set" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16886:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16886:56:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16886:56:16" + } + ] + }, + "name": "store_literal_in_memory_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16867:6:16", + "type": "" + } + ], + "src": "16769:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17101:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17111:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17177:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17182:2:16", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17118:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "17118:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17111:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17283:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716", + "nodeType": "YulIdentifier", + "src": "17194:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "17194:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17194:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "17296:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17307:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17312:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17303:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17303:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17296:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17089:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17097:3:16", + "type": "" + } + ], + "src": "16955:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17498:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17508:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17520:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17531:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17516:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17516:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17508:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17555:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17566:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17551:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17551:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17574:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17580:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17570:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17570:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17544:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17544:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17544:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "17600:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17734:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17608:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "17608:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17600:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17478:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17493:4:16", + "type": "" + } + ], + "src": "17327:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17858:127:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17880:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17888:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17876:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17876:14:16" + }, + { + "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17892:34:16", + "type": "", + "value": "Initializable: contract is alrea" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17869:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17869:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17869:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17948:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17956:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17944:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17944:15:16" + }, + { + "hexValue": "647920696e697469616c697a6564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17961:16:16", + "type": "", + "value": "dy initialized" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17937:41:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17937:41:16" + } + ] + }, + "name": "store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17850:6:16", + "type": "" + } + ], + "src": "17752:233:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18137:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18147:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18213:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18218:2:16", + "type": "", + "value": "46" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18154:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "18154:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18147:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18319:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "nodeType": "YulIdentifier", + "src": "18230:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "18230:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18230:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "18332:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18343:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18348:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18339:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18339:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18332:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18125:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18133:3:16", + "type": "" + } + ], + "src": "17991:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18534:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18544:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18556:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18567:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18552:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18552:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18544:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18591:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18602:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18587:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18587:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18610:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18616:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18606:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18606:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18580:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18580:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18580:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "18636:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18770:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18644:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "18644:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18636:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18514:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18529:4:16", + "type": "" + } + ], + "src": "18363:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18841:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18851:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18862:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "18851:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_rational_1_by_1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18823:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "18833:7:16", + "type": "" + } + ], + "src": "18788:85:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18922:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18932:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18947:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18954:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18943:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18943:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "18932:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18904:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "18914:7:16", + "type": "" + } + ], + "src": "18879:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19003:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19013:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19020:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "19013:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18989:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "18999:3:16", + "type": "" + } + ], + "src": "18971:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19103:88:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19113:72:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19177:5:16" + } + ], + "functionName": { + "name": "cleanup_t_rational_1_by_1", + "nodeType": "YulIdentifier", + "src": "19151:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "19151:32:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "19142:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "19142:42:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "19126:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "19126:59:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "19113:9:16" + } + ] + } + ] + }, + "name": "convert_t_rational_1_by_1_to_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "19083:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "19093:9:16", + "type": "" + } + ], + "src": "19037:154:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19268:72:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19285:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19327:5:16" + } + ], + "functionName": { + "name": "convert_t_rational_1_by_1_to_t_uint8", + "nodeType": "YulIdentifier", + "src": "19290:36:16" + }, + "nodeType": "YulFunctionCall", + "src": "19290:43:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19278:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19278:56:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19278:56:16" + } + ] + }, + "name": "abi_encode_t_rational_1_by_1_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "19256:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19263:3:16", + "type": "" + } + ], + "src": "19197:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19450:130:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19460:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19472:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19483:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19468:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19460:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "19546:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19559:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19570:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19555:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_rational_1_by_1_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "19496:49:16" + }, + "nodeType": "YulFunctionCall", + "src": "19496:77:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19496:77:16" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19422:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "19434:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19445:4:16", + "type": "" + } + ], + "src": "19346:234:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19692:125:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19714:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19722:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19710:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19710:14:16" + }, + { + "hexValue": "6572726f723a20766f74696e6720636f6e7472616374206e6f74206c696e6b65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19726:34:16", + "type": "", + "value": "error: voting contract not linke" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19703:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19703:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19703:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19782:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19790:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19778:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19778:15:16" + }, + { + "hexValue": "6420746f206120726f756e64", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19795:14:16", + "type": "", + "value": "d to a round" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19771:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19771:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19771:39:16" + } + ] + }, + "name": "store_literal_in_memory_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19684:6:16", + "type": "" + } + ], + "src": "19586:231:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19969:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19979:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20045:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20050:2:16", + "type": "", + "value": "44" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19986:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "19986:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19979:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20151:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f", + "nodeType": "YulIdentifier", + "src": "20062:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "20062:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "20062:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "20164:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20175:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20180:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20171:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20171:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20164:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19957:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19965:3:16", + "type": "" + } + ], + "src": "19823:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20366:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20376:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20388:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20399:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20384:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20384:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20376:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20423:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20434:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20419:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20419:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20442:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20448:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20438:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20438:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20412:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "20412:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "20412:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "20468:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20602:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20476:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "20476:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20468:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20346:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20361:4:16", + "type": "" + } + ], + "src": "20195:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20726:125:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20748:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20756:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20744:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20744:14:16" + }, + { + "hexValue": "6572726f723a2063616e20626520696e766f6b6564206f6e6c7920627920726f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20760:34:16", + "type": "", + "value": "error: can be invoked only by ro" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20737:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "20737:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "20737:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20816:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20824:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20812:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20812:15:16" + }, + { + "hexValue": "756e6420636f6e7472616374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20829:14:16", + "type": "", + "value": "und contract" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20805:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "20805:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "20805:39:16" + } + ] + }, + "name": "store_literal_in_memory_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "20718:6:16", + "type": "" + } + ], + "src": "20620:231:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21003:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21013:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21079:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21084:2:16", + "type": "", + "value": "44" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21020:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "21020:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21013:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21185:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7", + "nodeType": "YulIdentifier", + "src": "21096:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "21096:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "21096:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "21198:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21209:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21214:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21205:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "21205:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21198:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20991:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20999:3:16", + "type": "" + } + ], + "src": "20857:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21400:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21410:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21422:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21433:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21418:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "21418:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21410:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21457:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21468:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21453:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "21453:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21476:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21482:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "21472:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "21472:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21446:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "21446:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "21446:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "21502:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21636:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21510:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "21510:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21502:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "21380:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21395:4:16", + "type": "" + } + ], + "src": "21229:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21743:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21760:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21763:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21753:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "21753:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "21753:12:16" + } + ] + }, + "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", + "nodeType": "YulFunctionDefinition", + "src": "21654:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21866:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21883:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21886:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21876:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "21876:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "21876:12:16" + } + ] + }, + "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", + "nodeType": "YulFunctionDefinition", + "src": "21777:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21989:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22006:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22009:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21999:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "21999:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "21999:12:16" + } + ] + }, + "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", + "nodeType": "YulFunctionDefinition", + "src": "21900:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22113:634:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "22123:51:16", + "value": { + "arguments": [ + { + "name": "ptr_to_tail", + "nodeType": "YulIdentifier", + "src": "22162:11:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "22149:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "22149:25:16" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nodeType": "YulTypedName", + "src": "22127:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22268:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", + "nodeType": "YulIdentifier", + "src": "22270:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "22270:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "22270:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nodeType": "YulIdentifier", + "src": "22197:18:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nodeType": "YulIdentifier", + "src": "22225:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "22225:14:16" + }, + { + "name": "base_ref", + "nodeType": "YulIdentifier", + "src": "22241:8:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22221:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22221:29:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22256:4:16", + "type": "", + "value": "0x20" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22262:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22252:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22252:12:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22217:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22217:48:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "22193:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22193:73:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "22186:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "22186:81:16" + }, + "nodeType": "YulIf", + "src": "22183:168:16" + }, + { + "nodeType": "YulAssignment", + "src": "22360:41:16", + "value": { + "arguments": [ + { + "name": "base_ref", + "nodeType": "YulIdentifier", + "src": "22372:8:16" + }, + { + "name": "rel_offset_of_tail", + "nodeType": "YulIdentifier", + "src": "22382:18:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22368:33:16" + }, + "variableNames": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "22360:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "22411:28:16", + "value": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "22434:4:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "22421:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "22421:18:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "22411:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22482:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", + "nodeType": "YulIdentifier", + "src": "22484:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "22484:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "22484:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "22454:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22462:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "22451:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "22451:30:16" + }, + "nodeType": "YulIf", + "src": "22448:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "22574:21:16", + "value": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "22586:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22592:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22582:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22582:13:16" + }, + "variableNames": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "22574:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22657:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", + "nodeType": "YulIdentifier", + "src": "22659:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "22659:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "22659:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "22611:4:16" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nodeType": "YulIdentifier", + "src": "22621:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "22621:14:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "22641:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22649:4:16", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "22637:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22637:17:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22617:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22617:38:16" + } + ], + "functionName": { + "name": "sgt", + "nodeType": "YulIdentifier", + "src": "22607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22607:49:16" + }, + "nodeType": "YulIf", + "src": "22604:136:16" + } + ] + }, + "name": "access_calldata_tail_t_bytes_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nodeType": "YulTypedName", + "src": "22074:8:16", + "type": "" + }, + { + "name": "ptr_to_tail", + "nodeType": "YulTypedName", + "src": "22084:11:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "addr", + "nodeType": "YulTypedName", + "src": "22100:4:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "22106:6:16", + "type": "" + } + ], + "src": "22023:724:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22806:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22816:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "22827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "22827:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "22816:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address_payable", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22788:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "22798:7:16", + "type": "" + } + ], + "src": "22753:104:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22914:87:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "22979:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22988:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22991:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "22981:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "22981:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "22981:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22937:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22970:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address_payable", + "nodeType": "YulIdentifier", + "src": "22944:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "22944:32:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "22934:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "22934:43:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "22927:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "22927:51:16" + }, + "nodeType": "YulIf", + "src": "22924:71:16" + } + ] + }, + "name": "validator_revert_t_address_payable", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22907:5:16", + "type": "" + } + ], + "src": "22863:138:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23067:95:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23077:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23099:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "23086:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "23086:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "23077:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "23150:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address_payable", + "nodeType": "YulIdentifier", + "src": "23115:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "23115:41:16" + }, + "nodeType": "YulExpressionStatement", + "src": "23115:41:16" + } + ] + }, + "name": "abi_decode_t_address_payable", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "23045:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23053:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "23061:5:16", + "type": "" + } + ], + "src": "23007:155:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23284:535:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "23330:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "23332:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "23332:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "23332:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "23305:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23314:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23301:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "23301:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23326:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "23297:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "23297:32:16" + }, + "nodeType": "YulIf", + "src": "23294:119:16" + }, + { + "nodeType": "YulBlock", + "src": "23423:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23438:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23452:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "23442:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23467:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23510:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23521:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23506:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "23506:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "23530:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_payable", + "nodeType": "YulIdentifier", + "src": "23477:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "23477:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "23467:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "23558:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23573:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23587:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "23577:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23603:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23638:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23649:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23634:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "23634:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "23658:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "23613:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "23613:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "23603:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "23686:126:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23701:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23715:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "23705:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23731:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23774:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23785:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23770:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "23770:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "23794:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_payable", + "nodeType": "YulIdentifier", + "src": "23741:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "23741:61:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "23731:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_payablet_uint256t_address_payable", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23238:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "23249:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "23261:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "23269:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "23277:6:16", + "type": "" + } + ], + "src": "23168:651:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23853:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23870:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23873:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23863:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "23863:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "23863:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23967:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23970:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23960:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "23960:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "23960:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23991:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23994:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "23984:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "23984:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "23984:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "23825:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24055:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24065:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24088:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "24070:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "24070:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24065:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "24099:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24122:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "24104:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "24104:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24099:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "24133:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24144:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24147:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24140:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "24133:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24173:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "24175:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "24175:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "24175:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24165:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "24168:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "24162:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "24162:10:16" + }, + "nodeType": "YulIf", + "src": "24159:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "24042:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "24045:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "24051:3:16", + "type": "" + } + ], + "src": "24011:191:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24334:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24344:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24356:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24367:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24352:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24352:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24344:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "24424:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24437:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24448:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24433:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24433:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "24380:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "24380:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "24380:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "24505:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24518:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24529:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24514:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24514:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "24461:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "24461:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "24461:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24298:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "24310:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "24318:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24329:4:16", + "type": "" + } + ], + "src": "24208:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24594:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24604:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24627:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "24609:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "24609:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24604:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "24638:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24661:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "24643:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "24643:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24638:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "24672:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24695:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24698:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "24691:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24691:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "24676:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "24709:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "24738:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "24720:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "24720:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "24709:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24927:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "24929:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "24929:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "24929:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24860:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "24853:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "24853:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24883:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "24890:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24899:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "24886:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24886:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "24880:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "24880:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "24833:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "24833:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "24813:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "24813:113:16" + }, + "nodeType": "YulIf", + "src": "24810:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "24577:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "24580:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "24586:7:16", + "type": "" + } + ], + "src": "24546:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24990:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25007:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25010:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25000:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "25000:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25000:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25104:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25107:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25097:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "25097:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25097:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25128:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25131:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25121:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "25121:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25121:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "24962:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25190:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25200:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25223:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25205:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "25205:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25200:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25234:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25257:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25239:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "25239:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25234:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25281:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "25283:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "25283:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25283:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25278:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "25271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "25271:9:16" + }, + "nodeType": "YulIf", + "src": "25268:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "25313:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25322:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25325:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "25318:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "25318:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "25313:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "25179:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "25182:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "25188:1:16", + "type": "" + } + ], + "src": "25148:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25384:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25394:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25417:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25399:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "25399:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25394:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25428:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25451:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25433:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "25433:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25428:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25462:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25474:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25477:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25470:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "25470:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "25462:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25504:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "25506:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "25506:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25506:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "25495:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25501:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "25492:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "25492:11:16" + }, + "nodeType": "YulIf", + "src": "25489:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "25370:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "25373:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "25379:4:16", + "type": "" + } + ], + "src": "25339:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25645:75:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "25667:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25675:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25663:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "25663:14:16" + }, + { + "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "25679:33:16", + "type": "", + "value": "ReentrancyGuard: reentrant call" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25656:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "25656:57:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25656:57:16" + } + ] + }, + "name": "store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "25637:6:16", + "type": "" + } + ], + "src": "25539:181:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25872:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25882:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25948:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25953:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25889:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "25889:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25882:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26054:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "nodeType": "YulIdentifier", + "src": "25965:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "25965:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25965:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "26067:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26078:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26083:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26074:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26074:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26067:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25860:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25868:3:16", + "type": "" + } + ], + "src": "25726:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26269:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26279:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26291:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26302:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26287:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26287:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26279:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26326:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26337:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26322:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26322:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26345:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26351:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "26341:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26341:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26315:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "26315:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "26315:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "26371:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26505:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26379:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "26379:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26371:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "26249:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "26264:4:16", + "type": "" + } + ], + "src": "26098:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26629:124:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "26651:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26659:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26647:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26647:14:16" + }, + { + "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26663:34:16", + "type": "", + "value": "Initializable: contract is not i" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26640:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "26640:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "26640:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "26719:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26727:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26715:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26715:15:16" + }, + { + "hexValue": "6e697469616c697a696e67", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26732:13:16", + "type": "", + "value": "nitializing" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26708:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "26708:38:16" + }, + "nodeType": "YulExpressionStatement", + "src": "26708:38:16" + } + ] + }, + "name": "store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "26621:6:16", + "type": "" + } + ], + "src": "26523:230:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26905:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26915:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26981:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26986:2:16", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26922:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "26922:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26915:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27087:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", + "nodeType": "YulIdentifier", + "src": "26998:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "26998:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "26998:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "27100:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27111:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27116:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27107:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "27107:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27100:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26893:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26901:3:16", + "type": "" + } + ], + "src": "26759:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27302:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27312:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27324:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27335:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27320:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "27320:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27312:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27359:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27370:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27355:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "27355:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27378:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27384:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27374:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "27374:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27348:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "27348:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "27348:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "27404:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27538:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27412:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "27412:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27404:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27282:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27297:4:16", + "type": "" + } + ], + "src": "27131:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27669:34:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27679:18:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27694:3:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "27679:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27641:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "27646:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "27657:11:16", + "type": "" + } + ], + "src": "27556:147:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27815:8:16", + "statements": [] + }, + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "27807:6:16", + "type": "" + } + ], + "src": "27709:114:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27992:235:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28002:90:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28085:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28090:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "28009:75:16" + }, + "nodeType": "YulFunctionCall", + "src": "28009:83:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28002:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28190:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nodeType": "YulIdentifier", + "src": "28101:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "28101:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "28101:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "28203:18:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28214:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28219:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28210:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "28210:11:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28203:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27980:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27988:3:16", + "type": "" + } + ], + "src": "27829:398:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28421:191:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28432:154:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28582:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "28439:141:16" + }, + "nodeType": "YulFunctionCall", + "src": "28439:147:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28432:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28596:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28603:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28596:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28408:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28417:3:16", + "type": "" + } + ], + "src": "28233:379:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28732:34:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28742:18:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28757:3:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "28742:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28704:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "28709:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "28720:11:16", + "type": "" + } + ], + "src": "28618:148:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28878:67:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "28900:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28908:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28896:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "28896:14:16" + }, + { + "hexValue": "416363657373436f6e74726f6c3a206163636f756e7420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "28912:25:16", + "type": "", + "value": "AccessControl: account " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28889:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "28889:49:16" + }, + "nodeType": "YulExpressionStatement", + "src": "28889:49:16" + } + ] + }, + "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "28870:6:16", + "type": "" + } + ], + "src": "28772:173:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29115:238:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29125:92:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29209:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29214:2:16", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "29132:76:16" + }, + "nodeType": "YulFunctionCall", + "src": "29132:85:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29125:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29315:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", + "nodeType": "YulIdentifier", + "src": "29226:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "29226:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "29226:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "29328:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29339:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29344:2:16", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29335:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "29335:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29328:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29103:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29111:3:16", + "type": "" + } + ], + "src": "28951:402:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29418:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29429:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "29445:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "29439:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "29439:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "29429:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "29401:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "29411:6:16", + "type": "" + } + ], + "src": "29359:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29526:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "29536:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29545:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "29540:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29605:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "29630:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "29635:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29626:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "29626:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "29649:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "29654:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29645:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "29645:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "29639:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "29639:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29619:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "29619:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "29619:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "29566:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "29569:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "29563:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "29563:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "29577:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29579:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "29588:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29591:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29584:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "29584:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "29579:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "29559:3:16", + "statements": [] + }, + "src": "29555:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "29688:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "29693:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29684:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "29684:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29702:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29677:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "29677:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "29677:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "29508:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "29513:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "29518:6:16", + "type": "" + } + ], + "src": "29464:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29826:280:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "29836:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "29883:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "29850:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "29850:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "29840:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "29898:96:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29982:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "29987:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "29905:76:16" + }, + "nodeType": "YulFunctionCall", + "src": "29905:89:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29898:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "30042:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30049:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "30038:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30056:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "30061:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "30003:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "30003:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "30003:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "30077:23:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30088:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "30093:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "30084:16:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30077:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "29807:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29814:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29822:3:16", + "type": "" + } + ], + "src": "29716:390:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30218:61:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30240:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30248:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30236:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "30236:14:16" + }, + { + "hexValue": "206973206d697373696e6720726f6c6520", + "kind": "string", + "nodeType": "YulLiteral", + "src": "30252:19:16", + "type": "", + "value": " is missing role " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30229:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "30229:43:16" + }, + "nodeType": "YulExpressionStatement", + "src": "30229:43:16" + } + ] + }, + "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "30210:6:16", + "type": "" + } + ], + "src": "30112:167:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30449:238:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30459:92:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30543:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30548:2:16", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "30466:76:16" + }, + "nodeType": "YulFunctionCall", + "src": "30466:85:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30459:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30649:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "nodeType": "YulIdentifier", + "src": "30560:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "30560:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "30560:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "30662:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30673:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30678:2:16", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30669:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "30669:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30662:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30437:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30445:3:16", + "type": "" + } + ], + "src": "30285:402:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31079:581:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31090:155:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31241:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "31097:142:16" + }, + "nodeType": "YulFunctionCall", + "src": "31097:148:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31090:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31255:102:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "31344:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31353:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "31262:81:16" + }, + "nodeType": "YulFunctionCall", + "src": "31262:95:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31255:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31367:155:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31518:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "31374:142:16" + }, + "nodeType": "YulFunctionCall", + "src": "31374:148:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31367:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31532:102:16", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "31621:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31630:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "31539:81:16" + }, + "nodeType": "YulFunctionCall", + "src": "31539:95:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31532:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31644:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31651:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31644:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31050:3:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "31056:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "31064:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31075:3:16", + "type": "" + } + ], + "src": "30693:967:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31714:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31724:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "31742:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31749:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31738:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "31738:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31758:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "31754:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "31754:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "31734:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "31734:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "31724:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "31697:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "31707:6:16", + "type": "" + } + ], + "src": "31666:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31866:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "31876:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "31923:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "31890:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "31890:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "31880:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31938:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32004:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "32009:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31945:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "31945:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31938:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32064:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32071:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32060:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32060:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32078:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "32083:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "32025:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "32025:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "32025:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "32099:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32110:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "32137:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "32115:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "32115:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32106:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32106:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32099:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "31847:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31854:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31862:3:16", + "type": "" + } + ], + "src": "31774:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32275:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32285:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32297:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32308:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32293:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32293:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32285:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32332:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32343:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32328:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32328:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32351:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32357:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "32347:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32347:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32321:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "32321:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "32321:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "32377:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "32449:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32458:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32385:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "32385:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32377:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "32247:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "32259:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "32270:4:16", + "type": "" + } + ], + "src": "32157:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32630:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32640:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32652:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32663:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32648:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32648:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32640:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "32720:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32733:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32744:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32729:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32729:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "32676:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "32676:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "32676:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "32801:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32814:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32825:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32810:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "32757:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "32757:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "32757:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "32883:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32896:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32907:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32892:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "32839:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "32839:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "32839:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "32586:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "32598:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "32606:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "32614:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "32625:4:16", + "type": "" + } + ], + "src": "32476:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32967:128:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32977:33:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33004:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "32986:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "32986:24:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32977:5:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33038:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "33040:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "33040:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "33040:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33025:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33032:4:16", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "33022:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "33022:15:16" + }, + "nodeType": "YulIf", + "src": "33019:41:16" + }, + { + "nodeType": "YulAssignment", + "src": "33069:20:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33080:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33087:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "33076:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33076:13:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "33069:3:16" + } + ] + } + ] + }, + "name": "decrement_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32953:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "32963:3:16", + "type": "" + } + ], + "src": "32924:171:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33207:76:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "33229:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33237:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33225:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33225:14:16" + }, + { + "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", + "kind": "string", + "nodeType": "YulLiteral", + "src": "33241:34:16", + "type": "", + "value": "Strings: hex length insufficient" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "33218:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "33218:58:16" + } + ] + }, + "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "33199:6:16", + "type": "" + } + ], + "src": "33101:182:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33435:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33445:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33511:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33516:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33452:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "33452:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33445:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33617:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "nodeType": "YulIdentifier", + "src": "33528:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "33528:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "33528:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "33630:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33641:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33646:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33637:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33637:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33630:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33423:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33431:3:16", + "type": "" + } + ], + "src": "33289:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33832:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33842:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33854:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33865:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33850:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33850:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33842:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33889:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33900:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33885:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33885:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33908:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33914:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "33904:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33904:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33878:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "33878:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "33878:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "33934:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34068:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33942:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "33942:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33934:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "33812:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "33827:4:16", + "type": "" + } + ], + "src": "33661:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34146:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34156:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "34171:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "34165:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "34165:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "34156:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "34211:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "34187:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "34187:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "34187:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "34124:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34132:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "34140:5:16", + "type": "" + } + ], + "src": "34086:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34303:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "34349:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "34351:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "34351:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "34351:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "34324:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34333:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "34320:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "34320:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34345:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "34316:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "34316:32:16" + }, + "nodeType": "YulIf", + "src": "34313:119:16" + }, + { + "nodeType": "YulBlock", + "src": "34442:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "34457:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34471:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "34461:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "34486:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34529:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "34540:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34525:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "34525:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "34549:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "34496:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "34496:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "34486:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "34273:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "34284:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "34296:6:16", + "type": "" + } + ], + "src": "34229:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34686:123:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34708:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34716:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34704:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "34704:14:16" + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34720:34:16", + "type": "", + "value": "SafeERC20: ERC20 operation did n" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34697:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "34697:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "34697:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34776:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34784:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34772:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "34772:15:16" + }, + { + "hexValue": "6f742073756363656564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34789:12:16", + "type": "", + "value": "ot succeed" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34765:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "34765:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "34765:37:16" + } + ] + }, + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "34678:6:16", + "type": "" + } + ], + "src": "34580:229:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34961:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34971:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35037:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35042:2:16", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34978:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "34978:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34971:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35143:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulIdentifier", + "src": "35054:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "35054:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "35054:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "35156:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35167:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35172:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35163:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35163:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35156:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34949:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34957:3:16", + "type": "" + } + ], + "src": "34815:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35358:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35368:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35380:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35391:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35376:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35376:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35368:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35415:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35426:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35411:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35411:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35434:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35440:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "35430:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35430:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35404:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "35404:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "35404:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "35460:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35594:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35468:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "35468:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35460:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35338:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "35353:4:16", + "type": "" + } + ], + "src": "35187:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35718:119:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "35740:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35748:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35736:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35736:14:16" + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "35752:34:16", + "type": "", + "value": "Address: insufficient balance fo" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35729:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "35729:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "35729:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "35808:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35816:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35804:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35804:15:16" + }, + { + "hexValue": "722063616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "35821:8:16", + "type": "", + "value": "r call" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35797:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "35797:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "35797:33:16" + } + ] + }, + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "35710:6:16", + "type": "" + } + ], + "src": "35612:225:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35989:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35999:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36065:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36070:2:16", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "36006:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "36006:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35999:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36171:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulIdentifier", + "src": "36082:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "36082:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "36082:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "36184:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36195:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36200:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36191:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "36191:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "36184:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35977:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35985:3:16", + "type": "" + } + ], + "src": "35843:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36386:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36396:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36408:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36419:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36404:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "36404:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36396:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36443:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36454:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36439:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "36439:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36462:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36468:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "36458:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "36458:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "36432:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "36432:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "36432:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "36488:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36622:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "36496:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "36496:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36488:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "36366:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "36381:4:16", + "type": "" + } + ], + "src": "36215:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36698:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36709:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36725:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36719:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "36719:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "36709:6:16" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "36681:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "36691:6:16", + "type": "" + } + ], + "src": "36640:98:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36852:278:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36862:52:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36908:5:16" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "36876:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "36876:38:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "36866:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "36923:95:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37006:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37011:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "36930:75:16" + }, + "nodeType": "YulFunctionCall", + "src": "36930:88:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36923:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37066:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37073:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37062:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "37062:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37080:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37085:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "37027:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "37027:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "37027:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "37101:23:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37112:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37117:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37108:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "37108:16:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "37101:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "36833:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "36840:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "36848:3:16", + "type": "" + } + ], + "src": "36744:386:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37270:137:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37281:100:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "37368:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37377:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "37288:79:16" + }, + "nodeType": "YulFunctionCall", + "src": "37288:93:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37281:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "37391:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37398:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "37391:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "37249:3:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "37255:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "37266:3:16", + "type": "" + } + ], + "src": "37136:271:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37519:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "37541:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37549:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37537:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "37537:14:16" + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "37553:31:16", + "type": "", + "value": "Address: call to non-contract" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37530:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "37530:55:16" + }, + "nodeType": "YulExpressionStatement", + "src": "37530:55:16" + } + ] + }, + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "37511:6:16", + "type": "" + } + ], + "src": "37413:179:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37744:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37754:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37820:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37825:2:16", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37761:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "37761:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37754:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37926:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulIdentifier", + "src": "37837:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "37837:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "37837:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "37939:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37950:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37955:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37946:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "37946:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "37939:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "37732:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "37740:3:16", + "type": "" + } + ], + "src": "37598:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38141:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38151:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38163:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38174:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38159:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "38159:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38151:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38198:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38209:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38194:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "38194:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38217:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38223:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38213:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "38213:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "38187:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "38187:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "38243:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38377:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "38251:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "38251:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38243:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "38121:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "38136:4:16", + "type": "" + } + ], + "src": "37970:419:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4, value5 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value6, value7 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value8 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n // bytes[]\n function abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n mstore(add(memPtr, 32), \" roles for self\")\n\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716(memPtr) {\n\n mstore(add(memPtr, 0), \"init: roundAddress already set\")\n\n }\n\n function abi_encode_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n mstore(add(memPtr, 32), \"dy initialized\")\n\n }\n\n function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f(memPtr) {\n\n mstore(add(memPtr, 0), \"error: voting contract not linke\")\n\n mstore(add(memPtr, 32), \"d to a round\")\n\n }\n\n function abi_encode_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7(memPtr) {\n\n mstore(add(memPtr, 0), \"error: can be invoked only by ro\")\n\n mstore(add(memPtr, 32), \"und contract\")\n\n }\n\n function abi_encode_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_tuple_t_address_payablet_uint256t_address_payable(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(memPtr) {\n\n mstore(add(memPtr, 0), \"ReentrancyGuard: reentrant call\")\n\n }\n\n function abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n mstore(add(memPtr, 32), \"nitializing\")\n\n }\n\n function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: account \")\n\n }\n\n function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n end := add(pos, 23)\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n mstore(add(memPtr, 0), \" is missing role \")\n\n }\n\n function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n }\n\n function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(memPtr) {\n\n mstore(add(memPtr, 0), \"SafeERC20: ERC20 operation did n\")\n\n mstore(add(memPtr, 32), \"ot succeed\")\n\n }\n\n function abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: insufficient balance fo\")\n\n mstore(add(memPtr, 32), \"r call\")\n\n }\n\n function abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: call to non-contract\")\n\n }\n\n function abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106102725760003560e01c8063658e48211161014f578063d3e78e4d116100c1578063f46b80ca1161007a578063f46b80ca14610930578063f7888aec1461096d578063f85fc0ab146109aa578063fbfe3ab2146109d5578063fc6d4e3914610a12578063fdbb219d14610a2e57610272565b8063d3e78e4d14610848578063d547741f14610873578063dcda7dad1461089c578063e1c7392a146108c7578063f2d4120e146108de578063f3fef3a31461090757610272565b8063a0cf0aea11610113578063a0cf0aea14610726578063a217fddf14610751578063ae876f611461077c578063b278110f146107a5578063bf7cb70b146107e2578063c23f001f1461080b57610272565b8063658e4821146106455780636bb85f4c1461066e57806380c78f1c1461069757806391d14854146106c05780639d082c98146106fd57610272565b806324d7806c116101e857806331ac9920116101ac57806331ac99201461054d57806336568abe146105765780633b8453ca1461059f5780633d0950a8146105c857806342e228ef146105f157806360e007a61461061a57610272565b806324d7806c1461046857806324ec7590146104a55780632620d800146104d05780632a0acc6a146104f95780632f2ff15d1461052457610272565b8063102d79271161023a578063102d79271461035c5780631037d18c1461038757806310881166146103b0578063155dc549146103d95780631ac3ddeb14610402578063248a9ca31461042b57610272565b806301ffc9a714610277578063041c60ee146102b45780630560bd96146102dd5780630b67d9251461031a5780630d6aef0414610345575b600080fd5b34801561028357600080fd5b5061029e6004803603810190610299919061323c565b610a59565b6040516102ab9190613284565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d69190613304565b610ad3565b005b3480156102e957600080fd5b5061030460048036038101906102ff91906133af565b610b3c565b6040516103119190613284565b60405180910390f35b34801561032657600080fd5b5061032f610b6f565b60405161033c91906133eb565b60405180910390f35b34801561035157600080fd5b5061035a610b93565b005b34801561036857600080fd5b50610371610bc8565b60405161037e9190613284565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190613304565b610bdb565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190613304565b610c13565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190613432565b610c4b565b005b34801561040e57600080fd5b50610429600480360381019061042491906133af565b610ca8565b005b34801561043757600080fd5b50610452600480360381019061044d9190613495565b610d6d565b60405161045f91906134d1565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a91906133af565b610d8d565b60405161049c9190613284565b60405180910390f35b3480156104b157600080fd5b506104ba610dc0565b6040516104c79190613505565b60405180910390f35b3480156104dc57600080fd5b506104f760048036038101906104f29190613304565b610dc6565b005b34801561050557600080fd5b5061050e610dfe565b60405161051b91906134d1565b60405180910390f35b34801561053057600080fd5b5061054b60048036038101906105469190613520565b610e22565b005b34801561055957600080fd5b50610574600480360381019061056f919061358c565b610e43565b005b34801561058257600080fd5b5061059d60048036038101906105989190613520565b610e58565b005b3480156105ab57600080fd5b506105c660048036038101906105c191906135b9565b610edb565b005b3480156105d457600080fd5b506105ef60048036038101906105ea9190613304565b610fad565b005b3480156105fd57600080fd5b506106186004803603810190610613919061363a565b610fe5565b005b34801561062657600080fd5b5061062f611046565b60405161063c9190613284565b60405180910390f35b34801561065157600080fd5b5061066c60048036038101906106679190613304565b611059565b005b34801561067a57600080fd5b5061069560048036038101906106909190613432565b6110b9565b005b3480156106a357600080fd5b506106be60048036038101906106b99190613304565b611116565b005b3480156106cc57600080fd5b506106e760048036038101906106e29190613520565b61114e565b6040516106f49190613284565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f9190613304565b6111b9565b005b34801561073257600080fd5b5061073b6111f1565b60405161074891906133eb565b60405180910390f35b34801561075d57600080fd5b506107666111f6565b60405161077391906134d1565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e9190613304565b6111fd565b005b3480156107b157600080fd5b506107cc60048036038101906107c791906133af565b61126f565b6040516107d99190613284565b60405180910390f35b3480156107ee57600080fd5b5061080960048036038101906108049190613304565b6112a2565b005b34801561081757600080fd5b50610832600480360381019061082d919061369a565b6112da565b60405161083f9190613505565b60405180910390f35b34801561085457600080fd5b5061085d6112ff565b60405161086a91906134d1565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190613520565b611323565b005b3480156108a857600080fd5b506108b1611344565b6040516108be91906134d1565b60405180910390f35b3480156108d357600080fd5b506108dc611368565b005b3480156108ea57600080fd5b50610905600480360381019061090091906136da565b611439565b005b34801561091357600080fd5b5061092e600480360381019061092991906137d6565b61158e565b005b34801561093c57600080fd5b506109576004803603810190610952919061363a565b6115e8565b60405161096491906138d4565b60405180910390f35b34801561097957600080fd5b50610994600480360381019061098f919061369a565b611727565b6040516109a19190613505565b60405180910390f35b3480156109b657600080fd5b506109bf6117ae565b6040516109cc9190613505565b60405180910390f35b3480156109e157600080fd5b506109fc60048036038101906109f791906133af565b6117ba565b604051610a099190613284565b60405180910390f35b610a2c6004803603810190610a27919061394c565b6117ed565b005b348015610a3a57600080fd5b50610a43611b2e565b604051610a5091906134d1565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610acc5750610acb82611b52565b5b9050919050565b610adb611bbc565b610ae433611c0b565b610b30828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050503033611c6e565b610b38611d5f565b5050565b6000610b687f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198361114e565b9050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9c33611d69565b610bc67fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233611dcc565b565b60ca60019054906101000a900460ff1681565b610be433611d69565b610c0f7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383611eae565b5050565b610c1c33611d69565b610c477f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383611f06565b5050565b610c5433611d69565b8060ca60006101000a81548160ff0219169083151502179055507f46d6d1a61669d91ea3801d9d57b7398c4ced2120f35ca8559749a391047a24ae81604051610c9d9190613284565b60405180910390a150565b610cb0611bbc565b6000600167ffffffffffffffff811115610ccd57610ccc6139ac565b5b604051908082528060200260200182016040528015610cfb5781602001602082028036833780820191505090505b5090508181600081518110610d1357610d126139db565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610d5633611c0b565b610d61813033611c6e565b50610d6a611d5f565b50565b600060656000838152602001908152602001600020600101549050919050565b6000610db97fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428361114e565b9050919050565b60c95481565b610dcf33611d69565b610dfa7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383611eae565b5050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4281565b610e2b82610d6d565b610e3481611f5e565b610e3e8383611f72565b505050565b610e4c33611d69565b610e5581612053565b50565b610e606120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec490613a8d565b60405180910390fd5b610ed78282611dcc565b5050565b610ee3611bbc565b600082829050905060005b81811015610f9d57610f90868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050858584818110610f4e57610f4d6139db565b5b9050602002016020810190610f6391906133af565b868685818110610f7657610f756139db565b5b9050602002016020810190610f8b91906133af565b611c6e565b8080600101915050610eee565b5050610fa7611d5f565b50505050565b610fb633611d69565b610fe17fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611f06565b5050565b610fed611bbc565b611039838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508283611c6e565b611041611d5f565b505050565b60ca60009054906101000a900460ff1681565b611061611bbc565b6110ad828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050503333611c6e565b6110b5611d5f565b5050565b6110c233611d69565b8060ca60016101000a81548160ff0219169083151502179055507f618c1dfcdc0554eaa0869d571defb09f99ae2add7c190d59444db6d0392489a78160405161110b9190613284565b60405180910390a150565b61111f33611d69565b61114a7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383611f06565b5050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6111c233611d69565b6111ed7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383611f06565b5050565b600081565b6000801b81565b61120a6000801b3361114e565b611240576040517f46ab053d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61126b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611eae565b5050565b600061129b7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838361114e565b9050919050565b6112ab33611d69565b6112d67f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383611eae565b5050565b60cb602052816000526040600020602052806000526040600020600091509150505481565b7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f08381565b61132c82610d6d565b61133581611f5e565b61133f8383611dcc565b505050565b7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc63281565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90613af9565b60405180910390fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060159054906101000a900460ff1615905080801561146c57506001600060149054906101000a900460ff1660ff16105b8061149b575061147b306120de565b15801561149a57506001600060149054906101000a900460ff1660ff16145b5b6114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613b8b565b60405180910390fd5b6001600060146101000a81548160ff021916908360ff1602179055508015611518576001600060156101000a81548160ff0219169083151502179055505b6115298a8a8a8a8a8a8a8a8a612101565b80156115825760008060156101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516115799190613bfd565b60405180910390a15b50505050505050505050565b611596611bbc565b600081036115d0576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115dc823333846121d6565b6115e4611d5f565b5050565b6060600084849050905060008167ffffffffffffffff81111561160e5761160d6139ac565b5b60405190808252806020026020018201604052801561163c5781602001602082028036833780820191505090505b50905060005b8281101561171a5760cb60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888481811061169e5761169d6139db565b5b90506020020160208101906116b391906133af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054828281518110611701576117006139db565b5b6020026020010181815250508080600101915050611642565b5080925050509392505050565b600060cb60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b670de0b6b3a764000081565b60006117e67fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328361114e565b9050919050565b6117f5611bbc565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b90613c8a565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613d1c565b60405180910390fd5b60008383905090506000805b82811015611ae457600080600088888581811061193e5761193d6139db565b5b90506020028101906119509190613d4b565b81019061195d9190613dec565b92509250925060ca60009054906101000a900460ff161561198257611981836124aa565b5b60ca60019054906101000a900460ff16156119a1576119a08161250d565b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119e5576119e0878484612570565b6119f4565b81856119f19190613e6e565b94505b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f023f5e053cbb2c4e0d563d51f8cafaa385fc620caa979fbcac023059ad1687d98686604051611a6a929190613ea2565b60405180910390a4600060c9541115611ac8576000670de0b6b3a764000060c95484611a969190613ecb565b611aa09190613f3c565b9050611ab884838386611ab39190613f6d565b6125a2565b611ac284826126b6565b50611ad4565b611ad38382846125a2565b5b838060010194505050505061191e565b5034811115611b1f576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050611b29611d5f565b505050565b7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed1981565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600260975403611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890613fed565b60405180910390fd5b6002609781905550565b611c357fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838261114e565b611c6b576040517f9d13e6e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60008351905060005b81811015611d5857600060cb60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878481518110611cd557611cd46139db565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611d4a57611d49868381518110611d3957611d386139db565b5b60200260200101518686846121d6565b5b818060010192505050611c77565b5050505050565b6001609781905550565b611d937fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428261114e565b611dc9576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b611dd6828261114e565b15611eaa5760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e4f6120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600082829050905060005b81811015611eff57611ef285858584818110611ed857611ed76139db565b5b9050602002016020810190611eed91906133af565b611323565b8080600101915050611eb9565b5050505050565b600082829050905060005b81811015611f5757611f4a85858584818110611f3057611f2f6139db565b5b9050602002016020810190611f4591906133af565b6127b2565b8080600101915050611f11565b5050505050565b611f6f81611f6a6120d6565b6127c0565b50565b611f7c828261114e565b61204f5760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ff46120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b670de0b6b3a7640000811115612095576040517fcd4e616700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c9819055507fd4c19c993aeeb50b76da8b158f84806c9d235eff5b86f3a36f12a2e1dd4e6eac816040516120cb9190613505565b60405180910390a150565b600033905090565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060159054906101000a900460ff16612150576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121479061407f565b60405180910390fd5b6121608989898989898989612845565b612168612a92565b600089899050111561219057600160ca60006101000a81548160ff0219169083151502179055505b60008787905011156121b857600160ca60016101000a81548160ff0219169083151502179055505b60008111156121cb576121ca81612053565b5b505050505050505050565b60cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561228c576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060cb60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123189190613f6d565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123fc5760008273ffffffffffffffffffffffffffffffffffffffff1682604051612379906140d0565b60006040518083038185875af1925050503d80600081146123b6576040519150601f19603f3d011682016040523d82523d6000602084013e6123bb565b606091505b50509050806123f6576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50612428565b61242782828673ffffffffffffffffffffffffffffffffffffffff16612aeb9092919063ffffffff16565b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f78460405161249c9190613505565b60405180910390a450505050565b6124d47f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198261114e565b61250a576040517fe51cf7bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6125377fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328261114e565b61256d576040517f375a7a9200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b61259d8330838573ffffffffffffffffffffffffffffffffffffffff16612b71909392919063ffffffff16565b505050565b8060cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461262e9190613e6e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fb91b2d1906a6e6e2b45b99eb26ac141804eb2684a0df30699fdcb8b5ced1d518846040516126a99190613505565b60405180910390a4505050565b8060cb60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127429190613e6e565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f468c2f4ec7ce54b88b575db5d64710429b1880e4581f5328aaa4b3f51dadc58b836040516127a69190613505565b60405180910390a35050565b6127bc8282611f72565b5050565b6127ca828261114e565b612841576127d781612bfa565b6127e58360001c6020612c27565b6040516020016127f69291906141ee565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128389190614272565b60405180910390fd5b5050565b600060159054906101000a900460ff16612894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288b9061407f565b60405180910390fd5b61289c612e63565b6128a96000801b336127b2565b6128d37fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632306127b2565b61291d7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed197fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129677fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6327fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129b17fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0837fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129dc7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198989611f06565b612a077fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328787611f06565b612a327fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838585611f06565b612a5d7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611f06565b612a887f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed1960006127b2565b5050505050505050565b600060159054906101000a900460ff16612ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad89061407f565b60405180910390fd5b612ae9612f10565b565b612b6c8363a9059cbb60e01b8484604051602401612b0a929190613ea2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f69565b505050565b612bf4846323b872dd60e01b858585604051602401612b9293929190614294565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f69565b50505050565b6060612c208273ffffffffffffffffffffffffffffffffffffffff16601460ff16612c27565b9050919050565b606060006002836002612c3a9190613ecb565b612c449190613e6e565b67ffffffffffffffff811115612c5d57612c5c6139ac565b5b6040519080825280601f01601f191660200182016040528015612c8f5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612cc757612cc66139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612d2b57612d2a6139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612d6b9190613ecb565b612d759190613e6e565b90505b6001811115612e15577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612db757612db66139db565b5b1a60f81b828281518110612dce57612dcd6139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612e0e906142cb565b9050612d78565b5060008414612e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5090614340565b60405180910390fd5b8091505092915050565b600060159054906101000a900460ff16612eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea99061407f565b60405180910390fd5b565b6000612ebf83610d6d565b90508160656000858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600060159054906101000a900460ff16612f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f569061407f565b60405180910390fd5b6001609781905550565b6000612fcb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166130309092919063ffffffff16565b905060008151111561302b5780806020019051810190612feb9190614375565b61302a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302190614414565b60405180910390fd5b5b505050565b606061303f8484600085613048565b90509392505050565b60608247101561308d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613084906144a6565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516130b69190614502565b60006040518083038185875af1925050503d80600081146130f3576040519150601f19603f3d011682016040523d82523d6000602084013e6130f8565b606091505b509150915061310987838387613115565b92505050949350505050565b6060831561317757600083510361316f5761312f856120de565b61316e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316590614565565b60405180910390fd5b5b829050613182565b613181838361318a565b5b949350505050565b60008251111561319d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d19190614272565b60405180910390fd5b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613219816131e4565b811461322457600080fd5b50565b60008135905061323681613210565b92915050565b600060208284031215613252576132516131da565b5b600061326084828501613227565b91505092915050565b60008115159050919050565b61327e81613269565b82525050565b60006020820190506132996000830184613275565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126132c4576132c361329f565b5b8235905067ffffffffffffffff8111156132e1576132e06132a4565b5b6020830191508360208202830111156132fd576132fc6132a9565b5b9250929050565b6000806020838503121561331b5761331a6131da565b5b600083013567ffffffffffffffff811115613339576133386131df565b5b613345858286016132ae565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061337c82613351565b9050919050565b61338c81613371565b811461339757600080fd5b50565b6000813590506133a981613383565b92915050565b6000602082840312156133c5576133c46131da565b5b60006133d38482850161339a565b91505092915050565b6133e581613371565b82525050565b600060208201905061340060008301846133dc565b92915050565b61340f81613269565b811461341a57600080fd5b50565b60008135905061342c81613406565b92915050565b600060208284031215613448576134476131da565b5b60006134568482850161341d565b91505092915050565b6000819050919050565b6134728161345f565b811461347d57600080fd5b50565b60008135905061348f81613469565b92915050565b6000602082840312156134ab576134aa6131da565b5b60006134b984828501613480565b91505092915050565b6134cb8161345f565b82525050565b60006020820190506134e660008301846134c2565b92915050565b6000819050919050565b6134ff816134ec565b82525050565b600060208201905061351a60008301846134f6565b92915050565b60008060408385031215613537576135366131da565b5b600061354585828601613480565b92505060206135568582860161339a565b9150509250929050565b613569816134ec565b811461357457600080fd5b50565b60008135905061358681613560565b92915050565b6000602082840312156135a2576135a16131da565b5b60006135b084828501613577565b91505092915050565b600080600080604085870312156135d3576135d26131da565b5b600085013567ffffffffffffffff8111156135f1576135f06131df565b5b6135fd878288016132ae565b9450945050602085013567ffffffffffffffff8111156136205761361f6131df565b5b61362c878288016132ae565b925092505092959194509250565b600080600060408486031215613653576136526131da565b5b600084013567ffffffffffffffff811115613671576136706131df565b5b61367d868287016132ae565b935093505060206136908682870161339a565b9150509250925092565b600080604083850312156136b1576136b06131da565b5b60006136bf8582860161339a565b92505060206136d08582860161339a565b9150509250929050565b600080600080600080600080600060a08a8c0312156136fc576136fb6131da565b5b60008a013567ffffffffffffffff81111561371a576137196131df565b5b6137268c828d016132ae565b995099505060208a013567ffffffffffffffff811115613749576137486131df565b5b6137558c828d016132ae565b975097505060408a013567ffffffffffffffff811115613778576137776131df565b5b6137848c828d016132ae565b955095505060608a013567ffffffffffffffff8111156137a7576137a66131df565b5b6137b38c828d016132ae565b935093505060806137c68c828d01613577565b9150509295985092959850929598565b600080604083850312156137ed576137ec6131da565b5b60006137fb8582860161339a565b925050602061380c85828601613577565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61384b816134ec565b82525050565b600061385d8383613842565b60208301905092915050565b6000602082019050919050565b600061388182613816565b61388b8185613821565b935061389683613832565b8060005b838110156138c75781516138ae8882613851565b97506138b983613869565b92505060018101905061389a565b5085935050505092915050565b600060208201905081810360008301526138ee8184613876565b905092915050565b60008083601f84011261390c5761390b61329f565b5b8235905067ffffffffffffffff811115613929576139286132a4565b5b602083019150836020820283011115613945576139446132a9565b5b9250929050565b600080600060408486031215613965576139646131da565b5b600084013567ffffffffffffffff811115613983576139826131df565b5b61398f868287016138f6565b935093505060206139a28682870161339a565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613a77602f83613a0a565b9150613a8282613a1b565b604082019050919050565b60006020820190508181036000830152613aa681613a6a565b9050919050565b7f696e69743a20726f756e644164647265737320616c7265616479207365740000600082015250565b6000613ae3601e83613a0a565b9150613aee82613aad565b602082019050919050565b60006020820190508181036000830152613b1281613ad6565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613b75602e83613a0a565b9150613b8082613b19565b604082019050919050565b60006020820190508181036000830152613ba481613b68565b9050919050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b6000613be7613be2613bdd84613bab565b613bc2565b613bb5565b9050919050565b613bf781613bcc565b82525050565b6000602082019050613c126000830184613bee565b92915050565b7f6572726f723a20766f74696e6720636f6e7472616374206e6f74206c696e6b6560008201527f6420746f206120726f756e640000000000000000000000000000000000000000602082015250565b6000613c74602c83613a0a565b9150613c7f82613c18565b604082019050919050565b60006020820190508181036000830152613ca381613c67565b9050919050565b7f6572726f723a2063616e20626520696e766f6b6564206f6e6c7920627920726f60008201527f756e6420636f6e74726163740000000000000000000000000000000000000000602082015250565b6000613d06602c83613a0a565b9150613d1182613caa565b604082019050919050565b60006020820190508181036000830152613d3581613cf9565b9050919050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613d6857613d67613d3c565b5b80840192508235915067ffffffffffffffff821115613d8a57613d89613d41565b5b602083019250600182023603831315613da657613da5613d46565b5b509250929050565b6000613db982613351565b9050919050565b613dc981613dae565b8114613dd457600080fd5b50565b600081359050613de681613dc0565b92915050565b600080600060608486031215613e0557613e046131da565b5b6000613e1386828701613dd7565b9350506020613e2486828701613577565b9250506040613e3586828701613dd7565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e79826134ec565b9150613e84836134ec565b9250828201905080821115613e9c57613e9b613e3f565b5b92915050565b6000604082019050613eb760008301856133dc565b613ec460208301846134f6565b9392505050565b6000613ed6826134ec565b9150613ee1836134ec565b9250828202613eef816134ec565b91508282048414831517613f0657613f05613e3f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f47826134ec565b9150613f52836134ec565b925082613f6257613f61613f0d565b5b828204905092915050565b6000613f78826134ec565b9150613f83836134ec565b9250828203905081811115613f9b57613f9a613e3f565b5b92915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000613fd7601f83613a0a565b9150613fe282613fa1565b602082019050919050565b6000602082019050818103600083015261400681613fca565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000614069602b83613a0a565b91506140748261400d565b604082019050919050565b600060208201905081810360008301526140988161405c565b9050919050565b600081905092915050565b50565b60006140ba60008361409f565b91506140c5826140aa565b600082019050919050565b60006140db826140ad565b9150819050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006141266017836140e5565b9150614131826140f0565b601782019050919050565b600081519050919050565b60005b8381101561416557808201518184015260208101905061414a565b60008484015250505050565b600061417c8261413c565b61418681856140e5565b9350614196818560208601614147565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006141d86011836140e5565b91506141e3826141a2565b601182019050919050565b60006141f982614119565b91506142058285614171565b9150614210826141cb565b915061421c8284614171565b91508190509392505050565b6000601f19601f8301169050919050565b60006142448261413c565b61424e8185613a0a565b935061425e818560208601614147565b61426781614228565b840191505092915050565b6000602082019050818103600083015261428c8184614239565b905092915050565b60006060820190506142a960008301866133dc565b6142b660208301856133dc565b6142c360408301846134f6565b949350505050565b60006142d6826134ec565b9150600082036142e9576142e8613e3f565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061432a602083613a0a565b9150614335826142f4565b602082019050919050565b600060208201905081810360008301526143598161431d565b9050919050565b60008151905061436f81613406565b92915050565b60006020828403121561438b5761438a6131da565b5b600061439984828501614360565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006143fe602a83613a0a565b9150614409826143a2565b604082019050919050565b6000602082019050818103600083015261442d816143f1565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000614490602683613a0a565b915061449b82614434565b604082019050919050565b600060208201905081810360008301526144bf81614483565b9050919050565b600081519050919050565b60006144dc826144c6565b6144e6818561409f565b93506144f6818560208601614147565b80840191505092915050565b600061450e82846144d1565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061454f601d83613a0a565b915061455a82614519565b602082019050919050565b6000602082019050818103600083015261457e81614542565b905091905056fea26469706673582212201fcf5d16c95d4a4b926e62a8773ac7a8323e139f06764cee68c39bb9f600314364736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x272 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x658E4821 GT PUSH2 0x14F JUMPI DUP1 PUSH4 0xD3E78E4D GT PUSH2 0xC1 JUMPI DUP1 PUSH4 0xF46B80CA GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xF46B80CA EQ PUSH2 0x930 JUMPI DUP1 PUSH4 0xF7888AEC EQ PUSH2 0x96D JUMPI DUP1 PUSH4 0xF85FC0AB EQ PUSH2 0x9AA JUMPI DUP1 PUSH4 0xFBFE3AB2 EQ PUSH2 0x9D5 JUMPI DUP1 PUSH4 0xFC6D4E39 EQ PUSH2 0xA12 JUMPI DUP1 PUSH4 0xFDBB219D EQ PUSH2 0xA2E JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0xD3E78E4D EQ PUSH2 0x848 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x873 JUMPI DUP1 PUSH4 0xDCDA7DAD EQ PUSH2 0x89C JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x8C7 JUMPI DUP1 PUSH4 0xF2D4120E EQ PUSH2 0x8DE JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x907 JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0xA0CF0AEA GT PUSH2 0x113 JUMPI DUP1 PUSH4 0xA0CF0AEA EQ PUSH2 0x726 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x751 JUMPI DUP1 PUSH4 0xAE876F61 EQ PUSH2 0x77C JUMPI DUP1 PUSH4 0xB278110F EQ PUSH2 0x7A5 JUMPI DUP1 PUSH4 0xBF7CB70B EQ PUSH2 0x7E2 JUMPI DUP1 PUSH4 0xC23F001F EQ PUSH2 0x80B JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x658E4821 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x6BB85F4C EQ PUSH2 0x66E JUMPI DUP1 PUSH4 0x80C78F1C EQ PUSH2 0x697 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x6C0 JUMPI DUP1 PUSH4 0x9D082C98 EQ PUSH2 0x6FD JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C GT PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x31AC9920 GT PUSH2 0x1AC JUMPI DUP1 PUSH4 0x31AC9920 EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x576 JUMPI DUP1 PUSH4 0x3B8453CA EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0x3D0950A8 EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0x42E228EF EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x60E007A6 EQ PUSH2 0x61A JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0x24EC7590 EQ PUSH2 0x4A5 JUMPI DUP1 PUSH4 0x2620D800 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x524 JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x102D7927 GT PUSH2 0x23A JUMPI DUP1 PUSH4 0x102D7927 EQ PUSH2 0x35C JUMPI DUP1 PUSH4 0x1037D18C EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x10881166 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x155DC549 EQ PUSH2 0x3D9 JUMPI DUP1 PUSH4 0x1AC3DDEB EQ PUSH2 0x402 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x42B JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0x41C60EE EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x560BD96 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xB67D925 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0xD6AEF04 EQ PUSH2 0x345 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x299 SWAP2 SWAP1 PUSH2 0x323C JUMP JUMPDEST PUSH2 0xA59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xAD3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FF SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xB3C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32F PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x33EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x35A PUSH2 0xB93 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH2 0xBC8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A9 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xBDB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D2 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xC13 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x400 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3FB SWAP2 SWAP1 PUSH2 0x3432 JUMP JUMPDEST PUSH2 0xC4B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x424 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xCA8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x437 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44D SWAP2 SWAP1 PUSH2 0x3495 JUMP JUMPDEST PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45F SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x474 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x48F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x48A SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xD8D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x49C SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BA PUSH2 0xDC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C7 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F2 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xDC6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50E PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51B SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x54B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0xE22 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x574 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x56F SWAP2 SWAP1 PUSH2 0x358C JUMP JUMPDEST PUSH2 0xE43 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x582 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x598 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0xE58 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x35B9 JUMP JUMPDEST PUSH2 0xEDB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5EF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xFAD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x618 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x613 SWAP2 SWAP1 PUSH2 0x363A JUMP JUMPDEST PUSH2 0xFE5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62F PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x63C SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x66C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x667 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x1059 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x695 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x690 SWAP2 SWAP1 PUSH2 0x3432 JUMP JUMPDEST PUSH2 0x10B9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6B9 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x1116 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E2 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0x114E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F4 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x709 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x724 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x11B9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x732 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x73B PUSH2 0x11F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x748 SWAP2 SWAP1 PUSH2 0x33EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x766 PUSH2 0x11F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x773 SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x788 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x79E SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x11FD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7CC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C7 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x126F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7D9 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x809 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x804 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x12A2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x817 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x832 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x82D SWAP2 SWAP1 PUSH2 0x369A JUMP JUMPDEST PUSH2 0x12DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83F SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x854 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x85D PUSH2 0x12FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x86A SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x89A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x895 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8B1 PUSH2 0x1344 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8BE SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8DC PUSH2 0x1368 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x905 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x900 SWAP2 SWAP1 PUSH2 0x36DA JUMP JUMPDEST PUSH2 0x1439 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x929 SWAP2 SWAP1 PUSH2 0x37D6 JUMP JUMPDEST PUSH2 0x158E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x957 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x952 SWAP2 SWAP1 PUSH2 0x363A JUMP JUMPDEST PUSH2 0x15E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x964 SWAP2 SWAP1 PUSH2 0x38D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x979 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x994 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x98F SWAP2 SWAP1 PUSH2 0x369A JUMP JUMPDEST PUSH2 0x1727 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9A1 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9BF PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9CC SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9F7 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x17BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA09 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA2C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x394C JUMP JUMPDEST PUSH2 0x17ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x1B2E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA50 SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xACC JUMPI POP PUSH2 0xACB DUP3 PUSH2 0x1B52 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xADB PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0xAE4 CALLER PUSH2 0x1C0B JUMP JUMPDEST PUSH2 0xB30 DUP3 DUP3 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP ADDRESS CALLER PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0xB38 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB68 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0xB9C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xBC6 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 CALLER PUSH2 0x1DCC JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xCA PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xBE4 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xC0F PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC1C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xC47 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC54 CALLER PUSH2 0x1D69 JUMP JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x46D6D1A61669D91EA3801D9D57B7398C4CED2120F35CA8559749A391047A24AE DUP2 PUSH1 0x40 MLOAD PUSH2 0xC9D SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xCB0 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCCD JUMPI PUSH2 0xCCC PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCFB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xD13 JUMPI PUSH2 0xD12 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH2 0xD56 CALLER PUSH2 0x1C0B JUMP JUMPDEST PUSH2 0xD61 DUP2 ADDRESS CALLER PUSH2 0x1C6E JUMP JUMPDEST POP PUSH2 0xD6A PUSH2 0x1D5F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB9 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xDCF CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xDFA PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP2 JUMP JUMPDEST PUSH2 0xE2B DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH2 0xE34 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0xE3E DUP4 DUP4 PUSH2 0x1F72 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xE4C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xE55 DUP2 PUSH2 0x2053 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE60 PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xECD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC4 SWAP1 PUSH2 0x3A8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xED7 DUP3 DUP3 PUSH2 0x1DCC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xEE3 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF9D JUMPI PUSH2 0xF90 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xF4E JUMPI PUSH2 0xF4D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xF63 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0xF76 JUMPI PUSH2 0xF75 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xF8B SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x1C6E JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xEEE JUMP JUMPDEST POP POP PUSH2 0xFA7 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xFB6 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xFE1 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFED PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0x1039 DUP4 DUP4 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP3 DUP4 PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0x1041 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1061 PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0x10AD DUP3 DUP3 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP CALLER CALLER PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0x10B5 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x10C2 CALLER PUSH2 0x1D69 JUMP JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x618C1DFCDC0554EAA0869D571DEFB09F99AE2ADD7C190D59444DB6D0392489A7 DUP2 PUSH1 0x40 MLOAD PUSH2 0x110B SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x111F CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x114A PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11C2 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x11ED PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x120A PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1240 JUMPI PUSH1 0x40 MLOAD PUSH32 0x46AB053D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x126B PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x129B PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12AB CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x12D6 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xCB PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP2 JUMP JUMPDEST PUSH2 0x132C DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH2 0x1335 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x133F DUP4 DUP4 PUSH2 0x1DCC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x13F7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13EE SWAP1 PUSH2 0x3AF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x146C JUMPI POP PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND LT JUMPDEST DUP1 PUSH2 0x149B JUMPI POP PUSH2 0x147B ADDRESS PUSH2 0x20DE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x149A JUMPI POP PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ JUMPDEST JUMPDEST PUSH2 0x14DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14D1 SWAP1 PUSH2 0x3B8B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x1518 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x15 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1529 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x2101 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1582 JUMPI PUSH1 0x0 DUP1 PUSH1 0x15 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x1579 SWAP2 SWAP1 PUSH2 0x3BFD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1596 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 DUP2 SUB PUSH2 0x15D0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15DC DUP3 CALLER CALLER DUP5 PUSH2 0x21D6 JUMP JUMPDEST PUSH2 0x15E4 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 DUP5 SWAP1 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x160E JUMPI PUSH2 0x160D PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x163C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x171A JUMPI PUSH1 0xCB PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x169E JUMPI PUSH2 0x169D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x16B3 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1701 JUMPI PUSH2 0x1700 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1642 JUMP JUMPDEST POP DUP1 SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCB PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17E6 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17F5 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1884 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x187B SWAP1 PUSH2 0x3C8A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1909 SWAP1 PUSH2 0x3D1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP4 SWAP1 POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AE4 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x193E JUMPI PUSH2 0x193D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1950 SWAP2 SWAP1 PUSH2 0x3D4B JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x195D SWAP2 SWAP1 PUSH2 0x3DEC JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1982 JUMPI PUSH2 0x1981 DUP4 PUSH2 0x24AA JUMP JUMPDEST JUMPDEST PUSH1 0xCA PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x19A1 JUMPI PUSH2 0x19A0 DUP2 PUSH2 0x250D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x19E5 JUMPI PUSH2 0x19E0 DUP8 DUP5 DUP5 PUSH2 0x2570 JUMP JUMPDEST PUSH2 0x19F4 JUMP JUMPDEST DUP2 DUP6 PUSH2 0x19F1 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP5 POP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x23F5E053CBB2C4E0D563D51F8CAFAA385FC620CAA979FBCAC023059AD1687D9 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1A6A SWAP3 SWAP2 SWAP1 PUSH2 0x3EA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x0 PUSH1 0xC9 SLOAD GT ISZERO PUSH2 0x1AC8 JUMPI PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 PUSH1 0xC9 SLOAD DUP5 PUSH2 0x1A96 SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x1AA0 SWAP2 SWAP1 PUSH2 0x3F3C JUMP JUMPDEST SWAP1 POP PUSH2 0x1AB8 DUP5 DUP4 DUP4 DUP7 PUSH2 0x1AB3 SWAP2 SWAP1 PUSH2 0x3F6D JUMP JUMPDEST PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x1AC2 DUP5 DUP3 PUSH2 0x26B6 JUMP JUMPDEST POP PUSH2 0x1AD4 JUMP JUMPDEST PUSH2 0x1AD3 DUP4 DUP3 DUP5 PUSH2 0x25A2 JUMP JUMPDEST JUMPDEST DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP POP POP POP POP PUSH2 0x191E JUMP JUMPDEST POP CALLVALUE DUP2 GT ISZERO PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH2 0x1B29 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x97 SLOAD SUB PUSH2 0x1C01 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BF8 SWAP1 PUSH2 0x3FED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x1C35 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1C6B JUMPI PUSH1 0x40 MLOAD PUSH32 0x9D13E6E300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1D58 JUMPI PUSH1 0x0 PUSH1 0xCB PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1CD5 JUMPI PUSH2 0x1CD4 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1D4A JUMPI PUSH2 0x1D49 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1D39 JUMPI PUSH2 0x1D38 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP7 DUP5 PUSH2 0x21D6 JUMP JUMPDEST JUMPDEST DUP2 DUP1 PUSH1 0x1 ADD SWAP3 POP POP POP PUSH2 0x1C77 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x1D93 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1DC9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x7BFA4B9F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1DD6 DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST ISZERO PUSH2 0x1EAA JUMPI PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1E4F PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1EFF JUMPI PUSH2 0x1EF2 DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x1ED8 JUMPI PUSH2 0x1ED7 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1EED SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1EB9 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F57 JUMPI PUSH2 0x1F4A DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x1F30 JUMPI PUSH2 0x1F2F PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1F45 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x27B2 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1F11 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F6F DUP2 PUSH2 0x1F6A PUSH2 0x20D6 JUMP JUMPDEST PUSH2 0x27C0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1F7C DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x204F JUMPI PUSH1 0x1 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1FF4 PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCD4E616700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 DUP2 SWAP1 SSTORE POP PUSH32 0xD4C19C993AEEB50B76DA8B158F84806C9D235EFF5B86F3A36F12A2E1DD4E6EAC DUP2 PUSH1 0x40 MLOAD PUSH2 0x20CB SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2150 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2147 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2160 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x2845 JUMP JUMPDEST PUSH2 0x2168 PUSH2 0x2A92 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP10 SWAP1 POP GT ISZERO PUSH2 0x2190 JUMPI PUSH1 0x1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 DUP8 DUP8 SWAP1 POP GT ISZERO PUSH2 0x21B8 JUMPI PUSH1 0x1 PUSH1 0xCA PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x21CB JUMPI PUSH2 0x21CA DUP2 PUSH2 0x2053 JUMP JUMPDEST JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xCB PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x228C JUMPI PUSH1 0x40 MLOAD PUSH32 0xF4D678B800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2318 SWAP2 SWAP1 PUSH2 0x3F6D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x23FC JUMPI PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x2379 SWAP1 PUSH2 0x40D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x23B6 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x23BB JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x23F6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x90B8EC1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0x2428 JUMP JUMPDEST PUSH2 0x2427 DUP3 DUP3 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AEB SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3115D1449A7B732C986CBA18244E897A450F61E1BB8D589CD2E69E6C8924F9F7 DUP5 PUSH1 0x40 MLOAD PUSH2 0x249C SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH2 0x24D4 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x250A JUMPI PUSH1 0x40 MLOAD PUSH32 0xE51CF7BF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2537 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x256D JUMPI PUSH1 0x40 MLOAD PUSH32 0x375A7A9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x259D DUP4 ADDRESS DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2B71 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x262E SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB91B2D1906A6E6E2B45B99EB26AC141804EB2684A0DF30699FDCB8B5CED1D518 DUP5 PUSH1 0x40 MLOAD PUSH2 0x26A9 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2742 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x468C2F4EC7CE54B88B575DB5D64710429B1880E4581F5328AAA4B3F51DADC58B DUP4 PUSH1 0x40 MLOAD PUSH2 0x27A6 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x27BC DUP3 DUP3 PUSH2 0x1F72 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x27CA DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x2841 JUMPI PUSH2 0x27D7 DUP2 PUSH2 0x2BFA JUMP JUMPDEST PUSH2 0x27E5 DUP4 PUSH1 0x0 SHR PUSH1 0x20 PUSH2 0x2C27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x27F6 SWAP3 SWAP2 SWAP1 PUSH2 0x41EE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2838 SWAP2 SWAP1 PUSH2 0x4272 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2894 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x288B SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x289C PUSH2 0x2E63 JUMP JUMPDEST PUSH2 0x28A9 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x27B2 JUMP JUMPDEST PUSH2 0x28D3 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 ADDRESS PUSH2 0x27B2 JUMP JUMPDEST PUSH2 0x291D PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x2967 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x29B1 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x29DC PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP10 DUP10 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A07 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP8 DUP8 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A32 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP6 DUP6 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A5D PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A88 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 PUSH1 0x0 PUSH2 0x27B2 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2AE1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2AD8 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2AE9 PUSH2 0x2F10 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x2B6C DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2B0A SWAP3 SWAP2 SWAP1 PUSH2 0x3EA2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2F69 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x2BF4 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2B92 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2F69 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2C20 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x14 PUSH1 0xFF AND PUSH2 0x2C27 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x2 DUP4 PUSH1 0x2 PUSH2 0x2C3A SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x2C44 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5D JUMPI PUSH2 0x2C5C PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2C8F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2CC7 JUMPI PUSH2 0x2CC6 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2D2B JUMPI PUSH2 0x2D2A PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH1 0x1 DUP5 PUSH1 0x2 PUSH2 0x2D6B SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x2D75 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2E15 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xF DUP7 AND PUSH1 0x10 DUP2 LT PUSH2 0x2DB7 JUMPI PUSH2 0x2DB6 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2DCE JUMPI PUSH2 0x2DCD PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 DUP6 SWAP1 SHR SWAP5 POP DUP1 PUSH2 0x2E0E SWAP1 PUSH2 0x42CB JUMP JUMPDEST SWAP1 POP PUSH2 0x2D78 JUMP JUMPDEST POP PUSH1 0x0 DUP5 EQ PUSH2 0x2E59 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E50 SWAP1 PUSH2 0x4340 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2EB2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EA9 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EBF DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP2 DUP2 DUP5 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2F5F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F56 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FCB DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x3030 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x302B JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2FEB SWAP2 SWAP1 PUSH2 0x4375 JUMP JUMPDEST PUSH2 0x302A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3021 SWAP1 PUSH2 0x4414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x303F DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x3048 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x308D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3084 SWAP1 PUSH2 0x44A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x30B6 SWAP2 SWAP1 PUSH2 0x4502 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x30F3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x30F8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3109 DUP8 DUP4 DUP4 DUP8 PUSH2 0x3115 JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3177 JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x316F JUMPI PUSH2 0x312F DUP6 PUSH2 0x20DE JUMP JUMPDEST PUSH2 0x316E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3165 SWAP1 PUSH2 0x4565 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x3182 JUMP JUMPDEST PUSH2 0x3181 DUP4 DUP4 PUSH2 0x318A JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x319D JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31D1 SWAP2 SWAP1 PUSH2 0x4272 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3219 DUP2 PUSH2 0x31E4 JUMP JUMPDEST DUP2 EQ PUSH2 0x3224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3236 DUP2 PUSH2 0x3210 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3252 JUMPI PUSH2 0x3251 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3260 DUP5 DUP3 DUP6 ADD PUSH2 0x3227 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x327E DUP2 PUSH2 0x3269 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3299 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3275 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x32C4 JUMPI PUSH2 0x32C3 PUSH2 0x329F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x32E1 JUMPI PUSH2 0x32E0 PUSH2 0x32A4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x32FD JUMPI PUSH2 0x32FC PUSH2 0x32A9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x331B JUMPI PUSH2 0x331A PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3339 JUMPI PUSH2 0x3338 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3345 DUP6 DUP3 DUP7 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x337C DUP3 PUSH2 0x3351 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x338C DUP2 PUSH2 0x3371 JUMP JUMPDEST DUP2 EQ PUSH2 0x3397 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x33A9 DUP2 PUSH2 0x3383 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33C5 JUMPI PUSH2 0x33C4 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x33D3 DUP5 DUP3 DUP6 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x33E5 DUP2 PUSH2 0x3371 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3400 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x33DC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x340F DUP2 PUSH2 0x3269 JUMP JUMPDEST DUP2 EQ PUSH2 0x341A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x342C DUP2 PUSH2 0x3406 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3448 JUMPI PUSH2 0x3447 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3456 DUP5 DUP3 DUP6 ADD PUSH2 0x341D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3472 DUP2 PUSH2 0x345F JUMP JUMPDEST DUP2 EQ PUSH2 0x347D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x348F DUP2 PUSH2 0x3469 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x34AB JUMPI PUSH2 0x34AA PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x34B9 DUP5 DUP3 DUP6 ADD PUSH2 0x3480 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x34CB DUP2 PUSH2 0x345F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x34E6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34C2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34FF DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x351A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3537 JUMPI PUSH2 0x3536 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3545 DUP6 DUP3 DUP7 ADD PUSH2 0x3480 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3556 DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x3569 DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP2 EQ PUSH2 0x3574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3586 DUP2 PUSH2 0x3560 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35A2 JUMPI PUSH2 0x35A1 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x35B0 DUP5 DUP3 DUP6 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x35D3 JUMPI PUSH2 0x35D2 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35F1 JUMPI PUSH2 0x35F0 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x35FD DUP8 DUP3 DUP9 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3620 JUMPI PUSH2 0x361F PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x362C DUP8 DUP3 DUP9 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3653 JUMPI PUSH2 0x3652 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3671 JUMPI PUSH2 0x3670 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x367D DUP7 DUP3 DUP8 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0x3690 DUP7 DUP3 DUP8 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x36B1 JUMPI PUSH2 0x36B0 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x36BF DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x36D0 DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x36FC JUMPI PUSH2 0x36FB PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x371A JUMPI PUSH2 0x3719 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3726 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP10 POP SWAP10 POP POP PUSH1 0x20 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3749 JUMPI PUSH2 0x3748 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3755 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP8 POP SWAP8 POP POP PUSH1 0x40 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3778 JUMPI PUSH2 0x3777 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3784 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x60 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37A7 JUMPI PUSH2 0x37A6 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x37B3 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x80 PUSH2 0x37C6 DUP13 DUP3 DUP14 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x37ED JUMPI PUSH2 0x37EC PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x37FB DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x380C DUP6 DUP3 DUP7 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x384B DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x385D DUP4 DUP4 PUSH2 0x3842 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3881 DUP3 PUSH2 0x3816 JUMP JUMPDEST PUSH2 0x388B DUP2 DUP6 PUSH2 0x3821 JUMP JUMPDEST SWAP4 POP PUSH2 0x3896 DUP4 PUSH2 0x3832 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x38C7 JUMPI DUP2 MLOAD PUSH2 0x38AE DUP9 DUP3 PUSH2 0x3851 JUMP JUMPDEST SWAP8 POP PUSH2 0x38B9 DUP4 PUSH2 0x3869 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x389A JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x38EE DUP2 DUP5 PUSH2 0x3876 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x390C JUMPI PUSH2 0x390B PUSH2 0x329F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3929 JUMPI PUSH2 0x3928 PUSH2 0x32A4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3945 JUMPI PUSH2 0x3944 PUSH2 0x32A9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3965 JUMPI PUSH2 0x3964 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3983 JUMPI PUSH2 0x3982 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x398F DUP7 DUP3 DUP8 ADD PUSH2 0x38F6 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0x39A2 DUP7 DUP3 DUP8 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A77 PUSH1 0x2F DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3A82 DUP3 PUSH2 0x3A1B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3AA6 DUP2 PUSH2 0x3A6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x696E69743A20726F756E644164647265737320616C7265616479207365740000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AE3 PUSH1 0x1E DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3AEE DUP3 PUSH2 0x3AAD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3B12 DUP2 PUSH2 0x3AD6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B75 PUSH1 0x2E DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3B80 DUP3 PUSH2 0x3B19 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3BA4 DUP2 PUSH2 0x3B68 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BE7 PUSH2 0x3BE2 PUSH2 0x3BDD DUP5 PUSH2 0x3BAB JUMP JUMPDEST PUSH2 0x3BC2 JUMP JUMPDEST PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3BF7 DUP2 PUSH2 0x3BCC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3C12 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3BEE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6572726F723A20766F74696E6720636F6E7472616374206E6F74206C696E6B65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6420746F206120726F756E640000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C74 PUSH1 0x2C DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3C7F DUP3 PUSH2 0x3C18 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3CA3 DUP2 PUSH2 0x3C67 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6572726F723A2063616E20626520696E766F6B6564206F6E6C7920627920726F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x756E6420636F6E74726163740000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D06 PUSH1 0x2C DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3D11 DUP3 PUSH2 0x3CAA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3D35 DUP2 PUSH2 0x3CF9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x3D68 JUMPI PUSH2 0x3D67 PUSH2 0x3D3C JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3D8A JUMPI PUSH2 0x3D89 PUSH2 0x3D41 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x3DA6 JUMPI PUSH2 0x3DA5 PUSH2 0x3D46 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DB9 DUP3 PUSH2 0x3351 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DC9 DUP2 PUSH2 0x3DAE JUMP JUMPDEST DUP2 EQ PUSH2 0x3DD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3DE6 DUP2 PUSH2 0x3DC0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3E05 JUMPI PUSH2 0x3E04 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3E13 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3E24 DUP7 DUP3 DUP8 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3E35 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E79 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3E84 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x3E9C JUMPI PUSH2 0x3E9B PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3EB7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x3EC4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3ED6 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3EE1 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x3EEF DUP2 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3F06 JUMPI PUSH2 0x3F05 PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F47 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3F52 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3F62 JUMPI PUSH2 0x3F61 PUSH2 0x3F0D JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F78 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3F83 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3F9B JUMPI PUSH2 0x3F9A PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FD7 PUSH1 0x1F DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3FE2 DUP3 PUSH2 0x3FA1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4006 DUP2 PUSH2 0x3FCA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4069 PUSH1 0x2B DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4074 DUP3 PUSH2 0x400D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4098 DUP2 PUSH2 0x405C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40BA PUSH1 0x0 DUP4 PUSH2 0x409F JUMP JUMPDEST SWAP2 POP PUSH2 0x40C5 DUP3 PUSH2 0x40AA JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40DB DUP3 PUSH2 0x40AD JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4126 PUSH1 0x17 DUP4 PUSH2 0x40E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x4131 DUP3 PUSH2 0x40F0 JUMP JUMPDEST PUSH1 0x17 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4165 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x414A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417C DUP3 PUSH2 0x413C JUMP JUMPDEST PUSH2 0x4186 DUP2 DUP6 PUSH2 0x40E5 JUMP JUMPDEST SWAP4 POP PUSH2 0x4196 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41D8 PUSH1 0x11 DUP4 PUSH2 0x40E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x41E3 DUP3 PUSH2 0x41A2 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41F9 DUP3 PUSH2 0x4119 JUMP JUMPDEST SWAP2 POP PUSH2 0x4205 DUP3 DUP6 PUSH2 0x4171 JUMP JUMPDEST SWAP2 POP PUSH2 0x4210 DUP3 PUSH2 0x41CB JUMP JUMPDEST SWAP2 POP PUSH2 0x421C DUP3 DUP5 PUSH2 0x4171 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4244 DUP3 PUSH2 0x413C JUMP JUMPDEST PUSH2 0x424E DUP2 DUP6 PUSH2 0x3A0A JUMP JUMPDEST SWAP4 POP PUSH2 0x425E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST PUSH2 0x4267 DUP2 PUSH2 0x4228 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x428C DUP2 DUP5 PUSH2 0x4239 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x42A9 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x42B6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x42C3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D6 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 SUB PUSH2 0x42E9 JUMPI PUSH2 0x42E8 PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x432A PUSH1 0x20 DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4335 DUP3 PUSH2 0x42F4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4359 DUP2 PUSH2 0x431D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x436F DUP2 PUSH2 0x3406 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x438B JUMPI PUSH2 0x438A PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4399 DUP5 DUP3 DUP6 ADD PUSH2 0x4360 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43FE PUSH1 0x2A DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4409 DUP3 PUSH2 0x43A2 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x442D DUP2 PUSH2 0x43F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4490 PUSH1 0x26 DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x449B DUP3 PUSH2 0x4434 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x44BF DUP2 PUSH2 0x4483 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x44DC DUP3 PUSH2 0x44C6 JUMP JUMPDEST PUSH2 0x44E6 DUP2 DUP6 PUSH2 0x409F JUMP JUMPDEST SWAP4 POP PUSH2 0x44F6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x450E DUP3 DUP5 PUSH2 0x44D1 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x454F PUSH1 0x1D DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x455A DUP3 PUSH2 0x4519 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x457E DUP2 PUSH2 0x4542 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1F 0xCF 0x5D AND 0xC9 0x5D 0x4A 0x4B SWAP3 PUSH15 0x62A8773AC7A8323E139F06764CEE68 0xC3 SWAP12 0xB9 0xF6 STOP BALANCE NUMBER PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "1887:13662:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:213:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8969:177:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5484:125:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;460:27:15;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3931:112:14;;;;;;;;;;;;;:::i;:::-;;2242:38:13;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6536:169:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4829:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12452:237:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8562:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4708:129:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4225:112:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2174:21:13;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7892:159:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;615:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5133:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11845:114:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6242:214:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8032:368:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3393:130:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7626:193:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2202:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7299:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12900:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6185:163:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3203:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7562:153:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;781:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2324:49:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3686:183:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8252:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5141:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2336:63:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;545:64:14;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5558:147:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;463:76:14;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;998:146:15;;;;;;;;;;;;;:::i;:::-;;2697:412:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6962:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11280:418;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10922:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2078:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6919:141:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3990:1516:13;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;389:68:14;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2903:213:0;2988:4;3026:43;3011:58;;;:11;:58;;;;:98;;;;3073:36;3097:11;3073:23;:36::i;:::-;3011:98;3004:105;;2903:213;;;:::o;8969:177:13:-;2505:21:3;:19;:21::i;:::-;9053:29:13::1;9071:10;9053:17;:29::i;:::-;9092:47;9105:6;;9092:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9121:4;9128:10;9092:12;:47::i;:::-;2547:20:3::0;:18;:20::i;:::-;8969:177:13;;:::o;5484:125:14:-;5548:4;5571:31;430:27;5595:6;5571:7;:31::i;:::-;5564:38;;5484:125;;;:::o;460:27:15:-;;;;;;;;;;;;:::o;3931:112:14:-;3973:23;3985:10;3973:11;:23::i;:::-;4006:30;647:18;4025:10;4006:11;:30::i;:::-;3931:112::o;2242:38:13:-;;;;;;;;;;;;;:::o;6536:169:14:-;6620:23;6632:10;6620:11;:23::i;:::-;6653:45;508:31;6686:11;;6653:12;:45::i;:::-;6536:169;;:::o;4829:137::-;4893:23;4905:10;4893:11;:23::i;:::-;4926:33;430:27;4952:6;;4926:9;:33::i;:::-;4829:137;;:::o;12452:237:13:-;12536:23;12548:10;12536:11;:23::i;:::-;12594;12569:22;;:48;;;;;;;;;;;;;;;;;;12632:50;12658:23;12632:50;;;;;;:::i;:::-;;;;;;;;12452:237;:::o;8562:239::-;2505:21:3;:19;:21::i;:::-;8631:22:13::1;8670:1;8656:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8631:41;;8693:6;8682:5;8688:1;8682:8;;;;;;;;:::i;:::-;;;;;;;:17;;;;;;;;;::::0;::::1;8709:29;8727:10;8709:17;:29::i;:::-;8748:46;8761:5;8776:4;8783:10;8748:12;:46::i;:::-;8621:180;2547:20:3::0;:18;:20::i;:::-;8562:239:13;:::o;4708:129:0:-;4782:7;4808:6;:12;4815:4;4808:12;;;;;;;;;;;:22;;;4801:29;;4708:129;;;:::o;4225:112:14:-;4283:4;4306:24;647:18;4321:8;4306:7;:24::i;:::-;4299:31;;4225:112;;;:::o;2174:21:13:-;;;;:::o;7892:159:14:-;7971:23;7983:10;7971:11;:23::i;:::-;8004:40;584:25;8031:12;;8004;:40::i;:::-;7892:159;;:::o;615:50::-;647:18;615:50;:::o;5133:145:0:-;5216:18;5229:4;5216:12;:18::i;:::-;2802:16;2813:4;2802:10;:16::i;:::-;5246:25:::1;5257:4;5263:7;5246:10;:25::i;:::-;5133:145:::0;;;:::o;11845:114:13:-;11900:23;11912:10;11900:11;:23::i;:::-;11933:19;11944:7;11933:10;:19::i;:::-;11845:114;:::o;6242:214:0:-;6348:12;:10;:12::i;:::-;6337:23;;:7;:23;;;6329:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;6423:26;6435:4;6441:7;6423:11;:26::i;:::-;6242:214;;:::o;8032:368:13:-;2505:21:3;:19;:21::i;:::-;8203:14:13::1;8220:3;;:10;;8203:27;;8245:9;8240:154;8264:6;8260:1;:10;8240:154;;;8288:36;8301:6;;8288:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8309:3;;8313:1;8309:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8317:3;;8321:1;8317:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8288:12;:36::i;:::-;8366:3;;;;;;;8240:154;;;;8151:249;2547:20:3::0;:18;:20::i;:::-;8032:368:13;;;;:::o;3393:130:14:-;3458:23;3470:10;3458:11;:23::i;:::-;3491:25;647:18;3508:7;;3491:9;:25::i;:::-;3393:130;;:::o;7626:193:13:-;2505:21:3;:19;:21::i;:::-;7782:30:13::1;7795:6;;7782:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7803:3;7808;7782:12;:30::i;:::-;2547:20:3::0;:18;:20::i;:::-;7626:193:13;;;:::o;2202:34::-;;;;;;;;;;;;;:::o;7299:132::-;2505:21:3;:19;:21::i;:::-;7380:44:13::1;7393:6;;7380:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7401:10;7413;7380:12;:44::i;:::-;2547:20:3::0;:18;:20::i;:::-;7299:132:13;;:::o;12900:275::-;13006:23;13018:10;13006:11;:23::i;:::-;13068:27;13039:26;;:56;;;;;;;;;;;;;;;;;;13110:58;13140:27;13110:58;;;;;;:::i;:::-;;;;;;;;12900:275;:::o;6185:163:14:-;6266:23;6278:10;6266:11;:23::i;:::-;6299:42;508:31;6329:11;;6299:9;:42::i;:::-;6185:163;;:::o;3203:145:0:-;3289:4;3312:6;:12;3319:4;3312:12;;;;;;;;;;;:20;;:29;3333:7;3312:29;;;;;;;;;;;;;;;;;;;;;;;;;3305:36;;3203:145;;;;:::o;7562:153:14:-;7638:23;7650:10;7638:11;:23::i;:::-;7671:37;584:25;7695:12;;7671:9;:37::i;:::-;7562:153;;:::o;781:43::-;822:1;781:43;:::o;2324:49:0:-;2369:4;2324:49;;;:::o;3686:183:14:-;3759:39;2369:4:0;3767:18:14;;3787:10;3759:7;:39::i;:::-;3754:70;;3807:17;;;;;;;;;;;;;;3754:70;3834:28;647:18;3854:7;;3834:12;:28::i;:::-;3686:183;;:::o;8252:127::-;8317:4;8340:32;584:25;8362:9;8340:7;:32::i;:::-;8333:39;;8252:127;;;:::o;5141:143::-;5208:23;5220:10;5208:11;:23::i;:::-;5241:36;430:27;5270:6;;5241:12;:36::i;:::-;5141:143;;:::o;2336:63:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;545:64:14:-;584:25;545:64;:::o;5558:147:0:-;5642:18;5655:4;5642:12;:18::i;:::-;2802:16;2813:4;2802:10;:16::i;:::-;5672:26:::1;5684:4;5690:7;5672:11;:26::i;:::-;5558:147:::0;;;:::o;463:76:14:-;508:31;463:76;:::o;998:146:15:-;1065:1;1041:26;;:12;;;;;;;;;;:26;;;1033:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1127:10;1112:12;;:25;;;;;;;;;;;;;;;;;;998:146::o;2697:412:13:-;3268:19:2;3291:13;;;;;;;;;;;3290:14;3268:36;;3336:14;:34;;;;;3369:1;3354:12;;;;;;;;;;;:16;;;3336:34;3335:108;;;;3377:44;3415:4;3377:29;:44::i;:::-;3376:45;:66;;;;;3441:1;3425:12;;;;;;;;;;;:17;;;3376:66;3335:108;3314:201;;;;;;;;;;;;:::i;:::-;;;;;;;;;3540:1;3525:12;;:16;;;;;;;;;;;;;;;;;;3555:14;3551:65;;;3601:4;3585:13;;:20;;;;;;;;;;;;;;;;;;3551:65;2943:159:13::1;2979:14;;3007:17;;3038:12;;3064:7;;3085;2943:22;:159::i;:::-;3640:14:2::0;3636:99;;;3686:5;3670:13;;:21;;;;;;;;;;;;;;;;;;3710:14;3722:1;3710:14;;;;;;:::i;:::-;;;;;;;;3636:99;3258:483;2697:412:13;;;;;;;;;:::o;6962:190::-;2505:21:3;:19;:21::i;:::-;7060:1:13::1;7049:7;:12:::0;7045:40:::1;;7070:15;;;;;;;;;;;;;;7045:40;7095:50;7105:6;7113:10;7125;7137:7;7095:9;:50::i;:::-;2547:20:3::0;:18;:20::i;:::-;6962:190:13;;:::o;11280:418::-;11387:16;11415:14;11432:6;;:13;;11415:30;;11455:23;11495:6;11481:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11455:47;;11518:9;11513:156;11537:6;11533:1;:10;11513:156;;;11573:8;:15;11582:5;11573:15;;;;;;;;;;;;;;;:26;11589:6;;11596:1;11589:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11573:26;;;;;;;;;;;;;;;;11561:6;11568:1;11561:9;;;;;;;;:::i;:::-;;;;;;;:38;;;;;11641:3;;;;;;;11513:156;;;;11685:6;11678:13;;;;11280:418;;;;;:::o;10922:151::-;11017:7;11043:8;:15;11052:5;11043:15;;;;;;;;;;;;;;;:23;11059:6;11043:23;;;;;;;;;;;;;;;;11036:30;;10922:151;;;;:::o;2078:38::-;2112:4;2078:38;:::o;6919:141:14:-;6991:4;7014:39;508:31;7042:10;7014:7;:39::i;:::-;7007:46;;6919:141;;;:::o;3990:1516:13:-;2505:21:3;:19;:21::i;:::-;651:1:15::1;627:26;;:12;::::0;::::1;;;;;;;;:26;;::::0;619:83:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;734:12;::::0;::::1;;;;;;;;720:26;;:10;:26;;;712:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;4212:14:13::2;4229:12;;:19;;4212:36;;4258:16;4294:9:::0;4289:1128:::2;4313:6;4309:1;:10;4289:1128;;;4338:14;4354:15:::0;4371:21:::2;4424:12;;4437:1;4424:15;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;4396:73;;;;;;;:::i;:::-;4337:132;;;;;;4488:22;;;;;;;;;;;4484:47;;;4512:19;4524:6;4512:11;:19::i;:::-;4484:47;4549:26;;;;;;;;;;;4545:103;;;4595:38;4619:13;4595:23;:38::i;:::-;4545:103;822:1:14;4666:16:13;;:6;:16;;;4662:153;;4702:40;4712:12;4726:6;4734:7;4702:9;:40::i;:::-;4662:153;;;4793:7;4781:19;;;;;:::i;:::-;;;4662:153;5012:10;4879:157;;4981:13;4879:157;;4951:12;4879:157;;;4902:6;4926:7;4879:157;;;;;;;:::i;:::-;;;;;;;;5064:1;5055:6;;:10;5051:296;;;5085:11;2112:4;5110:6;;5100:7;:16;;;;:::i;:::-;5099:28;;;;:::i;:::-;5085:42;;5146:55;5164:6;5172:13;5197:3;5187:7;:13;;;;:::i;:::-;5146:17;:55::i;:::-;5219:25;5232:6;5240:3;5219:12;:25::i;:::-;5067:192;5051:296;;;5283:49;5301:6;5309:13;5324:7;5283:17;:49::i;:::-;5051:296;5389:3;;;;;;;4323:1094;;;4289:1128;;;;5442:9;5431:8;:20;5427:73;;;5474:15;;;;;;;;;;;;;;5427:73;4134:1372;;2547:20:3::0;:18;:20::i;:::-;3990:1516:13;;;:::o;389:68:14:-;430:27;389:68;:::o;1060:166:10:-;1145:4;1183:36;1168:51;;;:11;:51;;;;1161:58;;1060:166;;;:::o;2580:287:3:-;1830:1;2712:7;;:19;2704:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1830:1;2842:7;:18;;;;2580:287::o;7250:139:14:-;7325:32;584:25;7347:9;7325:7;:32::i;:::-;7320:62;;7366:16;;;;;;;;;;;;;;7320:62;7250:139;:::o;9420:436:13:-;9544:14;9561:6;:13;9544:30;;9590:9;9585:265;9609:6;9605:1;:10;9585:265;;;9633:14;9650:8;:15;9659:5;9650:15;;;;;;;;;;;;;;;:26;9666:6;9673:1;9666:9;;;;;;;;:::i;:::-;;;;;;;;9650:26;;;;;;;;;;;;;;;;9633:43;;9704:1;9695:6;:10;9691:89;;;9725:40;9735:6;9742:1;9735:9;;;;;;;;:::i;:::-;;;;;;;;9746:5;9753:3;9758:6;9725:9;:40::i;:::-;9691:89;9822:3;;;;;;;9619:231;9585:265;;;;9534:322;9420:436;;;:::o;2873:209:3:-;1787:1;3053:7;:22;;;;2873:209::o;3121:118:14:-;3189:24;647:18;3204:8;3189:7;:24::i;:::-;3184:48;;3222:10;;;;;;;;;;;;;;3184:48;3121:118;:::o;8195:234:0:-;8278:22;8286:4;8292:7;8278;:22::i;:::-;8274:149;;;8348:5;8316:6;:12;8323:4;8316:12;;;;;;;;;;;:20;;:29;8337:7;8316:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;8399:12;:10;:12::i;:::-;8372:40;;8390:7;8372:40;;8384:4;8372:40;;;;;;;;;;8274:149;8195:234;;:::o;2713:286:14:-;2800:14;2817:10;;:17;;2800:34;;2849:9;2844:149;2868:6;2864:1;:10;2844:149;;;2891:32;2902:5;2909:10;;2920:1;2909:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2891:10;:32::i;:::-;2965:3;;;;;;;2844:149;;;;2790:209;2713:286;;;:::o;2215:283::-;2299:14;2316:10;;:17;;2299:34;;2348:9;2343:149;2367:6;2363:1;:10;2343:149;;;2390:32;2401:5;2408:10;;2419:1;2408:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2390:10;:32::i;:::-;2464:3;;;;;;;2343:149;;;;2289:209;2215:283;;;:::o;3642:103:0:-;3708:30;3719:4;3725:12;:10;:12::i;:::-;3708:10;:30::i;:::-;3642:103;:::o;7791:233::-;7874:22;7882:4;7888:7;7874;:22::i;:::-;7869:149;;7944:4;7912:6;:12;7919:4;7912:12;;;;;;;;;;;:20;;:29;7933:7;7912:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7994:12;:10;:12::i;:::-;7967:40;;7985:7;7967:40;;7979:4;7967:40;;;;;;;;;;7869:149;7791:233;;:::o;12093:164:13:-;2112:4;12153:7;:17;12149:42;;;12179:12;;;;;;;;;;;;;;12149:42;12210:7;12201:6;:16;;;;12232:18;12242:7;12232:18;;;;;;:::i;:::-;;;;;;;;12093:164;:::o;850:96:8:-;903:7;929:10;922:17;;850:96;:::o;1186:320:7:-;1246:4;1498:1;1476:7;:19;;;:23;1469:30;;1186:320;;;:::o;3115:716:13:-;5363:13:2;;;;;;;;;;;5355:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;3380:143:13::1;3421:14;;3449:17;;3480:12;;3506:7;;3380:27;:143::i;:::-;3533:24;:22;:24::i;:::-;3596:1;3572:14;;:21;;:25;3568:85;;;3638:4;3613:22;;:29;;;;;;;;;;;;;;;;;;3568:85;3693:1;3666:17;;:24;;:28;3662:92;;;3739:4;3710:26;;:33;;;;;;;;;;;;;;;;;;3662:92;3778:1;3768:7;:11;3764:61;;;3795:19;3806:7;3795:10;:19::i;:::-;3764:61;3115:716:::0;;;;;;;;;:::o;10186:552::-;10345:8;:15;10354:5;10345:15;;;;;;;;;;;;;;;:23;10361:6;10345:23;;;;;;;;;;;;;;;;10335:7;:33;10331:67;;;10377:21;;;;;;;;;;;;;;10331:67;10436:7;10409:8;:15;10418:5;10409:15;;;;;;;;;;;;;;;:23;10425:6;10409:23;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;822:1:14;10457:16:13;;:6;:16;;;10453:226;;10490:12;10516:3;10508:17;;10533:7;10508:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10489:56;;;10564:7;10559:37;;10580:16;;;;;;;;;;;;;;10559:37;10475:132;10453:226;;;10627:41;10655:3;10660:7;10634:6;10627:27;;;;:41;;;;;:::i;:::-;10453:226;10718:3;10694:37;;10711:5;10694:37;;10703:6;10694:37;;;10723:7;10694:37;;;;;;:::i;:::-;;;;;;;;10186:552;;;;:::o;4527:131:14:-;4593:31;430:27;4617:6;4593:7;:31::i;:::-;4588:63;;4633:18;;;;;;;;;;;;;;4588:63;4527:131;:::o;5818:183::-;5900:39;508:31;5928:10;5900:7;:39::i;:::-;5895:100;;5962:22;;;;;;;;;;;;;;5895:100;5818:183;:::o;6623:185:13:-;6739:62;6771:5;6786:4;6793:7;6746:6;6739:31;;;;:62;;;;;;:::i;:::-;6623:185;;;:::o;6200:249::-;6361:7;6329:8;:20;6338:10;6329:20;;;;;;;;;;;;;;;:28;6350:6;6329:28;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;6422:10;6383:59;;6410:10;6383:59;;6402:6;6383:59;;;6434:7;6383:59;;;;;;:::i;:::-;;;;;;;;6200:249;;;:::o;5736:180::-;5845:7;5810:8;:23;5827:4;5810:23;;;;;;;;;;;;;;;:31;5834:6;5810:31;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;5889:10;5867:42;;5881:6;5867:42;;;5901:7;5867:42;;;;;;:::i;:::-;;;;;;;;5736:180;;:::o;7141:110:0:-;7219:25;7230:4;7236:7;7219:10;:25::i;:::-;7141:110;;:::o;4026:501::-;4114:22;4122:4;4128:7;4114;:22::i;:::-;4109:412;;4297:39;4328:7;4297:30;:39::i;:::-;4407:49;4446:4;4438:13;;4453:2;4407:30;:49::i;:::-;4204:274;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4152:358;;;;;;;;;;;:::i;:::-;;;;;;;;4109:412;4026:501;;:::o;1191:824:14:-;5363:13:2;;;;;;;;;;;5355:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1437:22:14::1;:20;:22::i;:::-;1469:42;2369:4:0;1480:18:14::0;::::1;1500:10;1469;:42::i;:::-;1521:45;508:31;1560:4;1521:10;:45::i;:::-;1640:36;430:27;647:18;1640:13;:36::i;:::-;1686:40;508:31;647:18;1686:13;:40::i;:::-;1736:34;584:25;647:18;1736:13;:34::i;:::-;1781:41;430:27;1807:14;;1781:9;:41::i;:::-;1832:49;508:31;1862:18;;1832:9;:49::i;:::-;1891:37;584:25;1915:12;;1891:9;:37::i;:::-;1938:25;647:18;1955:7;;1938:9;:25::i;:::-;1974:34;430:27;822:1;1974:10;:34::i;:::-;1191:824:::0;;;;;;;;:::o;1868:111:3:-;5363:13:2;;;;;;;;;;;5355:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1938:34:3::1;:32;:34::i;:::-;1868:111::o:0;818:216:6:-;941:86;961:5;991:23;;;1016:2;1020:5;968:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;941:19;:86::i;:::-;818:216;;;:::o;1040:252::-;1189:96;1209:5;1239:27;;;1268:4;1274:2;1278:5;1216:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:19;:96::i;:::-;1040:252;;;;:::o;2146:149:9:-;2204:13;2236:52;2264:4;2248:22;;333:2;2236:52;;:11;:52::i;:::-;2229:59;;2146:149;;;:::o;1557:437::-;1632:13;1657:19;1702:1;1693:6;1689:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1679:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1657:47;;1714:15;:6;1721:1;1714:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1739;:6;1746:1;1739:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1769:9;1794:1;1785:6;1781:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1769:26;;1764:128;1801:1;1797;:5;1764:128;;;1835:8;1852:3;1844:5;:11;1835:21;;;;;;;:::i;:::-;;;;;1823:6;1830:1;1823:9;;;;;;;;:::i;:::-;;;;;:33;;;;;;;;;;;1880:1;1870:11;;;;;1804:3;;;;:::i;:::-;;;1764:128;;;;1918:1;1909:5;:10;1901:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;1980:6;1966:21;;;1557:437;;;;:::o;2025:65:0:-;5363:13:2;;;;;;;;;;;5355:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;2025:65:0:o;7376:247::-;7459:25;7487:18;7500:4;7487:12;:18::i;:::-;7459:46;;7540:9;7515:6;:12;7522:4;7515:12;;;;;;;;;;;:22;;:34;;;;7606:9;7587:17;7581:4;7564:52;;;;;;;;;;7449:174;7376:247;;:::o;1985:109:3:-;5363:13:2;;;;;;;;;;;5355:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1787:1:3::1;2065:7;:22;;;;1985:109::o:0;3868:717:6:-;4298:23;4324:69;4352:4;4324:69;;;;;;;;;;;;;;;;;4332:5;4324:27;;;;:69;;;;;:::i;:::-;4298:95;;4427:1;4407:10;:17;:21;4403:176;;;4502:10;4491:30;;;;;;;;;;;;:::i;:::-;4483:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4403:176;3949:636;3868:717;;:::o;3884:223:7:-;4017:12;4048:52;4070:6;4078:4;4084:1;4087:12;4048:21;:52::i;:::-;4041:59;;3884:223;;;;;:::o;4971:446::-;5136:12;5193:5;5168:21;:30;;5160:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5252:12;5266:23;5293:6;:11;;5312:5;5319:4;5293:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5251:73;;;;5341:69;5368:6;5376:7;5385:10;5397:12;5341:26;:69::i;:::-;5334:76;;;;4971:446;;;;;;:::o;6589:628::-;6769:12;6797:7;6793:418;;;6845:1;6824:10;:17;:22;6820:286;;7039:18;7050:6;7039:10;:18::i;:::-;7031:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6820:286;7126:10;7119:17;;;;6793:418;7167:33;7175:10;7187:12;7167:7;:33::i;:::-;6589:628;;;;;;;:::o;7739:540::-;7918:1;7898:10;:17;:21;7894:379;;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;7894:379;8249:12;8242:20;;;;;;;;;;;:::i;:::-;;;;;;;;88:117:16;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1904:568;1977:8;1987:6;2037:3;2030:4;2022:6;2018:17;2014:27;2004:122;;2045:79;;:::i;:::-;2004:122;2158:6;2145:20;2135:30;;2188:18;2180:6;2177:30;2174:117;;;2210:79;;:::i;:::-;2174:117;2324:4;2316:6;2312:17;2300:29;;2378:3;2370:4;2362:6;2358:17;2348:8;2344:32;2341:41;2338:128;;;2385:79;;:::i;:::-;2338:128;1904:568;;;;;:::o;2478:559::-;2564:6;2572;2621:2;2609:9;2600:7;2596:23;2592:32;2589:119;;;2627:79;;:::i;:::-;2589:119;2775:1;2764:9;2760:17;2747:31;2805:18;2797:6;2794:30;2791:117;;;2827:79;;:::i;:::-;2791:117;2940:80;3012:7;3003:6;2992:9;2988:22;2940:80;:::i;:::-;2922:98;;;;2718:312;2478:559;;;;;:::o;3043:126::-;3080:7;3120:42;3113:5;3109:54;3098:65;;3043:126;;;:::o;3175:96::-;3212:7;3241:24;3259:5;3241:24;:::i;:::-;3230:35;;3175:96;;;:::o;3277:122::-;3350:24;3368:5;3350:24;:::i;:::-;3343:5;3340:35;3330:63;;3389:1;3386;3379:12;3330:63;3277:122;:::o;3405:139::-;3451:5;3489:6;3476:20;3467:29;;3505:33;3532:5;3505:33;:::i;:::-;3405:139;;;;:::o;3550:329::-;3609:6;3658:2;3646:9;3637:7;3633:23;3629:32;3626:119;;;3664:79;;:::i;:::-;3626:119;3784:1;3809:53;3854:7;3845:6;3834:9;3830:22;3809:53;:::i;:::-;3799:63;;3755:117;3550:329;;;;:::o;3885:118::-;3972:24;3990:5;3972:24;:::i;:::-;3967:3;3960:37;3885:118;;:::o;4009:222::-;4102:4;4140:2;4129:9;4125:18;4117:26;;4153:71;4221:1;4210:9;4206:17;4197:6;4153:71;:::i;:::-;4009:222;;;;:::o;4237:116::-;4307:21;4322:5;4307:21;:::i;:::-;4300:5;4297:32;4287:60;;4343:1;4340;4333:12;4287:60;4237:116;:::o;4359:133::-;4402:5;4440:6;4427:20;4418:29;;4456:30;4480:5;4456:30;:::i;:::-;4359:133;;;;:::o;4498:323::-;4554:6;4603:2;4591:9;4582:7;4578:23;4574:32;4571:119;;;4609:79;;:::i;:::-;4571:119;4729:1;4754:50;4796:7;4787:6;4776:9;4772:22;4754:50;:::i;:::-;4744:60;;4700:114;4498:323;;;;:::o;4827:77::-;4864:7;4893:5;4882:16;;4827:77;;;:::o;4910:122::-;4983:24;5001:5;4983:24;:::i;:::-;4976:5;4973:35;4963:63;;5022:1;5019;5012:12;4963:63;4910:122;:::o;5038:139::-;5084:5;5122:6;5109:20;5100:29;;5138:33;5165:5;5138:33;:::i;:::-;5038:139;;;;:::o;5183:329::-;5242:6;5291:2;5279:9;5270:7;5266:23;5262:32;5259:119;;;5297:79;;:::i;:::-;5259:119;5417:1;5442:53;5487:7;5478:6;5467:9;5463:22;5442:53;:::i;:::-;5432:63;;5388:117;5183:329;;;;:::o;5518:118::-;5605:24;5623:5;5605:24;:::i;:::-;5600:3;5593:37;5518:118;;:::o;5642:222::-;5735:4;5773:2;5762:9;5758:18;5750:26;;5786:71;5854:1;5843:9;5839:17;5830:6;5786:71;:::i;:::-;5642:222;;;;:::o;5870:77::-;5907:7;5936:5;5925:16;;5870:77;;;:::o;5953:118::-;6040:24;6058:5;6040:24;:::i;:::-;6035:3;6028:37;5953:118;;:::o;6077:222::-;6170:4;6208:2;6197:9;6193:18;6185:26;;6221:71;6289:1;6278:9;6274:17;6265:6;6221:71;:::i;:::-;6077:222;;;;:::o;6305:474::-;6373:6;6381;6430:2;6418:9;6409:7;6405:23;6401:32;6398:119;;;6436:79;;:::i;:::-;6398:119;6556:1;6581:53;6626:7;6617:6;6606:9;6602:22;6581:53;:::i;:::-;6571:63;;6527:117;6683:2;6709:53;6754:7;6745:6;6734:9;6730:22;6709:53;:::i;:::-;6699:63;;6654:118;6305:474;;;;;:::o;6785:122::-;6858:24;6876:5;6858:24;:::i;:::-;6851:5;6848:35;6838:63;;6897:1;6894;6887:12;6838:63;6785:122;:::o;6913:139::-;6959:5;6997:6;6984:20;6975:29;;7013:33;7040:5;7013:33;:::i;:::-;6913:139;;;;:::o;7058:329::-;7117:6;7166:2;7154:9;7145:7;7141:23;7137:32;7134:119;;;7172:79;;:::i;:::-;7134:119;7292:1;7317:53;7362:7;7353:6;7342:9;7338:22;7317:53;:::i;:::-;7307:63;;7263:117;7058:329;;;;:::o;7393:934::-;7515:6;7523;7531;7539;7588:2;7576:9;7567:7;7563:23;7559:32;7556:119;;;7594:79;;:::i;:::-;7556:119;7742:1;7731:9;7727:17;7714:31;7772:18;7764:6;7761:30;7758:117;;;7794:79;;:::i;:::-;7758:117;7907:80;7979:7;7970:6;7959:9;7955:22;7907:80;:::i;:::-;7889:98;;;;7685:312;8064:2;8053:9;8049:18;8036:32;8095:18;8087:6;8084:30;8081:117;;;8117:79;;:::i;:::-;8081:117;8230:80;8302:7;8293:6;8282:9;8278:22;8230:80;:::i;:::-;8212:98;;;;8007:313;7393:934;;;;;;;:::o;8333:704::-;8428:6;8436;8444;8493:2;8481:9;8472:7;8468:23;8464:32;8461:119;;;8499:79;;:::i;:::-;8461:119;8647:1;8636:9;8632:17;8619:31;8677:18;8669:6;8666:30;8663:117;;;8699:79;;:::i;:::-;8663:117;8812:80;8884:7;8875:6;8864:9;8860:22;8812:80;:::i;:::-;8794:98;;;;8590:312;8941:2;8967:53;9012:7;9003:6;8992:9;8988:22;8967:53;:::i;:::-;8957:63;;8912:118;8333:704;;;;;:::o;9043:474::-;9111:6;9119;9168:2;9156:9;9147:7;9143:23;9139:32;9136:119;;;9174:79;;:::i;:::-;9136:119;9294:1;9319:53;9364:7;9355:6;9344:9;9340:22;9319:53;:::i;:::-;9309:63;;9265:117;9421:2;9447:53;9492:7;9483:6;9472:9;9468:22;9447:53;:::i;:::-;9437:63;;9392:118;9043:474;;;;;:::o;9523:1831::-;9726:6;9734;9742;9750;9758;9766;9774;9782;9790;9839:3;9827:9;9818:7;9814:23;9810:33;9807:120;;;9846:79;;:::i;:::-;9807:120;9994:1;9983:9;9979:17;9966:31;10024:18;10016:6;10013:30;10010:117;;;10046:79;;:::i;:::-;10010:117;10159:80;10231:7;10222:6;10211:9;10207:22;10159:80;:::i;:::-;10141:98;;;;9937:312;10316:2;10305:9;10301:18;10288:32;10347:18;10339:6;10336:30;10333:117;;;10369:79;;:::i;:::-;10333:117;10482:80;10554:7;10545:6;10534:9;10530:22;10482:80;:::i;:::-;10464:98;;;;10259:313;10639:2;10628:9;10624:18;10611:32;10670:18;10662:6;10659:30;10656:117;;;10692:79;;:::i;:::-;10656:117;10805:80;10877:7;10868:6;10857:9;10853:22;10805:80;:::i;:::-;10787:98;;;;10582:313;10962:2;10951:9;10947:18;10934:32;10993:18;10985:6;10982:30;10979:117;;;11015:79;;:::i;:::-;10979:117;11128:80;11200:7;11191:6;11180:9;11176:22;11128:80;:::i;:::-;11110:98;;;;10905:313;11257:3;11284:53;11329:7;11320:6;11309:9;11305:22;11284:53;:::i;:::-;11274:63;;11228:119;9523:1831;;;;;;;;;;;:::o;11360:474::-;11428:6;11436;11485:2;11473:9;11464:7;11460:23;11456:32;11453:119;;;11491:79;;:::i;:::-;11453:119;11611:1;11636:53;11681:7;11672:6;11661:9;11657:22;11636:53;:::i;:::-;11626:63;;11582:117;11738:2;11764:53;11809:7;11800:6;11789:9;11785:22;11764:53;:::i;:::-;11754:63;;11709:118;11360:474;;;;;:::o;11840:114::-;11907:6;11941:5;11935:12;11925:22;;11840:114;;;:::o;11960:184::-;12059:11;12093:6;12088:3;12081:19;12133:4;12128:3;12124:14;12109:29;;11960:184;;;;:::o;12150:132::-;12217:4;12240:3;12232:11;;12270:4;12265:3;12261:14;12253:22;;12150:132;;;:::o;12288:108::-;12365:24;12383:5;12365:24;:::i;:::-;12360:3;12353:37;12288:108;;:::o;12402:179::-;12471:10;12492:46;12534:3;12526:6;12492:46;:::i;:::-;12570:4;12565:3;12561:14;12547:28;;12402:179;;;;:::o;12587:113::-;12657:4;12689;12684:3;12680:14;12672:22;;12587:113;;;:::o;12736:732::-;12855:3;12884:54;12932:5;12884:54;:::i;:::-;12954:86;13033:6;13028:3;12954:86;:::i;:::-;12947:93;;13064:56;13114:5;13064:56;:::i;:::-;13143:7;13174:1;13159:284;13184:6;13181:1;13178:13;13159:284;;;13260:6;13254:13;13287:63;13346:3;13331:13;13287:63;:::i;:::-;13280:70;;13373:60;13426:6;13373:60;:::i;:::-;13363:70;;13219:224;13206:1;13203;13199:9;13194:14;;13159:284;;;13163:14;13459:3;13452:10;;12860:608;;;12736:732;;;;:::o;13474:373::-;13617:4;13655:2;13644:9;13640:18;13632:26;;13704:9;13698:4;13694:20;13690:1;13679:9;13675:17;13668:47;13732:108;13835:4;13826:6;13732:108;:::i;:::-;13724:116;;13474:373;;;;:::o;13868:579::-;13952:8;13962:6;14012:3;14005:4;13997:6;13993:17;13989:27;13979:122;;14020:79;;:::i;:::-;13979:122;14133:6;14120:20;14110:30;;14163:18;14155:6;14152:30;14149:117;;;14185:79;;:::i;:::-;14149:117;14299:4;14291:6;14287:17;14275:29;;14353:3;14345:4;14337:6;14333:17;14323:8;14319:32;14316:41;14313:128;;;14360:79;;:::i;:::-;14313:128;13868:579;;;;;:::o;14453:726::-;14559:6;14567;14575;14624:2;14612:9;14603:7;14599:23;14595:32;14592:119;;;14630:79;;:::i;:::-;14592:119;14778:1;14767:9;14763:17;14750:31;14808:18;14800:6;14797:30;14794:117;;;14830:79;;:::i;:::-;14794:117;14943:91;15026:7;15017:6;15006:9;15002:22;14943:91;:::i;:::-;14925:109;;;;14721:323;15083:2;15109:53;15154:7;15145:6;15134:9;15130:22;15109:53;:::i;:::-;15099:63;;15054:118;14453:726;;;;;:::o;15185:180::-;15233:77;15230:1;15223:88;15330:4;15327:1;15320:15;15354:4;15351:1;15344:15;15371:180;15419:77;15416:1;15409:88;15516:4;15513:1;15506:15;15540:4;15537:1;15530:15;15557:169;15641:11;15675:6;15670:3;15663:19;15715:4;15710:3;15706:14;15691:29;;15557:169;;;;:::o;15732:234::-;15872:34;15868:1;15860:6;15856:14;15849:58;15941:17;15936:2;15928:6;15924:15;15917:42;15732:234;:::o;15972:366::-;16114:3;16135:67;16199:2;16194:3;16135:67;:::i;:::-;16128:74;;16211:93;16300:3;16211:93;:::i;:::-;16329:2;16324:3;16320:12;16313:19;;15972:366;;;:::o;16344:419::-;16510:4;16548:2;16537:9;16533:18;16525:26;;16597:9;16591:4;16587:20;16583:1;16572:9;16568:17;16561:47;16625:131;16751:4;16625:131;:::i;:::-;16617:139;;16344:419;;;:::o;16769:180::-;16909:32;16905:1;16897:6;16893:14;16886:56;16769:180;:::o;16955:366::-;17097:3;17118:67;17182:2;17177:3;17118:67;:::i;:::-;17111:74;;17194:93;17283:3;17194:93;:::i;:::-;17312:2;17307:3;17303:12;17296:19;;16955:366;;;:::o;17327:419::-;17493:4;17531:2;17520:9;17516:18;17508:26;;17580:9;17574:4;17570:20;17566:1;17555:9;17551:17;17544:47;17608:131;17734:4;17608:131;:::i;:::-;17600:139;;17327:419;;;:::o;17752:233::-;17892:34;17888:1;17880:6;17876:14;17869:58;17961:16;17956:2;17948:6;17944:15;17937:41;17752:233;:::o;17991:366::-;18133:3;18154:67;18218:2;18213:3;18154:67;:::i;:::-;18147:74;;18230:93;18319:3;18230:93;:::i;:::-;18348:2;18343:3;18339:12;18332:19;;17991:366;;;:::o;18363:419::-;18529:4;18567:2;18556:9;18552:18;18544:26;;18616:9;18610:4;18606:20;18602:1;18591:9;18587:17;18580:47;18644:131;18770:4;18644:131;:::i;:::-;18636:139;;18363:419;;;:::o;18788:85::-;18833:7;18862:5;18851:16;;18788:85;;;:::o;18879:86::-;18914:7;18954:4;18947:5;18943:16;18932:27;;18879:86;;;:::o;18971:60::-;18999:3;19020:5;19013:12;;18971:60;;;:::o;19037:154::-;19093:9;19126:59;19142:42;19151:32;19177:5;19151:32;:::i;:::-;19142:42;:::i;:::-;19126:59;:::i;:::-;19113:72;;19037:154;;;:::o;19197:143::-;19290:43;19327:5;19290:43;:::i;:::-;19285:3;19278:56;19197:143;;:::o;19346:234::-;19445:4;19483:2;19472:9;19468:18;19460:26;;19496:77;19570:1;19559:9;19555:17;19546:6;19496:77;:::i;:::-;19346:234;;;;:::o;19586:231::-;19726:34;19722:1;19714:6;19710:14;19703:58;19795:14;19790:2;19782:6;19778:15;19771:39;19586:231;:::o;19823:366::-;19965:3;19986:67;20050:2;20045:3;19986:67;:::i;:::-;19979:74;;20062:93;20151:3;20062:93;:::i;:::-;20180:2;20175:3;20171:12;20164:19;;19823:366;;;:::o;20195:419::-;20361:4;20399:2;20388:9;20384:18;20376:26;;20448:9;20442:4;20438:20;20434:1;20423:9;20419:17;20412:47;20476:131;20602:4;20476:131;:::i;:::-;20468:139;;20195:419;;;:::o;20620:231::-;20760:34;20756:1;20748:6;20744:14;20737:58;20829:14;20824:2;20816:6;20812:15;20805:39;20620:231;:::o;20857:366::-;20999:3;21020:67;21084:2;21079:3;21020:67;:::i;:::-;21013:74;;21096:93;21185:3;21096:93;:::i;:::-;21214:2;21209:3;21205:12;21198:19;;20857:366;;;:::o;21229:419::-;21395:4;21433:2;21422:9;21418:18;21410:26;;21482:9;21476:4;21472:20;21468:1;21457:9;21453:17;21446:47;21510:131;21636:4;21510:131;:::i;:::-;21502:139;;21229:419;;;:::o;21654:117::-;21763:1;21760;21753:12;21777:117;21886:1;21883;21876:12;21900:117;22009:1;22006;21999:12;22023:724;22100:4;22106:6;22162:11;22149:25;22262:1;22256:4;22252:12;22241:8;22225:14;22221:29;22217:48;22197:18;22193:73;22183:168;;22270:79;;:::i;:::-;22183:168;22382:18;22372:8;22368:33;22360:41;;22434:4;22421:18;22411:28;;22462:18;22454:6;22451:30;22448:117;;;22484:79;;:::i;:::-;22448:117;22592:2;22586:4;22582:13;22574:21;;22649:4;22641:6;22637:17;22621:14;22617:38;22611:4;22607:49;22604:136;;;22659:79;;:::i;:::-;22604:136;22113:634;22023:724;;;;;:::o;22753:104::-;22798:7;22827:24;22845:5;22827:24;:::i;:::-;22816:35;;22753:104;;;:::o;22863:138::-;22944:32;22970:5;22944:32;:::i;:::-;22937:5;22934:43;22924:71;;22991:1;22988;22981:12;22924:71;22863:138;:::o;23007:155::-;23061:5;23099:6;23086:20;23077:29;;23115:41;23150:5;23115:41;:::i;:::-;23007:155;;;;:::o;23168:651::-;23261:6;23269;23277;23326:2;23314:9;23305:7;23301:23;23297:32;23294:119;;;23332:79;;:::i;:::-;23294:119;23452:1;23477:61;23530:7;23521:6;23510:9;23506:22;23477:61;:::i;:::-;23467:71;;23423:125;23587:2;23613:53;23658:7;23649:6;23638:9;23634:22;23613:53;:::i;:::-;23603:63;;23558:118;23715:2;23741:61;23794:7;23785:6;23774:9;23770:22;23741:61;:::i;:::-;23731:71;;23686:126;23168:651;;;;;:::o;23825:180::-;23873:77;23870:1;23863:88;23970:4;23967:1;23960:15;23994:4;23991:1;23984:15;24011:191;24051:3;24070:20;24088:1;24070:20;:::i;:::-;24065:25;;24104:20;24122:1;24104:20;:::i;:::-;24099:25;;24147:1;24144;24140:9;24133:16;;24168:3;24165:1;24162:10;24159:36;;;24175:18;;:::i;:::-;24159:36;24011:191;;;;:::o;24208:332::-;24329:4;24367:2;24356:9;24352:18;24344:26;;24380:71;24448:1;24437:9;24433:17;24424:6;24380:71;:::i;:::-;24461:72;24529:2;24518:9;24514:18;24505:6;24461:72;:::i;:::-;24208:332;;;;;:::o;24546:410::-;24586:7;24609:20;24627:1;24609:20;:::i;:::-;24604:25;;24643:20;24661:1;24643:20;:::i;:::-;24638:25;;24698:1;24695;24691:9;24720:30;24738:11;24720:30;:::i;:::-;24709:41;;24899:1;24890:7;24886:15;24883:1;24880:22;24860:1;24853:9;24833:83;24810:139;;24929:18;;:::i;:::-;24810:139;24594:362;24546:410;;;;:::o;24962:180::-;25010:77;25007:1;25000:88;25107:4;25104:1;25097:15;25131:4;25128:1;25121:15;25148:185;25188:1;25205:20;25223:1;25205:20;:::i;:::-;25200:25;;25239:20;25257:1;25239:20;:::i;:::-;25234:25;;25278:1;25268:35;;25283:18;;:::i;:::-;25268:35;25325:1;25322;25318:9;25313:14;;25148:185;;;;:::o;25339:194::-;25379:4;25399:20;25417:1;25399:20;:::i;:::-;25394:25;;25433:20;25451:1;25433:20;:::i;:::-;25428:25;;25477:1;25474;25470:9;25462:17;;25501:1;25495:4;25492:11;25489:37;;;25506:18;;:::i;:::-;25489:37;25339:194;;;;:::o;25539:181::-;25679:33;25675:1;25667:6;25663:14;25656:57;25539:181;:::o;25726:366::-;25868:3;25889:67;25953:2;25948:3;25889:67;:::i;:::-;25882:74;;25965:93;26054:3;25965:93;:::i;:::-;26083:2;26078:3;26074:12;26067:19;;25726:366;;;:::o;26098:419::-;26264:4;26302:2;26291:9;26287:18;26279:26;;26351:9;26345:4;26341:20;26337:1;26326:9;26322:17;26315:47;26379:131;26505:4;26379:131;:::i;:::-;26371:139;;26098:419;;;:::o;26523:230::-;26663:34;26659:1;26651:6;26647:14;26640:58;26732:13;26727:2;26719:6;26715:15;26708:38;26523:230;:::o;26759:366::-;26901:3;26922:67;26986:2;26981:3;26922:67;:::i;:::-;26915:74;;26998:93;27087:3;26998:93;:::i;:::-;27116:2;27111:3;27107:12;27100:19;;26759:366;;;:::o;27131:419::-;27297:4;27335:2;27324:9;27320:18;27312:26;;27384:9;27378:4;27374:20;27370:1;27359:9;27355:17;27348:47;27412:131;27538:4;27412:131;:::i;:::-;27404:139;;27131:419;;;:::o;27556:147::-;27657:11;27694:3;27679:18;;27556:147;;;;:::o;27709:114::-;;:::o;27829:398::-;27988:3;28009:83;28090:1;28085:3;28009:83;:::i;:::-;28002:90;;28101:93;28190:3;28101:93;:::i;:::-;28219:1;28214:3;28210:11;28203:18;;27829:398;;;:::o;28233:379::-;28417:3;28439:147;28582:3;28439:147;:::i;:::-;28432:154;;28603:3;28596:10;;28233:379;;;:::o;28618:148::-;28720:11;28757:3;28742:18;;28618:148;;;;:::o;28772:173::-;28912:25;28908:1;28900:6;28896:14;28889:49;28772:173;:::o;28951:402::-;29111:3;29132:85;29214:2;29209:3;29132:85;:::i;:::-;29125:92;;29226:93;29315:3;29226:93;:::i;:::-;29344:2;29339:3;29335:12;29328:19;;28951:402;;;:::o;29359:99::-;29411:6;29445:5;29439:12;29429:22;;29359:99;;;:::o;29464:246::-;29545:1;29555:113;29569:6;29566:1;29563:13;29555:113;;;29654:1;29649:3;29645:11;29639:18;29635:1;29630:3;29626:11;29619:39;29591:2;29588:1;29584:10;29579:15;;29555:113;;;29702:1;29693:6;29688:3;29684:16;29677:27;29526:184;29464:246;;;:::o;29716:390::-;29822:3;29850:39;29883:5;29850:39;:::i;:::-;29905:89;29987:6;29982:3;29905:89;:::i;:::-;29898:96;;30003:65;30061:6;30056:3;30049:4;30042:5;30038:16;30003:65;:::i;:::-;30093:6;30088:3;30084:16;30077:23;;29826:280;29716:390;;;;:::o;30112:167::-;30252:19;30248:1;30240:6;30236:14;30229:43;30112:167;:::o;30285:402::-;30445:3;30466:85;30548:2;30543:3;30466:85;:::i;:::-;30459:92;;30560:93;30649:3;30560:93;:::i;:::-;30678:2;30673:3;30669:12;30662:19;;30285:402;;;:::o;30693:967::-;31075:3;31097:148;31241:3;31097:148;:::i;:::-;31090:155;;31262:95;31353:3;31344:6;31262:95;:::i;:::-;31255:102;;31374:148;31518:3;31374:148;:::i;:::-;31367:155;;31539:95;31630:3;31621:6;31539:95;:::i;:::-;31532:102;;31651:3;31644:10;;30693:967;;;;;:::o;31666:102::-;31707:6;31758:2;31754:7;31749:2;31742:5;31738:14;31734:28;31724:38;;31666:102;;;:::o;31774:377::-;31862:3;31890:39;31923:5;31890:39;:::i;:::-;31945:71;32009:6;32004:3;31945:71;:::i;:::-;31938:78;;32025:65;32083:6;32078:3;32071:4;32064:5;32060:16;32025:65;:::i;:::-;32115:29;32137:6;32115:29;:::i;:::-;32110:3;32106:39;32099:46;;31866:285;31774:377;;;;:::o;32157:313::-;32270:4;32308:2;32297:9;32293:18;32285:26;;32357:9;32351:4;32347:20;32343:1;32332:9;32328:17;32321:47;32385:78;32458:4;32449:6;32385:78;:::i;:::-;32377:86;;32157:313;;;;:::o;32476:442::-;32625:4;32663:2;32652:9;32648:18;32640:26;;32676:71;32744:1;32733:9;32729:17;32720:6;32676:71;:::i;:::-;32757:72;32825:2;32814:9;32810:18;32801:6;32757:72;:::i;:::-;32839;32907:2;32896:9;32892:18;32883:6;32839:72;:::i;:::-;32476:442;;;;;;:::o;32924:171::-;32963:3;32986:24;33004:5;32986:24;:::i;:::-;32977:33;;33032:4;33025:5;33022:15;33019:41;;33040:18;;:::i;:::-;33019:41;33087:1;33080:5;33076:13;33069:20;;32924:171;;;:::o;33101:182::-;33241:34;33237:1;33229:6;33225:14;33218:58;33101:182;:::o;33289:366::-;33431:3;33452:67;33516:2;33511:3;33452:67;:::i;:::-;33445:74;;33528:93;33617:3;33528:93;:::i;:::-;33646:2;33641:3;33637:12;33630:19;;33289:366;;;:::o;33661:419::-;33827:4;33865:2;33854:9;33850:18;33842:26;;33914:9;33908:4;33904:20;33900:1;33889:9;33885:17;33878:47;33942:131;34068:4;33942:131;:::i;:::-;33934:139;;33661:419;;;:::o;34086:137::-;34140:5;34171:6;34165:13;34156:22;;34187:30;34211:5;34187:30;:::i;:::-;34086:137;;;;:::o;34229:345::-;34296:6;34345:2;34333:9;34324:7;34320:23;34316:32;34313:119;;;34351:79;;:::i;:::-;34313:119;34471:1;34496:61;34549:7;34540:6;34529:9;34525:22;34496:61;:::i;:::-;34486:71;;34442:125;34229:345;;;;:::o;34580:229::-;34720:34;34716:1;34708:6;34704:14;34697:58;34789:12;34784:2;34776:6;34772:15;34765:37;34580:229;:::o;34815:366::-;34957:3;34978:67;35042:2;35037:3;34978:67;:::i;:::-;34971:74;;35054:93;35143:3;35054:93;:::i;:::-;35172:2;35167:3;35163:12;35156:19;;34815:366;;;:::o;35187:419::-;35353:4;35391:2;35380:9;35376:18;35368:26;;35440:9;35434:4;35430:20;35426:1;35415:9;35411:17;35404:47;35468:131;35594:4;35468:131;:::i;:::-;35460:139;;35187:419;;;:::o;35612:225::-;35752:34;35748:1;35740:6;35736:14;35729:58;35821:8;35816:2;35808:6;35804:15;35797:33;35612:225;:::o;35843:366::-;35985:3;36006:67;36070:2;36065:3;36006:67;:::i;:::-;35999:74;;36082:93;36171:3;36082:93;:::i;:::-;36200:2;36195:3;36191:12;36184:19;;35843:366;;;:::o;36215:419::-;36381:4;36419:2;36408:9;36404:18;36396:26;;36468:9;36462:4;36458:20;36454:1;36443:9;36439:17;36432:47;36496:131;36622:4;36496:131;:::i;:::-;36488:139;;36215:419;;;:::o;36640:98::-;36691:6;36725:5;36719:12;36709:22;;36640:98;;;:::o;36744:386::-;36848:3;36876:38;36908:5;36876:38;:::i;:::-;36930:88;37011:6;37006:3;36930:88;:::i;:::-;36923:95;;37027:65;37085:6;37080:3;37073:4;37066:5;37062:16;37027:65;:::i;:::-;37117:6;37112:3;37108:16;37101:23;;36852:278;36744:386;;;;:::o;37136:271::-;37266:3;37288:93;37377:3;37368:6;37288:93;:::i;:::-;37281:100;;37398:3;37391:10;;37136:271;;;;:::o;37413:179::-;37553:31;37549:1;37541:6;37537:14;37530:55;37413:179;:::o;37598:366::-;37740:3;37761:67;37825:2;37820:3;37761:67;:::i;:::-;37754:74;;37837:93;37926:3;37837:93;:::i;:::-;37955:2;37950:3;37946:12;37939:19;;37598:366;;;:::o;37970:419::-;38136:4;38174:2;38163:9;38159:18;38151:26;;38223:9;38217:4;38213:20;38209:1;38198:9;38194:17;38187:47;38251:131;38377:4;38251:131;:::i;:::-;38243:139;;37970:419;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "3570200", + "executionCost": "4007", + "totalCost": "3574207" + }, + "external": { + "ACCEPTED_TOKEN()": "483", + "ADMIN()": "441", + "DEFAULT_ADMIN_ROLE()": "402", + "DONATION_RECIPIENT()": "418", + "FEE_RECEIVER()": "374", + "HUNDRED()": "417", + "NATIVE()": "423", + "addAdmin(address[])": "infinite", + "addDonationRecipient(address[])": "infinite", + "addFeeReceiver(address[])": "infinite", + "addToken(address[])": "infinite", + "balanceOf(address,address)": "infinite", + "balances(address,address)": "infinite", + "balancesOf(address[],address)": "infinite", + "distribute(address[],address)": "infinite", + "distributeMany(address[],address[])": "infinite", + "getRoleAdmin(bytes32)": "infinite", + "grantRole(bytes32,address)": "infinite", + "hasRole(bytes32,address)": "3252", + "init()": "26689", + "initialize(address[],address[],address[],address[],uint256)": "infinite", + "isAdmin(address)": "3061", + "isDonationRecipient(address)": "3125", + "isFeeReceiver(address)": "3126", + "isRecipientWhitelistActive()": "2567", + "isTokenAccepted(address)": "3106", + "isTokenWhitelistActive()": "2626", + "minFee()": "2497", + "removeAdmin(address[])": "infinite", + "removeDonationRecipient(address[])": "infinite", + "removeFeeReceiver(address[])": "infinite", + "removeToken(address[])": "infinite", + "renounceRole(bytes32,address)": "infinite", + "revokeAdmin()": "infinite", + "revokeRole(bytes32,address)": "infinite", + "roundAddress()": "2624", + "setIsRecipientWhitelistActive(bool)": "infinite", + "setIsTokenWhitelistActive(bool)": "infinite", + "setMinFee(uint256)": "infinite", + "supportsInterface(bytes4)": "774", + "vote(bytes[],address)": "infinite", + "withdraw(address,uint256)": "infinite", + "withdrawFee(address)": "infinite", + "withdrawFeeMany(address[])": "infinite", + "withdrawMany(address[])": "infinite" + }, + "internal": { + "__DonationHandler_init(address[] calldata,address[] calldata,address[] calldata,address[] calldata,uint256)": "infinite", + "_registerDonation(address,address,uint256)": "infinite", + "_registerFee(address,uint256)": "infinite", + "_setMinFee(uint256)": "infinite", + "_transfer(address,address,uint256)": "infinite", + "_withdraw(address,address,address,uint256)": "infinite", + "_withdrawAll(address[] memory,address,address)": "infinite" + } + }, + "methodIdentifiers": { + "ACCEPTED_TOKEN()": "fdbb219d", + "ADMIN()": "2a0acc6a", + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "DONATION_RECIPIENT()": "dcda7dad", + "FEE_RECEIVER()": "d3e78e4d", + "HUNDRED()": "f85fc0ab", + "NATIVE()": "a0cf0aea", + "addAdmin(address[])": "3d0950a8", + "addDonationRecipient(address[])": "80c78f1c", + "addFeeReceiver(address[])": "9d082c98", + "addToken(address[])": "10881166", + "balanceOf(address,address)": "f7888aec", + "balances(address,address)": "c23f001f", + "balancesOf(address[],address)": "f46b80ca", + "distribute(address[],address)": "42e228ef", + "distributeMany(address[],address[])": "3b8453ca", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "init()": "e1c7392a", + "initialize(address[],address[],address[],address[],uint256)": "f2d4120e", + "isAdmin(address)": "24d7806c", + "isDonationRecipient(address)": "fbfe3ab2", + "isFeeReceiver(address)": "b278110f", + "isRecipientWhitelistActive()": "102d7927", + "isTokenAccepted(address)": "0560bd96", + "isTokenWhitelistActive()": "60e007a6", + "minFee()": "24ec7590", + "removeAdmin(address[])": "ae876f61", + "removeDonationRecipient(address[])": "1037d18c", + "removeFeeReceiver(address[])": "2620d800", + "removeToken(address[])": "bf7cb70b", + "renounceRole(bytes32,address)": "36568abe", + "revokeAdmin()": "0d6aef04", + "revokeRole(bytes32,address)": "d547741f", + "roundAddress()": "0b67d925", + "setIsRecipientWhitelistActive(bool)": "6bb85f4c", + "setIsTokenWhitelistActive(bool)": "155dc549", + "setMinFee(uint256)": "31ac9920", + "supportsInterface(bytes4)": "01ffc9a7", + "vote(bytes[],address)": "fc6d4e39", + "withdraw(address,uint256)": "f3fef3a3", + "withdrawFee(address)": "1ac3ddeb", + "withdrawFeeMany(address[])": "041c60ee", + "withdrawMany(address[])": "658e4821" + } + }, + "abi": [ + { + "inputs": [], + "name": "FeeTooHigh", + "type": "error" + }, + { + "inputs": [], + "name": "FeeTooLow", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAmount", + "type": "error" + }, + { + "inputs": [], + "name": "NotAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "NotDefaultAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "NotFeeReceiver", + "type": "error" + }, + { + "inputs": [], + "name": "RecipientNotAccepted", + "type": "error" + }, + { + "inputs": [], + "name": "TokenNotAccepted", + "type": "error" + }, + { + "inputs": [], + "name": "TransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "DonationRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "FeeRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "isRecipientWhitelistActive", + "type": "bool" + } + ], + "name": "IsRecipientWhitelistActiveSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "isTokenWhitelistActive", + "type": "bool" + } + ], + "name": "IsTokenWhitelistActiveSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "minFee", + "type": "uint256" + } + ], + "name": "MinFeeSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "grantAddress", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "roundAddress", + "type": "address" + } + ], + "name": "Voted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdraw", + "type": "event" + }, + { + "inputs": [], + "name": "ACCEPTED_TOKEN", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ADMIN", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DONATION_RECIPIENT", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FEE_RECEIVER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "HUNDRED", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NATIVE", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_admins", + "type": "address[]" + } + ], + "name": "addAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_recipients", + "type": "address[]" + } + ], + "name": "addDonationRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_feeReceiver", + "type": "address[]" + } + ], + "name": "addFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "addToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "balances", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "balancesOf", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "distribute", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_to", + "type": "address[]" + } + ], + "name": "distributeMany", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_acceptedToken", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_donationReceiver", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_feeReceiver", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_admins", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_minFee", + "type": "uint256" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_recipient", + "type": "address" + } + ], + "name": "isDonationRecipient", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_receiver", + "type": "address" + } + ], + "name": "isFeeReceiver", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRecipientWhitelistActive", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "isTokenAccepted", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isTokenWhitelistActive", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_admins", + "type": "address[]" + } + ], + "name": "removeAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_recipients", + "type": "address[]" + } + ], + "name": "removeDonationRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_feeReceiver", + "type": "address[]" + } + ], + "name": "removeFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "removeToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "revokeAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "roundAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_isRecipientWhitelistActive", + "type": "bool" + } + ], + "name": "setIsRecipientWhitelistActive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_isTokenWhitelistActive", + "type": "bool" + } + ], + "name": "setIsTokenWhitelistActive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minFee", + "type": "uint256" + } + ], + "name": "setMinFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "encodedVotes", + "type": "bytes[]" + }, + { + "internalType": "address", + "name": "voterAddress", + "type": "address" + } + ], + "name": "vote", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "withdrawFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "withdrawFeeMany", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "withdrawMany", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/src/DonationHandler/artifacts/DonationHandler_metadata.json b/src/DonationHandler/artifacts/DonationHandler_metadata.json new file mode 100644 index 0000000..04ee285 --- /dev/null +++ b/src/DonationHandler/artifacts/DonationHandler_metadata.json @@ -0,0 +1,1559 @@ +{ + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "name": "FeeTooHigh", + "type": "error" + }, + { + "inputs": [], + "name": "FeeTooLow", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAmount", + "type": "error" + }, + { + "inputs": [], + "name": "NotAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "NotDefaultAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "NotFeeReceiver", + "type": "error" + }, + { + "inputs": [], + "name": "RecipientNotAccepted", + "type": "error" + }, + { + "inputs": [], + "name": "TokenNotAccepted", + "type": "error" + }, + { + "inputs": [], + "name": "TransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "DonationRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "FeeRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "isRecipientWhitelistActive", + "type": "bool" + } + ], + "name": "IsRecipientWhitelistActiveSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "isTokenWhitelistActive", + "type": "bool" + } + ], + "name": "IsTokenWhitelistActiveSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "minFee", + "type": "uint256" + } + ], + "name": "MinFeeSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "grantAddress", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "roundAddress", + "type": "address" + } + ], + "name": "Voted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdraw", + "type": "event" + }, + { + "inputs": [], + "name": "ACCEPTED_TOKEN", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ADMIN", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DONATION_RECIPIENT", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FEE_RECEIVER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "HUNDRED", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NATIVE", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_admins", + "type": "address[]" + } + ], + "name": "addAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_recipients", + "type": "address[]" + } + ], + "name": "addDonationRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_feeReceiver", + "type": "address[]" + } + ], + "name": "addFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "addToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "balances", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "balancesOf", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "distribute", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_to", + "type": "address[]" + } + ], + "name": "distributeMany", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_acceptedToken", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_donationReceiver", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_feeReceiver", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_admins", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_minFee", + "type": "uint256" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_recipient", + "type": "address" + } + ], + "name": "isDonationRecipient", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_receiver", + "type": "address" + } + ], + "name": "isFeeReceiver", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRecipientWhitelistActive", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "isTokenAccepted", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isTokenWhitelistActive", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_admins", + "type": "address[]" + } + ], + "name": "removeAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_recipients", + "type": "address[]" + } + ], + "name": "removeDonationRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_feeReceiver", + "type": "address[]" + } + ], + "name": "removeFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "removeToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "revokeAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "roundAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_isRecipientWhitelistActive", + "type": "bool" + } + ], + "name": "setIsRecipientWhitelistActive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_isTokenWhitelistActive", + "type": "bool" + } + ], + "name": "setIsTokenWhitelistActive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minFee", + "type": "uint256" + } + ], + "name": "setMinFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "encodedVotes", + "type": "bytes[]" + }, + { + "internalType": "address", + "name": "voterAddress", + "type": "address" + } + ], + "name": "vote", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "withdrawFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "withdrawFeeMany", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "withdrawMany", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "author": "@Kurt for Giveth", + "events": { + "DonationRegistered(address,address,address,uint256)": { + "params": { + "amount": "The amount of tokens", + "from": "The address of the sender", + "recipient": "The address of the recipient", + "token": "The token address" + } + }, + "FeeRegistered(address,address,uint256)": { + "params": { + "amount": "The amount of tokens", + "from": "The address of the sender", + "token": "The token address" + } + }, + "IsRecipientWhitelistActiveSet(bool)": { + "params": { + "isRecipientWhitelistActive": "The recipient whitelist status" + } + }, + "IsTokenWhitelistActiveSet(bool)": { + "params": { + "isTokenWhitelistActive": "The token whitelist status" + } + }, + "MinFeeSet(uint256)": { + "params": { + "minFee": "The minimum fee" + } + }, + "Withdraw(address,address,address,uint256)": { + "params": { + "amount": "The amount of tokens", + "from": "The address of the sender", + "to": "The address of the recipient", + "token": "The token address" + } + } + }, + "kind": "dev", + "methods": { + "addAdmin(address[])": { + "params": { + "_admins": "Array of addresses to assign to admin role." + } + }, + "addDonationRecipient(address[])": { + "params": { + "_recipients": "Array of addresses to assign to donation recipient role." + } + }, + "addFeeReceiver(address[])": { + "params": { + "_feeReceiver": "Array of addresses to assign to fee receiver role." + } + }, + "addToken(address[])": { + "params": { + "_token": "Array of addresses to assign to accepted token role." + } + }, + "balanceOf(address,address)": { + "params": { + "_token": "Address of the token", + "_user": "Address of the user" + }, + "returns": { + "_0": "Token balance of the user" + } + }, + "balancesOf(address[],address)": { + "params": { + "_token": "Address array of the token", + "_user": "Address of the user" + }, + "returns": { + "_0": "Uint256 array. Token balances of the user" + } + }, + "distribute(address[],address)": { + "params": { + "_to": "Address of the recipient", + "_token": "Address array of the token" + } + }, + "distributeMany(address[],address[])": { + "params": { + "_to": "Address array of the recipients", + "_token": "Address array of the token" + } + }, + "getRoleAdmin(bytes32)": { + "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." + }, + "grantRole(bytes32,address)": { + "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event." + }, + "hasRole(bytes32,address)": { + "details": "Returns `true` if `account` has been granted `role`." + }, + "initialize(address[],address[],address[],address[],uint256)": { + "params": { + "_acceptedToken": "Array of accepted tokens", + "_admins": "Array of admins", + "_donationReceiver": "Array of donation receivers", + "_feeReceiver": "Array of fee receivers", + "_minFee": "Minimum donation fee" + } + }, + "isAdmin(address)": { + "params": { + "_account": "The address to check." + }, + "returns": { + "_0": "bool True if address is admin, false otherwise." + } + }, + "isDonationRecipient(address)": { + "params": { + "_recipient": "The address to check." + }, + "returns": { + "_0": "bool True if address is a donation recipient, false otherwise." + } + }, + "isFeeReceiver(address)": { + "params": { + "_receiver": "The address to check." + }, + "returns": { + "_0": "bool True if address is a fee receiver, false otherwise." + } + }, + "isTokenAccepted(address)": { + "params": { + "_token": "The address to check." + }, + "returns": { + "_0": "bool True if address is whitelisted, false otherwise." + } + }, + "removeAdmin(address[])": { + "params": { + "_admins": "Array of addresses to remove from admin role." + } + }, + "removeDonationRecipient(address[])": { + "params": { + "_recipients": "Array of addresses to remove from donation recipient role." + } + }, + "removeFeeReceiver(address[])": { + "params": { + "_feeReceiver": "Array of addresses to remove from fee receiver role." + } + }, + "removeToken(address[])": { + "params": { + "_token": "Array of addresses to remove from accepted token role." + } + }, + "renounceRole(bytes32,address)": { + "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event." + }, + "revokeRole(bytes32,address)": { + "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event." + }, + "setIsRecipientWhitelistActive(bool)": { + "params": { + "_isRecipientWhitelistActive": "Enable/Disable recipient whitelist" + } + }, + "setIsTokenWhitelistActive(bool)": { + "params": { + "_isTokenWhitelistActive": "Enable/Disable token whitelist" + } + }, + "setMinFee(uint256)": { + "params": { + "_minFee": "Minimum donation fee" + } + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + }, + "vote(bytes[],address)": { + "params": { + "encodedVotes": "Array of donations", + "voterAddress": "Address of the voter" + } + }, + "withdraw(address,uint256)": { + "params": { + "_amount": "Amount of tokens", + "_token": "Address of the token" + } + }, + "withdrawFee(address)": { + "params": { + "_token": "Address of the token" + } + }, + "withdrawFeeMany(address[])": { + "params": { + "_token": "Address array of the token" + } + }, + "withdrawMany(address[])": { + "params": { + "_token": "Address array of the token" + } + } + }, + "title": "DonationHandler", + "version": 1 + }, + "userdoc": { + "errors": { + "FeeTooHigh()": [ + { + "notice": "Throws if passed fee is above 100%." + } + ], + "FeeTooLow()": [ + { + "notice": "Throws if passed fee is below minFee." + } + ], + "InsufficientBalance()": [ + { + "notice": "Throws if the withdrawal amount is too high." + } + ], + "InvalidAmount()": [ + { + "notice": "Throws if amount is zero or does not match the msg.value" + } + ], + "NotAdmin()": [ + { + "notice": "Throws if called by any account other than a admin." + } + ], + "NotDefaultAdmin()": [ + { + "notice": "Throws if called by any account other than a default admin." + } + ], + "NotFeeReceiver()": [ + { + "notice": "Throws if the sender is not a whitelisted fee receiver." + } + ], + "RecipientNotAccepted()": [ + { + "notice": "Throws if a donation recipient is not whitelisted." + } + ], + "TokenNotAccepted()": [ + { + "notice": "Throws if a token is not whitelisted." + } + ], + "TransferFailed()": [ + { + "notice": "Throws if the native currency transfer failed" + } + ] + }, + "events": { + "DonationRegistered(address,address,address,uint256)": { + "notice": "Emitted when a donation is registered" + }, + "FeeRegistered(address,address,uint256)": { + "notice": "Emitted when a fee is registered" + }, + "IsRecipientWhitelistActiveSet(bool)": { + "notice": "Emitted when the recipient whitelist is set to active or inactive" + }, + "IsTokenWhitelistActiveSet(bool)": { + "notice": "Emitted when the token whitelist is set to active or inactive" + }, + "MinFeeSet(uint256)": { + "notice": "Emitted when the minimum fee is set" + }, + "Voted(address,uint256,address,address,address)": { + "notice": "Emitted when a new vote is sent" + }, + "Withdraw(address,address,address,uint256)": { + "notice": "Emitted when a withdrawal is made" + } + }, + "kind": "user", + "methods": { + "HUNDRED()": { + "notice": "1e18 represents 100%, 1e16 represents 1%" + }, + "NATIVE()": { + "notice": "special address which represents the native network currency. address(0) is used by gitcoin." + }, + "addAdmin(address[])": { + "notice": "Assigns addresses to admin role. Can only be called by an admin." + }, + "addDonationRecipient(address[])": { + "notice": "Assigns addresses to donation recipient role. Can only be called by an admin." + }, + "addFeeReceiver(address[])": { + "notice": "Assigns addresses to fee receiver role. Can only be called by an admin." + }, + "addToken(address[])": { + "notice": "Assigns addresses to accepted token role. Can only be called by an admin." + }, + "balanceOf(address,address)": { + "notice": "Returns the token balance of a user" + }, + "balances(address,address)": { + "notice": "mapping: user => token => amount" + }, + "balancesOf(address[],address)": { + "notice": "Returns the token balances of a user" + }, + "distribute(address[],address)": { + "notice": "Distributes full amount of token arrays token from the contract to a recipient." + }, + "distributeMany(address[],address[])": { + "notice": "Distributes full amount of token arrays token from the contract to an array of recipients." + }, + "init()": { + "notice": "Invoked by RoundImplementation on creation to set the round for which the voting contracts is to be used" + }, + "initialize(address[],address[],address[],address[],uint256)": { + "notice": "Initialize the contract." + }, + "isAdmin(address)": { + "notice": "Wrapper function to check if an address is admin." + }, + "isDonationRecipient(address)": { + "notice": "Wrapper function to check if an address is a donation recipient." + }, + "isFeeReceiver(address)": { + "notice": "Wrapper function to check if an address is a fee receiver." + }, + "isTokenAccepted(address)": { + "notice": "Wrapper function to check if an address is a whitelisted token." + }, + "minFee()": { + "notice": "Minimum donation fee. 0 by default" + }, + "removeAdmin(address[])": { + "notice": "Removes addresses from admin role. Can only be called by default admin." + }, + "removeDonationRecipient(address[])": { + "notice": "Removes addresses from donation recipient role. Can only be called by an admin." + }, + "removeFeeReceiver(address[])": { + "notice": "Removes addresses from fee receiver role. Can only be called by an admin." + }, + "removeToken(address[])": { + "notice": "Removes addresses from accepted token role. Can only be called by an admin." + }, + "roundAddress()": { + "notice": "Round address" + }, + "setIsRecipientWhitelistActive(bool)": { + "notice": "Enable/Disable recipient whitelist. Can only be called by an Admin. Emits IsRecipientWhitelistActiveSet event." + }, + "setIsTokenWhitelistActive(bool)": { + "notice": "Enable/Disable token whitelist. Can only be called by an Admin. Emits IsTokenWhitelistActiveSet event." + }, + "setMinFee(uint256)": { + "notice": "Set minimum donation fee. Can only be called by an Admin. Emits MinFeeSet event." + }, + "vote(bytes[],address)": { + "notice": "Donate(vote) to a whitelisted recipient." + }, + "withdraw(address,uint256)": { + "notice": "Withdraw tokens from the contract to msg.sender." + }, + "withdrawFee(address)": { + "notice": "Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver." + }, + "withdrawFeeMany(address[])": { + "notice": "Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver." + }, + "withdrawMany(address[])": { + "notice": "Withdraw full amount of token arrays token from the contract to msg.sender." + } + }, + "notice": "This contract is used to handle donations This contract is build to use with proxies. The user can donate whitelisted token to whitelisted recipients by calling the vote function. The fee is deducted from the users donation, assigned to the contracts address and can be withdrawn by a fee receiver. The min fee is set during initialization and can be changed by the protocol admins. The max fee is set by default to 1e18 and can't be changed. The user can withdraw the donation of a single token by calling the withdraw function. The user can withdraw all donations of a list of token by calling the withdrawMany function. The fee receiver can withdraw the donation fee by calling the withdrawFee function. The fee receiver can withdraw the donation fee of a list of token by calling the withdrawFeeMany function. Users can distribute the funds of a list of token in behalf of a recipient by calling the distribute function. Users can distribute the funds of a list of token in behalf of a list of recipients by calling the distributeMany function. The donation balance of one token can be checked by calling the balanceOf function. The donation balance of multiple token can be checked by calling the balancesOf function.", + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "giveth/GIVfi/src/DonationHandler/DonationHandler.sol": "DonationHandler" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol": { + "keccak256": "0xe8f27a3e3e25067334e76799f03d4de6d8f8535c3fc4806468228a9ebd5de51a", + "license": "MIT", + "urls": [ + "bzz-raw://686aaf8725727d94b36c53baad3779e168b31e33eec8d39b41e282382617c626", + "dweb:/ipfs/QmWVRwPpZyweGCw7uRj1rXQTmcwaXB5Ctz3KvpNJPtxDP8" + ] + }, + "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol": { + "keccak256": "0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa", + "license": "MIT", + "urls": [ + "bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c", + "dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b" + ] + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "keccak256": "0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27", + "license": "MIT", + "urls": [ + "bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935", + "dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP" + ] + }, + "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol": { + "keccak256": "0x2b3005a0064cfc558bdf64b2bae94b565f4574a536aadd61c13838d4f2157790", + "license": "MIT", + "urls": [ + "bzz-raw://622c3eb87563e71585c9f538d1a196fe2d154dcc5b8f335e8770a8acc95e1f3a", + "dweb:/ipfs/QmSnDqJJLzv3mirjGB1vrk5X7hegFdS7BKpscpxyqj7sWu" + ] + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol": { + "keccak256": "0x4e733d3164f73f461eaf9d8087a7ad1ea180bdc8ba0d3d61b0e1ae16d8e63dff", + "license": "MIT", + "urls": [ + "bzz-raw://75b47c3aeca7b66ea6752f8be020ec5c1c502de6ec9065272dae23d3a52196e2", + "dweb:/ipfs/QmUebPMHv16tYKFh5BmBQkMfRFb5b8UZ2RgVwdjxCeufVF" + ] + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol": { + "keccak256": "0xcc70d8e2281fb3ff69e8ab242500f10142cd0a7fa8dd9e45882be270d4d09024", + "license": "MIT", + "urls": [ + "bzz-raw://17a4063bc918df0f7bb9cbf04c6f0bb4977afab3f2fc212bc138a178312a221d", + "dweb:/ipfs/QmZMdvsHP5mDEAAdrK4bNeNh47TfmSFgN9qEBFTbie7zmm" + ] + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol": { + "keccak256": "0x220c4a5af915e656be2aaa85ca57505d102418e476b1e2ef6c62e0c6ac143871", + "license": "MIT", + "urls": [ + "bzz-raw://6ed2c33173f7e7000889abed7c339b7a0e3b7867cdea546caaf6bc917ef1039c", + "dweb:/ipfs/QmQ4Ye5h7jm6V4CdhT3r6hvf25DtiV74ErppQVE4SpRKj6" + ] + }, + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol": { + "keccak256": "0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183", + "license": "MIT", + "urls": [ + "bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06", + "dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879" + ] + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "keccak256": "0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149", + "license": "MIT", + "urls": [ + "bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c", + "dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a" + ] + }, + "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol": { + "keccak256": "0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da", + "license": "MIT", + "urls": [ + "bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8", + "dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA" + ] + }, + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol": { + "keccak256": "0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a", + "license": "MIT", + "urls": [ + "bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7", + "dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw" + ] + }, + "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol": { + "keccak256": "0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09", + "license": "MIT", + "urls": [ + "bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758", + "dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy" + ] + }, + "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol": { + "keccak256": "0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a", + "license": "MIT", + "urls": [ + "bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4", + "dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt" + ] + }, + "giveth/GIVfi/src/DonationHandler/DonationHandler.sol": { + "keccak256": "0xbcd1929f15bf25fbd0ea11fc9a29c71863e69fd7ba108db091371f85d3e0341c", + "license": "MIT", + "urls": [ + "bzz-raw://336b64a8013b8635ac354af39a1dab0ac99aa3a157c049806564473d0baf84f8", + "dweb:/ipfs/QmbXMiBnomdmJw5ezbdugPkkrkPYctEfKhi1u6v2a3KbzM" + ] + }, + "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol": { + "keccak256": "0x09aa18e8c7f0a7fec7f8ff09c30f916e1b0a9288aaaae56d78555d868a78f875", + "license": "MIT", + "urls": [ + "bzz-raw://56a3998b440ca886e5d6cc2c0954191210bd18dbe3a99e2bbcbc7564236b2098", + "dweb:/ipfs/QmT1EFfSpbcAsAfyqNtkEy8pLKaFYXYTnyRuzQmJGLdKax" + ] + }, + "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol": { + "keccak256": "0x294e63ce1df9e00acd8969ec71323adeeb1b3598a2a97cf389364ff8cd445f88", + "license": "AGPL-3.0-only", + "urls": [ + "bzz-raw://6ae88b9a4e997a15afcd05a607e334a15751aeae7a5f20e5c51c4dfb75078dca", + "dweb:/ipfs/QmW1YGotPJ3AG3dUtLfC8XSAF5nPHjhYMCH5baDtkqG88T" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/src/DonationHandler/artifacts/build-info/c85cfa617f450c44816fb3e6fabfce82.json b/src/DonationHandler/artifacts/build-info/c85cfa617f450c44816fb3e6fabfce82.json new file mode 100644 index 0000000..aac1120 --- /dev/null +++ b/src/DonationHandler/artifacts/build-info/c85cfa617f450c44816fb3e6fabfce82.json @@ -0,0 +1,165820 @@ +{ + "id": "c85cfa617f450c44816fb3e6fabfce82", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.17", + "solcLongVersion": "0.8.17+commit.8df45f5f", + "input": { + "language": "Solidity", + "sources": { + "giveth/GIVfi/src/DonationHandler/DonationHandler.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.17;\n\nimport {IERC20Upgradeable as IERC20} from \"@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol\";\nimport {SafeERC20Upgradeable as SafeERC20} from \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\";\nimport {ReentrancyGuardUpgradeable as ReentrancyGuard} from \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\";\nimport \"./DonationHandlerRoles.sol\";\nimport \"../gitcoin/IVotingStrategy.sol\";\n\n/// @title DonationHandler\n/// @author @Kurt for Giveth\n/// @notice This contract is used to handle donations\n/// This contract is build to use with proxies.\n///\n/// The user can donate whitelisted token to whitelisted recipients by calling the vote function.\n///\n/// The fee is deducted from the users donation, assigned to the contracts address and can be withdrawn by a fee receiver.\n/// The min fee is set during initialization and can be changed by the protocol admins.\n/// The max fee is set by default to 1e18 and can't be changed.\n///\n/// The user can withdraw the donation of a single token by calling the withdraw function.\n/// The user can withdraw all donations of a list of token by calling the withdrawMany function.\n///\n/// The fee receiver can withdraw the donation fee by calling the withdrawFee function.\n/// The fee receiver can withdraw the donation fee of a list of token by calling the withdrawFeeMany function.\n///\n/// Users can distribute the funds of a list of token in behalf of a recipient by calling the distribute function.\n/// Users can distribute the funds of a list of token in behalf of a list of recipients by calling the distributeMany function.\n///\n/// The donation balance of one token can be checked by calling the balanceOf function.\n/// The donation balance of multiple token can be checked by calling the balancesOf function.\ncontract DonationHandler is\n IVotingStrategy,\n DonationHandlerRoles,\n ReentrancyGuard\n{\n using SafeERC20 for IERC20;\n\n /// @notice 1e18 represents 100%, 1e16 represents 1%\n uint256 public constant HUNDRED = 1e18;\n\n /// @notice Minimum donation fee. 0 by default\n uint256 public minFee;\n\n bool public isTokenWhitelistActive;\n bool public isRecipientWhitelistActive;\n\n /// @notice mapping: user => token => amount\n mapping(address => mapping(address => uint256)) public balances;\n\n /// @notice Initialize the contract.\n /// @param _acceptedToken Array of accepted tokens\n /// @param _donationReceiver Array of donation receivers\n /// @param _feeReceiver Array of fee receivers\n /// @param _admins Array of admins\n /// @param _minFee Minimum donation fee\n function initialize(\n address[] calldata _acceptedToken,\n address[] calldata _donationReceiver,\n address[] calldata _feeReceiver,\n address[] calldata _admins,\n uint256 _minFee\n ) public initializer {\n __DonationHandler_init(\n _acceptedToken,\n _donationReceiver,\n _feeReceiver,\n _admins,\n _minFee\n );\n }\n\n function __DonationHandler_init(\n address[] calldata _acceptedToken,\n address[] calldata _donationReceiver,\n address[] calldata _feeReceiver,\n address[] calldata _admins,\n uint256 _minFee\n ) internal onlyInitializing {\n __DonationHandlerRoles_init(\n _acceptedToken,\n _donationReceiver,\n _feeReceiver,\n _admins\n );\n __ReentrancyGuard_init();\n\n if (_acceptedToken.length > 0) {\n isTokenWhitelistActive = true;\n }\n if (_donationReceiver.length > 0) {\n isRecipientWhitelistActive = true;\n }\n\n if (_minFee > 0) {\n _setMinFee(_minFee);\n }\n }\n\n /// @notice Donate(vote) to a whitelisted recipient.\n /// @param encodedVotes Array of donations\n /// @param voterAddress Address of the voter\n function vote(\n bytes[] calldata encodedVotes,\n address voterAddress\n ) external payable override nonReentrant isRoundContract {\n /// @dev iterate over multiple donations and transfer funds\n uint256 length = encodedVotes.length;\n uint256 msgValue = 0;\n\n for (uint256 i = 0; i < length; ) {\n (address _token, uint256 _amount, address _grantAddress) = abi\n .decode(encodedVotes[i], (address, uint256, address));\n\n if (isTokenWhitelistActive) _checkToken(_token);\n if (isRecipientWhitelistActive) {\n _checkDonationRecipient(_grantAddress);\n }\n\n if (_token != NATIVE) {\n _transfer(voterAddress, _token, _amount);\n } else {\n msgValue += _amount;\n }\n\n /// @dev emit event for transfer\n emit Voted(\n _token,\n _amount,\n voterAddress,\n _grantAddress,\n msg.sender\n );\n\n if (minFee > 0) {\n uint256 fee = (_amount * minFee) / HUNDRED;\n\n _registerDonation(_token, _grantAddress, _amount - fee);\n _registerFee(_token, fee);\n } else {\n _registerDonation(_token, _grantAddress, _amount);\n }\n\n unchecked {\n i++;\n }\n }\n\n if (msgValue > msg.value) {\n revert InvalidAmount();\n }\n }\n\n /// @notice Internal function. Registers a donated fee by adding it to the balance of the contract and emitting the FeeRegistered event.\n /// @param _token Address of the token\n /// @param _amount Amount of tokens\n function _registerFee(address _token, uint256 _amount) internal {\n balances[address(this)][_token] += _amount;\n emit FeeRegistered(_token, msg.sender, _amount);\n }\n\n /// @notice Internal function. Registers a donation by adding it to the balance of the recipient and emitting the DonationRegistered event.\n /// @param _token Address of the token\n /// @param _recipient Address of the recipient\n /// @param _amount Amount of tokens\n function _registerDonation(\n address _token,\n address _recipient,\n uint256 _amount\n ) internal {\n balances[_recipient][_token] += _amount;\n emit DonationRegistered(_token, msg.sender, _recipient, _amount);\n }\n\n /// @notice Internal function. Transfers tokens from the sender to the contract.\n /// @param _token Address of the token\n /// @param _amount Amount of tokens\n function _transfer(\n address _from,\n address _token,\n uint256 _amount\n ) internal {\n IERC20(_token).safeTransferFrom(_from, address(this), _amount);\n }\n\n /// @notice Withdraw tokens from the contract to msg.sender.\n /// @param _token Address of the token\n /// @param _amount Amount of tokens\n function withdraw(address _token, uint256 _amount) external nonReentrant {\n if (_amount == 0) revert InvalidAmount();\n _withdraw(_token, msg.sender, msg.sender, _amount);\n }\n\n /// @notice Withdraw full amount of token arrays token from the contract to msg.sender.\n /// @param _token Address array of the token\n function withdrawMany(address[] calldata _token) external nonReentrant {\n _withdrawAll(_token, msg.sender, msg.sender);\n }\n\n /// @notice Distributes full amount of token arrays token from the contract to a recipient.\n /// @param _token Address array of the token\n /// @param _to Address of the recipient\n function distribute(\n address[] calldata _token,\n address _to\n ) external nonReentrant {\n // TODO: maybe restrict to admins\n _withdrawAll(_token, _to, _to);\n }\n\n /// @notice Distributes full amount of token arrays token from the contract to an array of recipients.\n /// @param _token Address array of the token\n /// @param _to Address array of the recipients\n function distributeMany(\n address[] calldata _token,\n address[] calldata _to\n ) external nonReentrant {\n // TODO: maybe restrict to admins\n uint256 length = _to.length;\n for (uint256 i = 0; i < length; ) {\n _withdrawAll(_token, _to[i], _to[i]);\n unchecked {\n i++;\n }\n }\n }\n\n /// @notice Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver.\n /// @param _token Address of the token\n function withdrawFee(address _token) external nonReentrant {\n address[] memory token = new address[](1);\n token[0] = _token;\n _checkFeeReceiver(msg.sender);\n _withdrawAll(token, address(this), msg.sender);\n }\n\n /// @notice Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver.\n /// @param _token Address array of the token\n function withdrawFeeMany(address[] calldata _token) external nonReentrant {\n _checkFeeReceiver(msg.sender);\n _withdrawAll(_token, address(this), msg.sender);\n }\n\n /// @notice Internal function. Withdraw all donated funds from a list of token from the contract to the recipient.\n /// @param _token Address array of the token to withdraw\n /// @param _from Address of the spender\n /// @param _to Address of the recipient\n function _withdrawAll(\n address[] memory _token,\n address _from,\n address _to\n ) internal {\n uint256 length = _token.length;\n\n for (uint256 i = 0; i < length; ) {\n uint256 amount = balances[_from][_token[i]];\n\n if (amount > 0) {\n _withdraw(_token[i], _from, _to, amount);\n }\n\n unchecked {\n i++;\n }\n }\n }\n\n /// @notice Internal function. Withdraw donated funds from a token from the contract to the recipient. Emits Withdraw event.\n /// @param _token Address of the token to withdraw\n /// @param _from Address of the spender\n /// @param _to Address of the recipient\n /// @param _amount Amount of tokens to withdraw\n function _withdraw(\n address _token,\n address _from,\n address _to,\n uint256 _amount\n ) internal virtual {\n if (_amount > balances[_from][_token]) revert InsufficientBalance();\n\n balances[_from][_token] -= _amount;\n if (_token == NATIVE) {\n (bool success, ) = payable(_to).call{value: _amount}(\"\");\n if (!success) revert TransferFailed();\n } else {\n IERC20(_token).safeTransfer(_to, _amount);\n }\n\n emit Withdraw(_token, _from, _to, _amount);\n }\n\n /// @notice Returns the token balance of a user\n /// @param _token Address of the token\n /// @param _user Address of the user\n /// @return Token balance of the user\n function balanceOf(\n address _token,\n address _user\n ) external view returns (uint256) {\n return balances[_user][_token];\n }\n\n /// @notice Returns the token balances of a user\n /// @param _token Address array of the token\n /// @param _user Address of the user\n /// @return Uint256 array. Token balances of the user\n function balancesOf(\n address[] calldata _token,\n address _user\n ) external view returns (uint256[] memory) {\n uint256 length = _token.length;\n uint256[] memory result = new uint256[](length);\n\n for (uint256 i = 0; i < length; ) {\n result[i] = balances[_user][_token[i]];\n unchecked {\n i++;\n }\n }\n return result;\n }\n\n /// @notice Set minimum donation fee. Can only be called by an Admin. Emits MinFeeSet event.\n /// @param _minFee Minimum donation fee\n function setMinFee(uint256 _minFee) external {\n _checkAdmin(msg.sender);\n _setMinFee(_minFee);\n }\n\n /// @notice Internal function. Set minimum donation fee. Emits MinFeeSet event.\n /// @param _minFee Minimum donation fee\n function _setMinFee(uint256 _minFee) internal {\n if (_minFee > HUNDRED) revert FeeTooHigh();\n minFee = _minFee;\n emit MinFeeSet(_minFee);\n }\n\n /// @notice Enable/Disable token whitelist. Can only be called by an Admin. Emits IsTokenWhitelistActiveSet event.\n /// @param _isTokenWhitelistActive Enable/Disable token whitelist\n function setIsTokenWhitelistActive(bool _isTokenWhitelistActive) external {\n _checkAdmin(msg.sender);\n isTokenWhitelistActive = _isTokenWhitelistActive;\n emit IsTokenWhitelistActiveSet(_isTokenWhitelistActive);\n }\n\n /// @notice Enable/Disable recipient whitelist. Can only be called by an Admin. Emits IsRecipientWhitelistActiveSet event.\n /// @param _isRecipientWhitelistActive Enable/Disable recipient whitelist\n function setIsRecipientWhitelistActive(\n bool _isRecipientWhitelistActive\n ) external {\n _checkAdmin(msg.sender);\n isRecipientWhitelistActive = _isRecipientWhitelistActive;\n emit IsRecipientWhitelistActiveSet(_isRecipientWhitelistActive);\n }\n\n /// @notice Throws if passed fee is above 100%.\n error FeeTooHigh();\n\n /// @notice Throws if passed fee is below minFee.\n error FeeTooLow();\n\n /// @notice Throws if the withdrawal amount is too high.\n error InsufficientBalance();\n\n /// @notice Throws if amount is zero or does not match the msg.value\n error InvalidAmount();\n\n /// @notice Throws if the native currency transfer failed\n error TransferFailed();\n\n /// @notice Emitted when a fee is registered\n /// @param token The token address\n /// @param from The address of the sender\n /// @param amount The amount of tokens\n event FeeRegistered(\n address indexed token,\n address indexed from,\n uint256 amount\n );\n\n /// @notice Emitted when a donation is registered\n /// @param token The token address\n /// @param from The address of the sender\n /// @param recipient The address of the recipient\n /// @param amount The amount of tokens\n event DonationRegistered(\n address indexed token,\n address indexed from,\n address indexed recipient,\n uint256 amount\n );\n\n /// @notice Emitted when a withdrawal is made\n /// @param token The token address\n /// @param from The address of the sender\n /// @param to The address of the recipient\n /// @param amount The amount of tokens\n event Withdraw(\n address indexed token,\n address indexed from,\n address indexed to,\n uint256 amount\n );\n\n /// @notice Emitted when the minimum fee is set\n /// @param minFee The minimum fee\n event MinFeeSet(uint256 minFee);\n\n /// @notice Emitted when the token whitelist is set to active or inactive\n /// @param isTokenWhitelistActive The token whitelist status\n event IsTokenWhitelistActiveSet(bool isTokenWhitelistActive);\n\n /// @notice Emitted when the recipient whitelist is set to active or inactive\n /// @param isRecipientWhitelistActive The recipient whitelist status\n event IsRecipientWhitelistActiveSet(bool isRecipientWhitelistActive);\n\n /// @notice Emitted when a new vote is sent\n event Voted(\n address token, // voting token\n uint256 amount, // voting amount\n address indexed voter, // voter address\n address indexed grantAddress, // grant address\n address indexed roundAddress // round address\n );\n}\n" + }, + "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol": { + "content": "// SPDX-License-Identifier: AGPL-3.0-only\npragma solidity 0.8.17;\n\n/**\n * @notice Defines the abstract contract for voting algorithms on grants\n * within a round. Any new voting algorithm would be expected to\n * extend this abstract contract.\n * Every IVotingStrategy contract would be unique to RoundImplementation\n * and would be deployed before creating a round\n */\nabstract contract IVotingStrategy {\n // --- Data ---\n\n /// @notice Round address\n address public roundAddress;\n\n // --- Modifier ---\n\n /// @notice modifier to check if sender is round contract.\n modifier isRoundContract() {\n require(roundAddress != address(0), \"error: voting contract not linked to a round\");\n require(msg.sender == roundAddress, \"error: can be invoked only by round contract\");\n _;\n }\n\n // --- Core methods ---\n\n /**\n * @notice Invoked by RoundImplementation on creation to\n * set the round for which the voting contracts is to be used\n *\n */\n function init() external {\n require(roundAddress == address(0), \"init: roundAddress already set\");\n roundAddress = msg.sender;\n }\n\n /**\n * @notice Invoked by RoundImplementation to allow voter to case\n * vote for grants during a round.\n *\n * @dev\n * - allows contributor to do cast multiple votes which could be weighted.\n * - should be invoked by RoundImplementation contract\n * - ideally IVotingStrategy implementation should emit events after a vote is cast\n * - this would be triggered when a voter casts their vote via grant explorer\n *\n * @param _encodedVotes encoded votes\n * @param _voterAddress voter address\n */\n function vote(bytes[] calldata _encodedVotes, address _voterAddress) external payable virtual;\n}\n" + }, + "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.17;\n\nimport {AccessControlUpgradeable as AccessControl} from\n \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\";\n\n/// @title DonationHandlerRoles\n/// @author @Kurt for Giveth\n/// @notice This contract defines the roles used by the DonationHandler contract.\ncontract DonationHandlerRoles is AccessControl {\n bytes32 public constant ACCEPTED_TOKEN = keccak256(\"ACCEPTED_TOKEN\");\n bytes32 public constant DONATION_RECIPIENT = keccak256(\"DONATION_RECIPIENT\");\n bytes32 public constant FEE_RECEIVER = keccak256(\"FEE_RECEIVER\");\n bytes32 public constant ADMIN = keccak256(\"ADMIN\");\n\n /// @notice special address which represents the native network currency. address(0) is used by gitcoin.\n address public constant NATIVE = address(0); //0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\n /// @notice Initializes the contract settings by adding all addresses to their roles.\n /// @param _acceptedToken The list of accepted tokens.\n /// @param _donationRecipient The list of donation recipients.\n /// @param _feeReceiver The list of fee receivers.\n /// @param _admins The list of admins.\n function __DonationHandlerRoles_init(\n address[] calldata _acceptedToken,\n address[] calldata _donationRecipient,\n address[] calldata _feeReceiver,\n address[] calldata _admins\n ) internal onlyInitializing {\n __AccessControl_init();\n _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\n _setupRole(DONATION_RECIPIENT, address(this)); // this contract is a donation recipient (for fees) by default\n\n _setRoleAdmin(ACCEPTED_TOKEN, ADMIN);\n _setRoleAdmin(DONATION_RECIPIENT, ADMIN);\n _setRoleAdmin(FEE_RECEIVER, ADMIN);\n\n _addRoles(ACCEPTED_TOKEN, _acceptedToken);\n _addRoles(DONATION_RECIPIENT, _donationRecipient);\n _addRoles(FEE_RECEIVER, _feeReceiver);\n _addRoles(ADMIN, _admins);\n\n _setupRole(ACCEPTED_TOKEN, NATIVE);\n }\n\n /// @notice Internal function. Adds a list of addresses to a role.\n /// @param _role The role to add the addresses to.\n /// @param _addresses The list of addresses to add to the role.\n function _addRoles(bytes32 _role, address[] calldata _addresses) internal {\n uint256 length = _addresses.length;\n for (uint256 i = 0; i < length;) {\n _setupRole(_role, _addresses[i]);\n unchecked {\n i++;\n }\n }\n }\n\n /// @notice Internal function. Removes a list of addresses from a role.\n /// @param _role The role to remove the addresses from.\n /// @param _addresses The list of addresses to remove from the role.\n function _removeRoles(bytes32 _role, address[] calldata _addresses) internal {\n uint256 length = _addresses.length;\n for (uint256 i = 0; i < length;) {\n revokeRole(_role, _addresses[i]);\n unchecked {\n i++;\n }\n }\n }\n\n /// @notice Internal function. Checks if an address is admin and reverts NotAdmin() if address is not an admin.\n function _checkAdmin(address _address) internal view {\n if (!hasRole(ADMIN, _address)) revert NotAdmin();\n }\n\n /// @notice Assigns addresses to admin role. Can only be called by an admin.\n /// @param _admins Array of addresses to assign to admin role.\n function addAdmin(address[] calldata _admins) external {\n _checkAdmin(msg.sender);\n _addRoles(ADMIN, _admins);\n }\n\n /// @notice Removes addresses from admin role. Can only be called by default admin.\n /// @param _admins Array of addresses to remove from admin role.\n function removeAdmin(address[] calldata _admins) external {\n if (!hasRole(DEFAULT_ADMIN_ROLE, msg.sender)) revert NotDefaultAdmin();\n _removeRoles(ADMIN, _admins);\n }\n\n //// @notice Revoke admin themself from admin role.\n function revokeAdmin() external {\n _checkAdmin(msg.sender);\n _revokeRole(ADMIN, msg.sender);\n }\n\n /// @notice Wrapper function to check if an address is admin.\n /// @param _account The address to check.\n /// @return bool True if address is admin, false otherwise.\n function isAdmin(address _account) external view returns (bool) {\n return hasRole(ADMIN, _account);\n }\n\n /// @notice Internal function. Checks if an address is a whiteisted token and reverts TokenNotAccepted() if address is not whitelisted.\n /// @param _token The address to check.\n function _checkToken(address _token) internal view {\n if (!hasRole(ACCEPTED_TOKEN, _token)) revert TokenNotAccepted();\n }\n\n /// @notice Assigns addresses to accepted token role. Can only be called by an admin.\n /// @param _token Array of addresses to assign to accepted token role.\n function addToken(address[] calldata _token) external {\n _checkAdmin(msg.sender);\n _addRoles(ACCEPTED_TOKEN, _token);\n }\n\n /// @notice Removes addresses from accepted token role. Can only be called by an admin.\n /// @param _token Array of addresses to remove from accepted token role.\n function removeToken(address[] calldata _token) external {\n _checkAdmin(msg.sender);\n _removeRoles(ACCEPTED_TOKEN, _token);\n }\n\n /// @notice Wrapper function to check if an address is a whitelisted token.\n /// @param _token The address to check.\n /// @return bool True if address is whitelisted, false otherwise.\n function isTokenAccepted(address _token) external view returns (bool) {\n return hasRole(ACCEPTED_TOKEN, _token);\n }\n\n /// @notice Internal function. Checks if an address is a donation recipient and reverts RecipientNotAccepted() if address is not a donation recipient.\n /// @param _recipient The address to check.\n function _checkDonationRecipient(address _recipient) internal view {\n if (!hasRole(DONATION_RECIPIENT, _recipient)) {\n revert RecipientNotAccepted();\n }\n }\n\n /// @notice Assigns addresses to donation recipient role. Can only be called by an admin.\n /// @param _recipients Array of addresses to assign to donation recipient role.\n function addDonationRecipient(address[] calldata _recipients) external {\n _checkAdmin(msg.sender);\n _addRoles(DONATION_RECIPIENT, _recipients);\n }\n\n /// @notice Removes addresses from donation recipient role. Can only be called by an admin.\n /// @param _recipients Array of addresses to remove from donation recipient role.\n function removeDonationRecipient(address[] calldata _recipients) external {\n _checkAdmin(msg.sender);\n _removeRoles(DONATION_RECIPIENT, _recipients);\n }\n\n /// @notice Wrapper function to check if an address is a donation recipient.\n /// @param _recipient The address to check.\n /// @return bool True if address is a donation recipient, false otherwise.\n function isDonationRecipient(address _recipient) external view returns (bool) {\n return hasRole(DONATION_RECIPIENT, _recipient);\n }\n\n /// @notice Internal function. Checks if an address is a fee receiver and reverts NotFeeReceiver() if address is not a fee receiver.\n /// @param _receiver The address to check.\n function _checkFeeReceiver(address _receiver) internal view {\n if (!hasRole(FEE_RECEIVER, _receiver)) revert NotFeeReceiver();\n }\n\n /// @notice Assigns addresses to fee receiver role. Can only be called by an admin.\n /// @param _feeReceiver Array of addresses to assign to fee receiver role.\n function addFeeReceiver(address[] calldata _feeReceiver) external {\n _checkAdmin(msg.sender);\n _addRoles(FEE_RECEIVER, _feeReceiver);\n }\n\n /// @notice Removes addresses from fee receiver role. Can only be called by an admin.\n /// @param _feeReceiver Array of addresses to remove from fee receiver role.\n function removeFeeReceiver(address[] calldata _feeReceiver) external {\n _checkAdmin(msg.sender);\n _removeRoles(FEE_RECEIVER, _feeReceiver);\n }\n\n /// @notice Wrapper function to check if an address is a fee receiver.\n /// @param _receiver The address to check.\n /// @return bool True if address is a fee receiver, false otherwise.\n function isFeeReceiver(address _receiver) external view returns (bool) {\n return hasRole(FEE_RECEIVER, _receiver);\n }\n\n /// @notice Throws if called by any account other than a admin.\n error NotAdmin();\n\n /// @notice Throws if called by any account other than a default admin.\n error NotDefaultAdmin();\n\n /// @notice Throws if a token is not whitelisted.\n error TokenNotAccepted();\n\n /// @notice Throws if a donation recipient is not whitelisted.\n error RecipientNotAccepted();\n\n /// @notice Throws if the sender is not a whitelisted fee receiver.\n error NotFeeReceiver();\n}\n" + }, + "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol)\n\npragma solidity ^0.8.0;\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module that helps prevent reentrant calls to a function.\n *\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n * available, which can be applied to functions to make sure there are no nested\n * (reentrant) calls to them.\n *\n * Note that because there is a single `nonReentrant` guard, functions marked as\n * `nonReentrant` may not call one another. This can be worked around by making\n * those functions `private`, and then adding `external` `nonReentrant` entry\n * points to them.\n *\n * TIP: If you would like to learn more about reentrancy and alternative ways\n * to protect against it, check out our blog post\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\n */\nabstract contract ReentrancyGuardUpgradeable is Initializable {\n // Booleans are more expensive than uint256 or any type that takes up a full\n // word because each write operation emits an extra SLOAD to first read the\n // slot's contents, replace the bits taken up by the boolean, and then write\n // back. This is the compiler's defense against contract upgrades and\n // pointer aliasing, and it cannot be disabled.\n\n // The values being non-zero value makes deployment a bit more expensive,\n // but in exchange the refund on every call to nonReentrant will be lower in\n // amount. Since refunds are capped to a percentage of the total\n // transaction's gas, it is best to keep them low in cases like this one, to\n // increase the likelihood of the full refund coming into effect.\n uint256 private constant _NOT_ENTERED = 1;\n uint256 private constant _ENTERED = 2;\n\n uint256 private _status;\n\n function __ReentrancyGuard_init() internal onlyInitializing {\n __ReentrancyGuard_init_unchained();\n }\n\n function __ReentrancyGuard_init_unchained() internal onlyInitializing {\n _status = _NOT_ENTERED;\n }\n\n /**\n * @dev Prevents a contract from calling itself, directly or indirectly.\n * Calling a `nonReentrant` function from another `nonReentrant`\n * function is not supported. It is possible to prevent this from happening\n * by making the `nonReentrant` function external, and making it call a\n * `private` function that does the actual work.\n */\n modifier nonReentrant() {\n _nonReentrantBefore();\n _;\n _nonReentrantAfter();\n }\n\n function _nonReentrantBefore() private {\n // On the first call to nonReentrant, _status will be _NOT_ENTERED\n require(_status != _ENTERED, \"ReentrancyGuard: reentrant call\");\n\n // Any calls to nonReentrant after this point will fail\n _status = _ENTERED;\n }\n\n function _nonReentrantAfter() private {\n // By storing the original value once again, a refund is triggered (see\n // https://eips.ethereum.org/EIPS/eip-2200)\n _status = _NOT_ENTERED;\n }\n\n /**\n * @dev This empty reserved space is put in place to allow future versions to add new\n * variables without shifting down storage in the inheritance chain.\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n */\n uint256[49] private __gap;\n}\n" + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20Upgradeable.sol\";\nimport \"../extensions/draft-IERC20PermitUpgradeable.sol\";\nimport \"../../../utils/AddressUpgradeable.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20Upgradeable {\n using AddressUpgradeable for address;\n\n function safeTransfer(\n IERC20Upgradeable token,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n }\n\n function safeTransferFrom(\n IERC20Upgradeable token,\n address from,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(\n IERC20Upgradeable token,\n address spender,\n uint256 value\n ) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n require(\n (value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n }\n\n function safeIncreaseAllowance(\n IERC20Upgradeable token,\n address spender,\n uint256 value\n ) internal {\n uint256 newAllowance = token.allowance(address(this), spender) + value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n function safeDecreaseAllowance(\n IERC20Upgradeable token,\n address spender,\n uint256 value\n ) internal {\n unchecked {\n uint256 oldAllowance = token.allowance(address(this), spender);\n require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n uint256 newAllowance = oldAllowance - value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n }\n\n function safePermit(\n IERC20PermitUpgradeable token,\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n uint256 nonceBefore = token.nonces(owner);\n token.permit(owner, spender, value, deadline, v, r, s);\n uint256 nonceAfter = token.nonces(owner);\n require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20Upgradeable token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n if (returndata.length > 0) {\n // Return data is optional\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n }\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20Upgradeable {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n" + }, + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControlUpgradeable.sol\";\nimport \"../utils/ContextUpgradeable.sol\";\nimport \"../utils/StringsUpgradeable.sol\";\nimport \"../utils/introspection/ERC165Upgradeable.sol\";\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it.\n */\nabstract contract AccessControlUpgradeable is Initializable, ContextUpgradeable, IAccessControlUpgradeable, ERC165Upgradeable {\n function __AccessControl_init() internal onlyInitializing {\n }\n\n function __AccessControl_init_unchained() internal onlyInitializing {\n }\n struct RoleData {\n mapping(address => bool) members;\n bytes32 adminRole;\n }\n\n mapping(bytes32 => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Modifier that checks that an account has a specific role. Reverts\n * with a standardized message including the required role.\n *\n * The format of the revert reason is given by the following regular expression:\n *\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n *\n * _Available since v4.1._\n */\n modifier onlyRole(bytes32 role) {\n _checkRole(role);\n _;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControlUpgradeable).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\n return _roles[role].members[account];\n }\n\n /**\n * @dev Revert with a standard message if `_msgSender()` is missing `role`.\n * Overriding this function changes the behavior of the {onlyRole} modifier.\n *\n * Format of the revert message is described in {_checkRole}.\n *\n * _Available since v4.6._\n */\n function _checkRole(bytes32 role) internal view virtual {\n _checkRole(role, _msgSender());\n }\n\n /**\n * @dev Revert with a standard message if `account` is missing `role`.\n *\n * The format of the revert reason is given by the following regular expression:\n *\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n */\n function _checkRole(bytes32 role, address account) internal view virtual {\n if (!hasRole(role, account)) {\n revert(\n string(\n abi.encodePacked(\n \"AccessControl: account \",\n StringsUpgradeable.toHexString(account),\n \" is missing role \",\n StringsUpgradeable.toHexString(uint256(role), 32)\n )\n )\n );\n }\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleGranted} event.\n */\n function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleRevoked} event.\n */\n function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n *\n * May emit a {RoleRevoked} event.\n */\n function renounceRole(bytes32 role, address account) public virtual override {\n require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event. Note that unlike {grantRole}, this function doesn't perform any\n * checks on the calling account.\n *\n * May emit a {RoleGranted} event.\n *\n * [WARNING]\n * ====\n * This function should only be called from the constructor when setting\n * up the initial roles for the system.\n *\n * Using this function in any other way is effectively circumventing the admin\n * system imposed by {AccessControl}.\n * ====\n *\n * NOTE: This function is deprecated in favor of {_grantRole}.\n */\n function _setupRole(bytes32 role, address account) internal virtual {\n _grantRole(role, account);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n bytes32 previousAdminRole = getRoleAdmin(role);\n _roles[role].adminRole = adminRole;\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleGranted} event.\n */\n function _grantRole(bytes32 role, address account) internal virtual {\n if (!hasRole(role, account)) {\n _roles[role].members[account] = true;\n emit RoleGranted(role, account, _msgSender());\n }\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleRevoked} event.\n */\n function _revokeRole(bytes32 role, address account) internal virtual {\n if (hasRole(role, account)) {\n _roles[role].members[account] = false;\n emit RoleRevoked(role, account, _msgSender());\n }\n }\n\n /**\n * @dev This empty reserved space is put in place to allow future versions to add new\n * variables without shifting down storage in the inheritance chain.\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n */\n uint256[49] private __gap;\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary AddressUpgradeable {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n * constructor.\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n *\n * _Available since v4.8._\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n if (success) {\n if (returndata.length == 0) {\n // only check isContract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n require(isContract(target), \"Address: call to non-contract\");\n }\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n /**\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n * revert reason or using the provided one.\n *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20PermitUpgradeable {\n /**\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n * given ``owner``'s signed approval.\n *\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n * ordering also apply here.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `deadline` must be a timestamp in the future.\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n * over the EIP712-formatted function arguments.\n * - the signature must use ``owner``'s current nonce (see {nonces}).\n *\n * For more information on the signature format, see the\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n * section].\n */\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n /**\n * @dev Returns the current nonce for `owner`. This value must be\n * included whenever a signature is generated for {permit}.\n *\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\n * prevents a signature from being used multiple times.\n */\n function nonces(address owner) external view returns (uint256);\n\n /**\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n */\n // solhint-disable-next-line func-name-mixedcase\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n" + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../../utils/AddressUpgradeable.sol\";\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * contract MyToken is ERC20Upgradeable {\n * function initialize() initializer public {\n * __ERC20_init(\"MyToken\", \"MTK\");\n * }\n * }\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n * function initializeV2() reinitializer(2) public {\n * __ERC20Permit_init(\"MyToken\");\n * }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n * _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Indicates that the contract has been initialized.\n * @custom:oz-retyped-from bool\n */\n uint8 private _initialized;\n\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool private _initializing;\n\n /**\n * @dev Triggered when the contract has been initialized or reinitialized.\n */\n event Initialized(uint8 version);\n\n /**\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n * `onlyInitializing` functions can be used to initialize parent contracts.\n *\n * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n * constructor.\n *\n * Emits an {Initialized} event.\n */\n modifier initializer() {\n bool isTopLevelCall = !_initializing;\n require(\n (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\n \"Initializable: contract is already initialized\"\n );\n _initialized = 1;\n if (isTopLevelCall) {\n _initializing = true;\n }\n _;\n if (isTopLevelCall) {\n _initializing = false;\n emit Initialized(1);\n }\n }\n\n /**\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n * used to initialize parent contracts.\n *\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n * are added through upgrades and that require initialization.\n *\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n * cannot be nested. If one is invoked in the context of another, execution will revert.\n *\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n * a contract, executing them in the right order is up to the developer or operator.\n *\n * WARNING: setting the version to 255 will prevent any future reinitialization.\n *\n * Emits an {Initialized} event.\n */\n modifier reinitializer(uint8 version) {\n require(!_initializing && _initialized < version, \"Initializable: contract is already initialized\");\n _initialized = version;\n _initializing = true;\n _;\n _initializing = false;\n emit Initialized(version);\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\n */\n modifier onlyInitializing() {\n require(_initializing, \"Initializable: contract is not initializing\");\n _;\n }\n\n /**\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n * through proxies.\n *\n * Emits an {Initialized} event the first time it is successfully executed.\n */\n function _disableInitializers() internal virtual {\n require(!_initializing, \"Initializable: contract is initializing\");\n if (_initialized < type(uint8).max) {\n _initialized = type(uint8).max;\n emit Initialized(type(uint8).max);\n }\n }\n\n /**\n * @dev Internal function that returns the initialized version. Returns `_initialized`\n */\n function _getInitializedVersion() internal view returns (uint8) {\n return _initialized;\n }\n\n /**\n * @dev Internal function that returns the initialized version. Returns `_initializing`\n */\n function _isInitializing() internal view returns (bool) {\n return _initializing;\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165Upgradeable.sol\";\nimport \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165Upgradeable is Initializable, IERC165Upgradeable {\n function __ERC165_init() internal onlyInitializing {\n }\n\n function __ERC165_init_unchained() internal onlyInitializing {\n }\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IERC165Upgradeable).interfaceId;\n }\n\n /**\n * @dev This empty reserved space is put in place to allow future versions to add new\n * variables without shifting down storage in the inheritance chain.\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n */\n uint256[50] private __gap;\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/MathUpgradeable.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary StringsUpgradeable {\n bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n uint8 private constant _ADDRESS_LENGTH = 20;\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = MathUpgradeable.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, MathUpgradeable.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = _SYMBOLS[value & 0xf];\n value >>= 4;\n }\n require(value == 0, \"Strings: hex length insufficient\");\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract ContextUpgradeable is Initializable {\n function __Context_init() internal onlyInitializing {\n }\n\n function __Context_init_unchained() internal onlyInitializing {\n }\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n /**\n * @dev This empty reserved space is put in place to allow future versions to add new\n * variables without shifting down storage in the inheritance chain.\n * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n */\n uint256[50] private __gap;\n}\n" + }, + "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControlUpgradeable {\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n *\n * _Available since v3.1._\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {AccessControl-_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) external view returns (bool);\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n */\n function renounceRole(bytes32 role, address account) external;\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165Upgradeable {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary MathUpgradeable {\n enum Rounding {\n Down, // Toward negative infinity\n Up, // Toward infinity\n Zero // Toward zero\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds up instead\n * of rounding down.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n * with further edits by Uniswap Labs also under MIT license.\n */\n function mulDiv(\n uint256 x,\n uint256 y,\n uint256 denominator\n ) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod0 := mul(x, y)\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n require(denominator > prod1);\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\n // See https://cs.stackexchange.com/q/138556/92363.\n\n // Does not overflow because the denominator cannot be zero at this stage in the function.\n uint256 twos = denominator & (~denominator + 1);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\n // in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(\n uint256 x,\n uint256 y,\n uint256 denominator,\n Rounding rounding\n ) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2, rounded down, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10, rounded down, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10**64) {\n value /= 10**64;\n result += 64;\n }\n if (value >= 10**32) {\n value /= 10**32;\n result += 32;\n }\n if (value >= 10**16) {\n value /= 10**16;\n result += 16;\n }\n if (value >= 10**8) {\n value /= 10**8;\n result += 8;\n }\n if (value >= 10**4) {\n value /= 10**4;\n result += 4;\n }\n if (value >= 10**2) {\n value /= 10**2;\n result += 2;\n }\n if (value >= 10**1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (rounding == Rounding.Up && 10**result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256, rounded down, of a positive value.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (rounding == Rounding.Up && 1 << (result * 8) < value ? 1 : 0);\n }\n }\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol": { + "AccessControlUpgradeable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "details": "Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.", + "kind": "dev", + "methods": { + "getRoleAdmin(bytes32)": { + "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." + }, + "grantRole(bytes32,address)": { + "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event." + }, + "hasRole(bytes32,address)": { + "details": "Returns `true` if `account` has been granted `role`." + }, + "renounceRole(bytes32,address)": { + "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event." + }, + "revokeRole(bytes32,address)": { + "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + } + }, + "stateVariables": { + "__gap": { + "details": "This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":\"AccessControlUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xe8f27a3e3e25067334e76799f03d4de6d8f8535c3fc4806468228a9ebd5de51a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://686aaf8725727d94b36c53baad3779e168b31e33eec8d39b41e282382617c626\",\"dweb:/ipfs/QmWVRwPpZyweGCw7uRj1rXQTmcwaXB5Ctz3KvpNJPtxDP8\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 415, + "contract": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8" + }, + { + "astId": 418, + "contract": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool" + }, + { + "astId": 1370, + "contract": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage" + }, + { + "astId": 1589, + "contract": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage" + }, + { + "astId": 39, + "contract": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "label": "_roles", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)" + }, + { + "astId": 334, + "contract": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "base": "t_uint256", + "encoding": "inplace", + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "base": "t_uint256", + "encoding": "inplace", + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32", + "value": "t_struct(RoleData)34_storage" + }, + "t_struct(RoleData)34_storage": { + "encoding": "inplace", + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "astId": 31, + "contract": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "label": "members", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_address,t_bool)" + }, + { + "astId": 33, + "contract": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "label": "adminRole", + "offset": 0, + "slot": "1", + "type": "t_bytes32" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "encoding": "inplace", + "label": "uint8", + "numberOfBytes": "1" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol": { + "IAccessControlUpgradeable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "External interface of AccessControl declared to support ERC165 detection.", + "events": { + "RoleAdminChanged(bytes32,bytes32,bytes32)": { + "details": "Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._" + }, + "RoleGranted(bytes32,address,address)": { + "details": "Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}." + }, + "RoleRevoked(bytes32,address,address)": { + "details": "Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)" + } + }, + "kind": "dev", + "methods": { + "getRoleAdmin(bytes32)": { + "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}." + }, + "grantRole(bytes32,address)": { + "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role." + }, + "hasRole(bytes32,address)": { + "details": "Returns `true` if `account` has been granted `role`." + }, + "renounceRole(bytes32,address)": { + "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`." + }, + "revokeRole(bytes32,address)": { + "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":\"IAccessControlUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "Initializable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "devdoc": { + "custom:oz-upgrades-unsafe-allow": "constructor constructor() { _disableInitializers(); } ``` ====", + "details": "This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\"MyToken\", \"MTK\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\"MyToken\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```", + "events": { + "Initialized(uint8)": { + "details": "Triggered when the contract has been initialized or reinitialized." + } + }, + "kind": "dev", + "methods": {}, + "stateVariables": { + "_initialized": { + "custom:oz-retyped-from": "bool", + "details": "Indicates that the contract has been initialized." + }, + "_initializing": { + "details": "Indicates that the contract is in the process of being initialized." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 415, + "contract": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable", + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8" + }, + { + "astId": 418, + "contract": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable", + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool" + } + ], + "types": { + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint8": { + "encoding": "inplace", + "label": "uint8", + "numberOfBytes": "1" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol": { + "ReentrancyGuardUpgradeable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "devdoc": { + "details": "Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].", + "kind": "dev", + "methods": {}, + "stateVariables": { + "__gap": { + "details": "This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":\"ReentrancyGuardUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2b3005a0064cfc558bdf64b2bae94b565f4574a536aadd61c13838d4f2157790\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://622c3eb87563e71585c9f538d1a196fe2d154dcc5b8f335e8770a8acc95e1f3a\",\"dweb:/ipfs/QmSnDqJJLzv3mirjGB1vrk5X7hegFdS7BKpscpxyqj7sWu\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 415, + "contract": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:ReentrancyGuardUpgradeable", + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8" + }, + { + "astId": 418, + "contract": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:ReentrancyGuardUpgradeable", + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool" + }, + { + "astId": 591, + "contract": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:ReentrancyGuardUpgradeable", + "label": "_status", + "offset": 0, + "slot": "1", + "type": "t_uint256" + }, + { + "astId": 649, + "contract": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:ReentrancyGuardUpgradeable", + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)49_storage" + } + ], + "types": { + "t_array(t_uint256)49_storage": { + "base": "t_uint256", + "encoding": "inplace", + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "encoding": "inplace", + "label": "uint8", + "numberOfBytes": "1" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol": { + "IERC20Upgradeable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Interface of the ERC20 standard as defined in the EIP.", + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero." + } + }, + "kind": "dev", + "methods": { + "allowance(address,address)": { + "details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called." + }, + "approve(address,uint256)": { + "details": "Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event." + }, + "balanceOf(address)": { + "details": "Returns the amount of tokens owned by `account`." + }, + "totalSupply()": { + "details": "Returns the amount of tokens in existence." + }, + "transfer(address,uint256)": { + "details": "Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event." + }, + "transferFrom(address,address,uint256)": { + "details": "Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol\":\"IERC20Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x4e733d3164f73f461eaf9d8087a7ad1ea180bdc8ba0d3d61b0e1ae16d8e63dff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75b47c3aeca7b66ea6752f8be020ec5c1c502de6ec9065272dae23d3a52196e2\",\"dweb:/ipfs/QmUebPMHv16tYKFh5BmBQkMfRFb5b8UZ2RgVwdjxCeufVF\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol": { + "IERC20PermitUpgradeable": { + "abi": [ + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.", + "kind": "dev", + "methods": { + "DOMAIN_SEPARATOR()": { + "details": "Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}." + }, + "nonces(address)": { + "details": "Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times." + }, + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": { + "details": "Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "DOMAIN_SEPARATOR()": "3644e515", + "nonces(address)": "7ecebe00", + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol\":\"IERC20PermitUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol\":{\"keccak256\":\"0xcc70d8e2281fb3ff69e8ab242500f10142cd0a7fa8dd9e45882be270d4d09024\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17a4063bc918df0f7bb9cbf04c6f0bb4977afab3f2fc212bc138a178312a221d\",\"dweb:/ipfs/QmZMdvsHP5mDEAAdrK4bNeNh47TfmSFgN9qEBFTbie7zmm\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol": { + "SafeERC20Upgradeable": { + "abi": [], + "devdoc": { + "details": "Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.", + "kind": "dev", + "methods": {}, + "title": "SafeERC20", + "version": 1 + }, + "evm": { + "assembly": " /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":740:4587 library SafeERC20Upgradeable {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":740:4587 library SafeERC20Upgradeable {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa2646970667358221220b1d69adf8a3327161f3b75685b53808d6ba4c337ed256ca73ca52898e73b8f3464736f6c63430008110033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b1d69adf8a3327161f3b75685b53808d6ba4c337ed256ca73ca52898e73b8f3464736f6c63430008110033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB1 0xD6 SWAP11 0xDF DUP11 CALLER 0x27 AND 0x1F EXTCODESIZE PUSH22 0x685B53808D6BA4C337ED256CA73CA52898E73B8F3464 PUSH20 0x6F6C634300081100330000000000000000000000 ", + "sourceMap": "740:3847:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b1d69adf8a3327161f3b75685b53808d6ba4c337ed256ca73ca52898e73b8f3464736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB1 0xD6 SWAP11 0xDF DUP11 CALLER 0x27 AND 0x1F EXTCODESIZE PUSH22 0x685B53808D6BA4C337ED256CA73CA52898E73B8F3464 PUSH20 0x6F6C634300081100330000000000000000000000 ", + "sourceMap": "740:3847:6:-:0;;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "17200", + "executionCost": "97", + "totalCost": "17297" + }, + "internal": { + "_callOptionalReturn(contract IERC20Upgradeable,bytes memory)": "infinite", + "safeApprove(contract IERC20Upgradeable,address,uint256)": "infinite", + "safeDecreaseAllowance(contract IERC20Upgradeable,address,uint256)": "infinite", + "safeIncreaseAllowance(contract IERC20Upgradeable,address,uint256)": "infinite", + "safePermit(contract IERC20PermitUpgradeable,address,address,uint256,uint256,uint8,bytes32,bytes32)": "infinite", + "safeTransfer(contract IERC20Upgradeable,address,uint256)": "infinite", + "safeTransferFrom(contract IERC20Upgradeable,address,address,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 740, + "end": 4587, + "name": "PUSH #[$]", + "source": 6, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH [$]", + "source": 6, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "B" + }, + { + "begin": 740, + "end": 4587, + "name": "DUP3", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "DUP3", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "DUP3", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "CODECOPY", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "DUP1", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "0" + }, + { + "begin": 740, + "end": 4587, + "name": "BYTE", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "73" + }, + { + "begin": 740, + "end": 4587, + "name": "EQ", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH [tag]", + "source": 6, + "value": "1" + }, + { + "begin": 740, + "end": 4587, + "name": "JUMPI", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "0" + }, + { + "begin": 740, + "end": 4587, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "0" + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "4" + }, + { + "begin": 740, + "end": 4587, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "24" + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "0" + }, + { + "begin": 740, + "end": 4587, + "name": "REVERT", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "tag", + "source": 6, + "value": "1" + }, + { + "begin": 740, + "end": 4587, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "ADDRESS", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "0" + }, + { + "begin": 740, + "end": 4587, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "73" + }, + { + "begin": 740, + "end": 4587, + "name": "DUP2", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "MSTORE8", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "DUP3", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "DUP2", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "RETURN", + "source": 6 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220b1d69adf8a3327161f3b75685b53808d6ba4c337ed256ca73ca52898e73b8f3464736f6c63430008110033", + ".code": [ + { + "begin": 740, + "end": 4587, + "name": "PUSHDEPLOYADDRESS", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "ADDRESS", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "EQ", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "80" + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 740, + "end": 4587, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "PUSH", + "source": 6, + "value": "0" + }, + { + "begin": 740, + "end": 4587, + "name": "DUP1", + "source": 6 + }, + { + "begin": 740, + "end": 4587, + "name": "REVERT", + "source": 6 + } + ] + } + }, + "sourceList": [ + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandler.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol", + "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol", + "#utility.yul" + ] + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":\"SafeERC20Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x4e733d3164f73f461eaf9d8087a7ad1ea180bdc8ba0d3d61b0e1ae16d8e63dff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75b47c3aeca7b66ea6752f8be020ec5c1c502de6ec9065272dae23d3a52196e2\",\"dweb:/ipfs/QmUebPMHv16tYKFh5BmBQkMfRFb5b8UZ2RgVwdjxCeufVF\"]},\"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol\":{\"keccak256\":\"0xcc70d8e2281fb3ff69e8ab242500f10142cd0a7fa8dd9e45882be270d4d09024\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17a4063bc918df0f7bb9cbf04c6f0bb4977afab3f2fc212bc138a178312a221d\",\"dweb:/ipfs/QmZMdvsHP5mDEAAdrK4bNeNh47TfmSFgN9qEBFTbie7zmm\"]},\"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":{\"keccak256\":\"0x220c4a5af915e656be2aaa85ca57505d102418e476b1e2ef6c62e0c6ac143871\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ed2c33173f7e7000889abed7c339b7a0e3b7867cdea546caaf6bc917ef1039c\",\"dweb:/ipfs/QmQ4Ye5h7jm6V4CdhT3r6hvf25DtiV74ErppQVE4SpRKj6\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol": { + "AddressUpgradeable": { + "abi": [], + "devdoc": { + "details": "Collection of functions related to the address type", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":194:8281 library AddressUpgradeable {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":194:8281 library AddressUpgradeable {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa2646970667358221220be095c725f60eb1fdd761cc34620e0b5ff5f510f328d0a14257c0a293b2e9ccf64736f6c63430008110033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220be095c725f60eb1fdd761cc34620e0b5ff5f510f328d0a14257c0a293b2e9ccf64736f6c63430008110033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBE MULMOD 0x5C PUSH19 0x5F60EB1FDD761CC34620E0B5FF5F510F328D0A EQ 0x25 PUSH29 0xA293B2E9CCF64736F6C63430008110033000000000000000000000000 ", + "sourceMap": "194:8087:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220be095c725f60eb1fdd761cc34620e0b5ff5f510f328d0a14257c0a293b2e9ccf64736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBE MULMOD 0x5C PUSH19 0x5F60EB1FDD761CC34620E0B5FF5F510F328D0A EQ 0x25 PUSH29 0xA293B2E9CCF64736F6C63430008110033000000000000000000000000 ", + "sourceMap": "194:8087:7:-:0;;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "17200", + "executionCost": "97", + "totalCost": "17297" + }, + "internal": { + "_revert(bytes memory,string memory)": "infinite", + "functionCall(address,bytes memory)": "infinite", + "functionCall(address,bytes memory,string memory)": "infinite", + "functionCallWithValue(address,bytes memory,uint256)": "infinite", + "functionCallWithValue(address,bytes memory,uint256,string memory)": "infinite", + "functionStaticCall(address,bytes memory)": "infinite", + "functionStaticCall(address,bytes memory,string memory)": "infinite", + "isContract(address)": "infinite", + "sendValue(address payable,uint256)": "infinite", + "verifyCallResult(bool,bytes memory,string memory)": "infinite", + "verifyCallResultFromTarget(address,bool,bytes memory,string memory)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 194, + "end": 8281, + "name": "PUSH #[$]", + "source": 7, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH [$]", + "source": 7, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "B" + }, + { + "begin": 194, + "end": 8281, + "name": "DUP3", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "DUP3", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "DUP3", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "CODECOPY", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "DUP1", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 194, + "end": 8281, + "name": "BYTE", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "73" + }, + { + "begin": 194, + "end": 8281, + "name": "EQ", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH [tag]", + "source": 7, + "value": "1" + }, + { + "begin": 194, + "end": 8281, + "name": "JUMPI", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 194, + "end": 8281, + "name": "MSTORE", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "4" + }, + { + "begin": 194, + "end": 8281, + "name": "MSTORE", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "24" + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 194, + "end": 8281, + "name": "REVERT", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "tag", + "source": 7, + "value": "1" + }, + { + "begin": 194, + "end": 8281, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "ADDRESS", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 194, + "end": 8281, + "name": "MSTORE", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "73" + }, + { + "begin": 194, + "end": 8281, + "name": "DUP2", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "MSTORE8", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "DUP3", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "DUP2", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "RETURN", + "source": 7 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220be095c725f60eb1fdd761cc34620e0b5ff5f510f328d0a14257c0a293b2e9ccf64736f6c63430008110033", + ".code": [ + { + "begin": 194, + "end": 8281, + "name": "PUSHDEPLOYADDRESS", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "ADDRESS", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "EQ", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "80" + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "40" + }, + { + "begin": 194, + "end": 8281, + "name": "MSTORE", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 194, + "end": 8281, + "name": "DUP1", + "source": 7 + }, + { + "begin": 194, + "end": 8281, + "name": "REVERT", + "source": 7 + } + ] + } + }, + "sourceList": [ + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandler.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol", + "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol", + "#utility.yul" + ] + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":\"AddressUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "ContextUpgradeable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "devdoc": { + "details": "Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.", + "kind": "dev", + "methods": {}, + "stateVariables": { + "__gap": { + "details": "This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 415, + "contract": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable", + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8" + }, + { + "astId": 418, + "contract": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable", + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool" + }, + { + "astId": 1370, + "contract": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable", + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "base": "t_uint256", + "encoding": "inplace", + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "encoding": "inplace", + "label": "uint8", + "numberOfBytes": "1" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol": { + "StringsUpgradeable": { + "abi": [], + "devdoc": { + "details": "String operations.", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":199:2297 library StringsUpgradeable {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":199:2297 library StringsUpgradeable {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa2646970667358221220c8fbc9f59aaf73e268742450c3961ad840044389642a30d22d0486f20c1174f264736f6c63430008110033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c8fbc9f59aaf73e268742450c3961ad840044389642a30d22d0486f20c1174f264736f6c63430008110033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 0xFB 0xC9 CREATE2 SWAP11 0xAF PUSH20 0xE268742450C3961AD840044389642A30D22D0486 CALLCODE 0xC GT PUSH21 0xF264736F6C63430008110033000000000000000000 ", + "sourceMap": "199:2098:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c8fbc9f59aaf73e268742450c3961ad840044389642a30d22d0486f20c1174f264736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 0xFB 0xC9 CREATE2 SWAP11 0xAF PUSH20 0xE268742450C3961AD840044389642A30D22D0486 CALLCODE 0xC GT PUSH21 0xF264736F6C63430008110033000000000000000000 ", + "sourceMap": "199:2098:9:-:0;;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "17200", + "executionCost": "97", + "totalCost": "17297" + }, + "internal": { + "toHexString(address)": "infinite", + "toHexString(uint256)": "infinite", + "toHexString(uint256,uint256)": "infinite", + "toString(uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 199, + "end": 2297, + "name": "PUSH #[$]", + "source": 9, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH [$]", + "source": 9, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "B" + }, + { + "begin": 199, + "end": 2297, + "name": "DUP3", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "DUP3", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "DUP3", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "CODECOPY", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "DUP1", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 199, + "end": 2297, + "name": "BYTE", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "73" + }, + { + "begin": 199, + "end": 2297, + "name": "EQ", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH [tag]", + "source": 9, + "value": "1" + }, + { + "begin": 199, + "end": 2297, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 199, + "end": 2297, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "4" + }, + { + "begin": 199, + "end": 2297, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "24" + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 199, + "end": 2297, + "name": "REVERT", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "tag", + "source": 9, + "value": "1" + }, + { + "begin": 199, + "end": 2297, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "ADDRESS", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 199, + "end": 2297, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "73" + }, + { + "begin": 199, + "end": 2297, + "name": "DUP2", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "MSTORE8", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "DUP3", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "DUP2", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "RETURN", + "source": 9 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220c8fbc9f59aaf73e268742450c3961ad840044389642a30d22d0486f20c1174f264736f6c63430008110033", + ".code": [ + { + "begin": 199, + "end": 2297, + "name": "PUSHDEPLOYADDRESS", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "ADDRESS", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "EQ", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "80" + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "40" + }, + { + "begin": 199, + "end": 2297, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 199, + "end": 2297, + "name": "DUP1", + "source": 9 + }, + { + "begin": 199, + "end": 2297, + "name": "REVERT", + "source": 9 + } + ] + } + }, + "sourceList": [ + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandler.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol", + "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol", + "#utility.yul" + ] + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":\"StringsUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol": { + "ERC165Upgradeable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "details": "Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.", + "kind": "dev", + "methods": { + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + } + }, + "stateVariables": { + "__gap": { + "details": "This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":\"ERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 415, + "contract": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8" + }, + { + "astId": 418, + "contract": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool" + }, + { + "astId": 1589, + "contract": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "base": "t_uint256", + "encoding": "inplace", + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "encoding": "inplace", + "label": "uint8", + "numberOfBytes": "1" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol": { + "IERC165Upgradeable": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "details": "Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.", + "kind": "dev", + "methods": { + "supportsInterface(bytes4)": { + "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas." + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":\"IERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol": { + "MathUpgradeable": { + "abi": [], + "devdoc": { + "details": "Standard math utilities missing in the Solidity language.", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":202:12515 library MathUpgradeable {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":202:12515 library MathUpgradeable {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa26469706673582212206d12f9ec161886fb05de05d9f4f64d2db9ba0c133981a4c4fa3bd7c23001bb0764736f6c63430008110033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206d12f9ec161886fb05de05d9f4f64d2db9ba0c133981a4c4fa3bd7c23001bb0764736f6c63430008110033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0x12F9EC161886FB05DE05D9F4F64D 0x2D 0xB9 0xBA 0xC SGT CODECOPY DUP2 LOG4 0xC4 STATICCALL EXTCODESIZE 0xD7 0xC2 ADDRESS ADD 0xBB SMOD PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "202:12313:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206d12f9ec161886fb05de05d9f4f64d2db9ba0c133981a4c4fa3bd7c23001bb0764736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0x12F9EC161886FB05DE05D9F4F64D 0x2D 0xB9 0xBA 0xC SGT CODECOPY DUP2 LOG4 0xC4 STATICCALL EXTCODESIZE 0xD7 0xC2 ADDRESS ADD 0xBB SMOD PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "202:12313:12:-:0;;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "17200", + "executionCost": "97", + "totalCost": "17297" + }, + "internal": { + "average(uint256,uint256)": "infinite", + "ceilDiv(uint256,uint256)": "infinite", + "log10(uint256)": "infinite", + "log10(uint256,enum MathUpgradeable.Rounding)": "infinite", + "log2(uint256)": "infinite", + "log2(uint256,enum MathUpgradeable.Rounding)": "infinite", + "log256(uint256)": "infinite", + "log256(uint256,enum MathUpgradeable.Rounding)": "infinite", + "max(uint256,uint256)": "infinite", + "min(uint256,uint256)": "infinite", + "mulDiv(uint256,uint256,uint256)": "infinite", + "mulDiv(uint256,uint256,uint256,enum MathUpgradeable.Rounding)": "infinite", + "sqrt(uint256)": "infinite", + "sqrt(uint256,enum MathUpgradeable.Rounding)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 202, + "end": 12515, + "name": "PUSH #[$]", + "source": 12, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH [$]", + "source": 12, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "B" + }, + { + "begin": 202, + "end": 12515, + "name": "DUP3", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "DUP3", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "DUP3", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "CODECOPY", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "DUP1", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "MLOAD", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "0" + }, + { + "begin": 202, + "end": 12515, + "name": "BYTE", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "73" + }, + { + "begin": 202, + "end": 12515, + "name": "EQ", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH [tag]", + "source": 12, + "value": "1" + }, + { + "begin": 202, + "end": 12515, + "name": "JUMPI", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "0" + }, + { + "begin": 202, + "end": 12515, + "name": "MSTORE", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "0" + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "4" + }, + { + "begin": 202, + "end": 12515, + "name": "MSTORE", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "24" + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "0" + }, + { + "begin": 202, + "end": 12515, + "name": "REVERT", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "tag", + "source": 12, + "value": "1" + }, + { + "begin": 202, + "end": 12515, + "name": "JUMPDEST", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "ADDRESS", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "0" + }, + { + "begin": 202, + "end": 12515, + "name": "MSTORE", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "73" + }, + { + "begin": 202, + "end": 12515, + "name": "DUP2", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "MSTORE8", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "DUP3", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "DUP2", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "RETURN", + "source": 12 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212206d12f9ec161886fb05de05d9f4f64d2db9ba0c133981a4c4fa3bd7c23001bb0764736f6c63430008110033", + ".code": [ + { + "begin": 202, + "end": 12515, + "name": "PUSHDEPLOYADDRESS", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "ADDRESS", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "EQ", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "80" + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "40" + }, + { + "begin": 202, + "end": 12515, + "name": "MSTORE", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "PUSH", + "source": 12, + "value": "0" + }, + { + "begin": 202, + "end": 12515, + "name": "DUP1", + "source": 12 + }, + { + "begin": 202, + "end": 12515, + "name": "REVERT", + "source": 12 + } + ] + } + }, + "sourceList": [ + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandler.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol", + "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol", + "#utility.yul" + ] + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":\"MathUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + }, + "giveth/GIVfi/src/DonationHandler/DonationHandler.sol": { + "DonationHandler": { + "abi": [ + { + "inputs": [], + "name": "FeeTooHigh", + "type": "error" + }, + { + "inputs": [], + "name": "FeeTooLow", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAmount", + "type": "error" + }, + { + "inputs": [], + "name": "NotAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "NotDefaultAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "NotFeeReceiver", + "type": "error" + }, + { + "inputs": [], + "name": "RecipientNotAccepted", + "type": "error" + }, + { + "inputs": [], + "name": "TokenNotAccepted", + "type": "error" + }, + { + "inputs": [], + "name": "TransferFailed", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "DonationRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "FeeRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "isRecipientWhitelistActive", + "type": "bool" + } + ], + "name": "IsRecipientWhitelistActiveSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "isTokenWhitelistActive", + "type": "bool" + } + ], + "name": "IsTokenWhitelistActiveSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "minFee", + "type": "uint256" + } + ], + "name": "MinFeeSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "grantAddress", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "roundAddress", + "type": "address" + } + ], + "name": "Voted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdraw", + "type": "event" + }, + { + "inputs": [], + "name": "ACCEPTED_TOKEN", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ADMIN", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DONATION_RECIPIENT", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FEE_RECEIVER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "HUNDRED", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NATIVE", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_admins", + "type": "address[]" + } + ], + "name": "addAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_recipients", + "type": "address[]" + } + ], + "name": "addDonationRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_feeReceiver", + "type": "address[]" + } + ], + "name": "addFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "addToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "balances", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "balancesOf", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "distribute", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_to", + "type": "address[]" + } + ], + "name": "distributeMany", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_acceptedToken", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_donationReceiver", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_feeReceiver", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "_admins", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_minFee", + "type": "uint256" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_recipient", + "type": "address" + } + ], + "name": "isDonationRecipient", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_receiver", + "type": "address" + } + ], + "name": "isFeeReceiver", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRecipientWhitelistActive", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "isTokenAccepted", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isTokenWhitelistActive", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_admins", + "type": "address[]" + } + ], + "name": "removeAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_recipients", + "type": "address[]" + } + ], + "name": "removeDonationRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_feeReceiver", + "type": "address[]" + } + ], + "name": "removeFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "removeToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "revokeAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "roundAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_isRecipientWhitelistActive", + "type": "bool" + } + ], + "name": "setIsRecipientWhitelistActive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_isTokenWhitelistActive", + "type": "bool" + } + ], + "name": "setIsTokenWhitelistActive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minFee", + "type": "uint256" + } + ], + "name": "setMinFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "encodedVotes", + "type": "bytes[]" + }, + { + "internalType": "address", + "name": "voterAddress", + "type": "address" + } + ], + "name": "vote", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "withdrawFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "withdrawFeeMany", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "withdrawMany", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "author": "@Kurt for Giveth", + "events": { + "DonationRegistered(address,address,address,uint256)": { + "params": { + "amount": "The amount of tokens", + "from": "The address of the sender", + "recipient": "The address of the recipient", + "token": "The token address" + } + }, + "FeeRegistered(address,address,uint256)": { + "params": { + "amount": "The amount of tokens", + "from": "The address of the sender", + "token": "The token address" + } + }, + "IsRecipientWhitelistActiveSet(bool)": { + "params": { + "isRecipientWhitelistActive": "The recipient whitelist status" + } + }, + "IsTokenWhitelistActiveSet(bool)": { + "params": { + "isTokenWhitelistActive": "The token whitelist status" + } + }, + "MinFeeSet(uint256)": { + "params": { + "minFee": "The minimum fee" + } + }, + "Withdraw(address,address,address,uint256)": { + "params": { + "amount": "The amount of tokens", + "from": "The address of the sender", + "to": "The address of the recipient", + "token": "The token address" + } + } + }, + "kind": "dev", + "methods": { + "addAdmin(address[])": { + "params": { + "_admins": "Array of addresses to assign to admin role." + } + }, + "addDonationRecipient(address[])": { + "params": { + "_recipients": "Array of addresses to assign to donation recipient role." + } + }, + "addFeeReceiver(address[])": { + "params": { + "_feeReceiver": "Array of addresses to assign to fee receiver role." + } + }, + "addToken(address[])": { + "params": { + "_token": "Array of addresses to assign to accepted token role." + } + }, + "balanceOf(address,address)": { + "params": { + "_token": "Address of the token", + "_user": "Address of the user" + }, + "returns": { + "_0": "Token balance of the user" + } + }, + "balancesOf(address[],address)": { + "params": { + "_token": "Address array of the token", + "_user": "Address of the user" + }, + "returns": { + "_0": "Uint256 array. Token balances of the user" + } + }, + "distribute(address[],address)": { + "params": { + "_to": "Address of the recipient", + "_token": "Address array of the token" + } + }, + "distributeMany(address[],address[])": { + "params": { + "_to": "Address array of the recipients", + "_token": "Address array of the token" + } + }, + "getRoleAdmin(bytes32)": { + "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." + }, + "grantRole(bytes32,address)": { + "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event." + }, + "hasRole(bytes32,address)": { + "details": "Returns `true` if `account` has been granted `role`." + }, + "initialize(address[],address[],address[],address[],uint256)": { + "params": { + "_acceptedToken": "Array of accepted tokens", + "_admins": "Array of admins", + "_donationReceiver": "Array of donation receivers", + "_feeReceiver": "Array of fee receivers", + "_minFee": "Minimum donation fee" + } + }, + "isAdmin(address)": { + "params": { + "_account": "The address to check." + }, + "returns": { + "_0": "bool True if address is admin, false otherwise." + } + }, + "isDonationRecipient(address)": { + "params": { + "_recipient": "The address to check." + }, + "returns": { + "_0": "bool True if address is a donation recipient, false otherwise." + } + }, + "isFeeReceiver(address)": { + "params": { + "_receiver": "The address to check." + }, + "returns": { + "_0": "bool True if address is a fee receiver, false otherwise." + } + }, + "isTokenAccepted(address)": { + "params": { + "_token": "The address to check." + }, + "returns": { + "_0": "bool True if address is whitelisted, false otherwise." + } + }, + "removeAdmin(address[])": { + "params": { + "_admins": "Array of addresses to remove from admin role." + } + }, + "removeDonationRecipient(address[])": { + "params": { + "_recipients": "Array of addresses to remove from donation recipient role." + } + }, + "removeFeeReceiver(address[])": { + "params": { + "_feeReceiver": "Array of addresses to remove from fee receiver role." + } + }, + "removeToken(address[])": { + "params": { + "_token": "Array of addresses to remove from accepted token role." + } + }, + "renounceRole(bytes32,address)": { + "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event." + }, + "revokeRole(bytes32,address)": { + "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event." + }, + "setIsRecipientWhitelistActive(bool)": { + "params": { + "_isRecipientWhitelistActive": "Enable/Disable recipient whitelist" + } + }, + "setIsTokenWhitelistActive(bool)": { + "params": { + "_isTokenWhitelistActive": "Enable/Disable token whitelist" + } + }, + "setMinFee(uint256)": { + "params": { + "_minFee": "Minimum donation fee" + } + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + }, + "vote(bytes[],address)": { + "params": { + "encodedVotes": "Array of donations", + "voterAddress": "Address of the voter" + } + }, + "withdraw(address,uint256)": { + "params": { + "_amount": "Amount of tokens", + "_token": "Address of the token" + } + }, + "withdrawFee(address)": { + "params": { + "_token": "Address of the token" + } + }, + "withdrawFeeMany(address[])": { + "params": { + "_token": "Address array of the token" + } + }, + "withdrawMany(address[])": { + "params": { + "_token": "Address array of the token" + } + } + }, + "title": "DonationHandler", + "version": 1 + }, + "evm": { + "assembly": " /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":1887:15549 contract DonationHandler is... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":1887:15549 contract DonationHandler is... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x658e4821\n gt\n tag_47\n jumpi\n dup1\n 0xd3e78e4d\n gt\n tag_48\n jumpi\n dup1\n 0xf46b80ca\n gt\n tag_49\n jumpi\n dup1\n 0xf46b80ca\n eq\n tag_41\n jumpi\n dup1\n 0xf7888aec\n eq\n tag_42\n jumpi\n dup1\n 0xf85fc0ab\n eq\n tag_43\n jumpi\n dup1\n 0xfbfe3ab2\n eq\n tag_44\n jumpi\n dup1\n 0xfc6d4e39\n eq\n tag_45\n jumpi\n dup1\n 0xfdbb219d\n eq\n tag_46\n jumpi\n jump(tag_1)\n tag_49:\n dup1\n 0xd3e78e4d\n eq\n tag_35\n jumpi\n dup1\n 0xd547741f\n eq\n tag_36\n jumpi\n dup1\n 0xdcda7dad\n eq\n tag_37\n jumpi\n dup1\n 0xe1c7392a\n eq\n tag_38\n jumpi\n dup1\n 0xf2d4120e\n eq\n tag_39\n jumpi\n dup1\n 0xf3fef3a3\n eq\n tag_40\n jumpi\n jump(tag_1)\n tag_48:\n dup1\n 0xa0cf0aea\n gt\n tag_50\n jumpi\n dup1\n 0xa0cf0aea\n eq\n tag_29\n jumpi\n dup1\n 0xa217fddf\n eq\n tag_30\n jumpi\n dup1\n 0xae876f61\n eq\n tag_31\n jumpi\n dup1\n 0xb278110f\n eq\n tag_32\n jumpi\n dup1\n 0xbf7cb70b\n eq\n tag_33\n jumpi\n dup1\n 0xc23f001f\n eq\n tag_34\n jumpi\n jump(tag_1)\n tag_50:\n dup1\n 0x658e4821\n eq\n tag_24\n jumpi\n dup1\n 0x6bb85f4c\n eq\n tag_25\n jumpi\n dup1\n 0x80c78f1c\n eq\n tag_26\n jumpi\n dup1\n 0x91d14854\n eq\n tag_27\n jumpi\n dup1\n 0x9d082c98\n eq\n tag_28\n jumpi\n jump(tag_1)\n tag_47:\n dup1\n 0x24d7806c\n gt\n tag_51\n jumpi\n dup1\n 0x31ac9920\n gt\n tag_52\n jumpi\n dup1\n 0x31ac9920\n eq\n tag_18\n jumpi\n dup1\n 0x36568abe\n eq\n tag_19\n jumpi\n dup1\n 0x3b8453ca\n eq\n tag_20\n jumpi\n dup1\n 0x3d0950a8\n eq\n tag_21\n jumpi\n dup1\n 0x42e228ef\n eq\n tag_22\n jumpi\n dup1\n 0x60e007a6\n eq\n tag_23\n jumpi\n jump(tag_1)\n tag_52:\n dup1\n 0x24d7806c\n eq\n tag_13\n jumpi\n dup1\n 0x24ec7590\n eq\n tag_14\n jumpi\n dup1\n 0x2620d800\n eq\n tag_15\n jumpi\n dup1\n 0x2a0acc6a\n eq\n tag_16\n jumpi\n dup1\n 0x2f2ff15d\n eq\n tag_17\n jumpi\n jump(tag_1)\n tag_51:\n dup1\n 0x102d7927\n gt\n tag_53\n jumpi\n dup1\n 0x102d7927\n eq\n tag_7\n jumpi\n dup1\n 0x1037d18c\n eq\n tag_8\n jumpi\n dup1\n 0x10881166\n eq\n tag_9\n jumpi\n dup1\n 0x155dc549\n eq\n tag_10\n jumpi\n dup1\n 0x1ac3ddeb\n eq\n tag_11\n jumpi\n dup1\n 0x248a9ca3\n eq\n tag_12\n jumpi\n jump(tag_1)\n tag_53:\n dup1\n 0x01ffc9a7\n eq\n tag_2\n jumpi\n dup1\n 0x041c60ee\n eq\n tag_3\n jumpi\n dup1\n 0x0560bd96\n eq\n tag_4\n jumpi\n dup1\n 0x0b67d925\n eq\n tag_5\n jumpi\n dup1\n 0x0d6aef04\n eq\n tag_6\n jumpi\n tag_1:\n 0x00\n dup1\n revert\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2903:3116 function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {... */\n tag_2:\n callvalue\n dup1\n iszero\n tag_54\n jumpi\n 0x00\n dup1\n revert\n tag_54:\n pop\n tag_55\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_56\n swap2\n swap1\n tag_57\n jump\t// in\n tag_56:\n tag_58\n jump\t// in\n tag_55:\n mload(0x40)\n tag_59\n swap2\n swap1\n tag_60\n jump\t// in\n tag_59:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8969:9146 function withdrawFeeMany(address[] calldata _token) external nonReentrant {... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_61\n jumpi\n 0x00\n dup1\n revert\n tag_61:\n pop\n tag_62\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_63\n swap2\n swap1\n tag_64\n jump\t// in\n tag_63:\n tag_65\n jump\t// in\n tag_62:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5484:5609 function isTokenAccepted(address _token) external view returns (bool) {... */\n tag_4:\n callvalue\n dup1\n iszero\n tag_66\n jumpi\n 0x00\n dup1\n revert\n tag_66:\n pop\n tag_67\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_68\n swap2\n swap1\n tag_69\n jump\t// in\n tag_68:\n tag_70\n jump\t// in\n tag_67:\n mload(0x40)\n tag_71\n swap2\n swap1\n tag_60\n jump\t// in\n tag_71:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":460:487 address public roundAddress */\n tag_5:\n callvalue\n dup1\n iszero\n tag_72\n jumpi\n 0x00\n dup1\n revert\n tag_72:\n pop\n tag_73\n tag_74\n jump\t// in\n tag_73:\n mload(0x40)\n tag_75\n swap2\n swap1\n tag_76\n jump\t// in\n tag_75:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3931:4043 function revokeAdmin() external {... */\n tag_6:\n callvalue\n dup1\n iszero\n tag_77\n jumpi\n 0x00\n dup1\n revert\n tag_77:\n pop\n tag_78\n tag_79\n jump\t// in\n tag_78:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2242:2280 bool public isRecipientWhitelistActive */\n tag_7:\n callvalue\n dup1\n iszero\n tag_80\n jumpi\n 0x00\n dup1\n revert\n tag_80:\n pop\n tag_81\n tag_82\n jump\t// in\n tag_81:\n mload(0x40)\n tag_83\n swap2\n swap1\n tag_60\n jump\t// in\n tag_83:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6536:6705 function removeDonationRecipient(address[] calldata _recipients) external {... */\n tag_8:\n callvalue\n dup1\n iszero\n tag_84\n jumpi\n 0x00\n dup1\n revert\n tag_84:\n pop\n tag_85\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_86\n swap2\n swap1\n tag_64\n jump\t// in\n tag_86:\n tag_87\n jump\t// in\n tag_85:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4829:4966 function addToken(address[] calldata _token) external {... */\n tag_9:\n callvalue\n dup1\n iszero\n tag_88\n jumpi\n 0x00\n dup1\n revert\n tag_88:\n pop\n tag_89\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_90\n swap2\n swap1\n tag_64\n jump\t// in\n tag_90:\n tag_91\n jump\t// in\n tag_89:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12452:12689 function setIsTokenWhitelistActive(bool _isTokenWhitelistActive) external {... */\n tag_10:\n callvalue\n dup1\n iszero\n tag_92\n jumpi\n 0x00\n dup1\n revert\n tag_92:\n pop\n tag_93\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_94\n swap2\n swap1\n tag_95\n jump\t// in\n tag_94:\n tag_96\n jump\t// in\n tag_93:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8562:8801 function withdrawFee(address _token) external nonReentrant {... */\n tag_11:\n callvalue\n dup1\n iszero\n tag_97\n jumpi\n 0x00\n dup1\n revert\n tag_97:\n pop\n tag_98\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_99\n swap2\n swap1\n tag_69\n jump\t// in\n tag_99:\n tag_100\n jump\t// in\n tag_98:\n stop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4708:4837 function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {... */\n tag_12:\n callvalue\n dup1\n iszero\n tag_101\n jumpi\n 0x00\n dup1\n revert\n tag_101:\n pop\n tag_102\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_103\n swap2\n swap1\n tag_104\n jump\t// in\n tag_103:\n tag_105\n jump\t// in\n tag_102:\n mload(0x40)\n tag_106\n swap2\n swap1\n tag_107\n jump\t// in\n tag_106:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4225:4337 function isAdmin(address _account) external view returns (bool) {... */\n tag_13:\n callvalue\n dup1\n iszero\n tag_108\n jumpi\n 0x00\n dup1\n revert\n tag_108:\n pop\n tag_109\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_110\n swap2\n swap1\n tag_69\n jump\t// in\n tag_110:\n tag_111\n jump\t// in\n tag_109:\n mload(0x40)\n tag_112\n swap2\n swap1\n tag_60\n jump\t// in\n tag_112:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2174:2195 uint256 public minFee */\n tag_14:\n callvalue\n dup1\n iszero\n tag_113\n jumpi\n 0x00\n dup1\n revert\n tag_113:\n pop\n tag_114\n tag_115\n jump\t// in\n tag_114:\n mload(0x40)\n tag_116\n swap2\n swap1\n tag_117\n jump\t// in\n tag_116:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7892:8051 function removeFeeReceiver(address[] calldata _feeReceiver) external {... */\n tag_15:\n callvalue\n dup1\n iszero\n tag_118\n jumpi\n 0x00\n dup1\n revert\n tag_118:\n pop\n tag_119\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_120\n swap2\n swap1\n tag_64\n jump\t// in\n tag_120:\n tag_121\n jump\t// in\n tag_119:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":615:665 bytes32 public constant ADMIN = keccak256(\"ADMIN\") */\n tag_16:\n callvalue\n dup1\n iszero\n tag_122\n jumpi\n 0x00\n dup1\n revert\n tag_122:\n pop\n tag_123\n tag_124\n jump\t// in\n tag_123:\n mload(0x40)\n tag_125\n swap2\n swap1\n tag_107\n jump\t// in\n tag_125:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5133:5278 function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n tag_17:\n callvalue\n dup1\n iszero\n tag_126\n jumpi\n 0x00\n dup1\n revert\n tag_126:\n pop\n tag_127\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_128\n swap2\n swap1\n tag_129\n jump\t// in\n tag_128:\n tag_130\n jump\t// in\n tag_127:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11845:11959 function setMinFee(uint256 _minFee) external {... */\n tag_18:\n callvalue\n dup1\n iszero\n tag_131\n jumpi\n 0x00\n dup1\n revert\n tag_131:\n pop\n tag_132\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_133\n swap2\n swap1\n tag_134\n jump\t// in\n tag_133:\n tag_135\n jump\t// in\n tag_132:\n stop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6242:6456 function renounceRole(bytes32 role, address account) public virtual override {... */\n tag_19:\n callvalue\n dup1\n iszero\n tag_136\n jumpi\n 0x00\n dup1\n revert\n tag_136:\n pop\n tag_137\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_138\n swap2\n swap1\n tag_129\n jump\t// in\n tag_138:\n tag_139\n jump\t// in\n tag_137:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8032:8400 function distributeMany(... */\n tag_20:\n callvalue\n dup1\n iszero\n tag_140\n jumpi\n 0x00\n dup1\n revert\n tag_140:\n pop\n tag_141\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_142\n swap2\n swap1\n tag_143\n jump\t// in\n tag_142:\n tag_144\n jump\t// in\n tag_141:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3393:3523 function addAdmin(address[] calldata _admins) external {... */\n tag_21:\n callvalue\n dup1\n iszero\n tag_145\n jumpi\n 0x00\n dup1\n revert\n tag_145:\n pop\n tag_146\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_147\n swap2\n swap1\n tag_64\n jump\t// in\n tag_147:\n tag_148\n jump\t// in\n tag_146:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7626:7819 function distribute(... */\n tag_22:\n callvalue\n dup1\n iszero\n tag_149\n jumpi\n 0x00\n dup1\n revert\n tag_149:\n pop\n tag_150\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_151\n swap2\n swap1\n tag_152\n jump\t// in\n tag_151:\n tag_153\n jump\t// in\n tag_150:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2202:2236 bool public isTokenWhitelistActive */\n tag_23:\n callvalue\n dup1\n iszero\n tag_154\n jumpi\n 0x00\n dup1\n revert\n tag_154:\n pop\n tag_155\n tag_156\n jump\t// in\n tag_155:\n mload(0x40)\n tag_157\n swap2\n swap1\n tag_60\n jump\t// in\n tag_157:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7299:7431 function withdrawMany(address[] calldata _token) external nonReentrant {... */\n tag_24:\n callvalue\n dup1\n iszero\n tag_158\n jumpi\n 0x00\n dup1\n revert\n tag_158:\n pop\n tag_159\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_160\n swap2\n swap1\n tag_64\n jump\t// in\n tag_160:\n tag_161\n jump\t// in\n tag_159:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12900:13175 function setIsRecipientWhitelistActive(... */\n tag_25:\n callvalue\n dup1\n iszero\n tag_162\n jumpi\n 0x00\n dup1\n revert\n tag_162:\n pop\n tag_163\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_164\n swap2\n swap1\n tag_95\n jump\t// in\n tag_164:\n tag_165\n jump\t// in\n tag_163:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6185:6348 function addDonationRecipient(address[] calldata _recipients) external {... */\n tag_26:\n callvalue\n dup1\n iszero\n tag_166\n jumpi\n 0x00\n dup1\n revert\n tag_166:\n pop\n tag_167\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_168\n swap2\n swap1\n tag_64\n jump\t// in\n tag_168:\n tag_169\n jump\t// in\n tag_167:\n stop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3203:3348 function hasRole(bytes32 role, address account) public view virtual override returns (bool) {... */\n tag_27:\n callvalue\n dup1\n iszero\n tag_170\n jumpi\n 0x00\n dup1\n revert\n tag_170:\n pop\n tag_171\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_172\n swap2\n swap1\n tag_129\n jump\t// in\n tag_172:\n tag_173\n jump\t// in\n tag_171:\n mload(0x40)\n tag_174\n swap2\n swap1\n tag_60\n jump\t// in\n tag_174:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7562:7715 function addFeeReceiver(address[] calldata _feeReceiver) external {... */\n tag_28:\n callvalue\n dup1\n iszero\n tag_175\n jumpi\n 0x00\n dup1\n revert\n tag_175:\n pop\n tag_176\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_177\n swap2\n swap1\n tag_64\n jump\t// in\n tag_177:\n tag_178\n jump\t// in\n tag_176:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":781:824 address public constant NATIVE = address(0) */\n tag_29:\n callvalue\n dup1\n iszero\n tag_179\n jumpi\n 0x00\n dup1\n revert\n tag_179:\n pop\n tag_180\n tag_181\n jump\t// in\n tag_180:\n mload(0x40)\n tag_182\n swap2\n swap1\n tag_76\n jump\t// in\n tag_182:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2324:2373 bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00 */\n tag_30:\n callvalue\n dup1\n iszero\n tag_183\n jumpi\n 0x00\n dup1\n revert\n tag_183:\n pop\n tag_184\n tag_185\n jump\t// in\n tag_184:\n mload(0x40)\n tag_186\n swap2\n swap1\n tag_107\n jump\t// in\n tag_186:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3686:3869 function removeAdmin(address[] calldata _admins) external {... */\n tag_31:\n callvalue\n dup1\n iszero\n tag_187\n jumpi\n 0x00\n dup1\n revert\n tag_187:\n pop\n tag_188\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_189\n swap2\n swap1\n tag_64\n jump\t// in\n tag_189:\n tag_190\n jump\t// in\n tag_188:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8252:8379 function isFeeReceiver(address _receiver) external view returns (bool) {... */\n tag_32:\n callvalue\n dup1\n iszero\n tag_191\n jumpi\n 0x00\n dup1\n revert\n tag_191:\n pop\n tag_192\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_193\n swap2\n swap1\n tag_69\n jump\t// in\n tag_193:\n tag_194\n jump\t// in\n tag_192:\n mload(0x40)\n tag_195\n swap2\n swap1\n tag_60\n jump\t// in\n tag_195:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5141:5284 function removeToken(address[] calldata _token) external {... */\n tag_33:\n callvalue\n dup1\n iszero\n tag_196\n jumpi\n 0x00\n dup1\n revert\n tag_196:\n pop\n tag_197\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_198\n swap2\n swap1\n tag_64\n jump\t// in\n tag_198:\n tag_199\n jump\t// in\n tag_197:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2336:2399 mapping(address => mapping(address => uint256)) public balances */\n tag_34:\n callvalue\n dup1\n iszero\n tag_200\n jumpi\n 0x00\n dup1\n revert\n tag_200:\n pop\n tag_201\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_202\n swap2\n swap1\n tag_203\n jump\t// in\n tag_202:\n tag_204\n jump\t// in\n tag_201:\n mload(0x40)\n tag_205\n swap2\n swap1\n tag_117\n jump\t// in\n tag_205:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":545:609 bytes32 public constant FEE_RECEIVER = keccak256(\"FEE_RECEIVER\") */\n tag_35:\n callvalue\n dup1\n iszero\n tag_206\n jumpi\n 0x00\n dup1\n revert\n tag_206:\n pop\n tag_207\n tag_208\n jump\t// in\n tag_207:\n mload(0x40)\n tag_209\n swap2\n swap1\n tag_107\n jump\t// in\n tag_209:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5558:5705 function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n tag_36:\n callvalue\n dup1\n iszero\n tag_210\n jumpi\n 0x00\n dup1\n revert\n tag_210:\n pop\n tag_211\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_212\n swap2\n swap1\n tag_129\n jump\t// in\n tag_212:\n tag_213\n jump\t// in\n tag_211:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":463:539 bytes32 public constant DONATION_RECIPIENT = keccak256(\"DONATION_RECIPIENT\") */\n tag_37:\n callvalue\n dup1\n iszero\n tag_214\n jumpi\n 0x00\n dup1\n revert\n tag_214:\n pop\n tag_215\n tag_216\n jump\t// in\n tag_215:\n mload(0x40)\n tag_217\n swap2\n swap1\n tag_107\n jump\t// in\n tag_217:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":998:1144 function init() external {... */\n tag_38:\n callvalue\n dup1\n iszero\n tag_218\n jumpi\n 0x00\n dup1\n revert\n tag_218:\n pop\n tag_219\n tag_220\n jump\t// in\n tag_219:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2697:3109 function initialize(... */\n tag_39:\n callvalue\n dup1\n iszero\n tag_221\n jumpi\n 0x00\n dup1\n revert\n tag_221:\n pop\n tag_222\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_223\n swap2\n swap1\n tag_224\n jump\t// in\n tag_223:\n tag_225\n jump\t// in\n tag_222:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6962:7152 function withdraw(address _token, uint256 _amount) external nonReentrant {... */\n tag_40:\n callvalue\n dup1\n iszero\n tag_226\n jumpi\n 0x00\n dup1\n revert\n tag_226:\n pop\n tag_227\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_228\n swap2\n swap1\n tag_229\n jump\t// in\n tag_228:\n tag_230\n jump\t// in\n tag_227:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11280:11698 function balancesOf(... */\n tag_41:\n callvalue\n dup1\n iszero\n tag_231\n jumpi\n 0x00\n dup1\n revert\n tag_231:\n pop\n tag_232\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_233\n swap2\n swap1\n tag_152\n jump\t// in\n tag_233:\n tag_234\n jump\t// in\n tag_232:\n mload(0x40)\n tag_235\n swap2\n swap1\n tag_236\n jump\t// in\n tag_235:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10922:11073 function balanceOf(... */\n tag_42:\n callvalue\n dup1\n iszero\n tag_237\n jumpi\n 0x00\n dup1\n revert\n tag_237:\n pop\n tag_238\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_239\n swap2\n swap1\n tag_203\n jump\t// in\n tag_239:\n tag_240\n jump\t// in\n tag_238:\n mload(0x40)\n tag_241\n swap2\n swap1\n tag_117\n jump\t// in\n tag_241:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2078:2116 uint256 public constant HUNDRED = 1e18 */\n tag_43:\n callvalue\n dup1\n iszero\n tag_242\n jumpi\n 0x00\n dup1\n revert\n tag_242:\n pop\n tag_243\n tag_244\n jump\t// in\n tag_243:\n mload(0x40)\n tag_245\n swap2\n swap1\n tag_117\n jump\t// in\n tag_245:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6919:7060 function isDonationRecipient(address _recipient) external view returns (bool) {... */\n tag_44:\n callvalue\n dup1\n iszero\n tag_246\n jumpi\n 0x00\n dup1\n revert\n tag_246:\n pop\n tag_247\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_248\n swap2\n swap1\n tag_69\n jump\t// in\n tag_248:\n tag_249\n jump\t// in\n tag_247:\n mload(0x40)\n tag_250\n swap2\n swap1\n tag_60\n jump\t// in\n tag_250:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3990:5506 function vote(... */\n tag_45:\n tag_251\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_252\n swap2\n swap1\n tag_253\n jump\t// in\n tag_252:\n tag_254\n jump\t// in\n tag_251:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":389:457 bytes32 public constant ACCEPTED_TOKEN = keccak256(\"ACCEPTED_TOKEN\") */\n tag_46:\n callvalue\n dup1\n iszero\n tag_255\n jumpi\n 0x00\n dup1\n revert\n tag_255:\n pop\n tag_256\n tag_257\n jump\t// in\n tag_256:\n mload(0x40)\n tag_258\n swap2\n swap1\n tag_107\n jump\t// in\n tag_258:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2903:3116 function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {... */\n tag_58:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2988:2992 bool */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3026:3069 type(IAccessControlUpgradeable).interfaceId */\n 0x7965db0b00000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3011:3069 interfaceId == type(IAccessControlUpgradeable).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3011:3022 interfaceId */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3011:3069 interfaceId == type(IAccessControlUpgradeable).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n eq\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3011:3109 interfaceId == type(IAccessControlUpgradeable).interfaceId || super.supportsInterface(interfaceId) */\n dup1\n tag_260\n jumpi\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3073:3109 super.supportsInterface(interfaceId) */\n tag_261\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3097:3108 interfaceId */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3073:3096 super.supportsInterface */\n tag_262\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3073:3109 super.supportsInterface(interfaceId) */\n jump\t// in\n tag_261:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3011:3109 interfaceId == type(IAccessControlUpgradeable).interfaceId || super.supportsInterface(interfaceId) */\n tag_260:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3004:3109 return interfaceId == type(IAccessControlUpgradeable).interfaceId || super.supportsInterface(interfaceId) */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2903:3116 function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8969:9146 function withdrawFeeMany(address[] calldata _token) external nonReentrant {... */\n tag_65:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n tag_264\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2524 _nonReentrantBefore */\n tag_265\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n jump\t// in\n tag_264:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9053:9082 _checkFeeReceiver(msg.sender) */\n tag_267\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9071:9081 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9053:9070 _checkFeeReceiver */\n tag_268\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9053:9082 _checkFeeReceiver(msg.sender) */\n jump\t// in\n tag_267:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9092:9139 _withdrawAll(_token, address(this), msg.sender) */\n tag_269\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9105:9111 _token */\n dup3\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9092:9139 _withdrawAll(_token, address(this), msg.sender) */\n dup1\n dup1\n 0x20\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n 0x20\n mul\n dup1\n dup3\n dup5\n calldatacopy\n 0x00\n dup2\n dup5\n add\n mstore\n not(0x1f)\n 0x1f\n dup3\n add\n and\n swap1\n pop\n dup1\n dup4\n add\n swap3\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9121:9125 this */\n address\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9128:9138 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9092:9104 _withdrawAll */\n tag_270\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9092:9139 _withdrawAll(_token, address(this), msg.sender) */\n jump\t// in\n tag_269:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n tag_271\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2565 _nonReentrantAfter */\n tag_272\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n jump\t// in\n tag_271:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8969:9146 function withdrawFeeMany(address[] calldata _token) external nonReentrant {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5484:5609 function isTokenAccepted(address _token) external view returns (bool) {... */\n tag_70:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5548:5552 bool */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5571:5602 hasRole(ACCEPTED_TOKEN, _token) */\n tag_274\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5595:5601 _token */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5571:5578 hasRole */\n tag_173\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5571:5602 hasRole(ACCEPTED_TOKEN, _token) */\n jump\t// in\n tag_274:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5564:5602 return hasRole(ACCEPTED_TOKEN, _token) */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5484:5609 function isTokenAccepted(address _token) external view returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":460:487 address public roundAddress */\n tag_74:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3931:4043 function revokeAdmin() external {... */\n tag_79:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3973:3996 _checkAdmin(msg.sender) */\n tag_276\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3985:3995 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3973:3984 _checkAdmin */\n tag_277\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3973:3996 _checkAdmin(msg.sender) */\n jump\t// in\n tag_276:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4006:4036 _revokeRole(ADMIN, msg.sender) */\n tag_278\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4025:4035 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4006:4017 _revokeRole */\n tag_279\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4006:4036 _revokeRole(ADMIN, msg.sender) */\n jump\t// in\n tag_278:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3931:4043 function revokeAdmin() external {... */\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2242:2280 bool public isRecipientWhitelistActive */\n tag_82:\n 0xca\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n dup2\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6536:6705 function removeDonationRecipient(address[] calldata _recipients) external {... */\n tag_87:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6620:6643 _checkAdmin(msg.sender) */\n tag_281\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6632:6642 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6620:6631 _checkAdmin */\n tag_277\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6620:6643 _checkAdmin(msg.sender) */\n jump\t// in\n tag_281:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6653:6698 _removeRoles(DONATION_RECIPIENT, _recipients) */\n tag_282\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6686:6697 _recipients */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6653:6665 _removeRoles */\n tag_283\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6653:6698 _removeRoles(DONATION_RECIPIENT, _recipients) */\n jump\t// in\n tag_282:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6536:6705 function removeDonationRecipient(address[] calldata _recipients) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4829:4966 function addToken(address[] calldata _token) external {... */\n tag_91:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4893:4916 _checkAdmin(msg.sender) */\n tag_285\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4905:4915 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4893:4904 _checkAdmin */\n tag_277\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4893:4916 _checkAdmin(msg.sender) */\n jump\t// in\n tag_285:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4926:4959 _addRoles(ACCEPTED_TOKEN, _token) */\n tag_286\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4952:4958 _token */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4926:4935 _addRoles */\n tag_287\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4926:4959 _addRoles(ACCEPTED_TOKEN, _token) */\n jump\t// in\n tag_286:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4829:4966 function addToken(address[] calldata _token) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12452:12689 function setIsTokenWhitelistActive(bool _isTokenWhitelistActive) external {... */\n tag_96:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12536:12559 _checkAdmin(msg.sender) */\n tag_289\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12548:12558 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12536:12547 _checkAdmin */\n tag_277\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12536:12559 _checkAdmin(msg.sender) */\n jump\t// in\n tag_289:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12594:12617 _isTokenWhitelistActive */\n dup1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12569:12591 isTokenWhitelistActive */\n 0xca\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12569:12617 isTokenWhitelistActive = _isTokenWhitelistActive */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12632:12682 IsTokenWhitelistActiveSet(_isTokenWhitelistActive) */\n 0x46d6d1a61669d91ea3801d9d57b7398c4ced2120f35ca8559749a391047a24ae\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12658:12681 _isTokenWhitelistActive */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12632:12682 IsTokenWhitelistActiveSet(_isTokenWhitelistActive) */\n mload(0x40)\n tag_290\n swap2\n swap1\n tag_60\n jump\t// in\n tag_290:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12452:12689 function setIsTokenWhitelistActive(bool _isTokenWhitelistActive) external {... */\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8562:8801 function withdrawFee(address _token) external nonReentrant {... */\n tag_100:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n tag_292\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2524 _nonReentrantBefore */\n tag_265\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n jump\t// in\n tag_292:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8631:8653 address[] memory token */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8670:8671 1 */\n 0x01\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8656:8672 new address[](1) */\n 0xffffffffffffffff\n dup2\n gt\n iszero\n tag_294\n jumpi\n tag_295\n tag_296\n jump\t// in\n tag_295:\n tag_294:\n mload(0x40)\n swap1\n dup1\n dup3\n mstore\n dup1\n 0x20\n mul\n 0x20\n add\n dup3\n add\n 0x40\n mstore\n dup1\n iszero\n tag_297\n jumpi\n dup2\n 0x20\n add\n 0x20\n dup3\n mul\n dup1\n calldatasize\n dup4\n calldatacopy\n dup1\n dup3\n add\n swap2\n pop\n pop\n swap1\n pop\n tag_297:\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8631:8672 address[] memory token = new address[](1) */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8693:8699 _token */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8682:8687 token */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8688:8689 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8682:8690 token[0] */\n dup2\n mload\n dup2\n lt\n tag_298\n jumpi\n tag_299\n tag_300\n jump\t// in\n tag_299:\n tag_298:\n 0x20\n mul\n 0x20\n add\n add\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8682:8699 token[0] = _token */\n swap1\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8709:8738 _checkFeeReceiver(msg.sender) */\n tag_301\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8727:8737 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8709:8726 _checkFeeReceiver */\n tag_268\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8709:8738 _checkFeeReceiver(msg.sender) */\n jump\t// in\n tag_301:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8748:8794 _withdrawAll(token, address(this), msg.sender) */\n tag_302\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8761:8766 token */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8776:8780 this */\n address\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8783:8793 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8748:8760 _withdrawAll */\n tag_270\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8748:8794 _withdrawAll(token, address(this), msg.sender) */\n jump\t// in\n tag_302:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8621:8801 {... */\n pop\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n tag_303\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2565 _nonReentrantAfter */\n tag_272\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n jump\t// in\n tag_303:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8562:8801 function withdrawFee(address _token) external nonReentrant {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4708:4837 function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {... */\n tag_105:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4782:4789 bytes32 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4808:4814 _roles */\n 0x65\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4808:4820 _roles[role] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4815:4819 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4808:4820 _roles[role] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4808:4830 _roles[role].adminRole */\n 0x01\n add\n sload\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4801:4830 return _roles[role].adminRole */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4708:4837 function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4225:4337 function isAdmin(address _account) external view returns (bool) {... */\n tag_111:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4283:4287 bool */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4306:4330 hasRole(ADMIN, _account) */\n tag_306\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4321:4329 _account */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4306:4313 hasRole */\n tag_173\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4306:4330 hasRole(ADMIN, _account) */\n jump\t// in\n tag_306:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4299:4330 return hasRole(ADMIN, _account) */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4225:4337 function isAdmin(address _account) external view returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2174:2195 uint256 public minFee */\n tag_115:\n sload(0xc9)\n dup2\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7892:8051 function removeFeeReceiver(address[] calldata _feeReceiver) external {... */\n tag_121:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7971:7994 _checkAdmin(msg.sender) */\n tag_308\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7983:7993 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7971:7982 _checkAdmin */\n tag_277\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7971:7994 _checkAdmin(msg.sender) */\n jump\t// in\n tag_308:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8004:8044 _removeRoles(FEE_RECEIVER, _feeReceiver) */\n tag_309\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":584:609 keccak256(\"FEE_RECEIVER\") */\n 0xb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8031:8043 _feeReceiver */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8004:8016 _removeRoles */\n tag_283\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8004:8044 _removeRoles(FEE_RECEIVER, _feeReceiver) */\n jump\t// in\n tag_309:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7892:8051 function removeFeeReceiver(address[] calldata _feeReceiver) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":615:665 bytes32 public constant ADMIN = keccak256(\"ADMIN\") */\n tag_124:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":615:665 bytes32 public constant ADMIN = keccak256(\"ADMIN\") */\n dup2\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5133:5278 function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n tag_130:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5216:5234 getRoleAdmin(role) */\n tag_310\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5229:5233 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5216:5228 getRoleAdmin */\n tag_105\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5216:5234 getRoleAdmin(role) */\n jump\t// in\n tag_310:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2818 _checkRole(role) */\n tag_312\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2813:2817 role */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2812 _checkRole */\n tag_313\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2818 _checkRole(role) */\n jump\t// in\n tag_312:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5246:5271 _grantRole(role, account) */\n tag_315\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5257:5261 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5263:5270 account */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5246:5256 _grantRole */\n tag_316\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5246:5271 _grantRole(role, account) */\n jump\t// in\n tag_315:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5133:5278 function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11845:11959 function setMinFee(uint256 _minFee) external {... */\n tag_135:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11900:11923 _checkAdmin(msg.sender) */\n tag_318\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11912:11922 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11900:11911 _checkAdmin */\n tag_277\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11900:11923 _checkAdmin(msg.sender) */\n jump\t// in\n tag_318:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11933:11952 _setMinFee(_minFee) */\n tag_319\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11944:11951 _minFee */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11933:11943 _setMinFee */\n tag_320\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11933:11952 _setMinFee(_minFee) */\n jump\t// in\n tag_319:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11845:11959 function setMinFee(uint256 _minFee) external {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6242:6456 function renounceRole(bytes32 role, address account) public virtual override {... */\n tag_139:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6348:6360 _msgSender() */\n tag_322\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6348:6358 _msgSender */\n tag_323\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6348:6360 _msgSender() */\n jump\t// in\n tag_322:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6337:6360 account == _msgSender() */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6337:6344 account */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6337:6360 account == _msgSender() */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6329:6412 require(account == _msgSender(), \"AccessControl: can only renounce roles for self\") */\n tag_324\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_325\n swap1\n tag_326\n jump\t// in\n tag_325:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_324:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6423:6449 _revokeRole(role, account) */\n tag_327\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6435:6439 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6441:6448 account */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6423:6434 _revokeRole */\n tag_279\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6423:6449 _revokeRole(role, account) */\n jump\t// in\n tag_327:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6242:6456 function renounceRole(bytes32 role, address account) public virtual override {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8032:8400 function distributeMany(... */\n tag_144:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n tag_329\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2524 _nonReentrantBefore */\n tag_265\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n jump\t// in\n tag_329:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8203:8217 uint256 length */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8220:8223 _to */\n dup3\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8220:8230 _to.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8203:8230 uint256 length = _to.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8245:8254 uint256 i */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8240:8394 for (uint256 i = 0; i < length; ) {... */\n tag_331:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8264:8270 length */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8260:8261 i */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8260:8270 i < length */\n lt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8240:8394 for (uint256 i = 0; i < length; ) {... */\n iszero\n tag_332\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8288:8324 _withdrawAll(_token, _to[i], _to[i]) */\n tag_334\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8301:8307 _token */\n dup7\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8288:8324 _withdrawAll(_token, _to[i], _to[i]) */\n dup1\n dup1\n 0x20\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n 0x20\n mul\n dup1\n dup3\n dup5\n calldatacopy\n 0x00\n dup2\n dup5\n add\n mstore\n not(0x1f)\n 0x1f\n dup3\n add\n and\n swap1\n pop\n dup1\n dup4\n add\n swap3\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8309:8312 _to */\n dup6\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8313:8314 i */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8309:8315 _to[i] */\n dup2\n dup2\n lt\n tag_335\n jumpi\n tag_336\n tag_300\n jump\t// in\n tag_336:\n tag_335:\n swap1\n pop\n 0x20\n mul\n add\n 0x20\n dup2\n add\n swap1\n tag_337\n swap2\n swap1\n tag_69\n jump\t// in\n tag_337:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8317:8320 _to */\n dup7\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8321:8322 i */\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8317:8323 _to[i] */\n dup2\n dup2\n lt\n tag_338\n jumpi\n tag_339\n tag_300\n jump\t// in\n tag_339:\n tag_338:\n swap1\n pop\n 0x20\n mul\n add\n 0x20\n dup2\n add\n swap1\n tag_340\n swap2\n swap1\n tag_69\n jump\t// in\n tag_340:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8288:8300 _withdrawAll */\n tag_270\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8288:8324 _withdrawAll(_token, _to[i], _to[i]) */\n jump\t// in\n tag_334:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8366:8369 i++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8240:8394 for (uint256 i = 0; i < length; ) {... */\n jump(tag_331)\n tag_332:\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8151:8400 {... */\n pop\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n tag_341\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2565 _nonReentrantAfter */\n tag_272\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n jump\t// in\n tag_341:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":8032:8400 function distributeMany(... */\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3393:3523 function addAdmin(address[] calldata _admins) external {... */\n tag_148:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3458:3481 _checkAdmin(msg.sender) */\n tag_343\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3470:3480 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3458:3469 _checkAdmin */\n tag_277\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3458:3481 _checkAdmin(msg.sender) */\n jump\t// in\n tag_343:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3491:3516 _addRoles(ADMIN, _admins) */\n tag_344\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3508:3515 _admins */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3491:3500 _addRoles */\n tag_287\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3491:3516 _addRoles(ADMIN, _admins) */\n jump\t// in\n tag_344:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3393:3523 function addAdmin(address[] calldata _admins) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7626:7819 function distribute(... */\n tag_153:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n tag_346\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2524 _nonReentrantBefore */\n tag_265\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n jump\t// in\n tag_346:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7782:7812 _withdrawAll(_token, _to, _to) */\n tag_348\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7795:7801 _token */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7782:7812 _withdrawAll(_token, _to, _to) */\n dup1\n dup1\n 0x20\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n 0x20\n mul\n dup1\n dup3\n dup5\n calldatacopy\n 0x00\n dup2\n dup5\n add\n mstore\n not(0x1f)\n 0x1f\n dup3\n add\n and\n swap1\n pop\n dup1\n dup4\n add\n swap3\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7803:7806 _to */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7808:7811 _to */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7782:7794 _withdrawAll */\n tag_270\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7782:7812 _withdrawAll(_token, _to, _to) */\n jump\t// in\n tag_348:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n tag_349\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2565 _nonReentrantAfter */\n tag_272\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n jump\t// in\n tag_349:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7626:7819 function distribute(... */\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2202:2236 bool public isTokenWhitelistActive */\n tag_156:\n 0xca\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n dup2\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7299:7431 function withdrawMany(address[] calldata _token) external nonReentrant {... */\n tag_161:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n tag_351\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2524 _nonReentrantBefore */\n tag_265\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n jump\t// in\n tag_351:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7380:7424 _withdrawAll(_token, msg.sender, msg.sender) */\n tag_353\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7393:7399 _token */\n dup3\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7380:7424 _withdrawAll(_token, msg.sender, msg.sender) */\n dup1\n dup1\n 0x20\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n 0x20\n mul\n dup1\n dup3\n dup5\n calldatacopy\n 0x00\n dup2\n dup5\n add\n mstore\n not(0x1f)\n 0x1f\n dup3\n add\n and\n swap1\n pop\n dup1\n dup4\n add\n swap3\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7401:7411 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7413:7423 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7380:7392 _withdrawAll */\n tag_270\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7380:7424 _withdrawAll(_token, msg.sender, msg.sender) */\n jump\t// in\n tag_353:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n tag_354\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2565 _nonReentrantAfter */\n tag_272\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n jump\t// in\n tag_354:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7299:7431 function withdrawMany(address[] calldata _token) external nonReentrant {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12900:13175 function setIsRecipientWhitelistActive(... */\n tag_165:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":13006:13029 _checkAdmin(msg.sender) */\n tag_356\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":13018:13028 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":13006:13017 _checkAdmin */\n tag_277\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":13006:13029 _checkAdmin(msg.sender) */\n jump\t// in\n tag_356:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":13068:13095 _isRecipientWhitelistActive */\n dup1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":13039:13065 isRecipientWhitelistActive */\n 0xca\n 0x01\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":13039:13095 isRecipientWhitelistActive = _isRecipientWhitelistActive */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":13110:13168 IsRecipientWhitelistActiveSet(_isRecipientWhitelistActive) */\n 0x618c1dfcdc0554eaa0869d571defb09f99ae2add7c190d59444db6d0392489a7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":13140:13167 _isRecipientWhitelistActive */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":13110:13168 IsRecipientWhitelistActiveSet(_isRecipientWhitelistActive) */\n mload(0x40)\n tag_357\n swap2\n swap1\n tag_60\n jump\t// in\n tag_357:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12900:13175 function setIsRecipientWhitelistActive(... */\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6185:6348 function addDonationRecipient(address[] calldata _recipients) external {... */\n tag_169:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6266:6289 _checkAdmin(msg.sender) */\n tag_359\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6278:6288 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6266:6277 _checkAdmin */\n tag_277\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6266:6289 _checkAdmin(msg.sender) */\n jump\t// in\n tag_359:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6299:6341 _addRoles(DONATION_RECIPIENT, _recipients) */\n tag_360\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6329:6340 _recipients */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6299:6308 _addRoles */\n tag_287\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6299:6341 _addRoles(DONATION_RECIPIENT, _recipients) */\n jump\t// in\n tag_360:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6185:6348 function addDonationRecipient(address[] calldata _recipients) external {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3203:3348 function hasRole(bytes32 role, address account) public view virtual override returns (bool) {... */\n tag_173:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3289:3293 bool */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3318 _roles */\n 0x65\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3324 _roles[role] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3319:3323 role */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3324 _roles[role] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3332 _roles[role].members */\n 0x00\n add\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3341 _roles[role].members[account] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3333:3340 account */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3341 _roles[role].members[account] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3305:3341 return _roles[role].members[account] */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3203:3348 function hasRole(bytes32 role, address account) public view virtual override returns (bool) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7562:7715 function addFeeReceiver(address[] calldata _feeReceiver) external {... */\n tag_178:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7638:7661 _checkAdmin(msg.sender) */\n tag_363\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7650:7660 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7638:7649 _checkAdmin */\n tag_277\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7638:7661 _checkAdmin(msg.sender) */\n jump\t// in\n tag_363:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7671:7708 _addRoles(FEE_RECEIVER, _feeReceiver) */\n tag_364\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":584:609 keccak256(\"FEE_RECEIVER\") */\n 0xb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7695:7707 _feeReceiver */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7671:7680 _addRoles */\n tag_287\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7671:7708 _addRoles(FEE_RECEIVER, _feeReceiver) */\n jump\t// in\n tag_364:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7562:7715 function addFeeReceiver(address[] calldata _feeReceiver) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":781:824 address public constant NATIVE = address(0) */\n tag_181:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":822:823 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":781:824 address public constant NATIVE = address(0) */\n dup2\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2324:2373 bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00 */\n tag_185:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2369:2373 0x00 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2324:2373 bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00 */\n dup1\n shl\n dup2\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3686:3869 function removeAdmin(address[] calldata _admins) external {... */\n tag_190:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3759:3798 hasRole(DEFAULT_ADMIN_ROLE, msg.sender) */\n tag_366\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2369:2373 0x00 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3767:3785 DEFAULT_ADMIN_ROLE */\n dup1\n shl\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3787:3797 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3759:3766 hasRole */\n tag_173\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3759:3798 hasRole(DEFAULT_ADMIN_ROLE, msg.sender) */\n jump\t// in\n tag_366:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3754:3824 if (!hasRole(DEFAULT_ADMIN_ROLE, msg.sender)) revert NotDefaultAdmin() */\n tag_367\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3807:3824 NotDefaultAdmin() */\n mload(0x40)\n 0x46ab053d00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3754:3824 if (!hasRole(DEFAULT_ADMIN_ROLE, msg.sender)) revert NotDefaultAdmin() */\n tag_367:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3834:3862 _removeRoles(ADMIN, _admins) */\n tag_368\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3854:3861 _admins */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3834:3846 _removeRoles */\n tag_283\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3834:3862 _removeRoles(ADMIN, _admins) */\n jump\t// in\n tag_368:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3686:3869 function removeAdmin(address[] calldata _admins) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8252:8379 function isFeeReceiver(address _receiver) external view returns (bool) {... */\n tag_194:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8317:8321 bool */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8340:8372 hasRole(FEE_RECEIVER, _receiver) */\n tag_370\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":584:609 keccak256(\"FEE_RECEIVER\") */\n 0xb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8362:8371 _receiver */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8340:8347 hasRole */\n tag_173\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8340:8372 hasRole(FEE_RECEIVER, _receiver) */\n jump\t// in\n tag_370:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8333:8372 return hasRole(FEE_RECEIVER, _receiver) */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8252:8379 function isFeeReceiver(address _receiver) external view returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5141:5284 function removeToken(address[] calldata _token) external {... */\n tag_199:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5208:5231 _checkAdmin(msg.sender) */\n tag_372\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5220:5230 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5208:5219 _checkAdmin */\n tag_277\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5208:5231 _checkAdmin(msg.sender) */\n jump\t// in\n tag_372:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5241:5277 _removeRoles(ACCEPTED_TOKEN, _token) */\n tag_373\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5270:5276 _token */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5241:5253 _removeRoles */\n tag_283\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5241:5277 _removeRoles(ACCEPTED_TOKEN, _token) */\n jump\t// in\n tag_373:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5141:5284 function removeToken(address[] calldata _token) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2336:2399 mapping(address => mapping(address => uint256)) public balances */\n tag_204:\n mstore(0x20, 0xcb)\n dup2\n 0x00\n mstore\n mstore(0x20, keccak256(0x00, 0x40))\n dup1\n 0x00\n mstore\n keccak256(0x00, 0x40)\n 0x00\n swap2\n pop\n swap2\n pop\n pop\n sload\n dup2\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":545:609 bytes32 public constant FEE_RECEIVER = keccak256(\"FEE_RECEIVER\") */\n tag_208:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":584:609 keccak256(\"FEE_RECEIVER\") */\n 0xb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":545:609 bytes32 public constant FEE_RECEIVER = keccak256(\"FEE_RECEIVER\") */\n dup2\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5558:5705 function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n tag_213:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5642:5660 getRoleAdmin(role) */\n tag_374\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5655:5659 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5642:5654 getRoleAdmin */\n tag_105\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5642:5660 getRoleAdmin(role) */\n jump\t// in\n tag_374:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2818 _checkRole(role) */\n tag_376\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2813:2817 role */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2812 _checkRole */\n tag_313\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2818 _checkRole(role) */\n jump\t// in\n tag_376:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5672:5698 _revokeRole(role, account) */\n tag_378\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5684:5688 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5690:5697 account */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5672:5683 _revokeRole */\n tag_279\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5672:5698 _revokeRole(role, account) */\n jump\t// in\n tag_378:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5558:5705 function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":463:539 bytes32 public constant DONATION_RECIPIENT = keccak256(\"DONATION_RECIPIENT\") */\n tag_216:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":463:539 bytes32 public constant DONATION_RECIPIENT = keccak256(\"DONATION_RECIPIENT\") */\n dup2\n jump\t// out\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":998:1144 function init() external {... */\n tag_220:\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":1065:1066 0 */\n 0x00\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":1041:1067 roundAddress == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":1041:1053 roundAddress */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":1041:1067 roundAddress == address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":1033:1102 require(roundAddress == address(0), \"init: roundAddress already set\") */\n tag_380\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_381\n swap1\n tag_382\n jump\t// in\n tag_381:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_380:\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":1127:1137 msg.sender */\n caller\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":1112:1124 roundAddress */\n 0x00\n dup1\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":1112:1137 roundAddress = msg.sender */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":998:1144 function init() external {... */\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2697:3109 function initialize(... */\n tag_225:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3268:3287 bool isTopLevelCall */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3291:3304 _initializing */\n dup1\n 0x15\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3290:3304 !_initializing */\n iszero\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3268:3304 bool isTopLevelCall = !_initializing */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3336:3350 isTopLevelCall */\n dup1\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3336:3370 isTopLevelCall && _initialized < 1 */\n dup1\n iszero\n tag_384\n jumpi\n pop\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3369:3370 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3354:3366 _initialized */\n 0x00\n 0x14\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3354:3370 _initialized < 1 */\n 0xff\n and\n lt\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3336:3370 isTopLevelCall && _initialized < 1 */\n tag_384:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3335:3443 (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1) */\n dup1\n tag_385\n jumpi\n pop\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3377:3421 AddressUpgradeable.isContract(address(this)) */\n tag_386\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3415:3419 this */\n address\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3377:3406 AddressUpgradeable.isContract */\n tag_387\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3377:3421 AddressUpgradeable.isContract(address(this)) */\n jump\t// in\n tag_386:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3376:3421 !AddressUpgradeable.isContract(address(this)) */\n iszero\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3376:3442 !AddressUpgradeable.isContract(address(this)) && _initialized == 1 */\n dup1\n iszero\n tag_388\n jumpi\n pop\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3441:3442 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3425:3437 _initialized */\n 0x00\n 0x14\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3425:3442 _initialized == 1 */\n 0xff\n and\n eq\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3376:3442 !AddressUpgradeable.isContract(address(this)) && _initialized == 1 */\n tag_388:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3335:3443 (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1) */\n tag_385:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3314:3515 require(... */\n tag_389\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_390\n swap1\n tag_391\n jump\t// in\n tag_390:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_389:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3540:3541 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3525:3537 _initialized */\n 0x00\n 0x14\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3525:3541 _initialized = 1 */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3555:3569 isTopLevelCall */\n dup1\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3551:3616 if (isTopLevelCall) {... */\n iszero\n tag_392\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3601:3605 true */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3585:3598 _initializing */\n 0x00\n 0x15\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3585:3605 _initializing = true */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3551:3616 if (isTopLevelCall) {... */\n tag_392:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2943:3102 __DonationHandler_init(... */\n tag_394\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2979:2993 _acceptedToken */\n dup11\n dup11\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3007:3024 _donationReceiver */\n dup11\n dup11\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3038:3050 _feeReceiver */\n dup11\n dup11\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3064:3071 _admins */\n dup11\n dup11\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3085:3092 _minFee */\n dup11\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2943:2965 __DonationHandler_init */\n tag_395\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2943:3102 __DonationHandler_init(... */\n jump\t// in\n tag_394:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3640:3654 isTopLevelCall */\n dup1\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3636:3735 if (isTopLevelCall) {... */\n iszero\n tag_396\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3686:3691 false */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3670:3683 _initializing */\n dup1\n 0x15\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3670:3691 _initializing = false */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3710:3724 Initialized(1) */\n 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3722:3723 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3710:3724 Initialized(1) */\n mload(0x40)\n tag_397\n swap2\n swap1\n tag_398\n jump\t// in\n tag_397:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3636:3735 if (isTopLevelCall) {... */\n tag_396:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":3258:3741 {... */\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2697:3109 function initialize(... */\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6962:7152 function withdraw(address _token, uint256 _amount) external nonReentrant {... */\n tag_230:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n tag_400\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2524 _nonReentrantBefore */\n tag_265\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n jump\t// in\n tag_400:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7060:7061 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7049:7056 _amount */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7049:7061 _amount == 0 */\n sub\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7045:7085 if (_amount == 0) revert InvalidAmount() */\n tag_402\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7070:7085 InvalidAmount() */\n mload(0x40)\n 0x2c5211c600000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7045:7085 if (_amount == 0) revert InvalidAmount() */\n tag_402:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7095:7145 _withdraw(_token, msg.sender, msg.sender, _amount) */\n tag_403\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7105:7111 _token */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7113:7123 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7125:7135 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7137:7144 _amount */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7095:7104 _withdraw */\n tag_404\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":7095:7145 _withdraw(_token, msg.sender, msg.sender, _amount) */\n jump\t// in\n tag_403:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n tag_405\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2565 _nonReentrantAfter */\n tag_272\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n jump\t// in\n tag_405:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6962:7152 function withdraw(address _token, uint256 _amount) external nonReentrant {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11280:11698 function balancesOf(... */\n tag_234:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11387:11403 uint256[] memory */\n 0x60\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11415:11429 uint256 length */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11432:11438 _token */\n dup5\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11432:11445 _token.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11415:11445 uint256 length = _token.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11455:11478 uint256[] memory result */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11495:11501 length */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11481:11502 new uint256[](length) */\n 0xffffffffffffffff\n dup2\n gt\n iszero\n tag_407\n jumpi\n tag_408\n tag_296\n jump\t// in\n tag_408:\n tag_407:\n mload(0x40)\n swap1\n dup1\n dup3\n mstore\n dup1\n 0x20\n mul\n 0x20\n add\n dup3\n add\n 0x40\n mstore\n dup1\n iszero\n tag_409\n jumpi\n dup2\n 0x20\n add\n 0x20\n dup3\n mul\n dup1\n calldatasize\n dup4\n calldatacopy\n dup1\n dup3\n add\n swap2\n pop\n pop\n swap1\n pop\n tag_409:\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11455:11502 uint256[] memory result = new uint256[](length) */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11518:11527 uint256 i */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11513:11669 for (uint256 i = 0; i < length; ) {... */\n tag_410:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11537:11543 length */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11533:11534 i */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11533:11543 i < length */\n lt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11513:11669 for (uint256 i = 0; i < length; ) {... */\n iszero\n tag_411\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11573:11581 balances */\n 0xcb\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11573:11588 balances[_user] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11582:11587 _user */\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11573:11588 balances[_user] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11573:11599 balances[_user][_token[i]] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11589:11595 _token */\n dup9\n dup9\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11596:11597 i */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11589:11598 _token[i] */\n dup2\n dup2\n lt\n tag_413\n jumpi\n tag_414\n tag_300\n jump\t// in\n tag_414:\n tag_413:\n swap1\n pop\n 0x20\n mul\n add\n 0x20\n dup2\n add\n swap1\n tag_415\n swap2\n swap1\n tag_69\n jump\t// in\n tag_415:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11573:11599 balances[_user][_token[i]] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11561:11567 result */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11568:11569 i */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11561:11570 result[i] */\n dup2\n mload\n dup2\n lt\n tag_416\n jumpi\n tag_417\n tag_300\n jump\t// in\n tag_417:\n tag_416:\n 0x20\n mul\n 0x20\n add\n add\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11561:11599 result[i] = balances[_user][_token[i]] */\n dup2\n dup2\n mstore\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11641:11644 i++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11513:11669 for (uint256 i = 0; i < length; ) {... */\n jump(tag_410)\n tag_411:\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11685:11691 result */\n dup1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11678:11691 return result */\n swap3\n pop\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11280:11698 function balancesOf(... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10922:11073 function balanceOf(... */\n tag_240:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11017:11024 uint256 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11043:11051 balances */\n 0xcb\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11043:11058 balances[_user] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11052:11057 _user */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11043:11058 balances[_user] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11043:11066 balances[_user][_token] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11059:11065 _token */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11043:11066 balances[_user][_token] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":11036:11066 return balances[_user][_token] */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10922:11073 function balanceOf(... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2078:2116 uint256 public constant HUNDRED = 1e18 */\n tag_244:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2112:2116 1e18 */\n 0x0de0b6b3a7640000\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2078:2116 uint256 public constant HUNDRED = 1e18 */\n dup2\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6919:7060 function isDonationRecipient(address _recipient) external view returns (bool) {... */\n tag_249:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6991:6995 bool */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7014:7053 hasRole(DONATION_RECIPIENT, _recipient) */\n tag_420\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7042:7052 _recipient */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7014:7021 hasRole */\n tag_173\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7014:7053 hasRole(DONATION_RECIPIENT, _recipient) */\n jump\t// in\n tag_420:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7007:7053 return hasRole(DONATION_RECIPIENT, _recipient) */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6919:7060 function isDonationRecipient(address _recipient) external view returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3990:5506 function vote(... */\n tag_254:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n tag_422\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2524 _nonReentrantBefore */\n tag_265\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2505:2526 _nonReentrantBefore() */\n jump\t// in\n tag_422:\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":651:652 0 */\n 0x00\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":627:653 roundAddress != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":627:639 roundAddress */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":627:653 roundAddress != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":619:702 require(roundAddress != address(0), \"error: voting contract not linked to a round\") */\n tag_424\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_425\n swap1\n tag_426\n jump\t// in\n tag_425:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_424:\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":734:746 roundAddress */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":720:746 msg.sender == roundAddress */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":720:730 msg.sender */\n caller\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":720:746 msg.sender == roundAddress */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":712:795 require(msg.sender == roundAddress, \"error: can be invoked only by round contract\") */\n tag_427\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_428\n swap1\n tag_429\n jump\t// in\n tag_428:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_427:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4212:4226 uint256 length */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4229:4241 encodedVotes */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4229:4248 encodedVotes.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4212:4248 uint256 length = encodedVotes.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4258:4274 uint256 msgValue */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4294:4303 uint256 i */\n dup1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4289:5417 for (uint256 i = 0; i < length; ) {... */\n tag_431:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4313:4319 length */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4309:4310 i */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4309:4319 i < length */\n lt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4289:5417 for (uint256 i = 0; i < length; ) {... */\n iszero\n tag_432\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4338:4352 address _token */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4354:4369 uint256 _amount */\n dup1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4371:4392 address _grantAddress */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4424:4436 encodedVotes */\n dup9\n dup9\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4437:4438 i */\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4424:4439 encodedVotes[i] */\n dup2\n dup2\n lt\n tag_434\n jumpi\n tag_435\n tag_300\n jump\t// in\n tag_435:\n tag_434:\n swap1\n pop\n 0x20\n mul\n dup2\n add\n swap1\n tag_436\n swap2\n swap1\n tag_437\n jump\t// in\n tag_436:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4396:4469 abi... */\n dup2\n add\n swap1\n tag_438\n swap2\n swap1\n tag_439\n jump\t// in\n tag_438:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4337:4469 (address _token, uint256 _amount, address _grantAddress) = abi... */\n swap3\n pop\n swap3\n pop\n swap3\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4488:4510 isTokenWhitelistActive */\n 0xca\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4484:4531 if (isTokenWhitelistActive) _checkToken(_token) */\n iszero\n tag_440\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4512:4531 _checkToken(_token) */\n tag_441\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4524:4530 _token */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4512:4523 _checkToken */\n tag_442\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4512:4531 _checkToken(_token) */\n jump\t// in\n tag_441:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4484:4531 if (isTokenWhitelistActive) _checkToken(_token) */\n tag_440:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4549:4575 isRecipientWhitelistActive */\n 0xca\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4545:4648 if (isRecipientWhitelistActive) {... */\n iszero\n tag_443\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4595:4633 _checkDonationRecipient(_grantAddress) */\n tag_444\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4619:4632 _grantAddress */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4595:4618 _checkDonationRecipient */\n tag_445\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4595:4633 _checkDonationRecipient(_grantAddress) */\n jump\t// in\n tag_444:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4545:4648 if (isRecipientWhitelistActive) {... */\n tag_443:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":822:823 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4666:4682 _token != NATIVE */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4666:4672 _token */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4666:4682 _token != NATIVE */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4662:4815 if (_token != NATIVE) {... */\n tag_446\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4702:4742 _transfer(voterAddress, _token, _amount) */\n tag_447\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4712:4724 voterAddress */\n dup8\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4726:4732 _token */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4734:4741 _amount */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4702:4711 _transfer */\n tag_448\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4702:4742 _transfer(voterAddress, _token, _amount) */\n jump\t// in\n tag_447:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4662:4815 if (_token != NATIVE) {... */\n jump(tag_449)\n tag_446:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4793:4800 _amount */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4781:4800 msgValue += _amount */\n dup6\n tag_450\n swap2\n swap1\n tag_451\n jump\t// in\n tag_450:\n swap5\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4662:4815 if (_token != NATIVE) {... */\n tag_449:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5012:5022 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4879:5036 Voted(... */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4981:4994 _grantAddress */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4879:5036 Voted(... */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4951:4963 voterAddress */\n dup9\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4879:5036 Voted(... */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x023f5e053cbb2c4e0d563d51f8cafaa385fc620caa979fbcac023059ad1687d9\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4902:4908 _token */\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4926:4933 _amount */\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4879:5036 Voted(... */\n mload(0x40)\n tag_452\n swap3\n swap2\n swap1\n tag_453\n jump\t// in\n tag_452:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5064:5065 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5055:5061 minFee */\n sload(0xc9)\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5055:5065 minFee > 0 */\n gt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5051:5347 if (minFee > 0) {... */\n iszero\n tag_454\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5085:5096 uint256 fee */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2112:2116 1e18 */\n 0x0de0b6b3a7640000\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5110:5116 minFee */\n sload(0xc9)\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5100:5107 _amount */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5100:5116 _amount * minFee */\n tag_455\n swap2\n swap1\n tag_456\n jump\t// in\n tag_455:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5099:5127 (_amount * minFee) / HUNDRED */\n tag_457\n swap2\n swap1\n tag_458\n jump\t// in\n tag_457:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5085:5127 uint256 fee = (_amount * minFee) / HUNDRED */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5146:5201 _registerDonation(_token, _grantAddress, _amount - fee) */\n tag_459\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5164:5170 _token */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5172:5185 _grantAddress */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5197:5200 fee */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5187:5194 _amount */\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5187:5200 _amount - fee */\n tag_460\n swap2\n swap1\n tag_461\n jump\t// in\n tag_460:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5146:5163 _registerDonation */\n tag_462\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5146:5201 _registerDonation(_token, _grantAddress, _amount - fee) */\n jump\t// in\n tag_459:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5219:5244 _registerFee(_token, fee) */\n tag_463\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5232:5238 _token */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5240:5243 fee */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5219:5231 _registerFee */\n tag_464\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5219:5244 _registerFee(_token, fee) */\n jump\t// in\n tag_463:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5067:5259 {... */\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5051:5347 if (minFee > 0) {... */\n jump(tag_465)\n tag_454:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5283:5332 _registerDonation(_token, _grantAddress, _amount) */\n tag_466\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5301:5307 _token */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5309:5322 _grantAddress */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5324:5331 _amount */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5283:5300 _registerDonation */\n tag_462\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5283:5332 _registerDonation(_token, _grantAddress, _amount) */\n jump\t// in\n tag_466:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5051:5347 if (minFee > 0) {... */\n tag_465:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5389:5392 i++ */\n dup4\n dup1\n 0x01\n add\n swap5\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4323:5417 {... */\n pop\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4289:5417 for (uint256 i = 0; i < length; ) {... */\n jump(tag_431)\n tag_432:\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5442:5451 msg.value */\n callvalue\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5431:5439 msgValue */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5431:5451 msgValue > msg.value */\n gt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5427:5500 if (msgValue > msg.value) {... */\n iszero\n tag_467\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5474:5489 InvalidAmount() */\n mload(0x40)\n 0x2c5211c600000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5427:5500 if (msgValue > msg.value) {... */\n tag_467:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":4134:5506 {... */\n pop\n pop\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n tag_468\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2565 _nonReentrantAfter */\n tag_272\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2547:2567 _nonReentrantAfter() */\n jump\t// in\n tag_468:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3990:5506 function vote(... */\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":389:457 bytes32 public constant ACCEPTED_TOKEN = keccak256(\"ACCEPTED_TOKEN\") */\n tag_257:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":389:457 bytes32 public constant ACCEPTED_TOKEN = keccak256(\"ACCEPTED_TOKEN\") */\n dup2\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1060:1226 function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {... */\n tag_262:\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1145:1149 bool */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1183:1219 type(IERC165Upgradeable).interfaceId */\n 0x01ffc9a700000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1168:1219 interfaceId == type(IERC165Upgradeable).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1168:1179 interfaceId */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1168:1219 interfaceId == type(IERC165Upgradeable).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n eq\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1161:1219 return interfaceId == type(IERC165Upgradeable).interfaceId */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1060:1226 function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2580:2867 function _nonReentrantBefore() private {... */\n tag_265:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":1830:1831 2 */\n 0x02\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2712:2719 _status */\n sload(0x97)\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2712:2731 _status != _ENTERED */\n sub\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2704:2767 require(_status != _ENTERED, \"ReentrancyGuard: reentrant call\") */\n tag_471\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_472\n swap1\n tag_473\n jump\t// in\n tag_472:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_471:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":1830:1831 2 */\n 0x02\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2842:2849 _status */\n 0x97\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2842:2860 _status = _ENTERED */\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2580:2867 function _nonReentrantBefore() private {... */\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7250:7389 function _checkFeeReceiver(address _receiver) internal view {... */\n tag_268:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7325:7357 hasRole(FEE_RECEIVER, _receiver) */\n tag_475\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":584:609 keccak256(\"FEE_RECEIVER\") */\n 0xb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7347:7356 _receiver */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7325:7332 hasRole */\n tag_173\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7325:7357 hasRole(FEE_RECEIVER, _receiver) */\n jump\t// in\n tag_475:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7320:7382 if (!hasRole(FEE_RECEIVER, _receiver)) revert NotFeeReceiver() */\n tag_476\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7366:7382 NotFeeReceiver() */\n mload(0x40)\n 0x9d13e6e300000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7320:7382 if (!hasRole(FEE_RECEIVER, _receiver)) revert NotFeeReceiver() */\n tag_476:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7250:7389 function _checkFeeReceiver(address _receiver) internal view {... */\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9420:9856 function _withdrawAll(... */\n tag_270:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9544:9558 uint256 length */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9561:9567 _token */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9561:9574 _token.length */\n mload\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9544:9574 uint256 length = _token.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9590:9599 uint256 i */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9585:9850 for (uint256 i = 0; i < length; ) {... */\n tag_478:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9609:9615 length */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9605:9606 i */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9605:9615 i < length */\n lt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9585:9850 for (uint256 i = 0; i < length; ) {... */\n iszero\n tag_479\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9633:9647 uint256 amount */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9650:9658 balances */\n 0xcb\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9650:9665 balances[_from] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9659:9664 _from */\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9650:9665 balances[_from] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9650:9676 balances[_from][_token[i]] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9666:9672 _token */\n dup8\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9673:9674 i */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9666:9675 _token[i] */\n dup2\n mload\n dup2\n lt\n tag_481\n jumpi\n tag_482\n tag_300\n jump\t// in\n tag_482:\n tag_481:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9650:9676 balances[_from][_token[i]] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9633:9676 uint256 amount = balances[_from][_token[i]] */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9704:9705 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9695:9701 amount */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9695:9705 amount > 0 */\n gt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9691:9780 if (amount > 0) {... */\n iszero\n tag_483\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9725:9765 _withdraw(_token[i], _from, _to, amount) */\n tag_484\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9735:9741 _token */\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9742:9743 i */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9735:9744 _token[i] */\n dup2\n mload\n dup2\n lt\n tag_485\n jumpi\n tag_486\n tag_300\n jump\t// in\n tag_486:\n tag_485:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9746:9751 _from */\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9753:9756 _to */\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9758:9764 amount */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9725:9734 _withdraw */\n tag_404\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9725:9765 _withdraw(_token[i], _from, _to, amount) */\n jump\t// in\n tag_484:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9691:9780 if (amount > 0) {... */\n tag_483:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9822:9825 i++ */\n dup2\n dup1\n 0x01\n add\n swap3\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9619:9850 {... */\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9585:9850 for (uint256 i = 0; i < length; ) {... */\n jump(tag_478)\n tag_479:\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9534:9856 {... */\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":9420:9856 function _withdrawAll(... */\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2873:3082 function _nonReentrantAfter() private {... */\n tag_272:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":1787:1788 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":3053:3060 _status */\n 0x97\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":3053:3075 _status = _NOT_ENTERED */\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2873:3082 function _nonReentrantAfter() private {... */\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3121:3239 function _checkAdmin(address _address) internal view {... */\n tag_277:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3189:3213 hasRole(ADMIN, _address) */\n tag_489\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3204:3212 _address */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3189:3196 hasRole */\n tag_173\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3189:3213 hasRole(ADMIN, _address) */\n jump\t// in\n tag_489:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3184:3232 if (!hasRole(ADMIN, _address)) revert NotAdmin() */\n tag_490\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3222:3232 NotAdmin() */\n mload(0x40)\n 0x7bfa4b9f00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3184:3232 if (!hasRole(ADMIN, _address)) revert NotAdmin() */\n tag_490:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3121:3239 function _checkAdmin(address _address) internal view {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8195:8429 function _revokeRole(bytes32 role, address account) internal virtual {... */\n tag_279:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8278:8300 hasRole(role, account) */\n tag_492\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8286:8290 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8292:8299 account */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8278:8285 hasRole */\n tag_173\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8278:8300 hasRole(role, account) */\n jump\t// in\n tag_492:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8274:8423 if (hasRole(role, account)) {... */\n iszero\n tag_493\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8348:8353 false */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8322 _roles */\n 0x65\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8328 _roles[role] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8323:8327 role */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8328 _roles[role] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8336 _roles[role].members */\n 0x00\n add\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8345 _roles[role].members[account] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8337:8344 account */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8345 _roles[role].members[account] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8353 _roles[role].members[account] = false */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8399:8411 _msgSender() */\n tag_494\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8399:8409 _msgSender */\n tag_323\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8399:8411 _msgSender() */\n jump\t// in\n tag_494:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8372:8412 RoleRevoked(role, account, _msgSender()) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8390:8397 account */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8372:8412 RoleRevoked(role, account, _msgSender()) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8384:8388 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8372:8412 RoleRevoked(role, account, _msgSender()) */\n 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8274:8423 if (hasRole(role, account)) {... */\n tag_493:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8195:8429 function _revokeRole(bytes32 role, address account) internal virtual {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2713:2999 function _removeRoles(bytes32 _role, address[] calldata _addresses) internal {... */\n tag_283:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2800:2814 uint256 length */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2817:2827 _addresses */\n dup3\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2817:2834 _addresses.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2800:2834 uint256 length = _addresses.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2849:2858 uint256 i */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2844:2993 for (uint256 i = 0; i < length;) {... */\n tag_496:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2868:2874 length */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2864:2865 i */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2864:2874 i < length */\n lt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2844:2993 for (uint256 i = 0; i < length;) {... */\n iszero\n tag_497\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2891:2923 revokeRole(_role, _addresses[i]) */\n tag_499\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2902:2907 _role */\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2909:2919 _addresses */\n dup6\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2920:2921 i */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2909:2922 _addresses[i] */\n dup2\n dup2\n lt\n tag_500\n jumpi\n tag_501\n tag_300\n jump\t// in\n tag_501:\n tag_500:\n swap1\n pop\n 0x20\n mul\n add\n 0x20\n dup2\n add\n swap1\n tag_502\n swap2\n swap1\n tag_69\n jump\t// in\n tag_502:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2891:2901 revokeRole */\n tag_213\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2891:2923 revokeRole(_role, _addresses[i]) */\n jump\t// in\n tag_499:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2965:2968 i++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2844:2993 for (uint256 i = 0; i < length;) {... */\n jump(tag_496)\n tag_497:\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2790:2999 {... */\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2713:2999 function _removeRoles(bytes32 _role, address[] calldata _addresses) internal {... */\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2215:2498 function _addRoles(bytes32 _role, address[] calldata _addresses) internal {... */\n tag_287:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2299:2313 uint256 length */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2316:2326 _addresses */\n dup3\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2316:2333 _addresses.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2299:2333 uint256 length = _addresses.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2348:2357 uint256 i */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2343:2492 for (uint256 i = 0; i < length;) {... */\n tag_504:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2367:2373 length */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2363:2364 i */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2363:2373 i < length */\n lt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2343:2492 for (uint256 i = 0; i < length;) {... */\n iszero\n tag_505\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2390:2422 _setupRole(_role, _addresses[i]) */\n tag_507\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2401:2406 _role */\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2408:2418 _addresses */\n dup6\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2419:2420 i */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2408:2421 _addresses[i] */\n dup2\n dup2\n lt\n tag_508\n jumpi\n tag_509\n tag_300\n jump\t// in\n tag_509:\n tag_508:\n swap1\n pop\n 0x20\n mul\n add\n 0x20\n dup2\n add\n swap1\n tag_510\n swap2\n swap1\n tag_69\n jump\t// in\n tag_510:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2390:2400 _setupRole */\n tag_511\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2390:2422 _setupRole(_role, _addresses[i]) */\n jump\t// in\n tag_507:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2464:2467 i++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2343:2492 for (uint256 i = 0; i < length;) {... */\n jump(tag_504)\n tag_505:\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2289:2498 {... */\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2215:2498 function _addRoles(bytes32 _role, address[] calldata _addresses) internal {... */\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3642:3745 function _checkRole(bytes32 role) internal view virtual {... */\n tag_313:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3708:3738 _checkRole(role, _msgSender()) */\n tag_513\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3719:3723 role */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3725:3737 _msgSender() */\n tag_514\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3725:3735 _msgSender */\n tag_323\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3725:3737 _msgSender() */\n jump\t// in\n tag_514:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3708:3718 _checkRole */\n tag_515\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3708:3738 _checkRole(role, _msgSender()) */\n jump\t// in\n tag_513:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3642:3745 function _checkRole(bytes32 role) internal view virtual {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7791:8024 function _grantRole(bytes32 role, address account) internal virtual {... */\n tag_316:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7874:7896 hasRole(role, account) */\n tag_517\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7882:7886 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7888:7895 account */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7874:7881 hasRole */\n tag_173\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7874:7896 hasRole(role, account) */\n jump\t// in\n tag_517:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7869:8018 if (!hasRole(role, account)) {... */\n tag_518\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7944:7948 true */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7918 _roles */\n 0x65\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7924 _roles[role] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7919:7923 role */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7924 _roles[role] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7932 _roles[role].members */\n 0x00\n add\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7941 _roles[role].members[account] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7933:7940 account */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7941 _roles[role].members[account] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7948 _roles[role].members[account] = true */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7994:8006 _msgSender() */\n tag_519\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7994:8004 _msgSender */\n tag_323\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7994:8006 _msgSender() */\n jump\t// in\n tag_519:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7967:8007 RoleGranted(role, account, _msgSender()) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7985:7992 account */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7967:8007 RoleGranted(role, account, _msgSender()) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7979:7983 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7967:8007 RoleGranted(role, account, _msgSender()) */\n 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7869:8018 if (!hasRole(role, account)) {... */\n tag_518:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7791:8024 function _grantRole(bytes32 role, address account) internal virtual {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12093:12257 function _setMinFee(uint256 _minFee) internal {... */\n tag_320:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":2112:2116 1e18 */\n 0x0de0b6b3a7640000\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12153:12160 _minFee */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12153:12170 _minFee > HUNDRED */\n gt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12149:12191 if (_minFee > HUNDRED) revert FeeTooHigh() */\n iszero\n tag_521\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12179:12191 FeeTooHigh() */\n mload(0x40)\n 0xcd4e616700000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12149:12191 if (_minFee > HUNDRED) revert FeeTooHigh() */\n tag_521:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12210:12217 _minFee */\n dup1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12201:12207 minFee */\n 0xc9\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12201:12217 minFee = _minFee */\n dup2\n swap1\n sstore\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12232:12250 MinFeeSet(_minFee) */\n 0xd4c19c993aeeb50b76da8b158f84806c9d235eff5b86f3a36f12a2e1dd4e6eac\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12242:12249 _minFee */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12232:12250 MinFeeSet(_minFee) */\n mload(0x40)\n tag_522\n swap2\n swap1\n tag_117\n jump\t// in\n tag_522:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":12093:12257 function _setMinFee(uint256 _minFee) internal {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":850:946 function _msgSender() internal view virtual returns (address) {... */\n tag_323:\n /* \"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":903:910 address */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":929:939 msg.sender */\n caller\n /* \"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":922:939 return msg.sender */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":850:946 function _msgSender() internal view virtual returns (address) {... */\n swap1\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":1186:1506 function isContract(address account) internal view returns (bool) {... */\n tag_387:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":1246:1250 bool */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":1498:1499 0 */\n dup1\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":1476:1483 account */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":1476:1495 account.code.length */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n extcodesize\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":1476:1499 account.code.length > 0 */\n gt\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":1469:1499 return account.code.length > 0 */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":1186:1506 function isContract(address account) internal view returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3115:3831 function __DonationHandler_init(... */\n tag_395:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":5363:5376 _initializing */\n 0x00\n 0x15\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":5355:5424 require(_initializing, \"Initializable: contract is not initializing\") */\n tag_526\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_527\n swap1\n tag_528\n jump\t// in\n tag_527:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_526:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3380:3523 __DonationHandlerRoles_init(... */\n tag_530\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3421:3435 _acceptedToken */\n dup10\n dup10\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3449:3466 _donationReceiver */\n dup10\n dup10\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3480:3492 _feeReceiver */\n dup10\n dup10\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3506:3513 _admins */\n dup10\n dup10\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3380:3407 __DonationHandlerRoles_init */\n tag_531\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3380:3523 __DonationHandlerRoles_init(... */\n jump\t// in\n tag_530:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3533:3557 __ReentrancyGuard_init() */\n tag_532\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3533:3555 __ReentrancyGuard_init */\n tag_533\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3533:3557 __ReentrancyGuard_init() */\n jump\t// in\n tag_532:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3596:3597 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3572:3586 _acceptedToken */\n dup10\n dup10\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3572:3593 _acceptedToken.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3572:3597 _acceptedToken.length > 0 */\n gt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3568:3653 if (_acceptedToken.length > 0) {... */\n iszero\n tag_534\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3638:3642 true */\n 0x01\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3613:3635 isTokenWhitelistActive */\n 0xca\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3613:3642 isTokenWhitelistActive = true */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3568:3653 if (_acceptedToken.length > 0) {... */\n tag_534:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3693:3694 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3666:3683 _donationReceiver */\n dup8\n dup8\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3666:3690 _donationReceiver.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3666:3694 _donationReceiver.length > 0 */\n gt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3662:3754 if (_donationReceiver.length > 0) {... */\n iszero\n tag_535\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3739:3743 true */\n 0x01\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3710:3736 isRecipientWhitelistActive */\n 0xca\n 0x01\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3710:3743 isRecipientWhitelistActive = true */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3662:3754 if (_donationReceiver.length > 0) {... */\n tag_535:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3778:3779 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3768:3775 _minFee */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3768:3779 _minFee > 0 */\n gt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3764:3825 if (_minFee > 0) {... */\n iszero\n tag_536\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3795:3814 _setMinFee(_minFee) */\n tag_537\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3806:3813 _minFee */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3795:3805 _setMinFee */\n tag_320\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3795:3814 _setMinFee(_minFee) */\n jump\t// in\n tag_537:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3764:3825 if (_minFee > 0) {... */\n tag_536:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":3115:3831 function __DonationHandler_init(... */\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10186:10738 function _withdraw(... */\n tag_404:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10345:10353 balances */\n 0xcb\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10345:10360 balances[_from] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10354:10359 _from */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10345:10360 balances[_from] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10345:10368 balances[_from][_token] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10361:10367 _token */\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10345:10368 balances[_from][_token] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10335:10342 _amount */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10335:10368 _amount > balances[_from][_token] */\n gt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10331:10398 if (_amount > balances[_from][_token]) revert InsufficientBalance() */\n iszero\n tag_539\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10377:10398 InsufficientBalance() */\n mload(0x40)\n 0xf4d678b800000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10331:10398 if (_amount > balances[_from][_token]) revert InsufficientBalance() */\n tag_539:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10436:10443 _amount */\n dup1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10409:10417 balances */\n 0xcb\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10409:10424 balances[_from] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10418:10423 _from */\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10409:10424 balances[_from] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10409:10432 balances[_from][_token] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10425:10431 _token */\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10409:10432 balances[_from][_token] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10409:10443 balances[_from][_token] -= _amount */\n dup3\n dup3\n sload\n tag_540\n swap2\n swap1\n tag_461\n jump\t// in\n tag_540:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":822:823 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10457:10473 _token == NATIVE */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10457:10463 _token */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10457:10473 _token == NATIVE */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n sub\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10453:10679 if (_token == NATIVE) {... */\n tag_541\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10490:10502 bool success */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10516:10519 _to */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10508:10525 payable(_to).call */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10533:10540 _amount */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10508:10545 payable(_to).call{value: _amount}(\"\") */\n mload(0x40)\n tag_542\n swap1\n tag_543\n jump\t// in\n tag_542:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup8\n gas\n call\n swap3\n pop\n pop\n pop\n returndatasize\n dup1\n 0x00\n dup2\n eq\n tag_546\n jumpi\n mload(0x40)\n swap2\n pop\n and(add(returndatasize, 0x3f), not(0x1f))\n dup3\n add\n 0x40\n mstore\n returndatasize\n dup3\n mstore\n returndatasize\n 0x00\n 0x20\n dup5\n add\n returndatacopy\n jump(tag_545)\n tag_546:\n 0x60\n swap2\n pop\n tag_545:\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10489:10545 (bool success, ) = payable(_to).call{value: _amount}(\"\") */\n pop\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10564:10571 success */\n dup1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10559:10596 if (!success) revert TransferFailed() */\n tag_547\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10580:10596 TransferFailed() */\n mload(0x40)\n 0x90b8ec1800000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10559:10596 if (!success) revert TransferFailed() */\n tag_547:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10475:10607 {... */\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10453:10679 if (_token == NATIVE) {... */\n jump(tag_548)\n tag_541:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10627:10668 IERC20(_token).safeTransfer(_to, _amount) */\n tag_549\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10655:10658 _to */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10660:10667 _amount */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10634:10640 _token */\n dup7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10627:10654 IERC20(_token).safeTransfer */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n tag_550\n swap1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10627:10668 IERC20(_token).safeTransfer(_to, _amount) */\n swap3\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_549:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10453:10679 if (_token == NATIVE) {... */\n tag_548:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10718:10721 _to */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10694:10731 Withdraw(_token, _from, _to, _amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10711:10716 _from */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10694:10731 Withdraw(_token, _from, _to, _amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10703:10709 _token */\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10694:10731 Withdraw(_token, _from, _to, _amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f7\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10723:10730 _amount */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10694:10731 Withdraw(_token, _from, _to, _amount) */\n mload(0x40)\n tag_551\n swap2\n swap1\n tag_117\n jump\t// in\n tag_551:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":10186:10738 function _withdraw(... */\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4527:4658 function _checkToken(address _token) internal view {... */\n tag_442:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4593:4624 hasRole(ACCEPTED_TOKEN, _token) */\n tag_553\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4617:4623 _token */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4593:4600 hasRole */\n tag_173\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4593:4624 hasRole(ACCEPTED_TOKEN, _token) */\n jump\t// in\n tag_553:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4588:4651 if (!hasRole(ACCEPTED_TOKEN, _token)) revert TokenNotAccepted() */\n tag_554\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4633:4651 TokenNotAccepted() */\n mload(0x40)\n 0xe51cf7bf00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4588:4651 if (!hasRole(ACCEPTED_TOKEN, _token)) revert TokenNotAccepted() */\n tag_554:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4527:4658 function _checkToken(address _token) internal view {... */\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5818:6001 function _checkDonationRecipient(address _recipient) internal view {... */\n tag_445:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5900:5939 hasRole(DONATION_RECIPIENT, _recipient) */\n tag_556\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5928:5938 _recipient */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5900:5907 hasRole */\n tag_173\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5900:5939 hasRole(DONATION_RECIPIENT, _recipient) */\n jump\t// in\n tag_556:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5895:5995 if (!hasRole(DONATION_RECIPIENT, _recipient)) {... */\n tag_557\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5962:5984 RecipientNotAccepted() */\n mload(0x40)\n 0x375a7a9200000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5895:5995 if (!hasRole(DONATION_RECIPIENT, _recipient)) {... */\n tag_557:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5818:6001 function _checkDonationRecipient(address _recipient) internal view {... */\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6623:6808 function _transfer(... */\n tag_448:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6739:6801 IERC20(_token).safeTransferFrom(_from, address(this), _amount) */\n tag_559\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6771:6776 _from */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6786:6790 this */\n address\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6793:6800 _amount */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6746:6752 _token */\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6739:6770 IERC20(_token).safeTransferFrom */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n tag_560\n swap1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6739:6801 IERC20(_token).safeTransferFrom(_from, address(this), _amount) */\n swap4\n swap3\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_559:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6623:6808 function _transfer(... */\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6200:6449 function _registerDonation(... */\n tag_462:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6361:6368 _amount */\n dup1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6329:6337 balances */\n 0xcb\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6329:6349 balances[_recipient] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6338:6348 _recipient */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6329:6349 balances[_recipient] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6329:6357 balances[_recipient][_token] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6350:6356 _token */\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6329:6357 balances[_recipient][_token] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6329:6368 balances[_recipient][_token] += _amount */\n dup3\n dup3\n sload\n tag_562\n swap2\n swap1\n tag_451\n jump\t// in\n tag_562:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6422:6432 _recipient */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6383:6442 DonationRegistered(_token, msg.sender, _recipient, _amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6410:6420 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6383:6442 DonationRegistered(_token, msg.sender, _recipient, _amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6402:6408 _token */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6383:6442 DonationRegistered(_token, msg.sender, _recipient, _amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xb91b2d1906a6e6e2b45b99eb26ac141804eb2684a0df30699fdcb8b5ced1d518\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6434:6441 _amount */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6383:6442 DonationRegistered(_token, msg.sender, _recipient, _amount) */\n mload(0x40)\n tag_563\n swap2\n swap1\n tag_117\n jump\t// in\n tag_563:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":6200:6449 function _registerDonation(... */\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5736:5916 function _registerFee(address _token, uint256 _amount) internal {... */\n tag_464:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5845:5852 _amount */\n dup1\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5810:5818 balances */\n 0xcb\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5810:5833 balances[address(this)] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5827:5831 this */\n address\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5810:5833 balances[address(this)] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5810:5841 balances[address(this)][_token] */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5834:5840 _token */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5810:5841 balances[address(this)][_token] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5810:5852 balances[address(this)][_token] += _amount */\n dup3\n dup3\n sload\n tag_565\n swap2\n swap1\n tag_451\n jump\t// in\n tag_565:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5889:5899 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5867:5909 FeeRegistered(_token, msg.sender, _amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5881:5887 _token */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5867:5909 FeeRegistered(_token, msg.sender, _amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x468c2f4ec7ce54b88b575db5d64710429b1880e4581f5328aaa4b3f51dadc58b\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5901:5908 _amount */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5867:5909 FeeRegistered(_token, msg.sender, _amount) */\n mload(0x40)\n tag_566\n swap2\n swap1\n tag_117\n jump\t// in\n tag_566:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":5736:5916 function _registerFee(address _token, uint256 _amount) internal {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7141:7251 function _setupRole(bytes32 role, address account) internal virtual {... */\n tag_511:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7219:7244 _grantRole(role, account) */\n tag_568\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7230:7234 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7236:7243 account */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7219:7229 _grantRole */\n tag_316\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7219:7244 _grantRole(role, account) */\n jump\t// in\n tag_568:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7141:7251 function _setupRole(bytes32 role, address account) internal virtual {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4026:4527 function _checkRole(bytes32 role, address account) internal view virtual {... */\n tag_515:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4114:4136 hasRole(role, account) */\n tag_570\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4122:4126 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4128:4135 account */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4114:4121 hasRole */\n tag_173\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4114:4136 hasRole(role, account) */\n jump\t// in\n tag_570:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4109:4521 if (!hasRole(role, account)) {... */\n tag_571\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4297:4336 StringsUpgradeable.toHexString(account) */\n tag_572\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4328:4335 account */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4297:4327 StringsUpgradeable.toHexString */\n tag_573\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4297:4336 StringsUpgradeable.toHexString(account) */\n jump\t// in\n tag_572:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4407:4456 StringsUpgradeable.toHexString(uint256(role), 32) */\n tag_574\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4446:4450 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4438:4451 uint256(role) */\n 0x00\n shr\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4453:4455 32 */\n 0x20\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4407:4437 StringsUpgradeable.toHexString */\n tag_575\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4407:4456 StringsUpgradeable.toHexString(uint256(role), 32) */\n jump\t// in\n tag_574:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4204:4478 abi.encodePacked(... */\n add(0x20, mload(0x40))\n tag_576\n swap3\n swap2\n swap1\n tag_577\n jump\t// in\n tag_576:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4152:4510 revert(... */\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_578\n swap2\n swap1\n tag_579\n jump\t// in\n tag_578:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4109:4521 if (!hasRole(role, account)) {... */\n tag_571:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4026:4527 function _checkRole(bytes32 role, address account) internal view virtual {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1191:2015 function __DonationHandlerRoles_init(... */\n tag_531:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":5363:5376 _initializing */\n 0x00\n 0x15\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":5355:5424 require(_initializing, \"Initializable: contract is not initializing\") */\n tag_581\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_582\n swap1\n tag_528\n jump\t// in\n tag_582:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_581:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1437:1459 __AccessControl_init() */\n tag_584\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1437:1457 __AccessControl_init */\n tag_585\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1437:1459 __AccessControl_init() */\n jump\t// in\n tag_584:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1469:1511 _setupRole(DEFAULT_ADMIN_ROLE, msg.sender) */\n tag_586\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2369:2373 0x00 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1480:1498 DEFAULT_ADMIN_ROLE */\n dup1\n shl\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1500:1510 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1469:1479 _setupRole */\n tag_511\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1469:1511 _setupRole(DEFAULT_ADMIN_ROLE, msg.sender) */\n jump\t// in\n tag_586:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1521:1566 _setupRole(DONATION_RECIPIENT, address(this)) */\n tag_587\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1560:1564 this */\n address\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1521:1531 _setupRole */\n tag_511\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1521:1566 _setupRole(DONATION_RECIPIENT, address(this)) */\n jump\t// in\n tag_587:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1640:1676 _setRoleAdmin(ACCEPTED_TOKEN, ADMIN) */\n tag_588\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1640:1653 _setRoleAdmin */\n tag_589\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1640:1676 _setRoleAdmin(ACCEPTED_TOKEN, ADMIN) */\n jump\t// in\n tag_588:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1686:1726 _setRoleAdmin(DONATION_RECIPIENT, ADMIN) */\n tag_590\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1686:1699 _setRoleAdmin */\n tag_589\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1686:1726 _setRoleAdmin(DONATION_RECIPIENT, ADMIN) */\n jump\t// in\n tag_590:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1736:1770 _setRoleAdmin(FEE_RECEIVER, ADMIN) */\n tag_591\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":584:609 keccak256(\"FEE_RECEIVER\") */\n 0xb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1736:1749 _setRoleAdmin */\n tag_589\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1736:1770 _setRoleAdmin(FEE_RECEIVER, ADMIN) */\n jump\t// in\n tag_591:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1781:1822 _addRoles(ACCEPTED_TOKEN, _acceptedToken) */\n tag_592\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1807:1821 _acceptedToken */\n dup10\n dup10\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1781:1790 _addRoles */\n tag_287\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1781:1822 _addRoles(ACCEPTED_TOKEN, _acceptedToken) */\n jump\t// in\n tag_592:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1832:1881 _addRoles(DONATION_RECIPIENT, _donationRecipient) */\n tag_593\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1862:1880 _donationRecipient */\n dup8\n dup8\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1832:1841 _addRoles */\n tag_287\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1832:1881 _addRoles(DONATION_RECIPIENT, _donationRecipient) */\n jump\t// in\n tag_593:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1891:1928 _addRoles(FEE_RECEIVER, _feeReceiver) */\n tag_594\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":584:609 keccak256(\"FEE_RECEIVER\") */\n 0xb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1915:1927 _feeReceiver */\n dup6\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1891:1900 _addRoles */\n tag_287\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1891:1928 _addRoles(FEE_RECEIVER, _feeReceiver) */\n jump\t// in\n tag_594:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1938:1963 _addRoles(ADMIN, _admins) */\n tag_595\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1955:1962 _admins */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1938:1947 _addRoles */\n tag_287\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1938:1963 _addRoles(ADMIN, _admins) */\n jump\t// in\n tag_595:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1974:2008 _setupRole(ACCEPTED_TOKEN, NATIVE) */\n tag_596\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":822:823 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1974:1984 _setupRole */\n tag_511\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1974:2008 _setupRole(ACCEPTED_TOKEN, NATIVE) */\n jump\t// in\n tag_596:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":1191:2015 function __DonationHandlerRoles_init(... */\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":1868:1979 function __ReentrancyGuard_init() internal onlyInitializing {... */\n tag_533:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":5363:5376 _initializing */\n 0x00\n 0x15\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":5355:5424 require(_initializing, \"Initializable: contract is not initializing\") */\n tag_598\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_599\n swap1\n tag_528\n jump\t// in\n tag_599:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_598:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":1938:1972 __ReentrancyGuard_init_unchained() */\n tag_601\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":1938:1970 __ReentrancyGuard_init_unchained */\n tag_602\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":1938:1972 __ReentrancyGuard_init_unchained() */\n jump\t// in\n tag_601:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":1868:1979 function __ReentrancyGuard_init() internal onlyInitializing {... */\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":818:1034 function safeTransfer(... */\n tag_550:\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":941:1027 _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)) */\n tag_604\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":961:966 token */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":991:1014 token.transfer.selector */\n shl(0xe0, 0xa9059cbb)\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1016:1018 to */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1020:1025 value */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":968:1026 abi.encodeWithSelector(token.transfer.selector, to, value) */\n add(0x24, mload(0x40))\n tag_605\n swap3\n swap2\n swap1\n tag_453\n jump\t// in\n tag_605:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n swap1\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n 0x20\n dup3\n add\n dup1\n mload\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n dup4\n dup2\n dup4\n and\n or\n dup4\n mstore\n pop\n pop\n pop\n pop\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":941:960 _callOptionalReturn */\n tag_606\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":941:1027 _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)) */\n jump\t// in\n tag_604:\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":818:1034 function safeTransfer(... */\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1040:1292 function safeTransferFrom(... */\n tag_560:\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1189:1285 _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)) */\n tag_608\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1209:1214 token */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1239:1266 token.transferFrom.selector */\n shl(0xe0, 0x23b872dd)\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1268:1272 from */\n dup6\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1274:1276 to */\n dup6\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1278:1283 value */\n dup6\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1216:1284 abi.encodeWithSelector(token.transferFrom.selector, from, to, value) */\n add(0x24, mload(0x40))\n tag_609\n swap4\n swap3\n swap2\n swap1\n tag_610\n jump\t// in\n tag_609:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n swap1\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n 0x20\n dup3\n add\n dup1\n mload\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n dup4\n dup2\n dup4\n and\n or\n dup4\n mstore\n pop\n pop\n pop\n pop\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1189:1208 _callOptionalReturn */\n tag_606\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1189:1285 _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)) */\n jump\t// in\n tag_608:\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":1040:1292 function safeTransferFrom(... */\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2146:2295 function toHexString(address addr) internal pure returns (string memory) {... */\n tag_573:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2204:2217 string memory */\n 0x60\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2236:2288 toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH) */\n tag_612\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2264:2268 addr */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2248:2270 uint256(uint160(addr)) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":333:335 20 */\n 0x14\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2236:2288 toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH) */\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2236:2247 toHexString */\n tag_575\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2236:2288 toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH) */\n jump\t// in\n tag_612:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2229:2288 return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH) */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2146:2295 function toHexString(address addr) internal pure returns (string memory) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1557:1994 function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {... */\n tag_575:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1632:1645 string memory */\n 0x60\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1657:1676 bytes memory buffer */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1702:1703 2 */\n 0x02\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1693:1699 length */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1689:1690 2 */\n 0x02\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1689:1699 2 * length */\n tag_614\n swap2\n swap1\n tag_456\n jump\t// in\n tag_614:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1689:1703 2 * length + 2 */\n tag_615\n swap2\n swap1\n tag_451\n jump\t// in\n tag_615:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1679:1704 new bytes(2 * length + 2) */\n 0xffffffffffffffff\n dup2\n gt\n iszero\n tag_616\n jumpi\n tag_617\n tag_296\n jump\t// in\n tag_617:\n tag_616:\n mload(0x40)\n swap1\n dup1\n dup3\n mstore\n dup1\n 0x1f\n add\n not(0x1f)\n and\n 0x20\n add\n dup3\n add\n 0x40\n mstore\n dup1\n iszero\n tag_618\n jumpi\n dup2\n 0x20\n add\n 0x01\n dup3\n mul\n dup1\n calldatasize\n dup4\n calldatacopy\n dup1\n dup3\n add\n swap2\n pop\n pop\n swap1\n pop\n tag_618:\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1657:1704 bytes memory buffer = new bytes(2 * length + 2) */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1714:1729 buffer[0] = \"0\" */\n 0x3000000000000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1714:1720 buffer */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1721:1722 0 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1714:1723 buffer[0] */\n dup2\n mload\n dup2\n lt\n tag_619\n jumpi\n tag_620\n tag_300\n jump\t// in\n tag_620:\n tag_619:\n 0x20\n add\n add\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1714:1729 buffer[0] = \"0\" */\n swap1\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n swap1\n dup2\n 0x00\n byte\n swap1\n mstore8\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1739:1754 buffer[1] = \"x\" */\n 0x7800000000000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1739:1745 buffer */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1746:1747 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1739:1748 buffer[1] */\n dup2\n mload\n dup2\n lt\n tag_621\n jumpi\n tag_622\n tag_300\n jump\t// in\n tag_622:\n tag_621:\n 0x20\n add\n add\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1739:1754 buffer[1] = \"x\" */\n swap1\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n swap1\n dup2\n 0x00\n byte\n swap1\n mstore8\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1769:1778 uint256 i */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1794:1795 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1785:1791 length */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1781:1782 2 */\n 0x02\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1781:1791 2 * length */\n tag_626\n swap2\n swap1\n tag_456\n jump\t// in\n tag_626:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1781:1795 2 * length + 1 */\n tag_627\n swap2\n swap1\n tag_451\n jump\t// in\n tag_627:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1769:1795 uint256 i = 2 * length + 1 */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1764:1892 for (uint256 i = 2 * length + 1; i > 1; --i) {... */\n tag_623:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1801:1802 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1797:1798 i */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1797:1802 i > 1 */\n gt\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1764:1892 for (uint256 i = 2 * length + 1; i > 1; --i) {... */\n iszero\n tag_624\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1835:1843 _SYMBOLS */\n 0x3031323334353637383961626364656600000000000000000000000000000000\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1852:1855 0xf */\n 0x0f\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1844:1849 value */\n dup7\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1844:1855 value & 0xf */\n and\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1835:1856 _SYMBOLS[value & 0xf] */\n 0x10\n dup2\n lt\n tag_628\n jumpi\n tag_629\n tag_300\n jump\t// in\n tag_629:\n tag_628:\n byte\n 0xf8\n shl\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1823:1829 buffer */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1830:1831 i */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1823:1832 buffer[i] */\n dup2\n mload\n dup2\n lt\n tag_630\n jumpi\n tag_631\n tag_300\n jump\t// in\n tag_631:\n tag_630:\n 0x20\n add\n add\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1823:1856 buffer[i] = _SYMBOLS[value & 0xf] */\n swap1\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n swap1\n dup2\n 0x00\n byte\n swap1\n mstore8\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1880:1881 4 */\n 0x04\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1870:1881 value >>= 4 */\n dup6\n swap1\n shr\n swap5\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1804:1807 --i */\n dup1\n tag_632\n swap1\n tag_633\n jump\t// in\n tag_632:\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1764:1892 for (uint256 i = 2 * length + 1; i > 1; --i) {... */\n jump(tag_623)\n tag_624:\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1918:1919 0 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1909:1914 value */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1909:1919 value == 0 */\n eq\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1901:1956 require(value == 0, \"Strings: hex length insufficient\") */\n tag_634\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_635\n swap1\n tag_636\n jump\t// in\n tag_635:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_634:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1980:1986 buffer */\n dup1\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1966:1987 return string(buffer) */\n swap2\n pop\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1557:1994 function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2025:2090 function __AccessControl_init() internal onlyInitializing {... */\n tag_585:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":5363:5376 _initializing */\n 0x00\n 0x15\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":5355:5424 require(_initializing, \"Initializable: contract is not initializing\") */\n tag_638\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_639\n swap1\n tag_528\n jump\t// in\n tag_639:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_638:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2025:2090 function __AccessControl_init() internal onlyInitializing {... */\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7376:7623 function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {... */\n tag_589:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7459:7484 bytes32 previousAdminRole */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7487:7505 getRoleAdmin(role) */\n tag_642\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7500:7504 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7487:7499 getRoleAdmin */\n tag_105\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7487:7505 getRoleAdmin(role) */\n jump\t// in\n tag_642:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7459:7505 bytes32 previousAdminRole = getRoleAdmin(role) */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7540:7549 adminRole */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7515:7521 _roles */\n 0x65\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7515:7527 _roles[role] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7522:7526 role */\n dup6\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7515:7527 _roles[role] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7515:7537 _roles[role].adminRole */\n 0x01\n add\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7515:7549 _roles[role].adminRole = adminRole */\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7606:7615 adminRole */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7587:7604 previousAdminRole */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7581:7585 role */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7564:7616 RoleAdminChanged(role, previousAdminRole, adminRole) */\n 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7449:7623 {... */\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7376:7623 function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":1985:2094 function __ReentrancyGuard_init_unchained() internal onlyInitializing {... */\n tag_602:\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":5363:5376 _initializing */\n 0x00\n 0x15\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":5355:5424 require(_initializing, \"Initializable: contract is not initializing\") */\n tag_644\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_645\n swap1\n tag_528\n jump\t// in\n tag_645:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_644:\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":1787:1788 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2065:2072 _status */\n 0x97\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":2065:2087 _status = _NOT_ENTERED */\n dup2\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":1985:2094 function __ReentrancyGuard_init_unchained() internal onlyInitializing {... */\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":3868:4585 function _callOptionalReturn(IERC20Upgradeable token, bytes memory data) private {... */\n tag_606:\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4298:4321 bytes memory returndata */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4324:4393 address(token).functionCall(data, \"SafeERC20: low-level call failed\") */\n tag_648\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4352:4356 data */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4324:4393 address(token).functionCall(data, \"SafeERC20: low-level call failed\") */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x20\n dup2\n mstore\n 0x20\n add\n 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564\n dup2\n mstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4332:4337 token */\n dup6\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4324:4351 address(token).functionCall */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n tag_649\n swap1\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4324:4393 address(token).functionCall(data, \"SafeERC20: low-level call failed\") */\n swap3\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_648:\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4298:4393 bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\") */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4427:4428 0 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4407:4417 returndata */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4407:4424 returndata.length */\n mload\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4407:4428 returndata.length > 0 */\n gt\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4403:4579 if (returndata.length > 0) {... */\n iszero\n tag_650\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4502:4512 returndata */\n dup1\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4491:4521 abi.decode(returndata, (bool)) */\n dup1\n 0x20\n add\n swap1\n mload\n dup2\n add\n swap1\n tag_651\n swap2\n swap1\n tag_652\n jump\t// in\n tag_651:\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4483:4568 require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\") */\n tag_653\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_654\n swap1\n tag_655\n jump\t// in\n tag_654:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_653:\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":4403:4579 if (returndata.length > 0) {... */\n tag_650:\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":3949:4585 {... */\n pop\n /* \"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":3868:4585 function _callOptionalReturn(IERC20Upgradeable token, bytes memory data) private {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":3884:4107 function functionCall(... */\n tag_649:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":4017:4029 bytes memory */\n 0x60\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":4048:4100 functionCallWithValue(target, data, 0, errorMessage) */\n tag_657\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":4070:4076 target */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":4078:4082 data */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":4084:4085 0 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":4087:4099 errorMessage */\n dup6\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":4048:4069 functionCallWithValue */\n tag_658\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":4048:4100 functionCallWithValue(target, data, 0, errorMessage) */\n jump\t// in\n tag_657:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":4041:4100 return functionCallWithValue(target, data, 0, errorMessage) */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":3884:4107 function functionCall(... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":4971:5417 function functionCallWithValue(... */\n tag_658:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5136:5148 bytes memory */\n 0x60\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5193:5198 value */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5168:5189 address(this).balance */\n selfbalance\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5168:5198 address(this).balance >= value */\n lt\n iszero\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5160:5241 require(address(this).balance >= value, \"Address: insufficient balance for call\") */\n tag_660\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_661\n swap1\n tag_662\n jump\t// in\n tag_661:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_660:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5252:5264 bool success */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5266:5289 bytes memory returndata */\n dup1\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5293:5299 target */\n dup7\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5293:5304 target.call */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5312:5317 value */\n dup6\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5319:5323 data */\n dup8\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5293:5324 target.call{value: value}(data) */\n mload(0x40)\n tag_663\n swap2\n swap1\n tag_664\n jump\t// in\n tag_663:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup8\n gas\n call\n swap3\n pop\n pop\n pop\n returndatasize\n dup1\n 0x00\n dup2\n eq\n tag_667\n jumpi\n mload(0x40)\n swap2\n pop\n and(add(returndatasize, 0x3f), not(0x1f))\n dup3\n add\n 0x40\n mstore\n returndatasize\n dup3\n mstore\n returndatasize\n 0x00\n 0x20\n dup5\n add\n returndatacopy\n jump(tag_666)\n tag_667:\n 0x60\n swap2\n pop\n tag_666:\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5251:5324 (bool success, bytes memory returndata) = target.call{value: value}(data) */\n swap2\n pop\n swap2\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5341:5410 verifyCallResultFromTarget(target, success, returndata, errorMessage) */\n tag_668\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5368:5374 target */\n dup8\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5376:5383 success */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5385:5395 returndata */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5397:5409 errorMessage */\n dup8\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5341:5367 verifyCallResultFromTarget */\n tag_669\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5341:5410 verifyCallResultFromTarget(target, success, returndata, errorMessage) */\n jump\t// in\n tag_668:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":5334:5410 return verifyCallResultFromTarget(target, success, returndata, errorMessage) */\n swap3\n pop\n pop\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":4971:5417 function functionCallWithValue(... */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6589:7217 function verifyCallResultFromTarget(... */\n tag_669:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6769:6781 bytes memory */\n 0x60\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6797:6804 success */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6793:7211 if (success) {... */\n iszero\n tag_671\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6845:6846 0 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6824:6834 returndata */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6824:6841 returndata.length */\n mload\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6824:6846 returndata.length == 0 */\n sub\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6820:7106 if (returndata.length == 0) {... */\n tag_672\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7039:7057 isContract(target) */\n tag_673\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7050:7056 target */\n dup6\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7039:7049 isContract */\n tag_387\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7039:7057 isContract(target) */\n jump\t// in\n tag_673:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7031:7091 require(isContract(target), \"Address: call to non-contract\") */\n tag_674\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_675\n swap1\n tag_676\n jump\t// in\n tag_675:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_674:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6820:7106 if (returndata.length == 0) {... */\n tag_672:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7126:7136 returndata */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7119:7136 return returndata */\n swap1\n pop\n jump(tag_670)\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6793:7211 if (success) {... */\n tag_671:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7167:7200 _revert(returndata, errorMessage) */\n tag_678\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7175:7185 returndata */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7187:7199 errorMessage */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7167:7174 _revert */\n tag_679\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7167:7200 _revert(returndata, errorMessage) */\n jump\t// in\n tag_678:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":6589:7217 function verifyCallResultFromTarget(... */\n tag_670:\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7739:8279 function _revert(bytes memory returndata, string memory errorMessage) private pure {... */\n tag_679:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7918:7919 0 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7898:7908 returndata */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7898:7915 returndata.length */\n mload\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7898:7919 returndata.length > 0 */\n gt\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7894:8273 if (returndata.length > 0) {... */\n iszero\n tag_681\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":8126:8136 returndata */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":8120:8137 mload(returndata) */\n mload\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":8182:8197 returndata_size */\n dup1\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":8169:8179 returndata */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":8165:8167 32 */\n 0x20\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":8161:8180 add(32, returndata) */\n add\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":8154:8198 revert(add(32, returndata), returndata_size) */\n revert\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":7894:8273 if (returndata.length > 0) {... */\n tag_681:\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":8249:8261 errorMessage */\n dup1\n /* \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":8242:8262 revert(errorMessage) */\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_683\n swap2\n swap1\n tag_579\n jump\t// in\n tag_683:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"#utility.yul\":88:205 */\n tag_685:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\n tag_686:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:483 */\n tag_687:\n /* \"#utility.yul\":370:377 */\n 0x00\n /* \"#utility.yul\":410:476 */\n 0xffffffff00000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":403:408 */\n dup3\n /* \"#utility.yul\":399:477 */\n and\n /* \"#utility.yul\":388:477 */\n swap1\n pop\n /* \"#utility.yul\":334:483 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":489:609 */\n tag_688:\n /* \"#utility.yul\":561:584 */\n tag_777\n /* \"#utility.yul\":578:583 */\n dup2\n /* \"#utility.yul\":561:584 */\n tag_687\n jump\t// in\n tag_777:\n /* \"#utility.yul\":554:559 */\n dup2\n /* \"#utility.yul\":551:585 */\n eq\n /* \"#utility.yul\":541:603 */\n tag_778\n jumpi\n /* \"#utility.yul\":599:600 */\n 0x00\n /* \"#utility.yul\":596:597 */\n dup1\n /* \"#utility.yul\":589:601 */\n revert\n /* \"#utility.yul\":541:603 */\n tag_778:\n /* \"#utility.yul\":489:609 */\n pop\n jump\t// out\n /* \"#utility.yul\":615:752 */\n tag_689:\n /* \"#utility.yul\":660:665 */\n 0x00\n /* \"#utility.yul\":698:704 */\n dup2\n /* \"#utility.yul\":685:705 */\n calldataload\n /* \"#utility.yul\":676:705 */\n swap1\n pop\n /* \"#utility.yul\":714:746 */\n tag_780\n /* \"#utility.yul\":740:745 */\n dup2\n /* \"#utility.yul\":714:746 */\n tag_688\n jump\t// in\n tag_780:\n /* \"#utility.yul\":615:752 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":758:1085 */\n tag_57:\n /* \"#utility.yul\":816:822 */\n 0x00\n /* \"#utility.yul\":865:867 */\n 0x20\n /* \"#utility.yul\":853:862 */\n dup3\n /* \"#utility.yul\":844:851 */\n dup5\n /* \"#utility.yul\":840:863 */\n sub\n /* \"#utility.yul\":836:868 */\n slt\n /* \"#utility.yul\":833:952 */\n iszero\n tag_782\n jumpi\n /* \"#utility.yul\":871:950 */\n tag_783\n tag_685\n jump\t// in\n tag_783:\n /* \"#utility.yul\":833:952 */\n tag_782:\n /* \"#utility.yul\":991:992 */\n 0x00\n /* \"#utility.yul\":1016:1068 */\n tag_784\n /* \"#utility.yul\":1060:1067 */\n dup5\n /* \"#utility.yul\":1051:1057 */\n dup3\n /* \"#utility.yul\":1040:1049 */\n dup6\n /* \"#utility.yul\":1036:1058 */\n add\n /* \"#utility.yul\":1016:1068 */\n tag_689\n jump\t// in\n tag_784:\n /* \"#utility.yul\":1006:1068 */\n swap2\n pop\n /* \"#utility.yul\":962:1078 */\n pop\n /* \"#utility.yul\":758:1085 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1091:1181 */\n tag_690:\n /* \"#utility.yul\":1125:1132 */\n 0x00\n /* \"#utility.yul\":1168:1173 */\n dup2\n /* \"#utility.yul\":1161:1174 */\n iszero\n /* \"#utility.yul\":1154:1175 */\n iszero\n /* \"#utility.yul\":1143:1175 */\n swap1\n pop\n /* \"#utility.yul\":1091:1181 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1187:1296 */\n tag_691:\n /* \"#utility.yul\":1268:1289 */\n tag_787\n /* \"#utility.yul\":1283:1288 */\n dup2\n /* \"#utility.yul\":1268:1289 */\n tag_690\n jump\t// in\n tag_787:\n /* \"#utility.yul\":1263:1266 */\n dup3\n /* \"#utility.yul\":1256:1290 */\n mstore\n /* \"#utility.yul\":1187:1296 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1302:1512 */\n tag_60:\n /* \"#utility.yul\":1389:1393 */\n 0x00\n /* \"#utility.yul\":1427:1429 */\n 0x20\n /* \"#utility.yul\":1416:1425 */\n dup3\n /* \"#utility.yul\":1412:1430 */\n add\n /* \"#utility.yul\":1404:1430 */\n swap1\n pop\n /* \"#utility.yul\":1440:1505 */\n tag_789\n /* \"#utility.yul\":1502:1503 */\n 0x00\n /* \"#utility.yul\":1491:1500 */\n dup4\n /* \"#utility.yul\":1487:1504 */\n add\n /* \"#utility.yul\":1478:1484 */\n dup5\n /* \"#utility.yul\":1440:1505 */\n tag_691\n jump\t// in\n tag_789:\n /* \"#utility.yul\":1302:1512 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1518:1635 */\n tag_692:\n /* \"#utility.yul\":1627:1628 */\n 0x00\n /* \"#utility.yul\":1624:1625 */\n dup1\n /* \"#utility.yul\":1617:1629 */\n revert\n /* \"#utility.yul\":1641:1758 */\n tag_693:\n /* \"#utility.yul\":1750:1751 */\n 0x00\n /* \"#utility.yul\":1747:1748 */\n dup1\n /* \"#utility.yul\":1740:1752 */\n revert\n /* \"#utility.yul\":1764:1881 */\n tag_694:\n /* \"#utility.yul\":1873:1874 */\n 0x00\n /* \"#utility.yul\":1870:1871 */\n dup1\n /* \"#utility.yul\":1863:1875 */\n revert\n /* \"#utility.yul\":1904:2472 */\n tag_695:\n /* \"#utility.yul\":1977:1985 */\n 0x00\n /* \"#utility.yul\":1987:1993 */\n dup1\n /* \"#utility.yul\":2037:2040 */\n dup4\n /* \"#utility.yul\":2030:2034 */\n 0x1f\n /* \"#utility.yul\":2022:2028 */\n dup5\n /* \"#utility.yul\":2018:2035 */\n add\n /* \"#utility.yul\":2014:2041 */\n slt\n /* \"#utility.yul\":2004:2126 */\n tag_794\n jumpi\n /* \"#utility.yul\":2045:2124 */\n tag_795\n tag_692\n jump\t// in\n tag_795:\n /* \"#utility.yul\":2004:2126 */\n tag_794:\n /* \"#utility.yul\":2158:2164 */\n dup3\n /* \"#utility.yul\":2145:2165 */\n calldataload\n /* \"#utility.yul\":2135:2165 */\n swap1\n pop\n /* \"#utility.yul\":2188:2206 */\n 0xffffffffffffffff\n /* \"#utility.yul\":2180:2186 */\n dup2\n /* \"#utility.yul\":2177:2207 */\n gt\n /* \"#utility.yul\":2174:2291 */\n iszero\n tag_796\n jumpi\n /* \"#utility.yul\":2210:2289 */\n tag_797\n tag_693\n jump\t// in\n tag_797:\n /* \"#utility.yul\":2174:2291 */\n tag_796:\n /* \"#utility.yul\":2324:2328 */\n 0x20\n /* \"#utility.yul\":2316:2322 */\n dup4\n /* \"#utility.yul\":2312:2329 */\n add\n /* \"#utility.yul\":2300:2329 */\n swap2\n pop\n /* \"#utility.yul\":2378:2381 */\n dup4\n /* \"#utility.yul\":2370:2374 */\n 0x20\n /* \"#utility.yul\":2362:2368 */\n dup3\n /* \"#utility.yul\":2358:2375 */\n mul\n /* \"#utility.yul\":2348:2356 */\n dup4\n /* \"#utility.yul\":2344:2376 */\n add\n /* \"#utility.yul\":2341:2382 */\n gt\n /* \"#utility.yul\":2338:2466 */\n iszero\n tag_798\n jumpi\n /* \"#utility.yul\":2385:2464 */\n tag_799\n tag_694\n jump\t// in\n tag_799:\n /* \"#utility.yul\":2338:2466 */\n tag_798:\n /* \"#utility.yul\":1904:2472 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2478:3037 */\n tag_64:\n /* \"#utility.yul\":2564:2570 */\n 0x00\n /* \"#utility.yul\":2572:2578 */\n dup1\n /* \"#utility.yul\":2621:2623 */\n 0x20\n /* \"#utility.yul\":2609:2618 */\n dup4\n /* \"#utility.yul\":2600:2607 */\n dup6\n /* \"#utility.yul\":2596:2619 */\n sub\n /* \"#utility.yul\":2592:2624 */\n slt\n /* \"#utility.yul\":2589:2708 */\n iszero\n tag_801\n jumpi\n /* \"#utility.yul\":2627:2706 */\n tag_802\n tag_685\n jump\t// in\n tag_802:\n /* \"#utility.yul\":2589:2708 */\n tag_801:\n /* \"#utility.yul\":2775:2776 */\n 0x00\n /* \"#utility.yul\":2764:2773 */\n dup4\n /* \"#utility.yul\":2760:2777 */\n add\n /* \"#utility.yul\":2747:2778 */\n calldataload\n /* \"#utility.yul\":2805:2823 */\n 0xffffffffffffffff\n /* \"#utility.yul\":2797:2803 */\n dup2\n /* \"#utility.yul\":2794:2824 */\n gt\n /* \"#utility.yul\":2791:2908 */\n iszero\n tag_803\n jumpi\n /* \"#utility.yul\":2827:2906 */\n tag_804\n tag_686\n jump\t// in\n tag_804:\n /* \"#utility.yul\":2791:2908 */\n tag_803:\n /* \"#utility.yul\":2940:3020 */\n tag_805\n /* \"#utility.yul\":3012:3019 */\n dup6\n /* \"#utility.yul\":3003:3009 */\n dup3\n /* \"#utility.yul\":2992:3001 */\n dup7\n /* \"#utility.yul\":2988:3010 */\n add\n /* \"#utility.yul\":2940:3020 */\n tag_695\n jump\t// in\n tag_805:\n /* \"#utility.yul\":2922:3020 */\n swap3\n pop\n swap3\n pop\n /* \"#utility.yul\":2718:3030 */\n pop\n /* \"#utility.yul\":2478:3037 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3043:3169 */\n tag_696:\n /* \"#utility.yul\":3080:3087 */\n 0x00\n /* \"#utility.yul\":3120:3162 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":3113:3118 */\n dup3\n /* \"#utility.yul\":3109:3163 */\n and\n /* \"#utility.yul\":3098:3163 */\n swap1\n pop\n /* \"#utility.yul\":3043:3169 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3175:3271 */\n tag_697:\n /* \"#utility.yul\":3212:3219 */\n 0x00\n /* \"#utility.yul\":3241:3265 */\n tag_808\n /* \"#utility.yul\":3259:3264 */\n dup3\n /* \"#utility.yul\":3241:3265 */\n tag_696\n jump\t// in\n tag_808:\n /* \"#utility.yul\":3230:3265 */\n swap1\n pop\n /* \"#utility.yul\":3175:3271 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3277:3399 */\n tag_698:\n /* \"#utility.yul\":3350:3374 */\n tag_810\n /* \"#utility.yul\":3368:3373 */\n dup2\n /* \"#utility.yul\":3350:3374 */\n tag_697\n jump\t// in\n tag_810:\n /* \"#utility.yul\":3343:3348 */\n dup2\n /* \"#utility.yul\":3340:3375 */\n eq\n /* \"#utility.yul\":3330:3393 */\n tag_811\n jumpi\n /* \"#utility.yul\":3389:3390 */\n 0x00\n /* \"#utility.yul\":3386:3387 */\n dup1\n /* \"#utility.yul\":3379:3391 */\n revert\n /* \"#utility.yul\":3330:3393 */\n tag_811:\n /* \"#utility.yul\":3277:3399 */\n pop\n jump\t// out\n /* \"#utility.yul\":3405:3544 */\n tag_699:\n /* \"#utility.yul\":3451:3456 */\n 0x00\n /* \"#utility.yul\":3489:3495 */\n dup2\n /* \"#utility.yul\":3476:3496 */\n calldataload\n /* \"#utility.yul\":3467:3496 */\n swap1\n pop\n /* \"#utility.yul\":3505:3538 */\n tag_813\n /* \"#utility.yul\":3532:3537 */\n dup2\n /* \"#utility.yul\":3505:3538 */\n tag_698\n jump\t// in\n tag_813:\n /* \"#utility.yul\":3405:3544 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3550:3879 */\n tag_69:\n /* \"#utility.yul\":3609:3615 */\n 0x00\n /* \"#utility.yul\":3658:3660 */\n 0x20\n /* \"#utility.yul\":3646:3655 */\n dup3\n /* \"#utility.yul\":3637:3644 */\n dup5\n /* \"#utility.yul\":3633:3656 */\n sub\n /* \"#utility.yul\":3629:3661 */\n slt\n /* \"#utility.yul\":3626:3745 */\n iszero\n tag_815\n jumpi\n /* \"#utility.yul\":3664:3743 */\n tag_816\n tag_685\n jump\t// in\n tag_816:\n /* \"#utility.yul\":3626:3745 */\n tag_815:\n /* \"#utility.yul\":3784:3785 */\n 0x00\n /* \"#utility.yul\":3809:3862 */\n tag_817\n /* \"#utility.yul\":3854:3861 */\n dup5\n /* \"#utility.yul\":3845:3851 */\n dup3\n /* \"#utility.yul\":3834:3843 */\n dup6\n /* \"#utility.yul\":3830:3852 */\n add\n /* \"#utility.yul\":3809:3862 */\n tag_699\n jump\t// in\n tag_817:\n /* \"#utility.yul\":3799:3862 */\n swap2\n pop\n /* \"#utility.yul\":3755:3872 */\n pop\n /* \"#utility.yul\":3550:3879 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3885:4003 */\n tag_700:\n /* \"#utility.yul\":3972:3996 */\n tag_819\n /* \"#utility.yul\":3990:3995 */\n dup2\n /* \"#utility.yul\":3972:3996 */\n tag_697\n jump\t// in\n tag_819:\n /* \"#utility.yul\":3967:3970 */\n dup3\n /* \"#utility.yul\":3960:3997 */\n mstore\n /* \"#utility.yul\":3885:4003 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4009:4231 */\n tag_76:\n /* \"#utility.yul\":4102:4106 */\n 0x00\n /* \"#utility.yul\":4140:4142 */\n 0x20\n /* \"#utility.yul\":4129:4138 */\n dup3\n /* \"#utility.yul\":4125:4143 */\n add\n /* \"#utility.yul\":4117:4143 */\n swap1\n pop\n /* \"#utility.yul\":4153:4224 */\n tag_821\n /* \"#utility.yul\":4221:4222 */\n 0x00\n /* \"#utility.yul\":4210:4219 */\n dup4\n /* \"#utility.yul\":4206:4223 */\n add\n /* \"#utility.yul\":4197:4203 */\n dup5\n /* \"#utility.yul\":4153:4224 */\n tag_700\n jump\t// in\n tag_821:\n /* \"#utility.yul\":4009:4231 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4237:4353 */\n tag_701:\n /* \"#utility.yul\":4307:4328 */\n tag_823\n /* \"#utility.yul\":4322:4327 */\n dup2\n /* \"#utility.yul\":4307:4328 */\n tag_690\n jump\t// in\n tag_823:\n /* \"#utility.yul\":4300:4305 */\n dup2\n /* \"#utility.yul\":4297:4329 */\n eq\n /* \"#utility.yul\":4287:4347 */\n tag_824\n jumpi\n /* \"#utility.yul\":4343:4344 */\n 0x00\n /* \"#utility.yul\":4340:4341 */\n dup1\n /* \"#utility.yul\":4333:4345 */\n revert\n /* \"#utility.yul\":4287:4347 */\n tag_824:\n /* \"#utility.yul\":4237:4353 */\n pop\n jump\t// out\n /* \"#utility.yul\":4359:4492 */\n tag_702:\n /* \"#utility.yul\":4402:4407 */\n 0x00\n /* \"#utility.yul\":4440:4446 */\n dup2\n /* \"#utility.yul\":4427:4447 */\n calldataload\n /* \"#utility.yul\":4418:4447 */\n swap1\n pop\n /* \"#utility.yul\":4456:4486 */\n tag_826\n /* \"#utility.yul\":4480:4485 */\n dup2\n /* \"#utility.yul\":4456:4486 */\n tag_701\n jump\t// in\n tag_826:\n /* \"#utility.yul\":4359:4492 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4498:4821 */\n tag_95:\n /* \"#utility.yul\":4554:4560 */\n 0x00\n /* \"#utility.yul\":4603:4605 */\n 0x20\n /* \"#utility.yul\":4591:4600 */\n dup3\n /* \"#utility.yul\":4582:4589 */\n dup5\n /* \"#utility.yul\":4578:4601 */\n sub\n /* \"#utility.yul\":4574:4606 */\n slt\n /* \"#utility.yul\":4571:4690 */\n iszero\n tag_828\n jumpi\n /* \"#utility.yul\":4609:4688 */\n tag_829\n tag_685\n jump\t// in\n tag_829:\n /* \"#utility.yul\":4571:4690 */\n tag_828:\n /* \"#utility.yul\":4729:4730 */\n 0x00\n /* \"#utility.yul\":4754:4804 */\n tag_830\n /* \"#utility.yul\":4796:4803 */\n dup5\n /* \"#utility.yul\":4787:4793 */\n dup3\n /* \"#utility.yul\":4776:4785 */\n dup6\n /* \"#utility.yul\":4772:4794 */\n add\n /* \"#utility.yul\":4754:4804 */\n tag_702\n jump\t// in\n tag_830:\n /* \"#utility.yul\":4744:4804 */\n swap2\n pop\n /* \"#utility.yul\":4700:4814 */\n pop\n /* \"#utility.yul\":4498:4821 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4827:4904 */\n tag_703:\n /* \"#utility.yul\":4864:4871 */\n 0x00\n /* \"#utility.yul\":4893:4898 */\n dup2\n /* \"#utility.yul\":4882:4898 */\n swap1\n pop\n /* \"#utility.yul\":4827:4904 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4910:5032 */\n tag_704:\n /* \"#utility.yul\":4983:5007 */\n tag_833\n /* \"#utility.yul\":5001:5006 */\n dup2\n /* \"#utility.yul\":4983:5007 */\n tag_703\n jump\t// in\n tag_833:\n /* \"#utility.yul\":4976:4981 */\n dup2\n /* \"#utility.yul\":4973:5008 */\n eq\n /* \"#utility.yul\":4963:5026 */\n tag_834\n jumpi\n /* \"#utility.yul\":5022:5023 */\n 0x00\n /* \"#utility.yul\":5019:5020 */\n dup1\n /* \"#utility.yul\":5012:5024 */\n revert\n /* \"#utility.yul\":4963:5026 */\n tag_834:\n /* \"#utility.yul\":4910:5032 */\n pop\n jump\t// out\n /* \"#utility.yul\":5038:5177 */\n tag_705:\n /* \"#utility.yul\":5084:5089 */\n 0x00\n /* \"#utility.yul\":5122:5128 */\n dup2\n /* \"#utility.yul\":5109:5129 */\n calldataload\n /* \"#utility.yul\":5100:5129 */\n swap1\n pop\n /* \"#utility.yul\":5138:5171 */\n tag_836\n /* \"#utility.yul\":5165:5170 */\n dup2\n /* \"#utility.yul\":5138:5171 */\n tag_704\n jump\t// in\n tag_836:\n /* \"#utility.yul\":5038:5177 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5183:5512 */\n tag_104:\n /* \"#utility.yul\":5242:5248 */\n 0x00\n /* \"#utility.yul\":5291:5293 */\n 0x20\n /* \"#utility.yul\":5279:5288 */\n dup3\n /* \"#utility.yul\":5270:5277 */\n dup5\n /* \"#utility.yul\":5266:5289 */\n sub\n /* \"#utility.yul\":5262:5294 */\n slt\n /* \"#utility.yul\":5259:5378 */\n iszero\n tag_838\n jumpi\n /* \"#utility.yul\":5297:5376 */\n tag_839\n tag_685\n jump\t// in\n tag_839:\n /* \"#utility.yul\":5259:5378 */\n tag_838:\n /* \"#utility.yul\":5417:5418 */\n 0x00\n /* \"#utility.yul\":5442:5495 */\n tag_840\n /* \"#utility.yul\":5487:5494 */\n dup5\n /* \"#utility.yul\":5478:5484 */\n dup3\n /* \"#utility.yul\":5467:5476 */\n dup6\n /* \"#utility.yul\":5463:5485 */\n add\n /* \"#utility.yul\":5442:5495 */\n tag_705\n jump\t// in\n tag_840:\n /* \"#utility.yul\":5432:5495 */\n swap2\n pop\n /* \"#utility.yul\":5388:5505 */\n pop\n /* \"#utility.yul\":5183:5512 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5518:5636 */\n tag_706:\n /* \"#utility.yul\":5605:5629 */\n tag_842\n /* \"#utility.yul\":5623:5628 */\n dup2\n /* \"#utility.yul\":5605:5629 */\n tag_703\n jump\t// in\n tag_842:\n /* \"#utility.yul\":5600:5603 */\n dup3\n /* \"#utility.yul\":5593:5630 */\n mstore\n /* \"#utility.yul\":5518:5636 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5642:5864 */\n tag_107:\n /* \"#utility.yul\":5735:5739 */\n 0x00\n /* \"#utility.yul\":5773:5775 */\n 0x20\n /* \"#utility.yul\":5762:5771 */\n dup3\n /* \"#utility.yul\":5758:5776 */\n add\n /* \"#utility.yul\":5750:5776 */\n swap1\n pop\n /* \"#utility.yul\":5786:5857 */\n tag_844\n /* \"#utility.yul\":5854:5855 */\n 0x00\n /* \"#utility.yul\":5843:5852 */\n dup4\n /* \"#utility.yul\":5839:5856 */\n add\n /* \"#utility.yul\":5830:5836 */\n dup5\n /* \"#utility.yul\":5786:5857 */\n tag_706\n jump\t// in\n tag_844:\n /* \"#utility.yul\":5642:5864 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5870:5947 */\n tag_707:\n /* \"#utility.yul\":5907:5914 */\n 0x00\n /* \"#utility.yul\":5936:5941 */\n dup2\n /* \"#utility.yul\":5925:5941 */\n swap1\n pop\n /* \"#utility.yul\":5870:5947 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":5953:6071 */\n tag_708:\n /* \"#utility.yul\":6040:6064 */\n tag_847\n /* \"#utility.yul\":6058:6063 */\n dup2\n /* \"#utility.yul\":6040:6064 */\n tag_707\n jump\t// in\n tag_847:\n /* \"#utility.yul\":6035:6038 */\n dup3\n /* \"#utility.yul\":6028:6065 */\n mstore\n /* \"#utility.yul\":5953:6071 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6077:6299 */\n tag_117:\n /* \"#utility.yul\":6170:6174 */\n 0x00\n /* \"#utility.yul\":6208:6210 */\n 0x20\n /* \"#utility.yul\":6197:6206 */\n dup3\n /* \"#utility.yul\":6193:6211 */\n add\n /* \"#utility.yul\":6185:6211 */\n swap1\n pop\n /* \"#utility.yul\":6221:6292 */\n tag_849\n /* \"#utility.yul\":6289:6290 */\n 0x00\n /* \"#utility.yul\":6278:6287 */\n dup4\n /* \"#utility.yul\":6274:6291 */\n add\n /* \"#utility.yul\":6265:6271 */\n dup5\n /* \"#utility.yul\":6221:6292 */\n tag_708\n jump\t// in\n tag_849:\n /* \"#utility.yul\":6077:6299 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6305:6779 */\n tag_129:\n /* \"#utility.yul\":6373:6379 */\n 0x00\n /* \"#utility.yul\":6381:6387 */\n dup1\n /* \"#utility.yul\":6430:6432 */\n 0x40\n /* \"#utility.yul\":6418:6427 */\n dup4\n /* \"#utility.yul\":6409:6416 */\n dup6\n /* \"#utility.yul\":6405:6428 */\n sub\n /* \"#utility.yul\":6401:6433 */\n slt\n /* \"#utility.yul\":6398:6517 */\n iszero\n tag_851\n jumpi\n /* \"#utility.yul\":6436:6515 */\n tag_852\n tag_685\n jump\t// in\n tag_852:\n /* \"#utility.yul\":6398:6517 */\n tag_851:\n /* \"#utility.yul\":6556:6557 */\n 0x00\n /* \"#utility.yul\":6581:6634 */\n tag_853\n /* \"#utility.yul\":6626:6633 */\n dup6\n /* \"#utility.yul\":6617:6623 */\n dup3\n /* \"#utility.yul\":6606:6615 */\n dup7\n /* \"#utility.yul\":6602:6624 */\n add\n /* \"#utility.yul\":6581:6634 */\n tag_705\n jump\t// in\n tag_853:\n /* \"#utility.yul\":6571:6634 */\n swap3\n pop\n /* \"#utility.yul\":6527:6644 */\n pop\n /* \"#utility.yul\":6683:6685 */\n 0x20\n /* \"#utility.yul\":6709:6762 */\n tag_854\n /* \"#utility.yul\":6754:6761 */\n dup6\n /* \"#utility.yul\":6745:6751 */\n dup3\n /* \"#utility.yul\":6734:6743 */\n dup7\n /* \"#utility.yul\":6730:6752 */\n add\n /* \"#utility.yul\":6709:6762 */\n tag_699\n jump\t// in\n tag_854:\n /* \"#utility.yul\":6699:6762 */\n swap2\n pop\n /* \"#utility.yul\":6654:6772 */\n pop\n /* \"#utility.yul\":6305:6779 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6785:6907 */\n tag_709:\n /* \"#utility.yul\":6858:6882 */\n tag_856\n /* \"#utility.yul\":6876:6881 */\n dup2\n /* \"#utility.yul\":6858:6882 */\n tag_707\n jump\t// in\n tag_856:\n /* \"#utility.yul\":6851:6856 */\n dup2\n /* \"#utility.yul\":6848:6883 */\n eq\n /* \"#utility.yul\":6838:6901 */\n tag_857\n jumpi\n /* \"#utility.yul\":6897:6898 */\n 0x00\n /* \"#utility.yul\":6894:6895 */\n dup1\n /* \"#utility.yul\":6887:6899 */\n revert\n /* \"#utility.yul\":6838:6901 */\n tag_857:\n /* \"#utility.yul\":6785:6907 */\n pop\n jump\t// out\n /* \"#utility.yul\":6913:7052 */\n tag_710:\n /* \"#utility.yul\":6959:6964 */\n 0x00\n /* \"#utility.yul\":6997:7003 */\n dup2\n /* \"#utility.yul\":6984:7004 */\n calldataload\n /* \"#utility.yul\":6975:7004 */\n swap1\n pop\n /* \"#utility.yul\":7013:7046 */\n tag_859\n /* \"#utility.yul\":7040:7045 */\n dup2\n /* \"#utility.yul\":7013:7046 */\n tag_709\n jump\t// in\n tag_859:\n /* \"#utility.yul\":6913:7052 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7058:7387 */\n tag_134:\n /* \"#utility.yul\":7117:7123 */\n 0x00\n /* \"#utility.yul\":7166:7168 */\n 0x20\n /* \"#utility.yul\":7154:7163 */\n dup3\n /* \"#utility.yul\":7145:7152 */\n dup5\n /* \"#utility.yul\":7141:7164 */\n sub\n /* \"#utility.yul\":7137:7169 */\n slt\n /* \"#utility.yul\":7134:7253 */\n iszero\n tag_861\n jumpi\n /* \"#utility.yul\":7172:7251 */\n tag_862\n tag_685\n jump\t// in\n tag_862:\n /* \"#utility.yul\":7134:7253 */\n tag_861:\n /* \"#utility.yul\":7292:7293 */\n 0x00\n /* \"#utility.yul\":7317:7370 */\n tag_863\n /* \"#utility.yul\":7362:7369 */\n dup5\n /* \"#utility.yul\":7353:7359 */\n dup3\n /* \"#utility.yul\":7342:7351 */\n dup6\n /* \"#utility.yul\":7338:7360 */\n add\n /* \"#utility.yul\":7317:7370 */\n tag_710\n jump\t// in\n tag_863:\n /* \"#utility.yul\":7307:7370 */\n swap2\n pop\n /* \"#utility.yul\":7263:7380 */\n pop\n /* \"#utility.yul\":7058:7387 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7393:8327 */\n tag_143:\n /* \"#utility.yul\":7515:7521 */\n 0x00\n /* \"#utility.yul\":7523:7529 */\n dup1\n /* \"#utility.yul\":7531:7537 */\n 0x00\n /* \"#utility.yul\":7539:7545 */\n dup1\n /* \"#utility.yul\":7588:7590 */\n 0x40\n /* \"#utility.yul\":7576:7585 */\n dup6\n /* \"#utility.yul\":7567:7574 */\n dup8\n /* \"#utility.yul\":7563:7586 */\n sub\n /* \"#utility.yul\":7559:7591 */\n slt\n /* \"#utility.yul\":7556:7675 */\n iszero\n tag_865\n jumpi\n /* \"#utility.yul\":7594:7673 */\n tag_866\n tag_685\n jump\t// in\n tag_866:\n /* \"#utility.yul\":7556:7675 */\n tag_865:\n /* \"#utility.yul\":7742:7743 */\n 0x00\n /* \"#utility.yul\":7731:7740 */\n dup6\n /* \"#utility.yul\":7727:7744 */\n add\n /* \"#utility.yul\":7714:7745 */\n calldataload\n /* \"#utility.yul\":7772:7790 */\n 0xffffffffffffffff\n /* \"#utility.yul\":7764:7770 */\n dup2\n /* \"#utility.yul\":7761:7791 */\n gt\n /* \"#utility.yul\":7758:7875 */\n iszero\n tag_867\n jumpi\n /* \"#utility.yul\":7794:7873 */\n tag_868\n tag_686\n jump\t// in\n tag_868:\n /* \"#utility.yul\":7758:7875 */\n tag_867:\n /* \"#utility.yul\":7907:7987 */\n tag_869\n /* \"#utility.yul\":7979:7986 */\n dup8\n /* \"#utility.yul\":7970:7976 */\n dup3\n /* \"#utility.yul\":7959:7968 */\n dup9\n /* \"#utility.yul\":7955:7977 */\n add\n /* \"#utility.yul\":7907:7987 */\n tag_695\n jump\t// in\n tag_869:\n /* \"#utility.yul\":7889:7987 */\n swap5\n pop\n swap5\n pop\n /* \"#utility.yul\":7685:7997 */\n pop\n /* \"#utility.yul\":8064:8066 */\n 0x20\n /* \"#utility.yul\":8053:8062 */\n dup6\n /* \"#utility.yul\":8049:8067 */\n add\n /* \"#utility.yul\":8036:8068 */\n calldataload\n /* \"#utility.yul\":8095:8113 */\n 0xffffffffffffffff\n /* \"#utility.yul\":8087:8093 */\n dup2\n /* \"#utility.yul\":8084:8114 */\n gt\n /* \"#utility.yul\":8081:8198 */\n iszero\n tag_870\n jumpi\n /* \"#utility.yul\":8117:8196 */\n tag_871\n tag_686\n jump\t// in\n tag_871:\n /* \"#utility.yul\":8081:8198 */\n tag_870:\n /* \"#utility.yul\":8230:8310 */\n tag_872\n /* \"#utility.yul\":8302:8309 */\n dup8\n /* \"#utility.yul\":8293:8299 */\n dup3\n /* \"#utility.yul\":8282:8291 */\n dup9\n /* \"#utility.yul\":8278:8300 */\n add\n /* \"#utility.yul\":8230:8310 */\n tag_695\n jump\t// in\n tag_872:\n /* \"#utility.yul\":8212:8310 */\n swap3\n pop\n swap3\n pop\n /* \"#utility.yul\":8007:8320 */\n pop\n /* \"#utility.yul\":7393:8327 */\n swap3\n swap6\n swap2\n swap5\n pop\n swap3\n pop\n jump\t// out\n /* \"#utility.yul\":8333:9037 */\n tag_152:\n /* \"#utility.yul\":8428:8434 */\n 0x00\n /* \"#utility.yul\":8436:8442 */\n dup1\n /* \"#utility.yul\":8444:8450 */\n 0x00\n /* \"#utility.yul\":8493:8495 */\n 0x40\n /* \"#utility.yul\":8481:8490 */\n dup5\n /* \"#utility.yul\":8472:8479 */\n dup7\n /* \"#utility.yul\":8468:8491 */\n sub\n /* \"#utility.yul\":8464:8496 */\n slt\n /* \"#utility.yul\":8461:8580 */\n iszero\n tag_874\n jumpi\n /* \"#utility.yul\":8499:8578 */\n tag_875\n tag_685\n jump\t// in\n tag_875:\n /* \"#utility.yul\":8461:8580 */\n tag_874:\n /* \"#utility.yul\":8647:8648 */\n 0x00\n /* \"#utility.yul\":8636:8645 */\n dup5\n /* \"#utility.yul\":8632:8649 */\n add\n /* \"#utility.yul\":8619:8650 */\n calldataload\n /* \"#utility.yul\":8677:8695 */\n 0xffffffffffffffff\n /* \"#utility.yul\":8669:8675 */\n dup2\n /* \"#utility.yul\":8666:8696 */\n gt\n /* \"#utility.yul\":8663:8780 */\n iszero\n tag_876\n jumpi\n /* \"#utility.yul\":8699:8778 */\n tag_877\n tag_686\n jump\t// in\n tag_877:\n /* \"#utility.yul\":8663:8780 */\n tag_876:\n /* \"#utility.yul\":8812:8892 */\n tag_878\n /* \"#utility.yul\":8884:8891 */\n dup7\n /* \"#utility.yul\":8875:8881 */\n dup3\n /* \"#utility.yul\":8864:8873 */\n dup8\n /* \"#utility.yul\":8860:8882 */\n add\n /* \"#utility.yul\":8812:8892 */\n tag_695\n jump\t// in\n tag_878:\n /* \"#utility.yul\":8794:8892 */\n swap4\n pop\n swap4\n pop\n /* \"#utility.yul\":8590:8902 */\n pop\n /* \"#utility.yul\":8941:8943 */\n 0x20\n /* \"#utility.yul\":8967:9020 */\n tag_879\n /* \"#utility.yul\":9012:9019 */\n dup7\n /* \"#utility.yul\":9003:9009 */\n dup3\n /* \"#utility.yul\":8992:9001 */\n dup8\n /* \"#utility.yul\":8988:9010 */\n add\n /* \"#utility.yul\":8967:9020 */\n tag_699\n jump\t// in\n tag_879:\n /* \"#utility.yul\":8957:9020 */\n swap2\n pop\n /* \"#utility.yul\":8912:9030 */\n pop\n /* \"#utility.yul\":8333:9037 */\n swap3\n pop\n swap3\n pop\n swap3\n jump\t// out\n /* \"#utility.yul\":9043:9517 */\n tag_203:\n /* \"#utility.yul\":9111:9117 */\n 0x00\n /* \"#utility.yul\":9119:9125 */\n dup1\n /* \"#utility.yul\":9168:9170 */\n 0x40\n /* \"#utility.yul\":9156:9165 */\n dup4\n /* \"#utility.yul\":9147:9154 */\n dup6\n /* \"#utility.yul\":9143:9166 */\n sub\n /* \"#utility.yul\":9139:9171 */\n slt\n /* \"#utility.yul\":9136:9255 */\n iszero\n tag_881\n jumpi\n /* \"#utility.yul\":9174:9253 */\n tag_882\n tag_685\n jump\t// in\n tag_882:\n /* \"#utility.yul\":9136:9255 */\n tag_881:\n /* \"#utility.yul\":9294:9295 */\n 0x00\n /* \"#utility.yul\":9319:9372 */\n tag_883\n /* \"#utility.yul\":9364:9371 */\n dup6\n /* \"#utility.yul\":9355:9361 */\n dup3\n /* \"#utility.yul\":9344:9353 */\n dup7\n /* \"#utility.yul\":9340:9362 */\n add\n /* \"#utility.yul\":9319:9372 */\n tag_699\n jump\t// in\n tag_883:\n /* \"#utility.yul\":9309:9372 */\n swap3\n pop\n /* \"#utility.yul\":9265:9382 */\n pop\n /* \"#utility.yul\":9421:9423 */\n 0x20\n /* \"#utility.yul\":9447:9500 */\n tag_884\n /* \"#utility.yul\":9492:9499 */\n dup6\n /* \"#utility.yul\":9483:9489 */\n dup3\n /* \"#utility.yul\":9472:9481 */\n dup7\n /* \"#utility.yul\":9468:9490 */\n add\n /* \"#utility.yul\":9447:9500 */\n tag_699\n jump\t// in\n tag_884:\n /* \"#utility.yul\":9437:9500 */\n swap2\n pop\n /* \"#utility.yul\":9392:9510 */\n pop\n /* \"#utility.yul\":9043:9517 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9523:11354 */\n tag_224:\n /* \"#utility.yul\":9726:9732 */\n 0x00\n /* \"#utility.yul\":9734:9740 */\n dup1\n /* \"#utility.yul\":9742:9748 */\n 0x00\n /* \"#utility.yul\":9750:9756 */\n dup1\n /* \"#utility.yul\":9758:9764 */\n 0x00\n /* \"#utility.yul\":9766:9772 */\n dup1\n /* \"#utility.yul\":9774:9780 */\n 0x00\n /* \"#utility.yul\":9782:9788 */\n dup1\n /* \"#utility.yul\":9790:9796 */\n 0x00\n /* \"#utility.yul\":9839:9842 */\n 0xa0\n /* \"#utility.yul\":9827:9836 */\n dup11\n /* \"#utility.yul\":9818:9825 */\n dup13\n /* \"#utility.yul\":9814:9837 */\n sub\n /* \"#utility.yul\":9810:9843 */\n slt\n /* \"#utility.yul\":9807:9927 */\n iszero\n tag_886\n jumpi\n /* \"#utility.yul\":9846:9925 */\n tag_887\n tag_685\n jump\t// in\n tag_887:\n /* \"#utility.yul\":9807:9927 */\n tag_886:\n /* \"#utility.yul\":9994:9995 */\n 0x00\n /* \"#utility.yul\":9983:9992 */\n dup11\n /* \"#utility.yul\":9979:9996 */\n add\n /* \"#utility.yul\":9966:9997 */\n calldataload\n /* \"#utility.yul\":10024:10042 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10016:10022 */\n dup2\n /* \"#utility.yul\":10013:10043 */\n gt\n /* \"#utility.yul\":10010:10127 */\n iszero\n tag_888\n jumpi\n /* \"#utility.yul\":10046:10125 */\n tag_889\n tag_686\n jump\t// in\n tag_889:\n /* \"#utility.yul\":10010:10127 */\n tag_888:\n /* \"#utility.yul\":10159:10239 */\n tag_890\n /* \"#utility.yul\":10231:10238 */\n dup13\n /* \"#utility.yul\":10222:10228 */\n dup3\n /* \"#utility.yul\":10211:10220 */\n dup14\n /* \"#utility.yul\":10207:10229 */\n add\n /* \"#utility.yul\":10159:10239 */\n tag_695\n jump\t// in\n tag_890:\n /* \"#utility.yul\":10141:10239 */\n swap10\n pop\n swap10\n pop\n /* \"#utility.yul\":9937:10249 */\n pop\n /* \"#utility.yul\":10316:10318 */\n 0x20\n /* \"#utility.yul\":10305:10314 */\n dup11\n /* \"#utility.yul\":10301:10319 */\n add\n /* \"#utility.yul\":10288:10320 */\n calldataload\n /* \"#utility.yul\":10347:10365 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10339:10345 */\n dup2\n /* \"#utility.yul\":10336:10366 */\n gt\n /* \"#utility.yul\":10333:10450 */\n iszero\n tag_891\n jumpi\n /* \"#utility.yul\":10369:10448 */\n tag_892\n tag_686\n jump\t// in\n tag_892:\n /* \"#utility.yul\":10333:10450 */\n tag_891:\n /* \"#utility.yul\":10482:10562 */\n tag_893\n /* \"#utility.yul\":10554:10561 */\n dup13\n /* \"#utility.yul\":10545:10551 */\n dup3\n /* \"#utility.yul\":10534:10543 */\n dup14\n /* \"#utility.yul\":10530:10552 */\n add\n /* \"#utility.yul\":10482:10562 */\n tag_695\n jump\t// in\n tag_893:\n /* \"#utility.yul\":10464:10562 */\n swap8\n pop\n swap8\n pop\n /* \"#utility.yul\":10259:10572 */\n pop\n /* \"#utility.yul\":10639:10641 */\n 0x40\n /* \"#utility.yul\":10628:10637 */\n dup11\n /* \"#utility.yul\":10624:10642 */\n add\n /* \"#utility.yul\":10611:10643 */\n calldataload\n /* \"#utility.yul\":10670:10688 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10662:10668 */\n dup2\n /* \"#utility.yul\":10659:10689 */\n gt\n /* \"#utility.yul\":10656:10773 */\n iszero\n tag_894\n jumpi\n /* \"#utility.yul\":10692:10771 */\n tag_895\n tag_686\n jump\t// in\n tag_895:\n /* \"#utility.yul\":10656:10773 */\n tag_894:\n /* \"#utility.yul\":10805:10885 */\n tag_896\n /* \"#utility.yul\":10877:10884 */\n dup13\n /* \"#utility.yul\":10868:10874 */\n dup3\n /* \"#utility.yul\":10857:10866 */\n dup14\n /* \"#utility.yul\":10853:10875 */\n add\n /* \"#utility.yul\":10805:10885 */\n tag_695\n jump\t// in\n tag_896:\n /* \"#utility.yul\":10787:10885 */\n swap6\n pop\n swap6\n pop\n /* \"#utility.yul\":10582:10895 */\n pop\n /* \"#utility.yul\":10962:10964 */\n 0x60\n /* \"#utility.yul\":10951:10960 */\n dup11\n /* \"#utility.yul\":10947:10965 */\n add\n /* \"#utility.yul\":10934:10966 */\n calldataload\n /* \"#utility.yul\":10993:11011 */\n 0xffffffffffffffff\n /* \"#utility.yul\":10985:10991 */\n dup2\n /* \"#utility.yul\":10982:11012 */\n gt\n /* \"#utility.yul\":10979:11096 */\n iszero\n tag_897\n jumpi\n /* \"#utility.yul\":11015:11094 */\n tag_898\n tag_686\n jump\t// in\n tag_898:\n /* \"#utility.yul\":10979:11096 */\n tag_897:\n /* \"#utility.yul\":11128:11208 */\n tag_899\n /* \"#utility.yul\":11200:11207 */\n dup13\n /* \"#utility.yul\":11191:11197 */\n dup3\n /* \"#utility.yul\":11180:11189 */\n dup14\n /* \"#utility.yul\":11176:11198 */\n add\n /* \"#utility.yul\":11128:11208 */\n tag_695\n jump\t// in\n tag_899:\n /* \"#utility.yul\":11110:11208 */\n swap4\n pop\n swap4\n pop\n /* \"#utility.yul\":10905:11218 */\n pop\n /* \"#utility.yul\":11257:11260 */\n 0x80\n /* \"#utility.yul\":11284:11337 */\n tag_900\n /* \"#utility.yul\":11329:11336 */\n dup13\n /* \"#utility.yul\":11320:11326 */\n dup3\n /* \"#utility.yul\":11309:11318 */\n dup14\n /* \"#utility.yul\":11305:11327 */\n add\n /* \"#utility.yul\":11284:11337 */\n tag_710\n jump\t// in\n tag_900:\n /* \"#utility.yul\":11274:11337 */\n swap2\n pop\n /* \"#utility.yul\":11228:11347 */\n pop\n /* \"#utility.yul\":9523:11354 */\n swap3\n swap6\n swap9\n pop\n swap3\n swap6\n swap9\n pop\n swap3\n swap6\n swap9\n jump\t// out\n /* \"#utility.yul\":11360:11834 */\n tag_229:\n /* \"#utility.yul\":11428:11434 */\n 0x00\n /* \"#utility.yul\":11436:11442 */\n dup1\n /* \"#utility.yul\":11485:11487 */\n 0x40\n /* \"#utility.yul\":11473:11482 */\n dup4\n /* \"#utility.yul\":11464:11471 */\n dup6\n /* \"#utility.yul\":11460:11483 */\n sub\n /* \"#utility.yul\":11456:11488 */\n slt\n /* \"#utility.yul\":11453:11572 */\n iszero\n tag_902\n jumpi\n /* \"#utility.yul\":11491:11570 */\n tag_903\n tag_685\n jump\t// in\n tag_903:\n /* \"#utility.yul\":11453:11572 */\n tag_902:\n /* \"#utility.yul\":11611:11612 */\n 0x00\n /* \"#utility.yul\":11636:11689 */\n tag_904\n /* \"#utility.yul\":11681:11688 */\n dup6\n /* \"#utility.yul\":11672:11678 */\n dup3\n /* \"#utility.yul\":11661:11670 */\n dup7\n /* \"#utility.yul\":11657:11679 */\n add\n /* \"#utility.yul\":11636:11689 */\n tag_699\n jump\t// in\n tag_904:\n /* \"#utility.yul\":11626:11689 */\n swap3\n pop\n /* \"#utility.yul\":11582:11699 */\n pop\n /* \"#utility.yul\":11738:11740 */\n 0x20\n /* \"#utility.yul\":11764:11817 */\n tag_905\n /* \"#utility.yul\":11809:11816 */\n dup6\n /* \"#utility.yul\":11800:11806 */\n dup3\n /* \"#utility.yul\":11789:11798 */\n dup7\n /* \"#utility.yul\":11785:11807 */\n add\n /* \"#utility.yul\":11764:11817 */\n tag_710\n jump\t// in\n tag_905:\n /* \"#utility.yul\":11754:11817 */\n swap2\n pop\n /* \"#utility.yul\":11709:11827 */\n pop\n /* \"#utility.yul\":11360:11834 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":11840:11954 */\n tag_711:\n /* \"#utility.yul\":11907:11913 */\n 0x00\n /* \"#utility.yul\":11941:11946 */\n dup2\n /* \"#utility.yul\":11935:11947 */\n mload\n /* \"#utility.yul\":11925:11947 */\n swap1\n pop\n /* \"#utility.yul\":11840:11954 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":11960:12144 */\n tag_712:\n /* \"#utility.yul\":12059:12070 */\n 0x00\n /* \"#utility.yul\":12093:12099 */\n dup3\n /* \"#utility.yul\":12088:12091 */\n dup3\n /* \"#utility.yul\":12081:12100 */\n mstore\n /* \"#utility.yul\":12133:12137 */\n 0x20\n /* \"#utility.yul\":12128:12131 */\n dup3\n /* \"#utility.yul\":12124:12138 */\n add\n /* \"#utility.yul\":12109:12138 */\n swap1\n pop\n /* \"#utility.yul\":11960:12144 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12150:12282 */\n tag_713:\n /* \"#utility.yul\":12217:12221 */\n 0x00\n /* \"#utility.yul\":12240:12243 */\n dup2\n /* \"#utility.yul\":12232:12243 */\n swap1\n pop\n /* \"#utility.yul\":12270:12274 */\n 0x20\n /* \"#utility.yul\":12265:12268 */\n dup3\n /* \"#utility.yul\":12261:12275 */\n add\n /* \"#utility.yul\":12253:12275 */\n swap1\n pop\n /* \"#utility.yul\":12150:12282 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":12288:12396 */\n tag_714:\n /* \"#utility.yul\":12365:12389 */\n tag_910\n /* \"#utility.yul\":12383:12388 */\n dup2\n /* \"#utility.yul\":12365:12389 */\n tag_707\n jump\t// in\n tag_910:\n /* \"#utility.yul\":12360:12363 */\n dup3\n /* \"#utility.yul\":12353:12390 */\n mstore\n /* \"#utility.yul\":12288:12396 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12402:12581 */\n tag_715:\n /* \"#utility.yul\":12471:12481 */\n 0x00\n /* \"#utility.yul\":12492:12538 */\n tag_912\n /* \"#utility.yul\":12534:12537 */\n dup4\n /* \"#utility.yul\":12526:12532 */\n dup4\n /* \"#utility.yul\":12492:12538 */\n tag_714\n jump\t// in\n tag_912:\n /* \"#utility.yul\":12570:12574 */\n 0x20\n /* \"#utility.yul\":12565:12568 */\n dup4\n /* \"#utility.yul\":12561:12575 */\n add\n /* \"#utility.yul\":12547:12575 */\n swap1\n pop\n /* \"#utility.yul\":12402:12581 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":12587:12700 */\n tag_716:\n /* \"#utility.yul\":12657:12661 */\n 0x00\n /* \"#utility.yul\":12689:12693 */\n 0x20\n /* \"#utility.yul\":12684:12687 */\n dup3\n /* \"#utility.yul\":12680:12694 */\n add\n /* \"#utility.yul\":12672:12694 */\n swap1\n pop\n /* \"#utility.yul\":12587:12700 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":12736:13468 */\n tag_717:\n /* \"#utility.yul\":12855:12858 */\n 0x00\n /* \"#utility.yul\":12884:12938 */\n tag_915\n /* \"#utility.yul\":12932:12937 */\n dup3\n /* \"#utility.yul\":12884:12938 */\n tag_711\n jump\t// in\n tag_915:\n /* \"#utility.yul\":12954:13040 */\n tag_916\n /* \"#utility.yul\":13033:13039 */\n dup2\n /* \"#utility.yul\":13028:13031 */\n dup6\n /* \"#utility.yul\":12954:13040 */\n tag_712\n jump\t// in\n tag_916:\n /* \"#utility.yul\":12947:13040 */\n swap4\n pop\n /* \"#utility.yul\":13064:13120 */\n tag_917\n /* \"#utility.yul\":13114:13119 */\n dup4\n /* \"#utility.yul\":13064:13120 */\n tag_713\n jump\t// in\n tag_917:\n /* \"#utility.yul\":13143:13150 */\n dup1\n /* \"#utility.yul\":13174:13175 */\n 0x00\n /* \"#utility.yul\":13159:13443 */\n tag_918:\n /* \"#utility.yul\":13184:13190 */\n dup4\n /* \"#utility.yul\":13181:13182 */\n dup2\n /* \"#utility.yul\":13178:13191 */\n lt\n /* \"#utility.yul\":13159:13443 */\n iszero\n tag_920\n jumpi\n /* \"#utility.yul\":13260:13266 */\n dup2\n /* \"#utility.yul\":13254:13267 */\n mload\n /* \"#utility.yul\":13287:13350 */\n tag_921\n /* \"#utility.yul\":13346:13349 */\n dup9\n /* \"#utility.yul\":13331:13344 */\n dup3\n /* \"#utility.yul\":13287:13350 */\n tag_715\n jump\t// in\n tag_921:\n /* \"#utility.yul\":13280:13350 */\n swap8\n pop\n /* \"#utility.yul\":13373:13433 */\n tag_922\n /* \"#utility.yul\":13426:13432 */\n dup4\n /* \"#utility.yul\":13373:13433 */\n tag_716\n jump\t// in\n tag_922:\n /* \"#utility.yul\":13363:13433 */\n swap3\n pop\n /* \"#utility.yul\":13219:13443 */\n pop\n /* \"#utility.yul\":13206:13207 */\n 0x01\n /* \"#utility.yul\":13203:13204 */\n dup2\n /* \"#utility.yul\":13199:13208 */\n add\n /* \"#utility.yul\":13194:13208 */\n swap1\n pop\n /* \"#utility.yul\":13159:13443 */\n jump(tag_918)\n tag_920:\n /* \"#utility.yul\":13163:13177 */\n pop\n /* \"#utility.yul\":13459:13462 */\n dup6\n /* \"#utility.yul\":13452:13462 */\n swap4\n pop\n /* \"#utility.yul\":12860:13468 */\n pop\n pop\n pop\n /* \"#utility.yul\":12736:13468 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":13474:13847 */\n tag_236:\n /* \"#utility.yul\":13617:13621 */\n 0x00\n /* \"#utility.yul\":13655:13657 */\n 0x20\n /* \"#utility.yul\":13644:13653 */\n dup3\n /* \"#utility.yul\":13640:13658 */\n add\n /* \"#utility.yul\":13632:13658 */\n swap1\n pop\n /* \"#utility.yul\":13704:13713 */\n dup2\n /* \"#utility.yul\":13698:13702 */\n dup2\n /* \"#utility.yul\":13694:13714 */\n sub\n /* \"#utility.yul\":13690:13691 */\n 0x00\n /* \"#utility.yul\":13679:13688 */\n dup4\n /* \"#utility.yul\":13675:13692 */\n add\n /* \"#utility.yul\":13668:13715 */\n mstore\n /* \"#utility.yul\":13732:13840 */\n tag_924\n /* \"#utility.yul\":13835:13839 */\n dup2\n /* \"#utility.yul\":13826:13832 */\n dup5\n /* \"#utility.yul\":13732:13840 */\n tag_717\n jump\t// in\n tag_924:\n /* \"#utility.yul\":13724:13840 */\n swap1\n pop\n /* \"#utility.yul\":13474:13847 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":13868:14447 */\n tag_718:\n /* \"#utility.yul\":13952:13960 */\n 0x00\n /* \"#utility.yul\":13962:13968 */\n dup1\n /* \"#utility.yul\":14012:14015 */\n dup4\n /* \"#utility.yul\":14005:14009 */\n 0x1f\n /* \"#utility.yul\":13997:14003 */\n dup5\n /* \"#utility.yul\":13993:14010 */\n add\n /* \"#utility.yul\":13989:14016 */\n slt\n /* \"#utility.yul\":13979:14101 */\n tag_926\n jumpi\n /* \"#utility.yul\":14020:14099 */\n tag_927\n tag_692\n jump\t// in\n tag_927:\n /* \"#utility.yul\":13979:14101 */\n tag_926:\n /* \"#utility.yul\":14133:14139 */\n dup3\n /* \"#utility.yul\":14120:14140 */\n calldataload\n /* \"#utility.yul\":14110:14140 */\n swap1\n pop\n /* \"#utility.yul\":14163:14181 */\n 0xffffffffffffffff\n /* \"#utility.yul\":14155:14161 */\n dup2\n /* \"#utility.yul\":14152:14182 */\n gt\n /* \"#utility.yul\":14149:14266 */\n iszero\n tag_928\n jumpi\n /* \"#utility.yul\":14185:14264 */\n tag_929\n tag_693\n jump\t// in\n tag_929:\n /* \"#utility.yul\":14149:14266 */\n tag_928:\n /* \"#utility.yul\":14299:14303 */\n 0x20\n /* \"#utility.yul\":14291:14297 */\n dup4\n /* \"#utility.yul\":14287:14304 */\n add\n /* \"#utility.yul\":14275:14304 */\n swap2\n pop\n /* \"#utility.yul\":14353:14356 */\n dup4\n /* \"#utility.yul\":14345:14349 */\n 0x20\n /* \"#utility.yul\":14337:14343 */\n dup3\n /* \"#utility.yul\":14333:14350 */\n mul\n /* \"#utility.yul\":14323:14331 */\n dup4\n /* \"#utility.yul\":14319:14351 */\n add\n /* \"#utility.yul\":14316:14357 */\n gt\n /* \"#utility.yul\":14313:14441 */\n iszero\n tag_930\n jumpi\n /* \"#utility.yul\":14360:14439 */\n tag_931\n tag_694\n jump\t// in\n tag_931:\n /* \"#utility.yul\":14313:14441 */\n tag_930:\n /* \"#utility.yul\":13868:14447 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":14453:15179 */\n tag_253:\n /* \"#utility.yul\":14559:14565 */\n 0x00\n /* \"#utility.yul\":14567:14573 */\n dup1\n /* \"#utility.yul\":14575:14581 */\n 0x00\n /* \"#utility.yul\":14624:14626 */\n 0x40\n /* \"#utility.yul\":14612:14621 */\n dup5\n /* \"#utility.yul\":14603:14610 */\n dup7\n /* \"#utility.yul\":14599:14622 */\n sub\n /* \"#utility.yul\":14595:14627 */\n slt\n /* \"#utility.yul\":14592:14711 */\n iszero\n tag_933\n jumpi\n /* \"#utility.yul\":14630:14709 */\n tag_934\n tag_685\n jump\t// in\n tag_934:\n /* \"#utility.yul\":14592:14711 */\n tag_933:\n /* \"#utility.yul\":14778:14779 */\n 0x00\n /* \"#utility.yul\":14767:14776 */\n dup5\n /* \"#utility.yul\":14763:14780 */\n add\n /* \"#utility.yul\":14750:14781 */\n calldataload\n /* \"#utility.yul\":14808:14826 */\n 0xffffffffffffffff\n /* \"#utility.yul\":14800:14806 */\n dup2\n /* \"#utility.yul\":14797:14827 */\n gt\n /* \"#utility.yul\":14794:14911 */\n iszero\n tag_935\n jumpi\n /* \"#utility.yul\":14830:14909 */\n tag_936\n tag_686\n jump\t// in\n tag_936:\n /* \"#utility.yul\":14794:14911 */\n tag_935:\n /* \"#utility.yul\":14943:15034 */\n tag_937\n /* \"#utility.yul\":15026:15033 */\n dup7\n /* \"#utility.yul\":15017:15023 */\n dup3\n /* \"#utility.yul\":15006:15015 */\n dup8\n /* \"#utility.yul\":15002:15024 */\n add\n /* \"#utility.yul\":14943:15034 */\n tag_718\n jump\t// in\n tag_937:\n /* \"#utility.yul\":14925:15034 */\n swap4\n pop\n swap4\n pop\n /* \"#utility.yul\":14721:15044 */\n pop\n /* \"#utility.yul\":15083:15085 */\n 0x20\n /* \"#utility.yul\":15109:15162 */\n tag_938\n /* \"#utility.yul\":15154:15161 */\n dup7\n /* \"#utility.yul\":15145:15151 */\n dup3\n /* \"#utility.yul\":15134:15143 */\n dup8\n /* \"#utility.yul\":15130:15152 */\n add\n /* \"#utility.yul\":15109:15162 */\n tag_699\n jump\t// in\n tag_938:\n /* \"#utility.yul\":15099:15162 */\n swap2\n pop\n /* \"#utility.yul\":15054:15172 */\n pop\n /* \"#utility.yul\":14453:15179 */\n swap3\n pop\n swap3\n pop\n swap3\n jump\t// out\n /* \"#utility.yul\":15185:15365 */\n tag_296:\n /* \"#utility.yul\":15233:15310 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":15230:15231 */\n 0x00\n /* \"#utility.yul\":15223:15311 */\n mstore\n /* \"#utility.yul\":15330:15334 */\n 0x41\n /* \"#utility.yul\":15327:15328 */\n 0x04\n /* \"#utility.yul\":15320:15335 */\n mstore\n /* \"#utility.yul\":15354:15358 */\n 0x24\n /* \"#utility.yul\":15351:15352 */\n 0x00\n /* \"#utility.yul\":15344:15359 */\n revert\n /* \"#utility.yul\":15371:15551 */\n tag_300:\n /* \"#utility.yul\":15419:15496 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":15416:15417 */\n 0x00\n /* \"#utility.yul\":15409:15497 */\n mstore\n /* \"#utility.yul\":15516:15520 */\n 0x32\n /* \"#utility.yul\":15513:15514 */\n 0x04\n /* \"#utility.yul\":15506:15521 */\n mstore\n /* \"#utility.yul\":15540:15544 */\n 0x24\n /* \"#utility.yul\":15537:15538 */\n 0x00\n /* \"#utility.yul\":15530:15545 */\n revert\n /* \"#utility.yul\":15557:15726 */\n tag_719:\n /* \"#utility.yul\":15641:15652 */\n 0x00\n /* \"#utility.yul\":15675:15681 */\n dup3\n /* \"#utility.yul\":15670:15673 */\n dup3\n /* \"#utility.yul\":15663:15682 */\n mstore\n /* \"#utility.yul\":15715:15719 */\n 0x20\n /* \"#utility.yul\":15710:15713 */\n dup3\n /* \"#utility.yul\":15706:15720 */\n add\n /* \"#utility.yul\":15691:15720 */\n swap1\n pop\n /* \"#utility.yul\":15557:15726 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":15732:15966 */\n tag_720:\n /* \"#utility.yul\":15872:15906 */\n 0x416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365\n /* \"#utility.yul\":15868:15869 */\n 0x00\n /* \"#utility.yul\":15860:15866 */\n dup3\n /* \"#utility.yul\":15856:15870 */\n add\n /* \"#utility.yul\":15849:15907 */\n mstore\n /* \"#utility.yul\":15941:15958 */\n 0x20726f6c657320666f722073656c660000000000000000000000000000000000\n /* \"#utility.yul\":15936:15938 */\n 0x20\n /* \"#utility.yul\":15928:15934 */\n dup3\n /* \"#utility.yul\":15924:15939 */\n add\n /* \"#utility.yul\":15917:15959 */\n mstore\n /* \"#utility.yul\":15732:15966 */\n pop\n jump\t// out\n /* \"#utility.yul\":15972:16338 */\n tag_721:\n /* \"#utility.yul\":16114:16117 */\n 0x00\n /* \"#utility.yul\":16135:16202 */\n tag_944\n /* \"#utility.yul\":16199:16201 */\n 0x2f\n /* \"#utility.yul\":16194:16197 */\n dup4\n /* \"#utility.yul\":16135:16202 */\n tag_719\n jump\t// in\n tag_944:\n /* \"#utility.yul\":16128:16202 */\n swap2\n pop\n /* \"#utility.yul\":16211:16304 */\n tag_945\n /* \"#utility.yul\":16300:16303 */\n dup3\n /* \"#utility.yul\":16211:16304 */\n tag_720\n jump\t// in\n tag_945:\n /* \"#utility.yul\":16329:16331 */\n 0x40\n /* \"#utility.yul\":16324:16327 */\n dup3\n /* \"#utility.yul\":16320:16332 */\n add\n /* \"#utility.yul\":16313:16332 */\n swap1\n pop\n /* \"#utility.yul\":15972:16338 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":16344:16763 */\n tag_326:\n /* \"#utility.yul\":16510:16514 */\n 0x00\n /* \"#utility.yul\":16548:16550 */\n 0x20\n /* \"#utility.yul\":16537:16546 */\n dup3\n /* \"#utility.yul\":16533:16551 */\n add\n /* \"#utility.yul\":16525:16551 */\n swap1\n pop\n /* \"#utility.yul\":16597:16606 */\n dup2\n /* \"#utility.yul\":16591:16595 */\n dup2\n /* \"#utility.yul\":16587:16607 */\n sub\n /* \"#utility.yul\":16583:16584 */\n 0x00\n /* \"#utility.yul\":16572:16581 */\n dup4\n /* \"#utility.yul\":16568:16585 */\n add\n /* \"#utility.yul\":16561:16608 */\n mstore\n /* \"#utility.yul\":16625:16756 */\n tag_947\n /* \"#utility.yul\":16751:16755 */\n dup2\n /* \"#utility.yul\":16625:16756 */\n tag_721\n jump\t// in\n tag_947:\n /* \"#utility.yul\":16617:16756 */\n swap1\n pop\n /* \"#utility.yul\":16344:16763 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":16769:16949 */\n tag_722:\n /* \"#utility.yul\":16909:16941 */\n 0x696e69743a20726f756e644164647265737320616c7265616479207365740000\n /* \"#utility.yul\":16905:16906 */\n 0x00\n /* \"#utility.yul\":16897:16903 */\n dup3\n /* \"#utility.yul\":16893:16907 */\n add\n /* \"#utility.yul\":16886:16942 */\n mstore\n /* \"#utility.yul\":16769:16949 */\n pop\n jump\t// out\n /* \"#utility.yul\":16955:17321 */\n tag_723:\n /* \"#utility.yul\":17097:17100 */\n 0x00\n /* \"#utility.yul\":17118:17185 */\n tag_950\n /* \"#utility.yul\":17182:17184 */\n 0x1e\n /* \"#utility.yul\":17177:17180 */\n dup4\n /* \"#utility.yul\":17118:17185 */\n tag_719\n jump\t// in\n tag_950:\n /* \"#utility.yul\":17111:17185 */\n swap2\n pop\n /* \"#utility.yul\":17194:17287 */\n tag_951\n /* \"#utility.yul\":17283:17286 */\n dup3\n /* \"#utility.yul\":17194:17287 */\n tag_722\n jump\t// in\n tag_951:\n /* \"#utility.yul\":17312:17314 */\n 0x20\n /* \"#utility.yul\":17307:17310 */\n dup3\n /* \"#utility.yul\":17303:17315 */\n add\n /* \"#utility.yul\":17296:17315 */\n swap1\n pop\n /* \"#utility.yul\":16955:17321 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":17327:17746 */\n tag_382:\n /* \"#utility.yul\":17493:17497 */\n 0x00\n /* \"#utility.yul\":17531:17533 */\n 0x20\n /* \"#utility.yul\":17520:17529 */\n dup3\n /* \"#utility.yul\":17516:17534 */\n add\n /* \"#utility.yul\":17508:17534 */\n swap1\n pop\n /* \"#utility.yul\":17580:17589 */\n dup2\n /* \"#utility.yul\":17574:17578 */\n dup2\n /* \"#utility.yul\":17570:17590 */\n sub\n /* \"#utility.yul\":17566:17567 */\n 0x00\n /* \"#utility.yul\":17555:17564 */\n dup4\n /* \"#utility.yul\":17551:17568 */\n add\n /* \"#utility.yul\":17544:17591 */\n mstore\n /* \"#utility.yul\":17608:17739 */\n tag_953\n /* \"#utility.yul\":17734:17738 */\n dup2\n /* \"#utility.yul\":17608:17739 */\n tag_723\n jump\t// in\n tag_953:\n /* \"#utility.yul\":17600:17739 */\n swap1\n pop\n /* \"#utility.yul\":17327:17746 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":17752:17985 */\n tag_724:\n /* \"#utility.yul\":17892:17926 */\n 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561\n /* \"#utility.yul\":17888:17889 */\n 0x00\n /* \"#utility.yul\":17880:17886 */\n dup3\n /* \"#utility.yul\":17876:17890 */\n add\n /* \"#utility.yul\":17869:17927 */\n mstore\n /* \"#utility.yul\":17961:17977 */\n 0x647920696e697469616c697a6564000000000000000000000000000000000000\n /* \"#utility.yul\":17956:17958 */\n 0x20\n /* \"#utility.yul\":17948:17954 */\n dup3\n /* \"#utility.yul\":17944:17959 */\n add\n /* \"#utility.yul\":17937:17978 */\n mstore\n /* \"#utility.yul\":17752:17985 */\n pop\n jump\t// out\n /* \"#utility.yul\":17991:18357 */\n tag_725:\n /* \"#utility.yul\":18133:18136 */\n 0x00\n /* \"#utility.yul\":18154:18221 */\n tag_956\n /* \"#utility.yul\":18218:18220 */\n 0x2e\n /* \"#utility.yul\":18213:18216 */\n dup4\n /* \"#utility.yul\":18154:18221 */\n tag_719\n jump\t// in\n tag_956:\n /* \"#utility.yul\":18147:18221 */\n swap2\n pop\n /* \"#utility.yul\":18230:18323 */\n tag_957\n /* \"#utility.yul\":18319:18322 */\n dup3\n /* \"#utility.yul\":18230:18323 */\n tag_724\n jump\t// in\n tag_957:\n /* \"#utility.yul\":18348:18350 */\n 0x40\n /* \"#utility.yul\":18343:18346 */\n dup3\n /* \"#utility.yul\":18339:18351 */\n add\n /* \"#utility.yul\":18332:18351 */\n swap1\n pop\n /* \"#utility.yul\":17991:18357 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":18363:18782 */\n tag_391:\n /* \"#utility.yul\":18529:18533 */\n 0x00\n /* \"#utility.yul\":18567:18569 */\n 0x20\n /* \"#utility.yul\":18556:18565 */\n dup3\n /* \"#utility.yul\":18552:18570 */\n add\n /* \"#utility.yul\":18544:18570 */\n swap1\n pop\n /* \"#utility.yul\":18616:18625 */\n dup2\n /* \"#utility.yul\":18610:18614 */\n dup2\n /* \"#utility.yul\":18606:18626 */\n sub\n /* \"#utility.yul\":18602:18603 */\n 0x00\n /* \"#utility.yul\":18591:18600 */\n dup4\n /* \"#utility.yul\":18587:18604 */\n add\n /* \"#utility.yul\":18580:18627 */\n mstore\n /* \"#utility.yul\":18644:18775 */\n tag_959\n /* \"#utility.yul\":18770:18774 */\n dup2\n /* \"#utility.yul\":18644:18775 */\n tag_725\n jump\t// in\n tag_959:\n /* \"#utility.yul\":18636:18775 */\n swap1\n pop\n /* \"#utility.yul\":18363:18782 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":18788:18873 */\n tag_726:\n /* \"#utility.yul\":18833:18840 */\n 0x00\n /* \"#utility.yul\":18862:18867 */\n dup2\n /* \"#utility.yul\":18851:18867 */\n swap1\n pop\n /* \"#utility.yul\":18788:18873 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":18879:18965 */\n tag_727:\n /* \"#utility.yul\":18914:18921 */\n 0x00\n /* \"#utility.yul\":18954:18958 */\n 0xff\n /* \"#utility.yul\":18947:18952 */\n dup3\n /* \"#utility.yul\":18943:18959 */\n and\n /* \"#utility.yul\":18932:18959 */\n swap1\n pop\n /* \"#utility.yul\":18879:18965 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":18971:19031 */\n tag_728:\n /* \"#utility.yul\":18999:19002 */\n 0x00\n /* \"#utility.yul\":19020:19025 */\n dup2\n /* \"#utility.yul\":19013:19025 */\n swap1\n pop\n /* \"#utility.yul\":18971:19031 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":19037:19191 */\n tag_729:\n /* \"#utility.yul\":19093:19102 */\n 0x00\n /* \"#utility.yul\":19126:19185 */\n tag_964\n /* \"#utility.yul\":19142:19184 */\n tag_965\n /* \"#utility.yul\":19151:19183 */\n tag_966\n /* \"#utility.yul\":19177:19182 */\n dup5\n /* \"#utility.yul\":19151:19183 */\n tag_726\n jump\t// in\n tag_966:\n /* \"#utility.yul\":19142:19184 */\n tag_728\n jump\t// in\n tag_965:\n /* \"#utility.yul\":19126:19185 */\n tag_727\n jump\t// in\n tag_964:\n /* \"#utility.yul\":19113:19185 */\n swap1\n pop\n /* \"#utility.yul\":19037:19191 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":19197:19340 */\n tag_730:\n /* \"#utility.yul\":19290:19333 */\n tag_968\n /* \"#utility.yul\":19327:19332 */\n dup2\n /* \"#utility.yul\":19290:19333 */\n tag_729\n jump\t// in\n tag_968:\n /* \"#utility.yul\":19285:19288 */\n dup3\n /* \"#utility.yul\":19278:19334 */\n mstore\n /* \"#utility.yul\":19197:19340 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":19346:19580 */\n tag_398:\n /* \"#utility.yul\":19445:19449 */\n 0x00\n /* \"#utility.yul\":19483:19485 */\n 0x20\n /* \"#utility.yul\":19472:19481 */\n dup3\n /* \"#utility.yul\":19468:19486 */\n add\n /* \"#utility.yul\":19460:19486 */\n swap1\n pop\n /* \"#utility.yul\":19496:19573 */\n tag_970\n /* \"#utility.yul\":19570:19571 */\n 0x00\n /* \"#utility.yul\":19559:19568 */\n dup4\n /* \"#utility.yul\":19555:19572 */\n add\n /* \"#utility.yul\":19546:19552 */\n dup5\n /* \"#utility.yul\":19496:19573 */\n tag_730\n jump\t// in\n tag_970:\n /* \"#utility.yul\":19346:19580 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":19586:19817 */\n tag_731:\n /* \"#utility.yul\":19726:19760 */\n 0x6572726f723a20766f74696e6720636f6e7472616374206e6f74206c696e6b65\n /* \"#utility.yul\":19722:19723 */\n 0x00\n /* \"#utility.yul\":19714:19720 */\n dup3\n /* \"#utility.yul\":19710:19724 */\n add\n /* \"#utility.yul\":19703:19761 */\n mstore\n /* \"#utility.yul\":19795:19809 */\n 0x6420746f206120726f756e640000000000000000000000000000000000000000\n /* \"#utility.yul\":19790:19792 */\n 0x20\n /* \"#utility.yul\":19782:19788 */\n dup3\n /* \"#utility.yul\":19778:19793 */\n add\n /* \"#utility.yul\":19771:19810 */\n mstore\n /* \"#utility.yul\":19586:19817 */\n pop\n jump\t// out\n /* \"#utility.yul\":19823:20189 */\n tag_732:\n /* \"#utility.yul\":19965:19968 */\n 0x00\n /* \"#utility.yul\":19986:20053 */\n tag_973\n /* \"#utility.yul\":20050:20052 */\n 0x2c\n /* \"#utility.yul\":20045:20048 */\n dup4\n /* \"#utility.yul\":19986:20053 */\n tag_719\n jump\t// in\n tag_973:\n /* \"#utility.yul\":19979:20053 */\n swap2\n pop\n /* \"#utility.yul\":20062:20155 */\n tag_974\n /* \"#utility.yul\":20151:20154 */\n dup3\n /* \"#utility.yul\":20062:20155 */\n tag_731\n jump\t// in\n tag_974:\n /* \"#utility.yul\":20180:20182 */\n 0x40\n /* \"#utility.yul\":20175:20178 */\n dup3\n /* \"#utility.yul\":20171:20183 */\n add\n /* \"#utility.yul\":20164:20183 */\n swap1\n pop\n /* \"#utility.yul\":19823:20189 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":20195:20614 */\n tag_426:\n /* \"#utility.yul\":20361:20365 */\n 0x00\n /* \"#utility.yul\":20399:20401 */\n 0x20\n /* \"#utility.yul\":20388:20397 */\n dup3\n /* \"#utility.yul\":20384:20402 */\n add\n /* \"#utility.yul\":20376:20402 */\n swap1\n pop\n /* \"#utility.yul\":20448:20457 */\n dup2\n /* \"#utility.yul\":20442:20446 */\n dup2\n /* \"#utility.yul\":20438:20458 */\n sub\n /* \"#utility.yul\":20434:20435 */\n 0x00\n /* \"#utility.yul\":20423:20432 */\n dup4\n /* \"#utility.yul\":20419:20436 */\n add\n /* \"#utility.yul\":20412:20459 */\n mstore\n /* \"#utility.yul\":20476:20607 */\n tag_976\n /* \"#utility.yul\":20602:20606 */\n dup2\n /* \"#utility.yul\":20476:20607 */\n tag_732\n jump\t// in\n tag_976:\n /* \"#utility.yul\":20468:20607 */\n swap1\n pop\n /* \"#utility.yul\":20195:20614 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":20620:20851 */\n tag_733:\n /* \"#utility.yul\":20760:20794 */\n 0x6572726f723a2063616e20626520696e766f6b6564206f6e6c7920627920726f\n /* \"#utility.yul\":20756:20757 */\n 0x00\n /* \"#utility.yul\":20748:20754 */\n dup3\n /* \"#utility.yul\":20744:20758 */\n add\n /* \"#utility.yul\":20737:20795 */\n mstore\n /* \"#utility.yul\":20829:20843 */\n 0x756e6420636f6e74726163740000000000000000000000000000000000000000\n /* \"#utility.yul\":20824:20826 */\n 0x20\n /* \"#utility.yul\":20816:20822 */\n dup3\n /* \"#utility.yul\":20812:20827 */\n add\n /* \"#utility.yul\":20805:20844 */\n mstore\n /* \"#utility.yul\":20620:20851 */\n pop\n jump\t// out\n /* \"#utility.yul\":20857:21223 */\n tag_734:\n /* \"#utility.yul\":20999:21002 */\n 0x00\n /* \"#utility.yul\":21020:21087 */\n tag_979\n /* \"#utility.yul\":21084:21086 */\n 0x2c\n /* \"#utility.yul\":21079:21082 */\n dup4\n /* \"#utility.yul\":21020:21087 */\n tag_719\n jump\t// in\n tag_979:\n /* \"#utility.yul\":21013:21087 */\n swap2\n pop\n /* \"#utility.yul\":21096:21189 */\n tag_980\n /* \"#utility.yul\":21185:21188 */\n dup3\n /* \"#utility.yul\":21096:21189 */\n tag_733\n jump\t// in\n tag_980:\n /* \"#utility.yul\":21214:21216 */\n 0x40\n /* \"#utility.yul\":21209:21212 */\n dup3\n /* \"#utility.yul\":21205:21217 */\n add\n /* \"#utility.yul\":21198:21217 */\n swap1\n pop\n /* \"#utility.yul\":20857:21223 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":21229:21648 */\n tag_429:\n /* \"#utility.yul\":21395:21399 */\n 0x00\n /* \"#utility.yul\":21433:21435 */\n 0x20\n /* \"#utility.yul\":21422:21431 */\n dup3\n /* \"#utility.yul\":21418:21436 */\n add\n /* \"#utility.yul\":21410:21436 */\n swap1\n pop\n /* \"#utility.yul\":21482:21491 */\n dup2\n /* \"#utility.yul\":21476:21480 */\n dup2\n /* \"#utility.yul\":21472:21492 */\n sub\n /* \"#utility.yul\":21468:21469 */\n 0x00\n /* \"#utility.yul\":21457:21466 */\n dup4\n /* \"#utility.yul\":21453:21470 */\n add\n /* \"#utility.yul\":21446:21493 */\n mstore\n /* \"#utility.yul\":21510:21641 */\n tag_982\n /* \"#utility.yul\":21636:21640 */\n dup2\n /* \"#utility.yul\":21510:21641 */\n tag_734\n jump\t// in\n tag_982:\n /* \"#utility.yul\":21502:21641 */\n swap1\n pop\n /* \"#utility.yul\":21229:21648 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":21654:21771 */\n tag_735:\n /* \"#utility.yul\":21763:21764 */\n 0x00\n /* \"#utility.yul\":21760:21761 */\n dup1\n /* \"#utility.yul\":21753:21765 */\n revert\n /* \"#utility.yul\":21777:21894 */\n tag_736:\n /* \"#utility.yul\":21886:21887 */\n 0x00\n /* \"#utility.yul\":21883:21884 */\n dup1\n /* \"#utility.yul\":21876:21888 */\n revert\n /* \"#utility.yul\":21900:22017 */\n tag_737:\n /* \"#utility.yul\":22009:22010 */\n 0x00\n /* \"#utility.yul\":22006:22007 */\n dup1\n /* \"#utility.yul\":21999:22011 */\n revert\n /* \"#utility.yul\":22023:22747 */\n tag_437:\n /* \"#utility.yul\":22100:22104 */\n 0x00\n /* \"#utility.yul\":22106:22112 */\n dup1\n /* \"#utility.yul\":22162:22173 */\n dup4\n /* \"#utility.yul\":22149:22174 */\n calldataload\n /* \"#utility.yul\":22262:22263 */\n 0x01\n /* \"#utility.yul\":22256:22260 */\n 0x20\n /* \"#utility.yul\":22252:22264 */\n sub\n /* \"#utility.yul\":22241:22249 */\n dup5\n /* \"#utility.yul\":22225:22239 */\n calldatasize\n /* \"#utility.yul\":22221:22250 */\n sub\n /* \"#utility.yul\":22217:22265 */\n sub\n /* \"#utility.yul\":22197:22215 */\n dup2\n /* \"#utility.yul\":22193:22266 */\n slt\n /* \"#utility.yul\":22183:22351 */\n tag_987\n jumpi\n /* \"#utility.yul\":22270:22349 */\n tag_988\n tag_735\n jump\t// in\n tag_988:\n /* \"#utility.yul\":22183:22351 */\n tag_987:\n /* \"#utility.yul\":22382:22400 */\n dup1\n /* \"#utility.yul\":22372:22380 */\n dup5\n /* \"#utility.yul\":22368:22401 */\n add\n /* \"#utility.yul\":22360:22401 */\n swap3\n pop\n /* \"#utility.yul\":22434:22438 */\n dup3\n /* \"#utility.yul\":22421:22439 */\n calldataload\n /* \"#utility.yul\":22411:22439 */\n swap2\n pop\n /* \"#utility.yul\":22462:22480 */\n 0xffffffffffffffff\n /* \"#utility.yul\":22454:22460 */\n dup3\n /* \"#utility.yul\":22451:22481 */\n gt\n /* \"#utility.yul\":22448:22565 */\n iszero\n tag_989\n jumpi\n /* \"#utility.yul\":22484:22563 */\n tag_990\n tag_736\n jump\t// in\n tag_990:\n /* \"#utility.yul\":22448:22565 */\n tag_989:\n /* \"#utility.yul\":22592:22594 */\n 0x20\n /* \"#utility.yul\":22586:22590 */\n dup4\n /* \"#utility.yul\":22582:22595 */\n add\n /* \"#utility.yul\":22574:22595 */\n swap3\n pop\n /* \"#utility.yul\":22649:22653 */\n 0x01\n /* \"#utility.yul\":22641:22647 */\n dup3\n /* \"#utility.yul\":22637:22654 */\n mul\n /* \"#utility.yul\":22621:22635 */\n calldatasize\n /* \"#utility.yul\":22617:22655 */\n sub\n /* \"#utility.yul\":22611:22615 */\n dup4\n /* \"#utility.yul\":22607:22656 */\n sgt\n /* \"#utility.yul\":22604:22740 */\n iszero\n tag_991\n jumpi\n /* \"#utility.yul\":22659:22738 */\n tag_992\n tag_737\n jump\t// in\n tag_992:\n /* \"#utility.yul\":22604:22740 */\n tag_991:\n /* \"#utility.yul\":22113:22747 */\n pop\n /* \"#utility.yul\":22023:22747 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":22753:22857 */\n tag_738:\n /* \"#utility.yul\":22798:22805 */\n 0x00\n /* \"#utility.yul\":22827:22851 */\n tag_994\n /* \"#utility.yul\":22845:22850 */\n dup3\n /* \"#utility.yul\":22827:22851 */\n tag_696\n jump\t// in\n tag_994:\n /* \"#utility.yul\":22816:22851 */\n swap1\n pop\n /* \"#utility.yul\":22753:22857 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":22863:23001 */\n tag_739:\n /* \"#utility.yul\":22944:22976 */\n tag_996\n /* \"#utility.yul\":22970:22975 */\n dup2\n /* \"#utility.yul\":22944:22976 */\n tag_738\n jump\t// in\n tag_996:\n /* \"#utility.yul\":22937:22942 */\n dup2\n /* \"#utility.yul\":22934:22977 */\n eq\n /* \"#utility.yul\":22924:22995 */\n tag_997\n jumpi\n /* \"#utility.yul\":22991:22992 */\n 0x00\n /* \"#utility.yul\":22988:22989 */\n dup1\n /* \"#utility.yul\":22981:22993 */\n revert\n /* \"#utility.yul\":22924:22995 */\n tag_997:\n /* \"#utility.yul\":22863:23001 */\n pop\n jump\t// out\n /* \"#utility.yul\":23007:23162 */\n tag_740:\n /* \"#utility.yul\":23061:23066 */\n 0x00\n /* \"#utility.yul\":23099:23105 */\n dup2\n /* \"#utility.yul\":23086:23106 */\n calldataload\n /* \"#utility.yul\":23077:23106 */\n swap1\n pop\n /* \"#utility.yul\":23115:23156 */\n tag_999\n /* \"#utility.yul\":23150:23155 */\n dup2\n /* \"#utility.yul\":23115:23156 */\n tag_739\n jump\t// in\n tag_999:\n /* \"#utility.yul\":23007:23162 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":23168:23819 */\n tag_439:\n /* \"#utility.yul\":23261:23267 */\n 0x00\n /* \"#utility.yul\":23269:23275 */\n dup1\n /* \"#utility.yul\":23277:23283 */\n 0x00\n /* \"#utility.yul\":23326:23328 */\n 0x60\n /* \"#utility.yul\":23314:23323 */\n dup5\n /* \"#utility.yul\":23305:23312 */\n dup7\n /* \"#utility.yul\":23301:23324 */\n sub\n /* \"#utility.yul\":23297:23329 */\n slt\n /* \"#utility.yul\":23294:23413 */\n iszero\n tag_1001\n jumpi\n /* \"#utility.yul\":23332:23411 */\n tag_1002\n tag_685\n jump\t// in\n tag_1002:\n /* \"#utility.yul\":23294:23413 */\n tag_1001:\n /* \"#utility.yul\":23452:23453 */\n 0x00\n /* \"#utility.yul\":23477:23538 */\n tag_1003\n /* \"#utility.yul\":23530:23537 */\n dup7\n /* \"#utility.yul\":23521:23527 */\n dup3\n /* \"#utility.yul\":23510:23519 */\n dup8\n /* \"#utility.yul\":23506:23528 */\n add\n /* \"#utility.yul\":23477:23538 */\n tag_740\n jump\t// in\n tag_1003:\n /* \"#utility.yul\":23467:23538 */\n swap4\n pop\n /* \"#utility.yul\":23423:23548 */\n pop\n /* \"#utility.yul\":23587:23589 */\n 0x20\n /* \"#utility.yul\":23613:23666 */\n tag_1004\n /* \"#utility.yul\":23658:23665 */\n dup7\n /* \"#utility.yul\":23649:23655 */\n dup3\n /* \"#utility.yul\":23638:23647 */\n dup8\n /* \"#utility.yul\":23634:23656 */\n add\n /* \"#utility.yul\":23613:23666 */\n tag_710\n jump\t// in\n tag_1004:\n /* \"#utility.yul\":23603:23666 */\n swap3\n pop\n /* \"#utility.yul\":23558:23676 */\n pop\n /* \"#utility.yul\":23715:23717 */\n 0x40\n /* \"#utility.yul\":23741:23802 */\n tag_1005\n /* \"#utility.yul\":23794:23801 */\n dup7\n /* \"#utility.yul\":23785:23791 */\n dup3\n /* \"#utility.yul\":23774:23783 */\n dup8\n /* \"#utility.yul\":23770:23792 */\n add\n /* \"#utility.yul\":23741:23802 */\n tag_740\n jump\t// in\n tag_1005:\n /* \"#utility.yul\":23731:23802 */\n swap2\n pop\n /* \"#utility.yul\":23686:23812 */\n pop\n /* \"#utility.yul\":23168:23819 */\n swap3\n pop\n swap3\n pop\n swap3\n jump\t// out\n /* \"#utility.yul\":23825:24005 */\n tag_741:\n /* \"#utility.yul\":23873:23950 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":23870:23871 */\n 0x00\n /* \"#utility.yul\":23863:23951 */\n mstore\n /* \"#utility.yul\":23970:23974 */\n 0x11\n /* \"#utility.yul\":23967:23968 */\n 0x04\n /* \"#utility.yul\":23960:23975 */\n mstore\n /* \"#utility.yul\":23994:23998 */\n 0x24\n /* \"#utility.yul\":23991:23992 */\n 0x00\n /* \"#utility.yul\":23984:23999 */\n revert\n /* \"#utility.yul\":24011:24202 */\n tag_451:\n /* \"#utility.yul\":24051:24054 */\n 0x00\n /* \"#utility.yul\":24070:24090 */\n tag_1008\n /* \"#utility.yul\":24088:24089 */\n dup3\n /* \"#utility.yul\":24070:24090 */\n tag_707\n jump\t// in\n tag_1008:\n /* \"#utility.yul\":24065:24090 */\n swap2\n pop\n /* \"#utility.yul\":24104:24124 */\n tag_1009\n /* \"#utility.yul\":24122:24123 */\n dup4\n /* \"#utility.yul\":24104:24124 */\n tag_707\n jump\t// in\n tag_1009:\n /* \"#utility.yul\":24099:24124 */\n swap3\n pop\n /* \"#utility.yul\":24147:24148 */\n dup3\n /* \"#utility.yul\":24144:24145 */\n dup3\n /* \"#utility.yul\":24140:24149 */\n add\n /* \"#utility.yul\":24133:24149 */\n swap1\n pop\n /* \"#utility.yul\":24168:24171 */\n dup1\n /* \"#utility.yul\":24165:24166 */\n dup3\n /* \"#utility.yul\":24162:24172 */\n gt\n /* \"#utility.yul\":24159:24195 */\n iszero\n tag_1010\n jumpi\n /* \"#utility.yul\":24175:24193 */\n tag_1011\n tag_741\n jump\t// in\n tag_1011:\n /* \"#utility.yul\":24159:24195 */\n tag_1010:\n /* \"#utility.yul\":24011:24202 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":24208:24540 */\n tag_453:\n /* \"#utility.yul\":24329:24333 */\n 0x00\n /* \"#utility.yul\":24367:24369 */\n 0x40\n /* \"#utility.yul\":24356:24365 */\n dup3\n /* \"#utility.yul\":24352:24370 */\n add\n /* \"#utility.yul\":24344:24370 */\n swap1\n pop\n /* \"#utility.yul\":24380:24451 */\n tag_1013\n /* \"#utility.yul\":24448:24449 */\n 0x00\n /* \"#utility.yul\":24437:24446 */\n dup4\n /* \"#utility.yul\":24433:24450 */\n add\n /* \"#utility.yul\":24424:24430 */\n dup6\n /* \"#utility.yul\":24380:24451 */\n tag_700\n jump\t// in\n tag_1013:\n /* \"#utility.yul\":24461:24533 */\n tag_1014\n /* \"#utility.yul\":24529:24531 */\n 0x20\n /* \"#utility.yul\":24518:24527 */\n dup4\n /* \"#utility.yul\":24514:24532 */\n add\n /* \"#utility.yul\":24505:24511 */\n dup5\n /* \"#utility.yul\":24461:24533 */\n tag_708\n jump\t// in\n tag_1014:\n /* \"#utility.yul\":24208:24540 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":24546:24956 */\n tag_456:\n /* \"#utility.yul\":24586:24593 */\n 0x00\n /* \"#utility.yul\":24609:24629 */\n tag_1016\n /* \"#utility.yul\":24627:24628 */\n dup3\n /* \"#utility.yul\":24609:24629 */\n tag_707\n jump\t// in\n tag_1016:\n /* \"#utility.yul\":24604:24629 */\n swap2\n pop\n /* \"#utility.yul\":24643:24663 */\n tag_1017\n /* \"#utility.yul\":24661:24662 */\n dup4\n /* \"#utility.yul\":24643:24663 */\n tag_707\n jump\t// in\n tag_1017:\n /* \"#utility.yul\":24638:24663 */\n swap3\n pop\n /* \"#utility.yul\":24698:24699 */\n dup3\n /* \"#utility.yul\":24695:24696 */\n dup3\n /* \"#utility.yul\":24691:24700 */\n mul\n /* \"#utility.yul\":24720:24750 */\n tag_1018\n /* \"#utility.yul\":24738:24749 */\n dup2\n /* \"#utility.yul\":24720:24750 */\n tag_707\n jump\t// in\n tag_1018:\n /* \"#utility.yul\":24709:24750 */\n swap2\n pop\n /* \"#utility.yul\":24899:24900 */\n dup3\n /* \"#utility.yul\":24890:24897 */\n dup3\n /* \"#utility.yul\":24886:24901 */\n div\n /* \"#utility.yul\":24883:24884 */\n dup5\n /* \"#utility.yul\":24880:24902 */\n eq\n /* \"#utility.yul\":24860:24861 */\n dup4\n /* \"#utility.yul\":24853:24862 */\n iszero\n /* \"#utility.yul\":24833:24916 */\n or\n /* \"#utility.yul\":24810:24949 */\n tag_1019\n jumpi\n /* \"#utility.yul\":24929:24947 */\n tag_1020\n tag_741\n jump\t// in\n tag_1020:\n /* \"#utility.yul\":24810:24949 */\n tag_1019:\n /* \"#utility.yul\":24594:24956 */\n pop\n /* \"#utility.yul\":24546:24956 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":24962:25142 */\n tag_742:\n /* \"#utility.yul\":25010:25087 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":25007:25008 */\n 0x00\n /* \"#utility.yul\":25000:25088 */\n mstore\n /* \"#utility.yul\":25107:25111 */\n 0x12\n /* \"#utility.yul\":25104:25105 */\n 0x04\n /* \"#utility.yul\":25097:25112 */\n mstore\n /* \"#utility.yul\":25131:25135 */\n 0x24\n /* \"#utility.yul\":25128:25129 */\n 0x00\n /* \"#utility.yul\":25121:25136 */\n revert\n /* \"#utility.yul\":25148:25333 */\n tag_458:\n /* \"#utility.yul\":25188:25189 */\n 0x00\n /* \"#utility.yul\":25205:25225 */\n tag_1023\n /* \"#utility.yul\":25223:25224 */\n dup3\n /* \"#utility.yul\":25205:25225 */\n tag_707\n jump\t// in\n tag_1023:\n /* \"#utility.yul\":25200:25225 */\n swap2\n pop\n /* \"#utility.yul\":25239:25259 */\n tag_1024\n /* \"#utility.yul\":25257:25258 */\n dup4\n /* \"#utility.yul\":25239:25259 */\n tag_707\n jump\t// in\n tag_1024:\n /* \"#utility.yul\":25234:25259 */\n swap3\n pop\n /* \"#utility.yul\":25278:25279 */\n dup3\n /* \"#utility.yul\":25268:25303 */\n tag_1025\n jumpi\n /* \"#utility.yul\":25283:25301 */\n tag_1026\n tag_742\n jump\t// in\n tag_1026:\n /* \"#utility.yul\":25268:25303 */\n tag_1025:\n /* \"#utility.yul\":25325:25326 */\n dup3\n /* \"#utility.yul\":25322:25323 */\n dup3\n /* \"#utility.yul\":25318:25327 */\n div\n /* \"#utility.yul\":25313:25327 */\n swap1\n pop\n /* \"#utility.yul\":25148:25333 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":25339:25533 */\n tag_461:\n /* \"#utility.yul\":25379:25383 */\n 0x00\n /* \"#utility.yul\":25399:25419 */\n tag_1028\n /* \"#utility.yul\":25417:25418 */\n dup3\n /* \"#utility.yul\":25399:25419 */\n tag_707\n jump\t// in\n tag_1028:\n /* \"#utility.yul\":25394:25419 */\n swap2\n pop\n /* \"#utility.yul\":25433:25453 */\n tag_1029\n /* \"#utility.yul\":25451:25452 */\n dup4\n /* \"#utility.yul\":25433:25453 */\n tag_707\n jump\t// in\n tag_1029:\n /* \"#utility.yul\":25428:25453 */\n swap3\n pop\n /* \"#utility.yul\":25477:25478 */\n dup3\n /* \"#utility.yul\":25474:25475 */\n dup3\n /* \"#utility.yul\":25470:25479 */\n sub\n /* \"#utility.yul\":25462:25479 */\n swap1\n pop\n /* \"#utility.yul\":25501:25502 */\n dup2\n /* \"#utility.yul\":25495:25499 */\n dup2\n /* \"#utility.yul\":25492:25503 */\n gt\n /* \"#utility.yul\":25489:25526 */\n iszero\n tag_1030\n jumpi\n /* \"#utility.yul\":25506:25524 */\n tag_1031\n tag_741\n jump\t// in\n tag_1031:\n /* \"#utility.yul\":25489:25526 */\n tag_1030:\n /* \"#utility.yul\":25339:25533 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":25539:25720 */\n tag_743:\n /* \"#utility.yul\":25679:25712 */\n 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00\n /* \"#utility.yul\":25675:25676 */\n 0x00\n /* \"#utility.yul\":25667:25673 */\n dup3\n /* \"#utility.yul\":25663:25677 */\n add\n /* \"#utility.yul\":25656:25713 */\n mstore\n /* \"#utility.yul\":25539:25720 */\n pop\n jump\t// out\n /* \"#utility.yul\":25726:26092 */\n tag_744:\n /* \"#utility.yul\":25868:25871 */\n 0x00\n /* \"#utility.yul\":25889:25956 */\n tag_1034\n /* \"#utility.yul\":25953:25955 */\n 0x1f\n /* \"#utility.yul\":25948:25951 */\n dup4\n /* \"#utility.yul\":25889:25956 */\n tag_719\n jump\t// in\n tag_1034:\n /* \"#utility.yul\":25882:25956 */\n swap2\n pop\n /* \"#utility.yul\":25965:26058 */\n tag_1035\n /* \"#utility.yul\":26054:26057 */\n dup3\n /* \"#utility.yul\":25965:26058 */\n tag_743\n jump\t// in\n tag_1035:\n /* \"#utility.yul\":26083:26085 */\n 0x20\n /* \"#utility.yul\":26078:26081 */\n dup3\n /* \"#utility.yul\":26074:26086 */\n add\n /* \"#utility.yul\":26067:26086 */\n swap1\n pop\n /* \"#utility.yul\":25726:26092 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":26098:26517 */\n tag_473:\n /* \"#utility.yul\":26264:26268 */\n 0x00\n /* \"#utility.yul\":26302:26304 */\n 0x20\n /* \"#utility.yul\":26291:26300 */\n dup3\n /* \"#utility.yul\":26287:26305 */\n add\n /* \"#utility.yul\":26279:26305 */\n swap1\n pop\n /* \"#utility.yul\":26351:26360 */\n dup2\n /* \"#utility.yul\":26345:26349 */\n dup2\n /* \"#utility.yul\":26341:26361 */\n sub\n /* \"#utility.yul\":26337:26338 */\n 0x00\n /* \"#utility.yul\":26326:26335 */\n dup4\n /* \"#utility.yul\":26322:26339 */\n add\n /* \"#utility.yul\":26315:26362 */\n mstore\n /* \"#utility.yul\":26379:26510 */\n tag_1037\n /* \"#utility.yul\":26505:26509 */\n dup2\n /* \"#utility.yul\":26379:26510 */\n tag_744\n jump\t// in\n tag_1037:\n /* \"#utility.yul\":26371:26510 */\n swap1\n pop\n /* \"#utility.yul\":26098:26517 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":26523:26753 */\n tag_745:\n /* \"#utility.yul\":26663:26697 */\n 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069\n /* \"#utility.yul\":26659:26660 */\n 0x00\n /* \"#utility.yul\":26651:26657 */\n dup3\n /* \"#utility.yul\":26647:26661 */\n add\n /* \"#utility.yul\":26640:26698 */\n mstore\n /* \"#utility.yul\":26732:26745 */\n 0x6e697469616c697a696e67000000000000000000000000000000000000000000\n /* \"#utility.yul\":26727:26729 */\n 0x20\n /* \"#utility.yul\":26719:26725 */\n dup3\n /* \"#utility.yul\":26715:26730 */\n add\n /* \"#utility.yul\":26708:26746 */\n mstore\n /* \"#utility.yul\":26523:26753 */\n pop\n jump\t// out\n /* \"#utility.yul\":26759:27125 */\n tag_746:\n /* \"#utility.yul\":26901:26904 */\n 0x00\n /* \"#utility.yul\":26922:26989 */\n tag_1040\n /* \"#utility.yul\":26986:26988 */\n 0x2b\n /* \"#utility.yul\":26981:26984 */\n dup4\n /* \"#utility.yul\":26922:26989 */\n tag_719\n jump\t// in\n tag_1040:\n /* \"#utility.yul\":26915:26989 */\n swap2\n pop\n /* \"#utility.yul\":26998:27091 */\n tag_1041\n /* \"#utility.yul\":27087:27090 */\n dup3\n /* \"#utility.yul\":26998:27091 */\n tag_745\n jump\t// in\n tag_1041:\n /* \"#utility.yul\":27116:27118 */\n 0x40\n /* \"#utility.yul\":27111:27114 */\n dup3\n /* \"#utility.yul\":27107:27119 */\n add\n /* \"#utility.yul\":27100:27119 */\n swap1\n pop\n /* \"#utility.yul\":26759:27125 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":27131:27550 */\n tag_528:\n /* \"#utility.yul\":27297:27301 */\n 0x00\n /* \"#utility.yul\":27335:27337 */\n 0x20\n /* \"#utility.yul\":27324:27333 */\n dup3\n /* \"#utility.yul\":27320:27338 */\n add\n /* \"#utility.yul\":27312:27338 */\n swap1\n pop\n /* \"#utility.yul\":27384:27393 */\n dup2\n /* \"#utility.yul\":27378:27382 */\n dup2\n /* \"#utility.yul\":27374:27394 */\n sub\n /* \"#utility.yul\":27370:27371 */\n 0x00\n /* \"#utility.yul\":27359:27368 */\n dup4\n /* \"#utility.yul\":27355:27372 */\n add\n /* \"#utility.yul\":27348:27395 */\n mstore\n /* \"#utility.yul\":27412:27543 */\n tag_1043\n /* \"#utility.yul\":27538:27542 */\n dup2\n /* \"#utility.yul\":27412:27543 */\n tag_746\n jump\t// in\n tag_1043:\n /* \"#utility.yul\":27404:27543 */\n swap1\n pop\n /* \"#utility.yul\":27131:27550 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":27556:27703 */\n tag_747:\n /* \"#utility.yul\":27657:27668 */\n 0x00\n /* \"#utility.yul\":27694:27697 */\n dup2\n /* \"#utility.yul\":27679:27697 */\n swap1\n pop\n /* \"#utility.yul\":27556:27703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":27709:27823 */\n tag_748:\n pop\n jump\t// out\n /* \"#utility.yul\":27829:28227 */\n tag_749:\n /* \"#utility.yul\":27988:27991 */\n 0x00\n /* \"#utility.yul\":28009:28092 */\n tag_1047\n /* \"#utility.yul\":28090:28091 */\n 0x00\n /* \"#utility.yul\":28085:28088 */\n dup4\n /* \"#utility.yul\":28009:28092 */\n tag_747\n jump\t// in\n tag_1047:\n /* \"#utility.yul\":28002:28092 */\n swap2\n pop\n /* \"#utility.yul\":28101:28194 */\n tag_1048\n /* \"#utility.yul\":28190:28193 */\n dup3\n /* \"#utility.yul\":28101:28194 */\n tag_748\n jump\t// in\n tag_1048:\n /* \"#utility.yul\":28219:28220 */\n 0x00\n /* \"#utility.yul\":28214:28217 */\n dup3\n /* \"#utility.yul\":28210:28221 */\n add\n /* \"#utility.yul\":28203:28221 */\n swap1\n pop\n /* \"#utility.yul\":27829:28227 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":28233:28612 */\n tag_543:\n /* \"#utility.yul\":28417:28420 */\n 0x00\n /* \"#utility.yul\":28439:28586 */\n tag_1050\n /* \"#utility.yul\":28582:28585 */\n dup3\n /* \"#utility.yul\":28439:28586 */\n tag_749\n jump\t// in\n tag_1050:\n /* \"#utility.yul\":28432:28586 */\n swap2\n pop\n /* \"#utility.yul\":28603:28606 */\n dup2\n /* \"#utility.yul\":28596:28606 */\n swap1\n pop\n /* \"#utility.yul\":28233:28612 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":28618:28766 */\n tag_750:\n /* \"#utility.yul\":28720:28731 */\n 0x00\n /* \"#utility.yul\":28757:28760 */\n dup2\n /* \"#utility.yul\":28742:28760 */\n swap1\n pop\n /* \"#utility.yul\":28618:28766 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":28772:28945 */\n tag_751:\n /* \"#utility.yul\":28912:28937 */\n 0x416363657373436f6e74726f6c3a206163636f756e7420000000000000000000\n /* \"#utility.yul\":28908:28909 */\n 0x00\n /* \"#utility.yul\":28900:28906 */\n dup3\n /* \"#utility.yul\":28896:28910 */\n add\n /* \"#utility.yul\":28889:28938 */\n mstore\n /* \"#utility.yul\":28772:28945 */\n pop\n jump\t// out\n /* \"#utility.yul\":28951:29353 */\n tag_752:\n /* \"#utility.yul\":29111:29114 */\n 0x00\n /* \"#utility.yul\":29132:29217 */\n tag_1054\n /* \"#utility.yul\":29214:29216 */\n 0x17\n /* \"#utility.yul\":29209:29212 */\n dup4\n /* \"#utility.yul\":29132:29217 */\n tag_750\n jump\t// in\n tag_1054:\n /* \"#utility.yul\":29125:29217 */\n swap2\n pop\n /* \"#utility.yul\":29226:29319 */\n tag_1055\n /* \"#utility.yul\":29315:29318 */\n dup3\n /* \"#utility.yul\":29226:29319 */\n tag_751\n jump\t// in\n tag_1055:\n /* \"#utility.yul\":29344:29346 */\n 0x17\n /* \"#utility.yul\":29339:29342 */\n dup3\n /* \"#utility.yul\":29335:29347 */\n add\n /* \"#utility.yul\":29328:29347 */\n swap1\n pop\n /* \"#utility.yul\":28951:29353 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":29359:29458 */\n tag_753:\n /* \"#utility.yul\":29411:29417 */\n 0x00\n /* \"#utility.yul\":29445:29450 */\n dup2\n /* \"#utility.yul\":29439:29451 */\n mload\n /* \"#utility.yul\":29429:29451 */\n swap1\n pop\n /* \"#utility.yul\":29359:29458 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":29464:29710 */\n tag_754:\n /* \"#utility.yul\":29545:29546 */\n 0x00\n /* \"#utility.yul\":29555:29668 */\n tag_1058:\n /* \"#utility.yul\":29569:29575 */\n dup4\n /* \"#utility.yul\":29566:29567 */\n dup2\n /* \"#utility.yul\":29563:29576 */\n lt\n /* \"#utility.yul\":29555:29668 */\n iszero\n tag_1060\n jumpi\n /* \"#utility.yul\":29654:29655 */\n dup1\n /* \"#utility.yul\":29649:29652 */\n dup3\n /* \"#utility.yul\":29645:29656 */\n add\n /* \"#utility.yul\":29639:29657 */\n mload\n /* \"#utility.yul\":29635:29636 */\n dup2\n /* \"#utility.yul\":29630:29633 */\n dup5\n /* \"#utility.yul\":29626:29637 */\n add\n /* \"#utility.yul\":29619:29658 */\n mstore\n /* \"#utility.yul\":29591:29593 */\n 0x20\n /* \"#utility.yul\":29588:29589 */\n dup2\n /* \"#utility.yul\":29584:29594 */\n add\n /* \"#utility.yul\":29579:29594 */\n swap1\n pop\n /* \"#utility.yul\":29555:29668 */\n jump(tag_1058)\n tag_1060:\n /* \"#utility.yul\":29702:29703 */\n 0x00\n /* \"#utility.yul\":29693:29699 */\n dup5\n /* \"#utility.yul\":29688:29691 */\n dup5\n /* \"#utility.yul\":29684:29700 */\n add\n /* \"#utility.yul\":29677:29704 */\n mstore\n /* \"#utility.yul\":29526:29710 */\n pop\n /* \"#utility.yul\":29464:29710 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":29716:30106 */\n tag_755:\n /* \"#utility.yul\":29822:29825 */\n 0x00\n /* \"#utility.yul\":29850:29889 */\n tag_1062\n /* \"#utility.yul\":29883:29888 */\n dup3\n /* \"#utility.yul\":29850:29889 */\n tag_753\n jump\t// in\n tag_1062:\n /* \"#utility.yul\":29905:29994 */\n tag_1063\n /* \"#utility.yul\":29987:29993 */\n dup2\n /* \"#utility.yul\":29982:29985 */\n dup6\n /* \"#utility.yul\":29905:29994 */\n tag_750\n jump\t// in\n tag_1063:\n /* \"#utility.yul\":29898:29994 */\n swap4\n pop\n /* \"#utility.yul\":30003:30068 */\n tag_1064\n /* \"#utility.yul\":30061:30067 */\n dup2\n /* \"#utility.yul\":30056:30059 */\n dup6\n /* \"#utility.yul\":30049:30053 */\n 0x20\n /* \"#utility.yul\":30042:30047 */\n dup7\n /* \"#utility.yul\":30038:30054 */\n add\n /* \"#utility.yul\":30003:30068 */\n tag_754\n jump\t// in\n tag_1064:\n /* \"#utility.yul\":30093:30099 */\n dup1\n /* \"#utility.yul\":30088:30091 */\n dup5\n /* \"#utility.yul\":30084:30100 */\n add\n /* \"#utility.yul\":30077:30100 */\n swap2\n pop\n /* \"#utility.yul\":29826:30106 */\n pop\n /* \"#utility.yul\":29716:30106 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":30112:30279 */\n tag_756:\n /* \"#utility.yul\":30252:30271 */\n 0x206973206d697373696e6720726f6c6520000000000000000000000000000000\n /* \"#utility.yul\":30248:30249 */\n 0x00\n /* \"#utility.yul\":30240:30246 */\n dup3\n /* \"#utility.yul\":30236:30250 */\n add\n /* \"#utility.yul\":30229:30272 */\n mstore\n /* \"#utility.yul\":30112:30279 */\n pop\n jump\t// out\n /* \"#utility.yul\":30285:30687 */\n tag_757:\n /* \"#utility.yul\":30445:30448 */\n 0x00\n /* \"#utility.yul\":30466:30551 */\n tag_1067\n /* \"#utility.yul\":30548:30550 */\n 0x11\n /* \"#utility.yul\":30543:30546 */\n dup4\n /* \"#utility.yul\":30466:30551 */\n tag_750\n jump\t// in\n tag_1067:\n /* \"#utility.yul\":30459:30551 */\n swap2\n pop\n /* \"#utility.yul\":30560:30653 */\n tag_1068\n /* \"#utility.yul\":30649:30652 */\n dup3\n /* \"#utility.yul\":30560:30653 */\n tag_756\n jump\t// in\n tag_1068:\n /* \"#utility.yul\":30678:30680 */\n 0x11\n /* \"#utility.yul\":30673:30676 */\n dup3\n /* \"#utility.yul\":30669:30681 */\n add\n /* \"#utility.yul\":30662:30681 */\n swap1\n pop\n /* \"#utility.yul\":30285:30687 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":30693:31660 */\n tag_577:\n /* \"#utility.yul\":31075:31078 */\n 0x00\n /* \"#utility.yul\":31097:31245 */\n tag_1070\n /* \"#utility.yul\":31241:31244 */\n dup3\n /* \"#utility.yul\":31097:31245 */\n tag_752\n jump\t// in\n tag_1070:\n /* \"#utility.yul\":31090:31245 */\n swap2\n pop\n /* \"#utility.yul\":31262:31357 */\n tag_1071\n /* \"#utility.yul\":31353:31356 */\n dup3\n /* \"#utility.yul\":31344:31350 */\n dup6\n /* \"#utility.yul\":31262:31357 */\n tag_755\n jump\t// in\n tag_1071:\n /* \"#utility.yul\":31255:31357 */\n swap2\n pop\n /* \"#utility.yul\":31374:31522 */\n tag_1072\n /* \"#utility.yul\":31518:31521 */\n dup3\n /* \"#utility.yul\":31374:31522 */\n tag_757\n jump\t// in\n tag_1072:\n /* \"#utility.yul\":31367:31522 */\n swap2\n pop\n /* \"#utility.yul\":31539:31634 */\n tag_1073\n /* \"#utility.yul\":31630:31633 */\n dup3\n /* \"#utility.yul\":31621:31627 */\n dup5\n /* \"#utility.yul\":31539:31634 */\n tag_755\n jump\t// in\n tag_1073:\n /* \"#utility.yul\":31532:31634 */\n swap2\n pop\n /* \"#utility.yul\":31651:31654 */\n dup2\n /* \"#utility.yul\":31644:31654 */\n swap1\n pop\n /* \"#utility.yul\":30693:31660 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":31666:31768 */\n tag_758:\n /* \"#utility.yul\":31707:31713 */\n 0x00\n /* \"#utility.yul\":31758:31760 */\n 0x1f\n /* \"#utility.yul\":31754:31761 */\n not\n /* \"#utility.yul\":31749:31751 */\n 0x1f\n /* \"#utility.yul\":31742:31747 */\n dup4\n /* \"#utility.yul\":31738:31752 */\n add\n /* \"#utility.yul\":31734:31762 */\n and\n /* \"#utility.yul\":31724:31762 */\n swap1\n pop\n /* \"#utility.yul\":31666:31768 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":31774:32151 */\n tag_759:\n /* \"#utility.yul\":31862:31865 */\n 0x00\n /* \"#utility.yul\":31890:31929 */\n tag_1076\n /* \"#utility.yul\":31923:31928 */\n dup3\n /* \"#utility.yul\":31890:31929 */\n tag_753\n jump\t// in\n tag_1076:\n /* \"#utility.yul\":31945:32016 */\n tag_1077\n /* \"#utility.yul\":32009:32015 */\n dup2\n /* \"#utility.yul\":32004:32007 */\n dup6\n /* \"#utility.yul\":31945:32016 */\n tag_719\n jump\t// in\n tag_1077:\n /* \"#utility.yul\":31938:32016 */\n swap4\n pop\n /* \"#utility.yul\":32025:32090 */\n tag_1078\n /* \"#utility.yul\":32083:32089 */\n dup2\n /* \"#utility.yul\":32078:32081 */\n dup6\n /* \"#utility.yul\":32071:32075 */\n 0x20\n /* \"#utility.yul\":32064:32069 */\n dup7\n /* \"#utility.yul\":32060:32076 */\n add\n /* \"#utility.yul\":32025:32090 */\n tag_754\n jump\t// in\n tag_1078:\n /* \"#utility.yul\":32115:32144 */\n tag_1079\n /* \"#utility.yul\":32137:32143 */\n dup2\n /* \"#utility.yul\":32115:32144 */\n tag_758\n jump\t// in\n tag_1079:\n /* \"#utility.yul\":32110:32113 */\n dup5\n /* \"#utility.yul\":32106:32145 */\n add\n /* \"#utility.yul\":32099:32145 */\n swap2\n pop\n /* \"#utility.yul\":31866:32151 */\n pop\n /* \"#utility.yul\":31774:32151 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":32157:32470 */\n tag_579:\n /* \"#utility.yul\":32270:32274 */\n 0x00\n /* \"#utility.yul\":32308:32310 */\n 0x20\n /* \"#utility.yul\":32297:32306 */\n dup3\n /* \"#utility.yul\":32293:32311 */\n add\n /* \"#utility.yul\":32285:32311 */\n swap1\n pop\n /* \"#utility.yul\":32357:32366 */\n dup2\n /* \"#utility.yul\":32351:32355 */\n dup2\n /* \"#utility.yul\":32347:32367 */\n sub\n /* \"#utility.yul\":32343:32344 */\n 0x00\n /* \"#utility.yul\":32332:32341 */\n dup4\n /* \"#utility.yul\":32328:32345 */\n add\n /* \"#utility.yul\":32321:32368 */\n mstore\n /* \"#utility.yul\":32385:32463 */\n tag_1081\n /* \"#utility.yul\":32458:32462 */\n dup2\n /* \"#utility.yul\":32449:32455 */\n dup5\n /* \"#utility.yul\":32385:32463 */\n tag_759\n jump\t// in\n tag_1081:\n /* \"#utility.yul\":32377:32463 */\n swap1\n pop\n /* \"#utility.yul\":32157:32470 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":32476:32918 */\n tag_610:\n /* \"#utility.yul\":32625:32629 */\n 0x00\n /* \"#utility.yul\":32663:32665 */\n 0x60\n /* \"#utility.yul\":32652:32661 */\n dup3\n /* \"#utility.yul\":32648:32666 */\n add\n /* \"#utility.yul\":32640:32666 */\n swap1\n pop\n /* \"#utility.yul\":32676:32747 */\n tag_1083\n /* \"#utility.yul\":32744:32745 */\n 0x00\n /* \"#utility.yul\":32733:32742 */\n dup4\n /* \"#utility.yul\":32729:32746 */\n add\n /* \"#utility.yul\":32720:32726 */\n dup7\n /* \"#utility.yul\":32676:32747 */\n tag_700\n jump\t// in\n tag_1083:\n /* \"#utility.yul\":32757:32829 */\n tag_1084\n /* \"#utility.yul\":32825:32827 */\n 0x20\n /* \"#utility.yul\":32814:32823 */\n dup4\n /* \"#utility.yul\":32810:32828 */\n add\n /* \"#utility.yul\":32801:32807 */\n dup6\n /* \"#utility.yul\":32757:32829 */\n tag_700\n jump\t// in\n tag_1084:\n /* \"#utility.yul\":32839:32911 */\n tag_1085\n /* \"#utility.yul\":32907:32909 */\n 0x40\n /* \"#utility.yul\":32896:32905 */\n dup4\n /* \"#utility.yul\":32892:32910 */\n add\n /* \"#utility.yul\":32883:32889 */\n dup5\n /* \"#utility.yul\":32839:32911 */\n tag_708\n jump\t// in\n tag_1085:\n /* \"#utility.yul\":32476:32918 */\n swap5\n swap4\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":32924:33095 */\n tag_633:\n /* \"#utility.yul\":32963:32966 */\n 0x00\n /* \"#utility.yul\":32986:33010 */\n tag_1087\n /* \"#utility.yul\":33004:33009 */\n dup3\n /* \"#utility.yul\":32986:33010 */\n tag_707\n jump\t// in\n tag_1087:\n /* \"#utility.yul\":32977:33010 */\n swap2\n pop\n /* \"#utility.yul\":33032:33036 */\n 0x00\n /* \"#utility.yul\":33025:33030 */\n dup3\n /* \"#utility.yul\":33022:33037 */\n sub\n /* \"#utility.yul\":33019:33060 */\n tag_1088\n jumpi\n /* \"#utility.yul\":33040:33058 */\n tag_1089\n tag_741\n jump\t// in\n tag_1089:\n /* \"#utility.yul\":33019:33060 */\n tag_1088:\n /* \"#utility.yul\":33087:33088 */\n 0x01\n /* \"#utility.yul\":33080:33085 */\n dup3\n /* \"#utility.yul\":33076:33089 */\n sub\n /* \"#utility.yul\":33069:33089 */\n swap1\n pop\n /* \"#utility.yul\":32924:33095 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":33101:33283 */\n tag_760:\n /* \"#utility.yul\":33241:33275 */\n 0x537472696e67733a20686578206c656e67746820696e73756666696369656e74\n /* \"#utility.yul\":33237:33238 */\n 0x00\n /* \"#utility.yul\":33229:33235 */\n dup3\n /* \"#utility.yul\":33225:33239 */\n add\n /* \"#utility.yul\":33218:33276 */\n mstore\n /* \"#utility.yul\":33101:33283 */\n pop\n jump\t// out\n /* \"#utility.yul\":33289:33655 */\n tag_761:\n /* \"#utility.yul\":33431:33434 */\n 0x00\n /* \"#utility.yul\":33452:33519 */\n tag_1092\n /* \"#utility.yul\":33516:33518 */\n 0x20\n /* \"#utility.yul\":33511:33514 */\n dup4\n /* \"#utility.yul\":33452:33519 */\n tag_719\n jump\t// in\n tag_1092:\n /* \"#utility.yul\":33445:33519 */\n swap2\n pop\n /* \"#utility.yul\":33528:33621 */\n tag_1093\n /* \"#utility.yul\":33617:33620 */\n dup3\n /* \"#utility.yul\":33528:33621 */\n tag_760\n jump\t// in\n tag_1093:\n /* \"#utility.yul\":33646:33648 */\n 0x20\n /* \"#utility.yul\":33641:33644 */\n dup3\n /* \"#utility.yul\":33637:33649 */\n add\n /* \"#utility.yul\":33630:33649 */\n swap1\n pop\n /* \"#utility.yul\":33289:33655 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":33661:34080 */\n tag_636:\n /* \"#utility.yul\":33827:33831 */\n 0x00\n /* \"#utility.yul\":33865:33867 */\n 0x20\n /* \"#utility.yul\":33854:33863 */\n dup3\n /* \"#utility.yul\":33850:33868 */\n add\n /* \"#utility.yul\":33842:33868 */\n swap1\n pop\n /* \"#utility.yul\":33914:33923 */\n dup2\n /* \"#utility.yul\":33908:33912 */\n dup2\n /* \"#utility.yul\":33904:33924 */\n sub\n /* \"#utility.yul\":33900:33901 */\n 0x00\n /* \"#utility.yul\":33889:33898 */\n dup4\n /* \"#utility.yul\":33885:33902 */\n add\n /* \"#utility.yul\":33878:33925 */\n mstore\n /* \"#utility.yul\":33942:34073 */\n tag_1095\n /* \"#utility.yul\":34068:34072 */\n dup2\n /* \"#utility.yul\":33942:34073 */\n tag_761\n jump\t// in\n tag_1095:\n /* \"#utility.yul\":33934:34073 */\n swap1\n pop\n /* \"#utility.yul\":33661:34080 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":34086:34223 */\n tag_762:\n /* \"#utility.yul\":34140:34145 */\n 0x00\n /* \"#utility.yul\":34171:34177 */\n dup2\n /* \"#utility.yul\":34165:34178 */\n mload\n /* \"#utility.yul\":34156:34178 */\n swap1\n pop\n /* \"#utility.yul\":34187:34217 */\n tag_1097\n /* \"#utility.yul\":34211:34216 */\n dup2\n /* \"#utility.yul\":34187:34217 */\n tag_701\n jump\t// in\n tag_1097:\n /* \"#utility.yul\":34086:34223 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":34229:34574 */\n tag_652:\n /* \"#utility.yul\":34296:34302 */\n 0x00\n /* \"#utility.yul\":34345:34347 */\n 0x20\n /* \"#utility.yul\":34333:34342 */\n dup3\n /* \"#utility.yul\":34324:34331 */\n dup5\n /* \"#utility.yul\":34320:34343 */\n sub\n /* \"#utility.yul\":34316:34348 */\n slt\n /* \"#utility.yul\":34313:34432 */\n iszero\n tag_1099\n jumpi\n /* \"#utility.yul\":34351:34430 */\n tag_1100\n tag_685\n jump\t// in\n tag_1100:\n /* \"#utility.yul\":34313:34432 */\n tag_1099:\n /* \"#utility.yul\":34471:34472 */\n 0x00\n /* \"#utility.yul\":34496:34557 */\n tag_1101\n /* \"#utility.yul\":34549:34556 */\n dup5\n /* \"#utility.yul\":34540:34546 */\n dup3\n /* \"#utility.yul\":34529:34538 */\n dup6\n /* \"#utility.yul\":34525:34547 */\n add\n /* \"#utility.yul\":34496:34557 */\n tag_762\n jump\t// in\n tag_1101:\n /* \"#utility.yul\":34486:34557 */\n swap2\n pop\n /* \"#utility.yul\":34442:34567 */\n pop\n /* \"#utility.yul\":34229:34574 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":34580:34809 */\n tag_763:\n /* \"#utility.yul\":34720:34754 */\n 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e\n /* \"#utility.yul\":34716:34717 */\n 0x00\n /* \"#utility.yul\":34708:34714 */\n dup3\n /* \"#utility.yul\":34704:34718 */\n add\n /* \"#utility.yul\":34697:34755 */\n mstore\n /* \"#utility.yul\":34789:34801 */\n 0x6f74207375636365656400000000000000000000000000000000000000000000\n /* \"#utility.yul\":34784:34786 */\n 0x20\n /* \"#utility.yul\":34776:34782 */\n dup3\n /* \"#utility.yul\":34772:34787 */\n add\n /* \"#utility.yul\":34765:34802 */\n mstore\n /* \"#utility.yul\":34580:34809 */\n pop\n jump\t// out\n /* \"#utility.yul\":34815:35181 */\n tag_764:\n /* \"#utility.yul\":34957:34960 */\n 0x00\n /* \"#utility.yul\":34978:35045 */\n tag_1104\n /* \"#utility.yul\":35042:35044 */\n 0x2a\n /* \"#utility.yul\":35037:35040 */\n dup4\n /* \"#utility.yul\":34978:35045 */\n tag_719\n jump\t// in\n tag_1104:\n /* \"#utility.yul\":34971:35045 */\n swap2\n pop\n /* \"#utility.yul\":35054:35147 */\n tag_1105\n /* \"#utility.yul\":35143:35146 */\n dup3\n /* \"#utility.yul\":35054:35147 */\n tag_763\n jump\t// in\n tag_1105:\n /* \"#utility.yul\":35172:35174 */\n 0x40\n /* \"#utility.yul\":35167:35170 */\n dup3\n /* \"#utility.yul\":35163:35175 */\n add\n /* \"#utility.yul\":35156:35175 */\n swap1\n pop\n /* \"#utility.yul\":34815:35181 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":35187:35606 */\n tag_655:\n /* \"#utility.yul\":35353:35357 */\n 0x00\n /* \"#utility.yul\":35391:35393 */\n 0x20\n /* \"#utility.yul\":35380:35389 */\n dup3\n /* \"#utility.yul\":35376:35394 */\n add\n /* \"#utility.yul\":35368:35394 */\n swap1\n pop\n /* \"#utility.yul\":35440:35449 */\n dup2\n /* \"#utility.yul\":35434:35438 */\n dup2\n /* \"#utility.yul\":35430:35450 */\n sub\n /* \"#utility.yul\":35426:35427 */\n 0x00\n /* \"#utility.yul\":35415:35424 */\n dup4\n /* \"#utility.yul\":35411:35428 */\n add\n /* \"#utility.yul\":35404:35451 */\n mstore\n /* \"#utility.yul\":35468:35599 */\n tag_1107\n /* \"#utility.yul\":35594:35598 */\n dup2\n /* \"#utility.yul\":35468:35599 */\n tag_764\n jump\t// in\n tag_1107:\n /* \"#utility.yul\":35460:35599 */\n swap1\n pop\n /* \"#utility.yul\":35187:35606 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":35612:35837 */\n tag_765:\n /* \"#utility.yul\":35752:35786 */\n 0x416464726573733a20696e73756666696369656e742062616c616e636520666f\n /* \"#utility.yul\":35748:35749 */\n 0x00\n /* \"#utility.yul\":35740:35746 */\n dup3\n /* \"#utility.yul\":35736:35750 */\n add\n /* \"#utility.yul\":35729:35787 */\n mstore\n /* \"#utility.yul\":35821:35829 */\n 0x722063616c6c0000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":35816:35818 */\n 0x20\n /* \"#utility.yul\":35808:35814 */\n dup3\n /* \"#utility.yul\":35804:35819 */\n add\n /* \"#utility.yul\":35797:35830 */\n mstore\n /* \"#utility.yul\":35612:35837 */\n pop\n jump\t// out\n /* \"#utility.yul\":35843:36209 */\n tag_766:\n /* \"#utility.yul\":35985:35988 */\n 0x00\n /* \"#utility.yul\":36006:36073 */\n tag_1110\n /* \"#utility.yul\":36070:36072 */\n 0x26\n /* \"#utility.yul\":36065:36068 */\n dup4\n /* \"#utility.yul\":36006:36073 */\n tag_719\n jump\t// in\n tag_1110:\n /* \"#utility.yul\":35999:36073 */\n swap2\n pop\n /* \"#utility.yul\":36082:36175 */\n tag_1111\n /* \"#utility.yul\":36171:36174 */\n dup3\n /* \"#utility.yul\":36082:36175 */\n tag_765\n jump\t// in\n tag_1111:\n /* \"#utility.yul\":36200:36202 */\n 0x40\n /* \"#utility.yul\":36195:36198 */\n dup3\n /* \"#utility.yul\":36191:36203 */\n add\n /* \"#utility.yul\":36184:36203 */\n swap1\n pop\n /* \"#utility.yul\":35843:36209 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":36215:36634 */\n tag_662:\n /* \"#utility.yul\":36381:36385 */\n 0x00\n /* \"#utility.yul\":36419:36421 */\n 0x20\n /* \"#utility.yul\":36408:36417 */\n dup3\n /* \"#utility.yul\":36404:36422 */\n add\n /* \"#utility.yul\":36396:36422 */\n swap1\n pop\n /* \"#utility.yul\":36468:36477 */\n dup2\n /* \"#utility.yul\":36462:36466 */\n dup2\n /* \"#utility.yul\":36458:36478 */\n sub\n /* \"#utility.yul\":36454:36455 */\n 0x00\n /* \"#utility.yul\":36443:36452 */\n dup4\n /* \"#utility.yul\":36439:36456 */\n add\n /* \"#utility.yul\":36432:36479 */\n mstore\n /* \"#utility.yul\":36496:36627 */\n tag_1113\n /* \"#utility.yul\":36622:36626 */\n dup2\n /* \"#utility.yul\":36496:36627 */\n tag_766\n jump\t// in\n tag_1113:\n /* \"#utility.yul\":36488:36627 */\n swap1\n pop\n /* \"#utility.yul\":36215:36634 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":36640:36738 */\n tag_767:\n /* \"#utility.yul\":36691:36697 */\n 0x00\n /* \"#utility.yul\":36725:36730 */\n dup2\n /* \"#utility.yul\":36719:36731 */\n mload\n /* \"#utility.yul\":36709:36731 */\n swap1\n pop\n /* \"#utility.yul\":36640:36738 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":36744:37130 */\n tag_768:\n /* \"#utility.yul\":36848:36851 */\n 0x00\n /* \"#utility.yul\":36876:36914 */\n tag_1116\n /* \"#utility.yul\":36908:36913 */\n dup3\n /* \"#utility.yul\":36876:36914 */\n tag_767\n jump\t// in\n tag_1116:\n /* \"#utility.yul\":36930:37018 */\n tag_1117\n /* \"#utility.yul\":37011:37017 */\n dup2\n /* \"#utility.yul\":37006:37009 */\n dup6\n /* \"#utility.yul\":36930:37018 */\n tag_747\n jump\t// in\n tag_1117:\n /* \"#utility.yul\":36923:37018 */\n swap4\n pop\n /* \"#utility.yul\":37027:37092 */\n tag_1118\n /* \"#utility.yul\":37085:37091 */\n dup2\n /* \"#utility.yul\":37080:37083 */\n dup6\n /* \"#utility.yul\":37073:37077 */\n 0x20\n /* \"#utility.yul\":37066:37071 */\n dup7\n /* \"#utility.yul\":37062:37078 */\n add\n /* \"#utility.yul\":37027:37092 */\n tag_754\n jump\t// in\n tag_1118:\n /* \"#utility.yul\":37117:37123 */\n dup1\n /* \"#utility.yul\":37112:37115 */\n dup5\n /* \"#utility.yul\":37108:37124 */\n add\n /* \"#utility.yul\":37101:37124 */\n swap2\n pop\n /* \"#utility.yul\":36852:37130 */\n pop\n /* \"#utility.yul\":36744:37130 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":37136:37407 */\n tag_664:\n /* \"#utility.yul\":37266:37269 */\n 0x00\n /* \"#utility.yul\":37288:37381 */\n tag_1120\n /* \"#utility.yul\":37377:37380 */\n dup3\n /* \"#utility.yul\":37368:37374 */\n dup5\n /* \"#utility.yul\":37288:37381 */\n tag_768\n jump\t// in\n tag_1120:\n /* \"#utility.yul\":37281:37381 */\n swap2\n pop\n /* \"#utility.yul\":37398:37401 */\n dup2\n /* \"#utility.yul\":37391:37401 */\n swap1\n pop\n /* \"#utility.yul\":37136:37407 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":37413:37592 */\n tag_769:\n /* \"#utility.yul\":37553:37584 */\n 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000\n /* \"#utility.yul\":37549:37550 */\n 0x00\n /* \"#utility.yul\":37541:37547 */\n dup3\n /* \"#utility.yul\":37537:37551 */\n add\n /* \"#utility.yul\":37530:37585 */\n mstore\n /* \"#utility.yul\":37413:37592 */\n pop\n jump\t// out\n /* \"#utility.yul\":37598:37964 */\n tag_770:\n /* \"#utility.yul\":37740:37743 */\n 0x00\n /* \"#utility.yul\":37761:37828 */\n tag_1123\n /* \"#utility.yul\":37825:37827 */\n 0x1d\n /* \"#utility.yul\":37820:37823 */\n dup4\n /* \"#utility.yul\":37761:37828 */\n tag_719\n jump\t// in\n tag_1123:\n /* \"#utility.yul\":37754:37828 */\n swap2\n pop\n /* \"#utility.yul\":37837:37930 */\n tag_1124\n /* \"#utility.yul\":37926:37929 */\n dup3\n /* \"#utility.yul\":37837:37930 */\n tag_769\n jump\t// in\n tag_1124:\n /* \"#utility.yul\":37955:37957 */\n 0x20\n /* \"#utility.yul\":37950:37953 */\n dup3\n /* \"#utility.yul\":37946:37958 */\n add\n /* \"#utility.yul\":37939:37958 */\n swap1\n pop\n /* \"#utility.yul\":37598:37964 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":37970:38389 */\n tag_676:\n /* \"#utility.yul\":38136:38140 */\n 0x00\n /* \"#utility.yul\":38174:38176 */\n 0x20\n /* \"#utility.yul\":38163:38172 */\n dup3\n /* \"#utility.yul\":38159:38177 */\n add\n /* \"#utility.yul\":38151:38177 */\n swap1\n pop\n /* \"#utility.yul\":38223:38232 */\n dup2\n /* \"#utility.yul\":38217:38221 */\n dup2\n /* \"#utility.yul\":38213:38233 */\n sub\n /* \"#utility.yul\":38209:38210 */\n 0x00\n /* \"#utility.yul\":38198:38207 */\n dup4\n /* \"#utility.yul\":38194:38211 */\n add\n /* \"#utility.yul\":38187:38234 */\n mstore\n /* \"#utility.yul\":38251:38382 */\n tag_1126\n /* \"#utility.yul\":38377:38381 */\n dup2\n /* \"#utility.yul\":38251:38382 */\n tag_770\n jump\t// in\n tag_1126:\n /* \"#utility.yul\":38243:38382 */\n swap1\n pop\n /* \"#utility.yul\":37970:38389 */\n swap2\n swap1\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212201fcf5d16c95d4a4b926e62a8773ac7a8323e139f06764cee68c39bb9f600314364736f6c63430008110033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506145bb806100206000396000f3fe6080604052600436106102725760003560e01c8063658e48211161014f578063d3e78e4d116100c1578063f46b80ca1161007a578063f46b80ca14610930578063f7888aec1461096d578063f85fc0ab146109aa578063fbfe3ab2146109d5578063fc6d4e3914610a12578063fdbb219d14610a2e57610272565b8063d3e78e4d14610848578063d547741f14610873578063dcda7dad1461089c578063e1c7392a146108c7578063f2d4120e146108de578063f3fef3a31461090757610272565b8063a0cf0aea11610113578063a0cf0aea14610726578063a217fddf14610751578063ae876f611461077c578063b278110f146107a5578063bf7cb70b146107e2578063c23f001f1461080b57610272565b8063658e4821146106455780636bb85f4c1461066e57806380c78f1c1461069757806391d14854146106c05780639d082c98146106fd57610272565b806324d7806c116101e857806331ac9920116101ac57806331ac99201461054d57806336568abe146105765780633b8453ca1461059f5780633d0950a8146105c857806342e228ef146105f157806360e007a61461061a57610272565b806324d7806c1461046857806324ec7590146104a55780632620d800146104d05780632a0acc6a146104f95780632f2ff15d1461052457610272565b8063102d79271161023a578063102d79271461035c5780631037d18c1461038757806310881166146103b0578063155dc549146103d95780631ac3ddeb14610402578063248a9ca31461042b57610272565b806301ffc9a714610277578063041c60ee146102b45780630560bd96146102dd5780630b67d9251461031a5780630d6aef0414610345575b600080fd5b34801561028357600080fd5b5061029e6004803603810190610299919061323c565b610a59565b6040516102ab9190613284565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d69190613304565b610ad3565b005b3480156102e957600080fd5b5061030460048036038101906102ff91906133af565b610b3c565b6040516103119190613284565b60405180910390f35b34801561032657600080fd5b5061032f610b6f565b60405161033c91906133eb565b60405180910390f35b34801561035157600080fd5b5061035a610b93565b005b34801561036857600080fd5b50610371610bc8565b60405161037e9190613284565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190613304565b610bdb565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190613304565b610c13565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190613432565b610c4b565b005b34801561040e57600080fd5b50610429600480360381019061042491906133af565b610ca8565b005b34801561043757600080fd5b50610452600480360381019061044d9190613495565b610d6d565b60405161045f91906134d1565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a91906133af565b610d8d565b60405161049c9190613284565b60405180910390f35b3480156104b157600080fd5b506104ba610dc0565b6040516104c79190613505565b60405180910390f35b3480156104dc57600080fd5b506104f760048036038101906104f29190613304565b610dc6565b005b34801561050557600080fd5b5061050e610dfe565b60405161051b91906134d1565b60405180910390f35b34801561053057600080fd5b5061054b60048036038101906105469190613520565b610e22565b005b34801561055957600080fd5b50610574600480360381019061056f919061358c565b610e43565b005b34801561058257600080fd5b5061059d60048036038101906105989190613520565b610e58565b005b3480156105ab57600080fd5b506105c660048036038101906105c191906135b9565b610edb565b005b3480156105d457600080fd5b506105ef60048036038101906105ea9190613304565b610fad565b005b3480156105fd57600080fd5b506106186004803603810190610613919061363a565b610fe5565b005b34801561062657600080fd5b5061062f611046565b60405161063c9190613284565b60405180910390f35b34801561065157600080fd5b5061066c60048036038101906106679190613304565b611059565b005b34801561067a57600080fd5b5061069560048036038101906106909190613432565b6110b9565b005b3480156106a357600080fd5b506106be60048036038101906106b99190613304565b611116565b005b3480156106cc57600080fd5b506106e760048036038101906106e29190613520565b61114e565b6040516106f49190613284565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f9190613304565b6111b9565b005b34801561073257600080fd5b5061073b6111f1565b60405161074891906133eb565b60405180910390f35b34801561075d57600080fd5b506107666111f6565b60405161077391906134d1565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e9190613304565b6111fd565b005b3480156107b157600080fd5b506107cc60048036038101906107c791906133af565b61126f565b6040516107d99190613284565b60405180910390f35b3480156107ee57600080fd5b5061080960048036038101906108049190613304565b6112a2565b005b34801561081757600080fd5b50610832600480360381019061082d919061369a565b6112da565b60405161083f9190613505565b60405180910390f35b34801561085457600080fd5b5061085d6112ff565b60405161086a91906134d1565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190613520565b611323565b005b3480156108a857600080fd5b506108b1611344565b6040516108be91906134d1565b60405180910390f35b3480156108d357600080fd5b506108dc611368565b005b3480156108ea57600080fd5b50610905600480360381019061090091906136da565b611439565b005b34801561091357600080fd5b5061092e600480360381019061092991906137d6565b61158e565b005b34801561093c57600080fd5b506109576004803603810190610952919061363a565b6115e8565b60405161096491906138d4565b60405180910390f35b34801561097957600080fd5b50610994600480360381019061098f919061369a565b611727565b6040516109a19190613505565b60405180910390f35b3480156109b657600080fd5b506109bf6117ae565b6040516109cc9190613505565b60405180910390f35b3480156109e157600080fd5b506109fc60048036038101906109f791906133af565b6117ba565b604051610a099190613284565b60405180910390f35b610a2c6004803603810190610a27919061394c565b6117ed565b005b348015610a3a57600080fd5b50610a43611b2e565b604051610a5091906134d1565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610acc5750610acb82611b52565b5b9050919050565b610adb611bbc565b610ae433611c0b565b610b30828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050503033611c6e565b610b38611d5f565b5050565b6000610b687f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198361114e565b9050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9c33611d69565b610bc67fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233611dcc565b565b60ca60019054906101000a900460ff1681565b610be433611d69565b610c0f7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383611eae565b5050565b610c1c33611d69565b610c477f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383611f06565b5050565b610c5433611d69565b8060ca60006101000a81548160ff0219169083151502179055507f46d6d1a61669d91ea3801d9d57b7398c4ced2120f35ca8559749a391047a24ae81604051610c9d9190613284565b60405180910390a150565b610cb0611bbc565b6000600167ffffffffffffffff811115610ccd57610ccc6139ac565b5b604051908082528060200260200182016040528015610cfb5781602001602082028036833780820191505090505b5090508181600081518110610d1357610d126139db565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610d5633611c0b565b610d61813033611c6e565b50610d6a611d5f565b50565b600060656000838152602001908152602001600020600101549050919050565b6000610db97fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428361114e565b9050919050565b60c95481565b610dcf33611d69565b610dfa7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383611eae565b5050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4281565b610e2b82610d6d565b610e3481611f5e565b610e3e8383611f72565b505050565b610e4c33611d69565b610e5581612053565b50565b610e606120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec490613a8d565b60405180910390fd5b610ed78282611dcc565b5050565b610ee3611bbc565b600082829050905060005b81811015610f9d57610f90868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050858584818110610f4e57610f4d6139db565b5b9050602002016020810190610f6391906133af565b868685818110610f7657610f756139db565b5b9050602002016020810190610f8b91906133af565b611c6e565b8080600101915050610eee565b5050610fa7611d5f565b50505050565b610fb633611d69565b610fe17fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611f06565b5050565b610fed611bbc565b611039838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508283611c6e565b611041611d5f565b505050565b60ca60009054906101000a900460ff1681565b611061611bbc565b6110ad828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050503333611c6e565b6110b5611d5f565b5050565b6110c233611d69565b8060ca60016101000a81548160ff0219169083151502179055507f618c1dfcdc0554eaa0869d571defb09f99ae2add7c190d59444db6d0392489a78160405161110b9190613284565b60405180910390a150565b61111f33611d69565b61114a7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383611f06565b5050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6111c233611d69565b6111ed7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383611f06565b5050565b600081565b6000801b81565b61120a6000801b3361114e565b611240576040517f46ab053d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61126b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611eae565b5050565b600061129b7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838361114e565b9050919050565b6112ab33611d69565b6112d67f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383611eae565b5050565b60cb602052816000526040600020602052806000526040600020600091509150505481565b7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f08381565b61132c82610d6d565b61133581611f5e565b61133f8383611dcc565b505050565b7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc63281565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90613af9565b60405180910390fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060159054906101000a900460ff1615905080801561146c57506001600060149054906101000a900460ff1660ff16105b8061149b575061147b306120de565b15801561149a57506001600060149054906101000a900460ff1660ff16145b5b6114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613b8b565b60405180910390fd5b6001600060146101000a81548160ff021916908360ff1602179055508015611518576001600060156101000a81548160ff0219169083151502179055505b6115298a8a8a8a8a8a8a8a8a612101565b80156115825760008060156101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516115799190613bfd565b60405180910390a15b50505050505050505050565b611596611bbc565b600081036115d0576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115dc823333846121d6565b6115e4611d5f565b5050565b6060600084849050905060008167ffffffffffffffff81111561160e5761160d6139ac565b5b60405190808252806020026020018201604052801561163c5781602001602082028036833780820191505090505b50905060005b8281101561171a5760cb60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888481811061169e5761169d6139db565b5b90506020020160208101906116b391906133af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054828281518110611701576117006139db565b5b6020026020010181815250508080600101915050611642565b5080925050509392505050565b600060cb60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b670de0b6b3a764000081565b60006117e67fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328361114e565b9050919050565b6117f5611bbc565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b90613c8a565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613d1c565b60405180910390fd5b60008383905090506000805b82811015611ae457600080600088888581811061193e5761193d6139db565b5b90506020028101906119509190613d4b565b81019061195d9190613dec565b92509250925060ca60009054906101000a900460ff161561198257611981836124aa565b5b60ca60019054906101000a900460ff16156119a1576119a08161250d565b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119e5576119e0878484612570565b6119f4565b81856119f19190613e6e565b94505b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f023f5e053cbb2c4e0d563d51f8cafaa385fc620caa979fbcac023059ad1687d98686604051611a6a929190613ea2565b60405180910390a4600060c9541115611ac8576000670de0b6b3a764000060c95484611a969190613ecb565b611aa09190613f3c565b9050611ab884838386611ab39190613f6d565b6125a2565b611ac284826126b6565b50611ad4565b611ad38382846125a2565b5b838060010194505050505061191e565b5034811115611b1f576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050611b29611d5f565b505050565b7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed1981565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600260975403611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890613fed565b60405180910390fd5b6002609781905550565b611c357fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838261114e565b611c6b576040517f9d13e6e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60008351905060005b81811015611d5857600060cb60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878481518110611cd557611cd46139db565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611d4a57611d49868381518110611d3957611d386139db565b5b60200260200101518686846121d6565b5b818060010192505050611c77565b5050505050565b6001609781905550565b611d937fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428261114e565b611dc9576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b611dd6828261114e565b15611eaa5760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e4f6120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600082829050905060005b81811015611eff57611ef285858584818110611ed857611ed76139db565b5b9050602002016020810190611eed91906133af565b611323565b8080600101915050611eb9565b5050505050565b600082829050905060005b81811015611f5757611f4a85858584818110611f3057611f2f6139db565b5b9050602002016020810190611f4591906133af565b6127b2565b8080600101915050611f11565b5050505050565b611f6f81611f6a6120d6565b6127c0565b50565b611f7c828261114e565b61204f5760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ff46120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b670de0b6b3a7640000811115612095576040517fcd4e616700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c9819055507fd4c19c993aeeb50b76da8b158f84806c9d235eff5b86f3a36f12a2e1dd4e6eac816040516120cb9190613505565b60405180910390a150565b600033905090565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060159054906101000a900460ff16612150576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121479061407f565b60405180910390fd5b6121608989898989898989612845565b612168612a92565b600089899050111561219057600160ca60006101000a81548160ff0219169083151502179055505b60008787905011156121b857600160ca60016101000a81548160ff0219169083151502179055505b60008111156121cb576121ca81612053565b5b505050505050505050565b60cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561228c576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060cb60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123189190613f6d565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123fc5760008273ffffffffffffffffffffffffffffffffffffffff1682604051612379906140d0565b60006040518083038185875af1925050503d80600081146123b6576040519150601f19603f3d011682016040523d82523d6000602084013e6123bb565b606091505b50509050806123f6576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50612428565b61242782828673ffffffffffffffffffffffffffffffffffffffff16612aeb9092919063ffffffff16565b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f78460405161249c9190613505565b60405180910390a450505050565b6124d47f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198261114e565b61250a576040517fe51cf7bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6125377fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328261114e565b61256d576040517f375a7a9200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b61259d8330838573ffffffffffffffffffffffffffffffffffffffff16612b71909392919063ffffffff16565b505050565b8060cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461262e9190613e6e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fb91b2d1906a6e6e2b45b99eb26ac141804eb2684a0df30699fdcb8b5ced1d518846040516126a99190613505565b60405180910390a4505050565b8060cb60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127429190613e6e565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f468c2f4ec7ce54b88b575db5d64710429b1880e4581f5328aaa4b3f51dadc58b836040516127a69190613505565b60405180910390a35050565b6127bc8282611f72565b5050565b6127ca828261114e565b612841576127d781612bfa565b6127e58360001c6020612c27565b6040516020016127f69291906141ee565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128389190614272565b60405180910390fd5b5050565b600060159054906101000a900460ff16612894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288b9061407f565b60405180910390fd5b61289c612e63565b6128a96000801b336127b2565b6128d37fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632306127b2565b61291d7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed197fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129677fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6327fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129b17fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0837fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129dc7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198989611f06565b612a077fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328787611f06565b612a327fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838585611f06565b612a5d7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611f06565b612a887f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed1960006127b2565b5050505050505050565b600060159054906101000a900460ff16612ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad89061407f565b60405180910390fd5b612ae9612f10565b565b612b6c8363a9059cbb60e01b8484604051602401612b0a929190613ea2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f69565b505050565b612bf4846323b872dd60e01b858585604051602401612b9293929190614294565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f69565b50505050565b6060612c208273ffffffffffffffffffffffffffffffffffffffff16601460ff16612c27565b9050919050565b606060006002836002612c3a9190613ecb565b612c449190613e6e565b67ffffffffffffffff811115612c5d57612c5c6139ac565b5b6040519080825280601f01601f191660200182016040528015612c8f5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612cc757612cc66139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612d2b57612d2a6139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612d6b9190613ecb565b612d759190613e6e565b90505b6001811115612e15577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612db757612db66139db565b5b1a60f81b828281518110612dce57612dcd6139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612e0e906142cb565b9050612d78565b5060008414612e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5090614340565b60405180910390fd5b8091505092915050565b600060159054906101000a900460ff16612eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea99061407f565b60405180910390fd5b565b6000612ebf83610d6d565b90508160656000858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600060159054906101000a900460ff16612f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f569061407f565b60405180910390fd5b6001609781905550565b6000612fcb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166130309092919063ffffffff16565b905060008151111561302b5780806020019051810190612feb9190614375565b61302a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302190614414565b60405180910390fd5b5b505050565b606061303f8484600085613048565b90509392505050565b60608247101561308d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613084906144a6565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516130b69190614502565b60006040518083038185875af1925050503d80600081146130f3576040519150601f19603f3d011682016040523d82523d6000602084013e6130f8565b606091505b509150915061310987838387613115565b92505050949350505050565b6060831561317757600083510361316f5761312f856120de565b61316e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316590614565565b60405180910390fd5b5b829050613182565b613181838361318a565b5b949350505050565b60008251111561319d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d19190614272565b60405180910390fd5b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613219816131e4565b811461322457600080fd5b50565b60008135905061323681613210565b92915050565b600060208284031215613252576132516131da565b5b600061326084828501613227565b91505092915050565b60008115159050919050565b61327e81613269565b82525050565b60006020820190506132996000830184613275565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126132c4576132c361329f565b5b8235905067ffffffffffffffff8111156132e1576132e06132a4565b5b6020830191508360208202830111156132fd576132fc6132a9565b5b9250929050565b6000806020838503121561331b5761331a6131da565b5b600083013567ffffffffffffffff811115613339576133386131df565b5b613345858286016132ae565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061337c82613351565b9050919050565b61338c81613371565b811461339757600080fd5b50565b6000813590506133a981613383565b92915050565b6000602082840312156133c5576133c46131da565b5b60006133d38482850161339a565b91505092915050565b6133e581613371565b82525050565b600060208201905061340060008301846133dc565b92915050565b61340f81613269565b811461341a57600080fd5b50565b60008135905061342c81613406565b92915050565b600060208284031215613448576134476131da565b5b60006134568482850161341d565b91505092915050565b6000819050919050565b6134728161345f565b811461347d57600080fd5b50565b60008135905061348f81613469565b92915050565b6000602082840312156134ab576134aa6131da565b5b60006134b984828501613480565b91505092915050565b6134cb8161345f565b82525050565b60006020820190506134e660008301846134c2565b92915050565b6000819050919050565b6134ff816134ec565b82525050565b600060208201905061351a60008301846134f6565b92915050565b60008060408385031215613537576135366131da565b5b600061354585828601613480565b92505060206135568582860161339a565b9150509250929050565b613569816134ec565b811461357457600080fd5b50565b60008135905061358681613560565b92915050565b6000602082840312156135a2576135a16131da565b5b60006135b084828501613577565b91505092915050565b600080600080604085870312156135d3576135d26131da565b5b600085013567ffffffffffffffff8111156135f1576135f06131df565b5b6135fd878288016132ae565b9450945050602085013567ffffffffffffffff8111156136205761361f6131df565b5b61362c878288016132ae565b925092505092959194509250565b600080600060408486031215613653576136526131da565b5b600084013567ffffffffffffffff811115613671576136706131df565b5b61367d868287016132ae565b935093505060206136908682870161339a565b9150509250925092565b600080604083850312156136b1576136b06131da565b5b60006136bf8582860161339a565b92505060206136d08582860161339a565b9150509250929050565b600080600080600080600080600060a08a8c0312156136fc576136fb6131da565b5b60008a013567ffffffffffffffff81111561371a576137196131df565b5b6137268c828d016132ae565b995099505060208a013567ffffffffffffffff811115613749576137486131df565b5b6137558c828d016132ae565b975097505060408a013567ffffffffffffffff811115613778576137776131df565b5b6137848c828d016132ae565b955095505060608a013567ffffffffffffffff8111156137a7576137a66131df565b5b6137b38c828d016132ae565b935093505060806137c68c828d01613577565b9150509295985092959850929598565b600080604083850312156137ed576137ec6131da565b5b60006137fb8582860161339a565b925050602061380c85828601613577565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61384b816134ec565b82525050565b600061385d8383613842565b60208301905092915050565b6000602082019050919050565b600061388182613816565b61388b8185613821565b935061389683613832565b8060005b838110156138c75781516138ae8882613851565b97506138b983613869565b92505060018101905061389a565b5085935050505092915050565b600060208201905081810360008301526138ee8184613876565b905092915050565b60008083601f84011261390c5761390b61329f565b5b8235905067ffffffffffffffff811115613929576139286132a4565b5b602083019150836020820283011115613945576139446132a9565b5b9250929050565b600080600060408486031215613965576139646131da565b5b600084013567ffffffffffffffff811115613983576139826131df565b5b61398f868287016138f6565b935093505060206139a28682870161339a565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613a77602f83613a0a565b9150613a8282613a1b565b604082019050919050565b60006020820190508181036000830152613aa681613a6a565b9050919050565b7f696e69743a20726f756e644164647265737320616c7265616479207365740000600082015250565b6000613ae3601e83613a0a565b9150613aee82613aad565b602082019050919050565b60006020820190508181036000830152613b1281613ad6565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613b75602e83613a0a565b9150613b8082613b19565b604082019050919050565b60006020820190508181036000830152613ba481613b68565b9050919050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b6000613be7613be2613bdd84613bab565b613bc2565b613bb5565b9050919050565b613bf781613bcc565b82525050565b6000602082019050613c126000830184613bee565b92915050565b7f6572726f723a20766f74696e6720636f6e7472616374206e6f74206c696e6b6560008201527f6420746f206120726f756e640000000000000000000000000000000000000000602082015250565b6000613c74602c83613a0a565b9150613c7f82613c18565b604082019050919050565b60006020820190508181036000830152613ca381613c67565b9050919050565b7f6572726f723a2063616e20626520696e766f6b6564206f6e6c7920627920726f60008201527f756e6420636f6e74726163740000000000000000000000000000000000000000602082015250565b6000613d06602c83613a0a565b9150613d1182613caa565b604082019050919050565b60006020820190508181036000830152613d3581613cf9565b9050919050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613d6857613d67613d3c565b5b80840192508235915067ffffffffffffffff821115613d8a57613d89613d41565b5b602083019250600182023603831315613da657613da5613d46565b5b509250929050565b6000613db982613351565b9050919050565b613dc981613dae565b8114613dd457600080fd5b50565b600081359050613de681613dc0565b92915050565b600080600060608486031215613e0557613e046131da565b5b6000613e1386828701613dd7565b9350506020613e2486828701613577565b9250506040613e3586828701613dd7565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e79826134ec565b9150613e84836134ec565b9250828201905080821115613e9c57613e9b613e3f565b5b92915050565b6000604082019050613eb760008301856133dc565b613ec460208301846134f6565b9392505050565b6000613ed6826134ec565b9150613ee1836134ec565b9250828202613eef816134ec565b91508282048414831517613f0657613f05613e3f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f47826134ec565b9150613f52836134ec565b925082613f6257613f61613f0d565b5b828204905092915050565b6000613f78826134ec565b9150613f83836134ec565b9250828203905081811115613f9b57613f9a613e3f565b5b92915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000613fd7601f83613a0a565b9150613fe282613fa1565b602082019050919050565b6000602082019050818103600083015261400681613fca565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000614069602b83613a0a565b91506140748261400d565b604082019050919050565b600060208201905081810360008301526140988161405c565b9050919050565b600081905092915050565b50565b60006140ba60008361409f565b91506140c5826140aa565b600082019050919050565b60006140db826140ad565b9150819050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006141266017836140e5565b9150614131826140f0565b601782019050919050565b600081519050919050565b60005b8381101561416557808201518184015260208101905061414a565b60008484015250505050565b600061417c8261413c565b61418681856140e5565b9350614196818560208601614147565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006141d86011836140e5565b91506141e3826141a2565b601182019050919050565b60006141f982614119565b91506142058285614171565b9150614210826141cb565b915061421c8284614171565b91508190509392505050565b6000601f19601f8301169050919050565b60006142448261413c565b61424e8185613a0a565b935061425e818560208601614147565b61426781614228565b840191505092915050565b6000602082019050818103600083015261428c8184614239565b905092915050565b60006060820190506142a960008301866133dc565b6142b660208301856133dc565b6142c360408301846134f6565b949350505050565b60006142d6826134ec565b9150600082036142e9576142e8613e3f565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061432a602083613a0a565b9150614335826142f4565b602082019050919050565b600060208201905081810360008301526143598161431d565b9050919050565b60008151905061436f81613406565b92915050565b60006020828403121561438b5761438a6131da565b5b600061439984828501614360565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006143fe602a83613a0a565b9150614409826143a2565b604082019050919050565b6000602082019050818103600083015261442d816143f1565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000614490602683613a0a565b915061449b82614434565b604082019050919050565b600060208201905081810360008301526144bf81614483565b9050919050565b600081519050919050565b60006144dc826144c6565b6144e6818561409f565b93506144f6818560208601614147565b80840191505092915050565b600061450e82846144d1565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061454f601d83613a0a565b915061455a82614519565b602082019050919050565b6000602082019050818103600083015261457e81614542565b905091905056fea26469706673582212201fcf5d16c95d4a4b926e62a8773ac7a8323e139f06764cee68c39bb9f600314364736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45BB DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x272 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x658E4821 GT PUSH2 0x14F JUMPI DUP1 PUSH4 0xD3E78E4D GT PUSH2 0xC1 JUMPI DUP1 PUSH4 0xF46B80CA GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xF46B80CA EQ PUSH2 0x930 JUMPI DUP1 PUSH4 0xF7888AEC EQ PUSH2 0x96D JUMPI DUP1 PUSH4 0xF85FC0AB EQ PUSH2 0x9AA JUMPI DUP1 PUSH4 0xFBFE3AB2 EQ PUSH2 0x9D5 JUMPI DUP1 PUSH4 0xFC6D4E39 EQ PUSH2 0xA12 JUMPI DUP1 PUSH4 0xFDBB219D EQ PUSH2 0xA2E JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0xD3E78E4D EQ PUSH2 0x848 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x873 JUMPI DUP1 PUSH4 0xDCDA7DAD EQ PUSH2 0x89C JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x8C7 JUMPI DUP1 PUSH4 0xF2D4120E EQ PUSH2 0x8DE JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x907 JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0xA0CF0AEA GT PUSH2 0x113 JUMPI DUP1 PUSH4 0xA0CF0AEA EQ PUSH2 0x726 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x751 JUMPI DUP1 PUSH4 0xAE876F61 EQ PUSH2 0x77C JUMPI DUP1 PUSH4 0xB278110F EQ PUSH2 0x7A5 JUMPI DUP1 PUSH4 0xBF7CB70B EQ PUSH2 0x7E2 JUMPI DUP1 PUSH4 0xC23F001F EQ PUSH2 0x80B JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x658E4821 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x6BB85F4C EQ PUSH2 0x66E JUMPI DUP1 PUSH4 0x80C78F1C EQ PUSH2 0x697 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x6C0 JUMPI DUP1 PUSH4 0x9D082C98 EQ PUSH2 0x6FD JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C GT PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x31AC9920 GT PUSH2 0x1AC JUMPI DUP1 PUSH4 0x31AC9920 EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x576 JUMPI DUP1 PUSH4 0x3B8453CA EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0x3D0950A8 EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0x42E228EF EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x60E007A6 EQ PUSH2 0x61A JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0x24EC7590 EQ PUSH2 0x4A5 JUMPI DUP1 PUSH4 0x2620D800 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x524 JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x102D7927 GT PUSH2 0x23A JUMPI DUP1 PUSH4 0x102D7927 EQ PUSH2 0x35C JUMPI DUP1 PUSH4 0x1037D18C EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x10881166 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x155DC549 EQ PUSH2 0x3D9 JUMPI DUP1 PUSH4 0x1AC3DDEB EQ PUSH2 0x402 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x42B JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0x41C60EE EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x560BD96 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xB67D925 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0xD6AEF04 EQ PUSH2 0x345 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x299 SWAP2 SWAP1 PUSH2 0x323C JUMP JUMPDEST PUSH2 0xA59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xAD3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FF SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xB3C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32F PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x33EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x35A PUSH2 0xB93 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH2 0xBC8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A9 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xBDB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D2 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xC13 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x400 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3FB SWAP2 SWAP1 PUSH2 0x3432 JUMP JUMPDEST PUSH2 0xC4B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x424 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xCA8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x437 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44D SWAP2 SWAP1 PUSH2 0x3495 JUMP JUMPDEST PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45F SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x474 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x48F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x48A SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xD8D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x49C SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BA PUSH2 0xDC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C7 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F2 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xDC6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50E PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51B SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x54B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0xE22 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x574 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x56F SWAP2 SWAP1 PUSH2 0x358C JUMP JUMPDEST PUSH2 0xE43 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x582 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x598 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0xE58 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x35B9 JUMP JUMPDEST PUSH2 0xEDB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5EF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xFAD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x618 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x613 SWAP2 SWAP1 PUSH2 0x363A JUMP JUMPDEST PUSH2 0xFE5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62F PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x63C SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x66C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x667 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x1059 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x695 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x690 SWAP2 SWAP1 PUSH2 0x3432 JUMP JUMPDEST PUSH2 0x10B9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6B9 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x1116 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E2 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0x114E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F4 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x709 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x724 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x11B9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x732 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x73B PUSH2 0x11F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x748 SWAP2 SWAP1 PUSH2 0x33EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x766 PUSH2 0x11F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x773 SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x788 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x79E SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x11FD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7CC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C7 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x126F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7D9 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x809 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x804 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x12A2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x817 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x832 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x82D SWAP2 SWAP1 PUSH2 0x369A JUMP JUMPDEST PUSH2 0x12DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83F SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x854 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x85D PUSH2 0x12FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x86A SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x89A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x895 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8B1 PUSH2 0x1344 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8BE SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8DC PUSH2 0x1368 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x905 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x900 SWAP2 SWAP1 PUSH2 0x36DA JUMP JUMPDEST PUSH2 0x1439 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x929 SWAP2 SWAP1 PUSH2 0x37D6 JUMP JUMPDEST PUSH2 0x158E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x957 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x952 SWAP2 SWAP1 PUSH2 0x363A JUMP JUMPDEST PUSH2 0x15E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x964 SWAP2 SWAP1 PUSH2 0x38D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x979 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x994 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x98F SWAP2 SWAP1 PUSH2 0x369A JUMP JUMPDEST PUSH2 0x1727 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9A1 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9BF PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9CC SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9F7 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x17BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA09 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA2C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x394C JUMP JUMPDEST PUSH2 0x17ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x1B2E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA50 SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xACC JUMPI POP PUSH2 0xACB DUP3 PUSH2 0x1B52 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xADB PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0xAE4 CALLER PUSH2 0x1C0B JUMP JUMPDEST PUSH2 0xB30 DUP3 DUP3 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP ADDRESS CALLER PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0xB38 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB68 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0xB9C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xBC6 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 CALLER PUSH2 0x1DCC JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xCA PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xBE4 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xC0F PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC1C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xC47 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC54 CALLER PUSH2 0x1D69 JUMP JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x46D6D1A61669D91EA3801D9D57B7398C4CED2120F35CA8559749A391047A24AE DUP2 PUSH1 0x40 MLOAD PUSH2 0xC9D SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xCB0 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCCD JUMPI PUSH2 0xCCC PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCFB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xD13 JUMPI PUSH2 0xD12 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH2 0xD56 CALLER PUSH2 0x1C0B JUMP JUMPDEST PUSH2 0xD61 DUP2 ADDRESS CALLER PUSH2 0x1C6E JUMP JUMPDEST POP PUSH2 0xD6A PUSH2 0x1D5F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB9 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xDCF CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xDFA PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP2 JUMP JUMPDEST PUSH2 0xE2B DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH2 0xE34 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0xE3E DUP4 DUP4 PUSH2 0x1F72 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xE4C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xE55 DUP2 PUSH2 0x2053 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE60 PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xECD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC4 SWAP1 PUSH2 0x3A8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xED7 DUP3 DUP3 PUSH2 0x1DCC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xEE3 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF9D JUMPI PUSH2 0xF90 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xF4E JUMPI PUSH2 0xF4D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xF63 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0xF76 JUMPI PUSH2 0xF75 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xF8B SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x1C6E JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xEEE JUMP JUMPDEST POP POP PUSH2 0xFA7 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xFB6 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xFE1 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFED PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0x1039 DUP4 DUP4 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP3 DUP4 PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0x1041 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1061 PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0x10AD DUP3 DUP3 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP CALLER CALLER PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0x10B5 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x10C2 CALLER PUSH2 0x1D69 JUMP JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x618C1DFCDC0554EAA0869D571DEFB09F99AE2ADD7C190D59444DB6D0392489A7 DUP2 PUSH1 0x40 MLOAD PUSH2 0x110B SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x111F CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x114A PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11C2 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x11ED PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x120A PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1240 JUMPI PUSH1 0x40 MLOAD PUSH32 0x46AB053D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x126B PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x129B PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12AB CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x12D6 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xCB PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP2 JUMP JUMPDEST PUSH2 0x132C DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH2 0x1335 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x133F DUP4 DUP4 PUSH2 0x1DCC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x13F7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13EE SWAP1 PUSH2 0x3AF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x146C JUMPI POP PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND LT JUMPDEST DUP1 PUSH2 0x149B JUMPI POP PUSH2 0x147B ADDRESS PUSH2 0x20DE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x149A JUMPI POP PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ JUMPDEST JUMPDEST PUSH2 0x14DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14D1 SWAP1 PUSH2 0x3B8B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x1518 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x15 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1529 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x2101 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1582 JUMPI PUSH1 0x0 DUP1 PUSH1 0x15 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x1579 SWAP2 SWAP1 PUSH2 0x3BFD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1596 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 DUP2 SUB PUSH2 0x15D0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15DC DUP3 CALLER CALLER DUP5 PUSH2 0x21D6 JUMP JUMPDEST PUSH2 0x15E4 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 DUP5 SWAP1 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x160E JUMPI PUSH2 0x160D PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x163C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x171A JUMPI PUSH1 0xCB PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x169E JUMPI PUSH2 0x169D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x16B3 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1701 JUMPI PUSH2 0x1700 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1642 JUMP JUMPDEST POP DUP1 SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCB PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17E6 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17F5 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1884 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x187B SWAP1 PUSH2 0x3C8A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1909 SWAP1 PUSH2 0x3D1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP4 SWAP1 POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AE4 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x193E JUMPI PUSH2 0x193D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1950 SWAP2 SWAP1 PUSH2 0x3D4B JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x195D SWAP2 SWAP1 PUSH2 0x3DEC JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1982 JUMPI PUSH2 0x1981 DUP4 PUSH2 0x24AA JUMP JUMPDEST JUMPDEST PUSH1 0xCA PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x19A1 JUMPI PUSH2 0x19A0 DUP2 PUSH2 0x250D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x19E5 JUMPI PUSH2 0x19E0 DUP8 DUP5 DUP5 PUSH2 0x2570 JUMP JUMPDEST PUSH2 0x19F4 JUMP JUMPDEST DUP2 DUP6 PUSH2 0x19F1 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP5 POP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x23F5E053CBB2C4E0D563D51F8CAFAA385FC620CAA979FBCAC023059AD1687D9 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1A6A SWAP3 SWAP2 SWAP1 PUSH2 0x3EA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x0 PUSH1 0xC9 SLOAD GT ISZERO PUSH2 0x1AC8 JUMPI PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 PUSH1 0xC9 SLOAD DUP5 PUSH2 0x1A96 SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x1AA0 SWAP2 SWAP1 PUSH2 0x3F3C JUMP JUMPDEST SWAP1 POP PUSH2 0x1AB8 DUP5 DUP4 DUP4 DUP7 PUSH2 0x1AB3 SWAP2 SWAP1 PUSH2 0x3F6D JUMP JUMPDEST PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x1AC2 DUP5 DUP3 PUSH2 0x26B6 JUMP JUMPDEST POP PUSH2 0x1AD4 JUMP JUMPDEST PUSH2 0x1AD3 DUP4 DUP3 DUP5 PUSH2 0x25A2 JUMP JUMPDEST JUMPDEST DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP POP POP POP POP PUSH2 0x191E JUMP JUMPDEST POP CALLVALUE DUP2 GT ISZERO PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH2 0x1B29 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x97 SLOAD SUB PUSH2 0x1C01 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BF8 SWAP1 PUSH2 0x3FED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x1C35 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1C6B JUMPI PUSH1 0x40 MLOAD PUSH32 0x9D13E6E300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1D58 JUMPI PUSH1 0x0 PUSH1 0xCB PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1CD5 JUMPI PUSH2 0x1CD4 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1D4A JUMPI PUSH2 0x1D49 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1D39 JUMPI PUSH2 0x1D38 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP7 DUP5 PUSH2 0x21D6 JUMP JUMPDEST JUMPDEST DUP2 DUP1 PUSH1 0x1 ADD SWAP3 POP POP POP PUSH2 0x1C77 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x1D93 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1DC9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x7BFA4B9F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1DD6 DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST ISZERO PUSH2 0x1EAA JUMPI PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1E4F PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1EFF JUMPI PUSH2 0x1EF2 DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x1ED8 JUMPI PUSH2 0x1ED7 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1EED SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1EB9 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F57 JUMPI PUSH2 0x1F4A DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x1F30 JUMPI PUSH2 0x1F2F PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1F45 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x27B2 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1F11 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F6F DUP2 PUSH2 0x1F6A PUSH2 0x20D6 JUMP JUMPDEST PUSH2 0x27C0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1F7C DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x204F JUMPI PUSH1 0x1 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1FF4 PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCD4E616700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 DUP2 SWAP1 SSTORE POP PUSH32 0xD4C19C993AEEB50B76DA8B158F84806C9D235EFF5B86F3A36F12A2E1DD4E6EAC DUP2 PUSH1 0x40 MLOAD PUSH2 0x20CB SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2150 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2147 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2160 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x2845 JUMP JUMPDEST PUSH2 0x2168 PUSH2 0x2A92 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP10 SWAP1 POP GT ISZERO PUSH2 0x2190 JUMPI PUSH1 0x1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 DUP8 DUP8 SWAP1 POP GT ISZERO PUSH2 0x21B8 JUMPI PUSH1 0x1 PUSH1 0xCA PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x21CB JUMPI PUSH2 0x21CA DUP2 PUSH2 0x2053 JUMP JUMPDEST JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xCB PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x228C JUMPI PUSH1 0x40 MLOAD PUSH32 0xF4D678B800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2318 SWAP2 SWAP1 PUSH2 0x3F6D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x23FC JUMPI PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x2379 SWAP1 PUSH2 0x40D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x23B6 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x23BB JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x23F6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x90B8EC1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0x2428 JUMP JUMPDEST PUSH2 0x2427 DUP3 DUP3 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AEB SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3115D1449A7B732C986CBA18244E897A450F61E1BB8D589CD2E69E6C8924F9F7 DUP5 PUSH1 0x40 MLOAD PUSH2 0x249C SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH2 0x24D4 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x250A JUMPI PUSH1 0x40 MLOAD PUSH32 0xE51CF7BF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2537 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x256D JUMPI PUSH1 0x40 MLOAD PUSH32 0x375A7A9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x259D DUP4 ADDRESS DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2B71 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x262E SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB91B2D1906A6E6E2B45B99EB26AC141804EB2684A0DF30699FDCB8B5CED1D518 DUP5 PUSH1 0x40 MLOAD PUSH2 0x26A9 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2742 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x468C2F4EC7CE54B88B575DB5D64710429B1880E4581F5328AAA4B3F51DADC58B DUP4 PUSH1 0x40 MLOAD PUSH2 0x27A6 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x27BC DUP3 DUP3 PUSH2 0x1F72 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x27CA DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x2841 JUMPI PUSH2 0x27D7 DUP2 PUSH2 0x2BFA JUMP JUMPDEST PUSH2 0x27E5 DUP4 PUSH1 0x0 SHR PUSH1 0x20 PUSH2 0x2C27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x27F6 SWAP3 SWAP2 SWAP1 PUSH2 0x41EE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2838 SWAP2 SWAP1 PUSH2 0x4272 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2894 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x288B SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x289C PUSH2 0x2E63 JUMP JUMPDEST PUSH2 0x28A9 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x27B2 JUMP JUMPDEST PUSH2 0x28D3 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 ADDRESS PUSH2 0x27B2 JUMP JUMPDEST PUSH2 0x291D PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x2967 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x29B1 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x29DC PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP10 DUP10 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A07 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP8 DUP8 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A32 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP6 DUP6 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A5D PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A88 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 PUSH1 0x0 PUSH2 0x27B2 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2AE1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2AD8 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2AE9 PUSH2 0x2F10 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x2B6C DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2B0A SWAP3 SWAP2 SWAP1 PUSH2 0x3EA2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2F69 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x2BF4 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2B92 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2F69 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2C20 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x14 PUSH1 0xFF AND PUSH2 0x2C27 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x2 DUP4 PUSH1 0x2 PUSH2 0x2C3A SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x2C44 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5D JUMPI PUSH2 0x2C5C PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2C8F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2CC7 JUMPI PUSH2 0x2CC6 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2D2B JUMPI PUSH2 0x2D2A PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH1 0x1 DUP5 PUSH1 0x2 PUSH2 0x2D6B SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x2D75 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2E15 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xF DUP7 AND PUSH1 0x10 DUP2 LT PUSH2 0x2DB7 JUMPI PUSH2 0x2DB6 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2DCE JUMPI PUSH2 0x2DCD PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 DUP6 SWAP1 SHR SWAP5 POP DUP1 PUSH2 0x2E0E SWAP1 PUSH2 0x42CB JUMP JUMPDEST SWAP1 POP PUSH2 0x2D78 JUMP JUMPDEST POP PUSH1 0x0 DUP5 EQ PUSH2 0x2E59 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E50 SWAP1 PUSH2 0x4340 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2EB2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EA9 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EBF DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP2 DUP2 DUP5 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2F5F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F56 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FCB DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x3030 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x302B JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2FEB SWAP2 SWAP1 PUSH2 0x4375 JUMP JUMPDEST PUSH2 0x302A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3021 SWAP1 PUSH2 0x4414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x303F DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x3048 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x308D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3084 SWAP1 PUSH2 0x44A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x30B6 SWAP2 SWAP1 PUSH2 0x4502 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x30F3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x30F8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3109 DUP8 DUP4 DUP4 DUP8 PUSH2 0x3115 JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3177 JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x316F JUMPI PUSH2 0x312F DUP6 PUSH2 0x20DE JUMP JUMPDEST PUSH2 0x316E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3165 SWAP1 PUSH2 0x4565 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x3182 JUMP JUMPDEST PUSH2 0x3181 DUP4 DUP4 PUSH2 0x318A JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x319D JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31D1 SWAP2 SWAP1 PUSH2 0x4272 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3219 DUP2 PUSH2 0x31E4 JUMP JUMPDEST DUP2 EQ PUSH2 0x3224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3236 DUP2 PUSH2 0x3210 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3252 JUMPI PUSH2 0x3251 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3260 DUP5 DUP3 DUP6 ADD PUSH2 0x3227 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x327E DUP2 PUSH2 0x3269 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3299 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3275 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x32C4 JUMPI PUSH2 0x32C3 PUSH2 0x329F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x32E1 JUMPI PUSH2 0x32E0 PUSH2 0x32A4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x32FD JUMPI PUSH2 0x32FC PUSH2 0x32A9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x331B JUMPI PUSH2 0x331A PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3339 JUMPI PUSH2 0x3338 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3345 DUP6 DUP3 DUP7 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x337C DUP3 PUSH2 0x3351 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x338C DUP2 PUSH2 0x3371 JUMP JUMPDEST DUP2 EQ PUSH2 0x3397 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x33A9 DUP2 PUSH2 0x3383 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33C5 JUMPI PUSH2 0x33C4 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x33D3 DUP5 DUP3 DUP6 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x33E5 DUP2 PUSH2 0x3371 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3400 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x33DC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x340F DUP2 PUSH2 0x3269 JUMP JUMPDEST DUP2 EQ PUSH2 0x341A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x342C DUP2 PUSH2 0x3406 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3448 JUMPI PUSH2 0x3447 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3456 DUP5 DUP3 DUP6 ADD PUSH2 0x341D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3472 DUP2 PUSH2 0x345F JUMP JUMPDEST DUP2 EQ PUSH2 0x347D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x348F DUP2 PUSH2 0x3469 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x34AB JUMPI PUSH2 0x34AA PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x34B9 DUP5 DUP3 DUP6 ADD PUSH2 0x3480 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x34CB DUP2 PUSH2 0x345F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x34E6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34C2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34FF DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x351A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3537 JUMPI PUSH2 0x3536 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3545 DUP6 DUP3 DUP7 ADD PUSH2 0x3480 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3556 DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x3569 DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP2 EQ PUSH2 0x3574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3586 DUP2 PUSH2 0x3560 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35A2 JUMPI PUSH2 0x35A1 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x35B0 DUP5 DUP3 DUP6 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x35D3 JUMPI PUSH2 0x35D2 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35F1 JUMPI PUSH2 0x35F0 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x35FD DUP8 DUP3 DUP9 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3620 JUMPI PUSH2 0x361F PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x362C DUP8 DUP3 DUP9 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3653 JUMPI PUSH2 0x3652 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3671 JUMPI PUSH2 0x3670 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x367D DUP7 DUP3 DUP8 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0x3690 DUP7 DUP3 DUP8 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x36B1 JUMPI PUSH2 0x36B0 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x36BF DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x36D0 DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x36FC JUMPI PUSH2 0x36FB PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x371A JUMPI PUSH2 0x3719 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3726 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP10 POP SWAP10 POP POP PUSH1 0x20 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3749 JUMPI PUSH2 0x3748 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3755 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP8 POP SWAP8 POP POP PUSH1 0x40 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3778 JUMPI PUSH2 0x3777 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3784 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x60 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37A7 JUMPI PUSH2 0x37A6 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x37B3 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x80 PUSH2 0x37C6 DUP13 DUP3 DUP14 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x37ED JUMPI PUSH2 0x37EC PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x37FB DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x380C DUP6 DUP3 DUP7 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x384B DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x385D DUP4 DUP4 PUSH2 0x3842 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3881 DUP3 PUSH2 0x3816 JUMP JUMPDEST PUSH2 0x388B DUP2 DUP6 PUSH2 0x3821 JUMP JUMPDEST SWAP4 POP PUSH2 0x3896 DUP4 PUSH2 0x3832 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x38C7 JUMPI DUP2 MLOAD PUSH2 0x38AE DUP9 DUP3 PUSH2 0x3851 JUMP JUMPDEST SWAP8 POP PUSH2 0x38B9 DUP4 PUSH2 0x3869 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x389A JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x38EE DUP2 DUP5 PUSH2 0x3876 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x390C JUMPI PUSH2 0x390B PUSH2 0x329F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3929 JUMPI PUSH2 0x3928 PUSH2 0x32A4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3945 JUMPI PUSH2 0x3944 PUSH2 0x32A9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3965 JUMPI PUSH2 0x3964 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3983 JUMPI PUSH2 0x3982 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x398F DUP7 DUP3 DUP8 ADD PUSH2 0x38F6 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0x39A2 DUP7 DUP3 DUP8 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A77 PUSH1 0x2F DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3A82 DUP3 PUSH2 0x3A1B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3AA6 DUP2 PUSH2 0x3A6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x696E69743A20726F756E644164647265737320616C7265616479207365740000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AE3 PUSH1 0x1E DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3AEE DUP3 PUSH2 0x3AAD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3B12 DUP2 PUSH2 0x3AD6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B75 PUSH1 0x2E DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3B80 DUP3 PUSH2 0x3B19 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3BA4 DUP2 PUSH2 0x3B68 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BE7 PUSH2 0x3BE2 PUSH2 0x3BDD DUP5 PUSH2 0x3BAB JUMP JUMPDEST PUSH2 0x3BC2 JUMP JUMPDEST PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3BF7 DUP2 PUSH2 0x3BCC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3C12 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3BEE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6572726F723A20766F74696E6720636F6E7472616374206E6F74206C696E6B65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6420746F206120726F756E640000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C74 PUSH1 0x2C DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3C7F DUP3 PUSH2 0x3C18 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3CA3 DUP2 PUSH2 0x3C67 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6572726F723A2063616E20626520696E766F6B6564206F6E6C7920627920726F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x756E6420636F6E74726163740000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D06 PUSH1 0x2C DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3D11 DUP3 PUSH2 0x3CAA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3D35 DUP2 PUSH2 0x3CF9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x3D68 JUMPI PUSH2 0x3D67 PUSH2 0x3D3C JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3D8A JUMPI PUSH2 0x3D89 PUSH2 0x3D41 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x3DA6 JUMPI PUSH2 0x3DA5 PUSH2 0x3D46 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DB9 DUP3 PUSH2 0x3351 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DC9 DUP2 PUSH2 0x3DAE JUMP JUMPDEST DUP2 EQ PUSH2 0x3DD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3DE6 DUP2 PUSH2 0x3DC0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3E05 JUMPI PUSH2 0x3E04 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3E13 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3E24 DUP7 DUP3 DUP8 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3E35 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E79 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3E84 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x3E9C JUMPI PUSH2 0x3E9B PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3EB7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x3EC4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3ED6 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3EE1 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x3EEF DUP2 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3F06 JUMPI PUSH2 0x3F05 PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F47 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3F52 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3F62 JUMPI PUSH2 0x3F61 PUSH2 0x3F0D JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F78 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3F83 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3F9B JUMPI PUSH2 0x3F9A PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FD7 PUSH1 0x1F DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3FE2 DUP3 PUSH2 0x3FA1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4006 DUP2 PUSH2 0x3FCA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4069 PUSH1 0x2B DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4074 DUP3 PUSH2 0x400D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4098 DUP2 PUSH2 0x405C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40BA PUSH1 0x0 DUP4 PUSH2 0x409F JUMP JUMPDEST SWAP2 POP PUSH2 0x40C5 DUP3 PUSH2 0x40AA JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40DB DUP3 PUSH2 0x40AD JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4126 PUSH1 0x17 DUP4 PUSH2 0x40E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x4131 DUP3 PUSH2 0x40F0 JUMP JUMPDEST PUSH1 0x17 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4165 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x414A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417C DUP3 PUSH2 0x413C JUMP JUMPDEST PUSH2 0x4186 DUP2 DUP6 PUSH2 0x40E5 JUMP JUMPDEST SWAP4 POP PUSH2 0x4196 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41D8 PUSH1 0x11 DUP4 PUSH2 0x40E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x41E3 DUP3 PUSH2 0x41A2 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41F9 DUP3 PUSH2 0x4119 JUMP JUMPDEST SWAP2 POP PUSH2 0x4205 DUP3 DUP6 PUSH2 0x4171 JUMP JUMPDEST SWAP2 POP PUSH2 0x4210 DUP3 PUSH2 0x41CB JUMP JUMPDEST SWAP2 POP PUSH2 0x421C DUP3 DUP5 PUSH2 0x4171 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4244 DUP3 PUSH2 0x413C JUMP JUMPDEST PUSH2 0x424E DUP2 DUP6 PUSH2 0x3A0A JUMP JUMPDEST SWAP4 POP PUSH2 0x425E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST PUSH2 0x4267 DUP2 PUSH2 0x4228 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x428C DUP2 DUP5 PUSH2 0x4239 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x42A9 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x42B6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x42C3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D6 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 SUB PUSH2 0x42E9 JUMPI PUSH2 0x42E8 PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x432A PUSH1 0x20 DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4335 DUP3 PUSH2 0x42F4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4359 DUP2 PUSH2 0x431D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x436F DUP2 PUSH2 0x3406 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x438B JUMPI PUSH2 0x438A PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4399 DUP5 DUP3 DUP6 ADD PUSH2 0x4360 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43FE PUSH1 0x2A DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4409 DUP3 PUSH2 0x43A2 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x442D DUP2 PUSH2 0x43F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4490 PUSH1 0x26 DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x449B DUP3 PUSH2 0x4434 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x44BF DUP2 PUSH2 0x4483 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x44DC DUP3 PUSH2 0x44C6 JUMP JUMPDEST PUSH2 0x44E6 DUP2 DUP6 PUSH2 0x409F JUMP JUMPDEST SWAP4 POP PUSH2 0x44F6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x450E DUP3 DUP5 PUSH2 0x44D1 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x454F PUSH1 0x1D DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x455A DUP3 PUSH2 0x4519 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x457E DUP2 PUSH2 0x4542 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1F 0xCF 0x5D AND 0xC9 0x5D 0x4A 0x4B SWAP3 PUSH15 0x62A8773AC7A8323E139F06764CEE68 0xC3 SWAP12 0xB9 0xF6 STOP BALANCE NUMBER PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "1887:13662:13:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@ACCEPTED_TOKEN_3343": { + "entryPoint": 6958, + "id": 3343, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@ADMIN_3358": { + "entryPoint": 3582, + "id": 3358, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@DEFAULT_ADMIN_ROLE_42": { + "entryPoint": 4598, + "id": 42, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@DONATION_RECIPIENT_3348": { + "entryPoint": 4932, + "id": 3348, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@FEE_RECEIVER_3353": { + "entryPoint": 4863, + "id": 3353, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@HUNDRED_2492": { + "entryPoint": 6062, + "id": 2492, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@NATIVE_3365": { + "entryPoint": 4593, + "id": 3365, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__AccessControl_init_21": { + "entryPoint": 11875, + "id": 21, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__DonationHandlerRoles_init_3441": { + "entryPoint": 10309, + "id": 3441, + "parameterSlots": 8, + "returnSlots": 0 + }, + "@__DonationHandler_init_2594": { + "entryPoint": 8449, + "id": 2594, + "parameterSlots": 9, + "returnSlots": 0 + }, + "@__ReentrancyGuard_init_600": { + "entryPoint": 10898, + "id": 600, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__ReentrancyGuard_init_unchained_610": { + "entryPoint": 12048, + "id": 610, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_addRoles_3476": { + "entryPoint": 7942, + "id": 3476, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_callOptionalReturn_1044": { + "entryPoint": 12137, + "id": 1044, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkAdmin_3527": { + "entryPoint": 7529, + "id": 3527, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkDonationRecipient_3680": { + "entryPoint": 9485, + "id": 3680, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkFeeReceiver_3746": { + "entryPoint": 7179, + "id": 3746, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkRole_107": { + "entryPoint": 8030, + "id": 107, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkRole_146": { + "entryPoint": 10176, + "id": 146, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkToken_3613": { + "entryPoint": 9386, + "id": 3613, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_grantRole_298": { + "entryPoint": 8050, + "id": 298, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_1356": { + "entryPoint": 8406, + "id": 1356, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_nonReentrantAfter_644": { + "entryPoint": 7519, + "id": 644, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_nonReentrantBefore_636": { + "entryPoint": 7100, + "id": 636, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_registerDonation_2787": { + "entryPoint": 9634, + "id": 2787, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_registerFee_2760": { + "entryPoint": 9910, + "id": 2760, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_removeRoles_3511": { + "entryPoint": 7854, + "id": 3511, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_revert_1328": { + "entryPoint": 12682, + "id": 1328, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_revokeRole_329": { + "entryPoint": 7628, + "id": 329, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setMinFee_3216": { + "entryPoint": 8275, + "id": 3216, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setRoleAdmin_266": { + "entryPoint": 11956, + "id": 266, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setupRole_238": { + "entryPoint": 10162, + "id": 238, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transfer_2810": { + "entryPoint": 9584, + "id": 2810, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_withdrawAll_3034": { + "entryPoint": 7278, + "id": 3034, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_withdraw_3105": { + "entryPoint": 8662, + "id": 3105, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@addAdmin_3545": { + "entryPoint": 4013, + "id": 3545, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addDonationRecipient_3698": { + "entryPoint": 4374, + "id": 3698, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addFeeReceiver_3764": { + "entryPoint": 4537, + "id": 3764, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addToken_3631": { + "entryPoint": 3091, + "id": 3631, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_3122": { + "entryPoint": 5927, + "id": 3122, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balancesOf_3178": { + "entryPoint": 5608, + "id": 3178, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@balances_2506": { + "entryPoint": 4826, + "id": 2506, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@distributeMany_2914": { + "entryPoint": 3803, + "id": 2914, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@distribute_2873": { + "entryPoint": 4069, + "id": 2873, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@functionCallWithValue_1199": { + "entryPoint": 12360, + "id": 1199, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@functionCall_1135": { + "entryPoint": 12336, + "id": 1135, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getRoleAdmin_161": { + "entryPoint": 3437, + "id": 161, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@grantRole_181": { + "entryPoint": 3618, + "id": 181, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@hasRole_94": { + "entryPoint": 4430, + "id": 94, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@init_3861": { + "entryPoint": 4968, + "id": 3861, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@initialize_2535": { + "entryPoint": 5177, + "id": 2535, + "parameterSlots": 9, + "returnSlots": 0 + }, + "@isAdmin_3597": { + "entryPoint": 3469, + "id": 3597, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isContract_1063": { + "entryPoint": 8414, + "id": 1063, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isDonationRecipient_3730": { + "entryPoint": 6074, + "id": 3730, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isFeeReceiver_3796": { + "entryPoint": 4719, + "id": 3796, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isRecipientWhitelistActive_2499": { + "entryPoint": 3016, + "id": 2499, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@isTokenAccepted_3663": { + "entryPoint": 2876, + "id": 3663, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isTokenWhitelistActive_2497": { + "entryPoint": 4166, + "id": 2497, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@minFee_2495": { + "entryPoint": 3520, + "id": 2495, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@removeAdmin_3568": { + "entryPoint": 4605, + "id": 3568, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@removeDonationRecipient_3716": { + "entryPoint": 3035, + "id": 3716, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@removeFeeReceiver_3782": { + "entryPoint": 3526, + "id": 3782, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@removeToken_3649": { + "entryPoint": 4770, + "id": 3649, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@renounceRole_224": { + "entryPoint": 3672, + "id": 224, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@revokeAdmin_3583": { + "entryPoint": 2963, + "id": 3583, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@revokeRole_201": { + "entryPoint": 4899, + "id": 201, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@roundAddress_3818": { + "entryPoint": 2927, + "id": 3818, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@safeTransferFrom_822": { + "entryPoint": 11121, + "id": 822, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@safeTransfer_796": { + "entryPoint": 10987, + "id": 796, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@setIsRecipientWhitelistActive_3256": { + "entryPoint": 4281, + "id": 3256, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setIsTokenWhitelistActive_3236": { + "entryPoint": 3147, + "id": 3236, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setMinFee_3194": { + "entryPoint": 3651, + "id": 3194, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@supportsInterface_1584": { + "entryPoint": 6994, + "id": 1584, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_75": { + "entryPoint": 2649, + "id": 75, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@toHexString_1525": { + "entryPoint": 11303, + "id": 1525, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@toHexString_1545": { + "entryPoint": 11258, + "id": 1545, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@verifyCallResultFromTarget_1284": { + "entryPoint": 12565, + "id": 1284, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@vote_2733": { + "entryPoint": 6125, + "id": 2733, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@withdrawFeeMany_2980": { + "entryPoint": 2771, + "id": 2980, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@withdrawFee_2955": { + "entryPoint": 3240, + "id": 2955, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@withdrawMany_2855": { + "entryPoint": 4185, + "id": 2855, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@withdraw_2837": { + "entryPoint": 5518, + "id": 2837, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 13210, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_payable": { + "entryPoint": 15831, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 12974, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr": { + "entryPoint": 14582, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_bool": { + "entryPoint": 13341, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 17248, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes32": { + "entryPoint": 13440, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 12839, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 13687, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 13231, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_payablet_uint256t_address_payable": { + "entryPoint": 15852, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 13978, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 14294, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 13060, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address": { + "entryPoint": 13882, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 13753, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_uint256": { + "entryPoint": 14042, + "id": null, + "parameterSlots": 2, + "returnSlots": 9 + }, + "abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_address": { + "entryPoint": 14668, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bool": { + "entryPoint": 13362, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 17269, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 13461, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 13600, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 12860, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 13708, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 14417, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 13276, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 14454, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 12917, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 13506, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 17617, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_rational_1_by_1_to_t_uint8_fromStack": { + "entryPoint": 15342, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 16953, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16753, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack": { + "entryPoint": 17181, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 17539, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15208, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15609, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15062, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16557, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack": { + "entryPoint": 17730, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 16476, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16665, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack": { + "entryPoint": 17393, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15463, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack": { + "entryPoint": 16330, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16843, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14954, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 14402, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 13558, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 17666, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 16592, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 16878, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 13291, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 17044, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 16034, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 14548, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 12932, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 13521, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed": { + "entryPoint": 15357, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 17010, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 17216, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 17574, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15243, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15644, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15097, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 17765, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 16511, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 17428, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15498, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 16365, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14989, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 13573, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "access_calldata_tail_t_bytes_calldata_ptr": { + "entryPoint": 15691, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 14386, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 14358, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 17606, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 16700, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 14441, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 14369, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16543, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 14858, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 16613, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 15982, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 16188, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 16075, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 16237, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 13169, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_address_payable": { + "entryPoint": 15790, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 12905, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 13407, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 12772, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_1_by_1": { + "entryPoint": 15275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 13137, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 13548, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 15285, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_rational_1_by_1_to_t_uint8": { + "entryPoint": 15308, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 16711, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "decrement_t_uint256": { + "entryPoint": 17099, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 15298, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 15935, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 16141, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 14811, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 14764, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 12964, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 12959, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a": { + "entryPoint": 15681, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad": { + "entryPoint": 15676, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 12969, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e": { + "entryPoint": 15686, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 12767, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 12762, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 16936, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2": { + "entryPoint": 17140, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c": { + "entryPoint": 17460, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759": { + "entryPoint": 15129, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7": { + "entryPoint": 15530, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716": { + "entryPoint": 15021, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470": { + "entryPoint": 16554, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad": { + "entryPoint": 17689, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b": { + "entryPoint": 16397, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874": { + "entryPoint": 16624, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd": { + "entryPoint": 17314, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f": { + "entryPoint": 15384, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619": { + "entryPoint": 16289, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69": { + "entryPoint": 16802, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b": { + "entryPoint": 14875, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 13187, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address_payable": { + "entryPoint": 15808, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 13318, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 13417, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 12816, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 13664, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:38392:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "378:105:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "388:89:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "403:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "410:66:16", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "399:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "399:78:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "388:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "360:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "370:7:16", + "type": "" + } + ], + "src": "334:149:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "531:78:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "587:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "596:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "599:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "589:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "589:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "589:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "554:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "578:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "561:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "561:23:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "551:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "551:34:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "544:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "544:42:16" + }, + "nodeType": "YulIf", + "src": "541:62:16" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "524:5:16", + "type": "" + } + ], + "src": "489:120:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:86:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "698:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "685:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "685:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "740:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "714:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "714:32:16" + }, + "nodeType": "YulExpressionStatement", + "src": "714:32:16" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "644:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "652:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "660:5:16", + "type": "" + } + ], + "src": "615:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "823:262:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "871:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "871:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "871:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "844:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "853:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "840:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "840:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "836:32:16" + }, + "nodeType": "YulIf", + "src": "833:119:16" + }, + { + "nodeType": "YulBlock", + "src": "962:116:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "977:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "991:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "981:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1006:62:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1040:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1051:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1036:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1036:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1060:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1016:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "1016:52:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1006:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "793:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "804:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "816:6:16", + "type": "" + } + ], + "src": "758:327:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1133:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1143:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1168:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1161:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1161:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1154:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1154:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1143:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1115:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1125:7:16", + "type": "" + } + ], + "src": "1091:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1246:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1263:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1283:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "1268:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "1268:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1256:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1256:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1256:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1234:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1241:3:16", + "type": "" + } + ], + "src": "1187:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1394:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1404:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1416:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1412:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1412:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1404:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1478:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1491:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1487:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1440:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "1440:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1440:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1366:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1378:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1389:4:16", + "type": "" + } + ], + "src": "1302:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1607:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1624:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1627:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1617:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1617:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1617:12:16" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "1518:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1730:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1747:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1750:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1740:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1740:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1740:12:16" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "1641:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1870:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1873:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1863:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1863:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1863:12:16" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "1764:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1994:478:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2043:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2045:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2045:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2045:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2022:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2018:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2018:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2037:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2014:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2014:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2007:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2007:35:16" + }, + "nodeType": "YulIf", + "src": "2004:122:16" + }, + { + "nodeType": "YulAssignment", + "src": "2135:30:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2145:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:20:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2135:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2208:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "2210:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2210:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2210:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2180:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2188:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2177:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2177:30:16" + }, + "nodeType": "YulIf", + "src": "2174:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "2300:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2316:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2324:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2312:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2312:17:16" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "2300:8:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2383:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "2385:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2385:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2385:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "2348:8:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2362:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2370:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "2358:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2358:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2344:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2344:32:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2378:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2341:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2341:41:16" + }, + "nodeType": "YulIf", + "src": "2338:128:16" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1961:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1969:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "1977:8:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1987:6:16", + "type": "" + } + ], + "src": "1904:568:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2579:458:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2625:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2627:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2627:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2627:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2600:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2609:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2596:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2596:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2621:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2592:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2592:32:16" + }, + "nodeType": "YulIf", + "src": "2589:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2718:312:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2733:45:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2764:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2775:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2760:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2760:17:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2747:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2747:31:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2737:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2825:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "2827:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2827:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2827:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2797:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2805:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2794:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2794:30:16" + }, + "nodeType": "YulIf", + "src": "2791:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "2922:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2992:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3003:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2988:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2988:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3012:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "2940:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "2940:80:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2922:6:16" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2930:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2541:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2552:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2564:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2572:6:16", + "type": "" + } + ], + "src": "2478:559:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3088:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3098:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3113:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3120:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3109:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3109:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3098:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3070:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3080:7:16", + "type": "" + } + ], + "src": "3043:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3220:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3230:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3259:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "3241:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3241:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3230:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3202:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3212:7:16", + "type": "" + } + ], + "src": "3175:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3320:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3377:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3386:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3389:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3379:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3379:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3379:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3343:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3368:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "3350:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3350:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3340:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3333:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3333:43:16" + }, + "nodeType": "YulIf", + "src": "3330:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3313:5:16", + "type": "" + } + ], + "src": "3277:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3457:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3467:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3489:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3476:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "3476:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3467:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3532:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "3505:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "3505:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3505:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3435:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3443:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3451:5:16", + "type": "" + } + ], + "src": "3405:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3616:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3662:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3664:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3664:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3664:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3637:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3646:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3633:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3633:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3658:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3629:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3629:32:16" + }, + "nodeType": "YulIf", + "src": "3626:119:16" + }, + { + "nodeType": "YulBlock", + "src": "3755:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3770:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3784:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3774:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3799:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3834:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3845:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3830:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3830:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3854:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3809:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "3809:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3799:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3586:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3597:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3609:6:16", + "type": "" + } + ], + "src": "3550:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3950:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3967:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3990:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "3972:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3972:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3960:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3960:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3960:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3938:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3945:3:16", + "type": "" + } + ], + "src": "3885:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4107:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4117:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4129:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4140:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4125:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4125:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4117:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4197:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4210:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4221:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4206:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4206:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "4153:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "4153:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4153:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4079:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4091:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4102:4:16", + "type": "" + } + ], + "src": "4009:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4277:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4331:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4340:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4343:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4333:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4333:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4333:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4300:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4322:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "4307:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "4307:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4297:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4297:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4290:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4290:40:16" + }, + "nodeType": "YulIf", + "src": "4287:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4270:5:16", + "type": "" + } + ], + "src": "4237:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4408:84:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4418:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4440:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4427:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "4427:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4418:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4480:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "4456:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "4456:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4456:30:16" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4386:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4394:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4402:5:16", + "type": "" + } + ], + "src": "4359:133:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4561:260:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4607:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4609:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4609:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4609:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4582:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4591:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4578:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4578:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4603:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4574:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4574:32:16" + }, + "nodeType": "YulIf", + "src": "4571:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4700:114:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4715:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4729:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4719:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4744:60:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4776:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4787:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4772:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4772:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4796:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "4754:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "4754:50:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4744:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4531:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4542:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4554:6:16", + "type": "" + } + ], + "src": "4498:323:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4872:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4882:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4893:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4882:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4854:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4864:7:16", + "type": "" + } + ], + "src": "4827:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "4983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "4983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4966:43:16" + }, + "nodeType": "YulIf", + "src": "4963:63:16" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4946:5:16", + "type": "" + } + ], + "src": "4910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "5109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nodeType": "YulIdentifier", + "src": "5138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "5138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5138:33:16" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5084:5:16", + "type": "" + } + ], + "src": "5038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5249:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5295:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5297:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5297:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5297:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5270:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5279:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5266:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5266:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5291:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5262:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5262:32:16" + }, + "nodeType": "YulIf", + "src": "5259:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5388:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5403:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5417:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5407:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5432:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5467:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5478:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5463:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5463:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5487:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "5442:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5442:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5432:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5219:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5230:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5242:6:16", + "type": "" + } + ], + "src": "5183:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5583:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5600:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5623:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "5605:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "5605:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5593:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5593:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5593:37:16" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5571:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5578:3:16", + "type": "" + } + ], + "src": "5518:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5740:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5750:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5762:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5773:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5758:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5758:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5750:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5830:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5843:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5854:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5839:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5839:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "5786:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "5786:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5786:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5712:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5724:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5735:4:16", + "type": "" + } + ], + "src": "5642:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5915:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5925:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5936:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5925:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5897:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5907:7:16", + "type": "" + } + ], + "src": "5870:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6018:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6035:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6058:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6040:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6040:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6028:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6028:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6028:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6006:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6013:3:16", + "type": "" + } + ], + "src": "5953:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6175:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6185:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6197:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6208:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6193:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6193:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6185:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6265:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6278:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6289:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6274:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6274:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6221:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6221:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6221:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6147:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6159:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6170:4:16", + "type": "" + } + ], + "src": "6077:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6388:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6434:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6436:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "6436:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6436:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6409:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6418:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6405:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6405:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6430:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6401:32:16" + }, + "nodeType": "YulIf", + "src": "6398:119:16" + }, + { + "nodeType": "YulBlock", + "src": "6527:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6542:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6556:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6546:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6571:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6606:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6617:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6602:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6626:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "6581:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6581:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6571:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6654:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6669:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6683:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6673:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6699:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6734:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6745:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6730:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6730:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6754:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6709:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6709:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6699:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6350:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6361:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6373:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6381:6:16", + "type": "" + } + ], + "src": "6305:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6828:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6885:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6894:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6897:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6887:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6887:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6887:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6851:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6876:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6858:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6858:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6848:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6848:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6841:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6841:43:16" + }, + "nodeType": "YulIf", + "src": "6838:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6821:5:16", + "type": "" + } + ], + "src": "6785:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6965:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6975:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6997:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6984:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "6984:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6975:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7040:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "7013:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "7013:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7013:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6943:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6951:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6959:5:16", + "type": "" + } + ], + "src": "6913:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7124:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7170:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7172:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "7172:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7172:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7145:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7154:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7141:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7141:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7166:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7137:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7137:32:16" + }, + "nodeType": "YulIf", + "src": "7134:119:16" + }, + { + "nodeType": "YulBlock", + "src": "7263:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7278:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7292:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7282:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7307:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7342:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7353:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7338:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7338:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7362:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7317:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7307:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7094:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7105:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7117:6:16", + "type": "" + } + ], + "src": "7058:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7546:781:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7592:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7594:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "7594:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7594:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7567:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7576:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7563:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7563:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7588:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7559:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7559:32:16" + }, + "nodeType": "YulIf", + "src": "7556:119:16" + }, + { + "nodeType": "YulBlock", + "src": "7685:312:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7700:45:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7731:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7742:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7727:17:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7714:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "7714:31:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7704:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7792:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "7794:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "7794:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7794:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7764:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7772:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7761:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7761:30:16" + }, + "nodeType": "YulIf", + "src": "7758:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "7889:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7959:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7970:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7955:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7955:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7979:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "7907:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "7907:80:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7889:6:16" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7897:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8007:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8022:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8053:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8064:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8049:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8049:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8036:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "8036:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8026:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8115:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "8117:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8117:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8117:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8087:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8095:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8084:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8084:30:16" + }, + "nodeType": "YulIf", + "src": "8081:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "8212:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8282:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8293:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8278:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8278:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8302:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "8230:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "8230:80:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "8212:6:16" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "8220:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7492:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7503:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7515:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7523:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "7531:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "7539:6:16", + "type": "" + } + ], + "src": "7393:934:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8451:586:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8497:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8499:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8499:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8499:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8472:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8481:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8468:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8493:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8464:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8464:32:16" + }, + "nodeType": "YulIf", + "src": "8461:119:16" + }, + { + "nodeType": "YulBlock", + "src": "8590:312:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8605:45:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8636:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8647:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8632:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8632:17:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8619:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "8619:31:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8609:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8697:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "8699:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8699:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8699:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8669:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8677:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8666:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8666:30:16" + }, + "nodeType": "YulIf", + "src": "8663:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "8794:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8864:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8875:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8860:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8860:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8884:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "8812:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "8812:80:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8794:6:16" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "8802:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8912:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8927:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8941:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8931:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8957:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8992:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9003:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8988:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8988:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9012:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8967:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "8967:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "8957:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8405:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8416:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8428:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8436:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8444:6:16", + "type": "" + } + ], + "src": "8333:704:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9126:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9172:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9174:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9174:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9174:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9147:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9156:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9143:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9143:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9168:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9139:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9139:32:16" + }, + "nodeType": "YulIf", + "src": "9136:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9265:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9280:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9294:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9284:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9309:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9344:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9355:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9340:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9364:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9319:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9319:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9309:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9392:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9407:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9421:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9411:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9437:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9472:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9483:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9468:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9492:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9447:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9447:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9437:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9088:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9099:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9111:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9119:6:16", + "type": "" + } + ], + "src": "9043:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9797:1557:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9844:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9846:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9846:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9846:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9818:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9827:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9814:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9814:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9839:3:16", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9810:33:16" + }, + "nodeType": "YulIf", + "src": "9807:120:16" + }, + { + "nodeType": "YulBlock", + "src": "9937:312:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9952:45:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9983:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9994:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9979:17:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9966:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "9966:31:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9956:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10044:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "10046:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "10046:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10046:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10016:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10024:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10013:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10013:30:16" + }, + "nodeType": "YulIf", + "src": "10010:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "10141:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10211:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10222:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10207:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10207:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10231:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "10159:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "10159:80:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10141:6:16" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10149:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10259:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10274:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10305:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10316:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10301:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10301:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "10288:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "10288:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10278:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10367:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "10369:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "10369:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10369:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10339:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10347:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10336:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10336:30:16" + }, + "nodeType": "YulIf", + "src": "10333:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "10464:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10534:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10545:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10530:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10530:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10554:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "10482:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "10482:80:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10464:6:16" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "10472:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10582:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10597:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10628:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10639:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10624:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10624:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "10611:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "10611:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10601:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10690:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "10692:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "10692:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10692:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10662:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10670:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10659:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10659:30:16" + }, + "nodeType": "YulIf", + "src": "10656:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "10787:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10857:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10868:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10853:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10853:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10877:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "10805:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "10805:80:16" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "10787:6:16" + }, + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "10795:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10905:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10920:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10951:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10962:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10947:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10947:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "10934:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "10934:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10924:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11013:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "11015:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "11015:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11015:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10985:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10993:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10982:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10982:30:16" + }, + "nodeType": "YulIf", + "src": "10979:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "11110:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11180:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11191:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11176:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11176:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11200:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "11128:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "11128:80:16" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "11110:6:16" + }, + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "11118:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11228:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11243:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11257:3:16", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11247:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11274:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11309:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11320:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11305:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11305:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11329:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11284:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "11284:53:16" + }, + "variableNames": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "11274:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9703:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9714:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9726:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9734:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "9742:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "9750:6:16", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "9758:6:16", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "9766:6:16", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "9774:6:16", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "9782:6:16", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "9790:6:16", + "type": "" + } + ], + "src": "9523:1831:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11443:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11489:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11491:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "11491:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11491:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11464:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11473:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11460:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11460:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11485:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11456:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11456:32:16" + }, + "nodeType": "YulIf", + "src": "11453:119:16" + }, + { + "nodeType": "YulBlock", + "src": "11582:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11597:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11611:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11601:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11626:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11661:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11672:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11657:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11657:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11681:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "11636:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "11636:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11626:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11709:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11724:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11738:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11728:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11754:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11789:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11800:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11785:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11785:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11809:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11764:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "11764:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11754:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11405:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11416:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11428:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11436:6:16", + "type": "" + } + ], + "src": "11360:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11914:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11925:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11941:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "11935:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "11935:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11925:6:16" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11897:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "11907:6:16", + "type": "" + } + ], + "src": "11840:114:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12071:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12088:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "12093:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12081:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12081:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12081:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "12109:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12128:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12133:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12124:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12124:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "12109:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12043:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "12048:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "12059:11:16", + "type": "" + } + ], + "src": "11960:184:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12222:60:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12232:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "12240:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "12232:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12253:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "12265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12261:14:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "12253:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "12209:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "12217:4:16", + "type": "" + } + ], + "src": "12150:132:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12343:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12360:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12383:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "12365:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "12365:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12353:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12353:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12353:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12331:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12338:3:16", + "type": "" + } + ], + "src": "12288:108:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12482:99:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12526:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12534:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "12492:33:16" + }, + "nodeType": "YulFunctionCall", + "src": "12492:46:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12492:46:16" + }, + { + "nodeType": "YulAssignment", + "src": "12547:28:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12565:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12570:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12561:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12561:14:16" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "12547:10:16" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12455:6:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12463:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "12471:10:16", + "type": "" + } + ], + "src": "12402:179:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12662:38:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12672:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "12684:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12689:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12680:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12680:14:16" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "12672:4:16" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "12649:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "12657:4:16", + "type": "" + } + ], + "src": "12587:113:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12860:608:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12870:68:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12932:5:16" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12884:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "12884:54:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "12874:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12947:93:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13028:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13033:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12954:73:16" + }, + "nodeType": "YulFunctionCall", + "src": "12954:86:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12947:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "13049:71:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13114:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "13064:49:16" + }, + "nodeType": "YulFunctionCall", + "src": "13064:56:16" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "13053:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "13129:21:16", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "13143:7:16" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "13133:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13219:224:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13233:34:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "13260:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "13254:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "13254:13:16" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "13237:13:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13280:70:16", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "13331:13:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13346:3:16" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "13287:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "13287:63:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13280:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13363:70:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "13426:6:16" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "13373:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "13373:60:16" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "13363:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "13181:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13184:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "13178:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "13178:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "13192:18:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13194:14:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "13203:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13206:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13199:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13199:9:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "13194:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "13163:14:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13165:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13174:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "13169:1:16", + "type": "" + } + ] + } + ] + }, + "src": "13159:284:16" + }, + { + "nodeType": "YulAssignment", + "src": "13452:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13459:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13452:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12839:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12846:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12855:3:16", + "type": "" + } + ], + "src": "12736:732:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13622:225:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13632:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13644:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13655:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13640:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13640:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13632:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13679:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13690:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13675:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13675:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13698:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13704:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13694:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13694:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13668:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13668:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13668:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "13724:116:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13826:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13835:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13732:93:16" + }, + "nodeType": "YulFunctionCall", + "src": "13732:108:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13724:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13594:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13606:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13617:4:16", + "type": "" + } + ], + "src": "13474:373:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13969:478:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14018:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "14020:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14020:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14020:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13997:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14005:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13993:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13993:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14012:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13989:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13989:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "13982:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13982:35:16" + }, + "nodeType": "YulIf", + "src": "13979:122:16" + }, + { + "nodeType": "YulAssignment", + "src": "14110:30:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14133:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "14120:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "14120:20:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14110:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14183:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "14185:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14185:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14185:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14155:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14163:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "14152:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "14152:30:16" + }, + "nodeType": "YulIf", + "src": "14149:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "14275:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14291:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14299:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14287:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14287:17:16" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "14275:8:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14358:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "14360:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14360:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14360:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "14323:8:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14337:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14345:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "14333:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14333:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14319:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14319:32:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14353:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "14316:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "14316:41:16" + }, + "nodeType": "YulIf", + "src": "14313:128:16" + } + ] + }, + "name": "abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13936:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13944:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "13952:8:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13962:6:16", + "type": "" + } + ], + "src": "13868:579:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14582:597:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14628:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "14630:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14630:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14630:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14603:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14612:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14599:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14599:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14624:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14595:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14595:32:16" + }, + "nodeType": "YulIf", + "src": "14592:119:16" + }, + { + "nodeType": "YulBlock", + "src": "14721:323:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14736:45:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14767:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14778:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14763:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14763:17:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "14750:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "14750:31:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14740:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14828:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "14830:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14830:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14830:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14800:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14808:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "14797:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "14797:30:16" + }, + "nodeType": "YulIf", + "src": "14794:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "14925:109:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15006:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15017:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15002:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15002:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15026:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "14943:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "14943:91:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14925:6:16" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14933:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "15054:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15069:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15083:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "15073:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15099:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15134:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15145:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15130:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15130:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15154:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "15109:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "15109:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "15099:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14536:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14547:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14559:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14567:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "14575:6:16", + "type": "" + } + ], + "src": "14453:726:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15213:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15230:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15233:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15223:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15223:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15223:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15327:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15330:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15320:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15320:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15320:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15351:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15354:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15344:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15344:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15344:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "15185:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15399:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15416:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15419:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15409:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15409:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15409:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15513:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15516:4:16", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15506:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15506:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15506:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15537:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15540:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15530:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15530:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15530:15:16" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "15371:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15653:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15670:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15675:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15663:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15663:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15663:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "15691:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15710:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15715:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15706:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15706:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "15691:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15625:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "15630:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "15641:11:16", + "type": "" + } + ], + "src": "15557:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15838:128:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15860:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15868:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15856:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15856:14:16" + }, + { + "hexValue": "416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15872:34:16", + "type": "", + "value": "AccessControl: can only renounce" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15849:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15849:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15849:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15928:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15936:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15924:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15924:15:16" + }, + { + "hexValue": "20726f6c657320666f722073656c66", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15941:17:16", + "type": "", + "value": " roles for self" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15917:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15917:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15917:42:16" + } + ] + }, + "name": "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15830:6:16", + "type": "" + } + ], + "src": "15732:234:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16118:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16128:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16194:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16199:2:16", + "type": "", + "value": "47" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16135:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "16135:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16128:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16300:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "nodeType": "YulIdentifier", + "src": "16211:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "16211:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16211:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "16313:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16324:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16329:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16320:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16320:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16313:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16106:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16114:3:16", + "type": "" + } + ], + "src": "15972:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16515:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16525:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16537:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16548:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16533:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16533:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16525:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16572:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16583:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16568:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16568:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16591:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16597:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16587:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16587:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16561:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16561:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16561:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "16617:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16751:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16625:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "16625:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16617:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16495:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16510:4:16", + "type": "" + } + ], + "src": "16344:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16875:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16897:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16905:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16893:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16893:14:16" + }, + { + "hexValue": "696e69743a20726f756e644164647265737320616c726561647920736574", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16909:32:16", + "type": "", + "value": "init: roundAddress already set" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16886:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16886:56:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16886:56:16" + } + ] + }, + "name": "store_literal_in_memory_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16867:6:16", + "type": "" + } + ], + "src": "16769:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17101:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17111:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17177:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17182:2:16", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17118:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "17118:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17111:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17283:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716", + "nodeType": "YulIdentifier", + "src": "17194:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "17194:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17194:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "17296:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17307:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17312:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17303:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17303:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17296:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17089:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17097:3:16", + "type": "" + } + ], + "src": "16955:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17498:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17508:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17520:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17531:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17516:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17516:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17508:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17555:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17566:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17551:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17551:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17574:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17580:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17570:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17570:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17544:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17544:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17544:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "17600:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17734:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17608:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "17608:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17600:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17478:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17493:4:16", + "type": "" + } + ], + "src": "17327:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17858:127:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17880:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17888:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17876:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17876:14:16" + }, + { + "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17892:34:16", + "type": "", + "value": "Initializable: contract is alrea" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17869:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17869:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17869:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17948:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17956:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17944:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17944:15:16" + }, + { + "hexValue": "647920696e697469616c697a6564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17961:16:16", + "type": "", + "value": "dy initialized" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17937:41:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17937:41:16" + } + ] + }, + "name": "store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17850:6:16", + "type": "" + } + ], + "src": "17752:233:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18137:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18147:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18213:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18218:2:16", + "type": "", + "value": "46" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18154:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "18154:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18147:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18319:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "nodeType": "YulIdentifier", + "src": "18230:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "18230:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18230:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "18332:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18343:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18348:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18339:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18339:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18332:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18125:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18133:3:16", + "type": "" + } + ], + "src": "17991:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18534:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18544:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18556:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18567:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18552:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18552:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18544:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18591:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18602:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18587:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18587:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18610:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18616:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18606:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18606:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18580:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18580:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18580:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "18636:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18770:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18644:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "18644:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18636:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18514:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18529:4:16", + "type": "" + } + ], + "src": "18363:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18841:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18851:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18862:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "18851:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_rational_1_by_1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18823:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "18833:7:16", + "type": "" + } + ], + "src": "18788:85:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18922:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18932:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18947:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18954:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18943:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18943:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "18932:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18904:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "18914:7:16", + "type": "" + } + ], + "src": "18879:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19003:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19013:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19020:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "19013:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18989:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "18999:3:16", + "type": "" + } + ], + "src": "18971:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19103:88:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19113:72:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19177:5:16" + } + ], + "functionName": { + "name": "cleanup_t_rational_1_by_1", + "nodeType": "YulIdentifier", + "src": "19151:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "19151:32:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "19142:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "19142:42:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "19126:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "19126:59:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "19113:9:16" + } + ] + } + ] + }, + "name": "convert_t_rational_1_by_1_to_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "19083:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "19093:9:16", + "type": "" + } + ], + "src": "19037:154:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19268:72:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19285:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19327:5:16" + } + ], + "functionName": { + "name": "convert_t_rational_1_by_1_to_t_uint8", + "nodeType": "YulIdentifier", + "src": "19290:36:16" + }, + "nodeType": "YulFunctionCall", + "src": "19290:43:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19278:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19278:56:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19278:56:16" + } + ] + }, + "name": "abi_encode_t_rational_1_by_1_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "19256:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19263:3:16", + "type": "" + } + ], + "src": "19197:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19450:130:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19460:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19472:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19483:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19468:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19460:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "19546:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19559:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19570:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19555:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_rational_1_by_1_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "19496:49:16" + }, + "nodeType": "YulFunctionCall", + "src": "19496:77:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19496:77:16" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19422:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "19434:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19445:4:16", + "type": "" + } + ], + "src": "19346:234:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19692:125:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19714:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19722:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19710:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19710:14:16" + }, + { + "hexValue": "6572726f723a20766f74696e6720636f6e7472616374206e6f74206c696e6b65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19726:34:16", + "type": "", + "value": "error: voting contract not linke" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19703:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19703:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19703:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19782:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19790:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19778:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19778:15:16" + }, + { + "hexValue": "6420746f206120726f756e64", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19795:14:16", + "type": "", + "value": "d to a round" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19771:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19771:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19771:39:16" + } + ] + }, + "name": "store_literal_in_memory_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19684:6:16", + "type": "" + } + ], + "src": "19586:231:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19969:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19979:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20045:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20050:2:16", + "type": "", + "value": "44" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19986:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "19986:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19979:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20151:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f", + "nodeType": "YulIdentifier", + "src": "20062:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "20062:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "20062:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "20164:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20175:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20180:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20171:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20171:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20164:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19957:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19965:3:16", + "type": "" + } + ], + "src": "19823:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20366:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20376:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20388:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20399:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20384:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20384:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20376:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20423:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20434:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20419:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20419:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20442:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20448:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20438:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20438:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20412:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "20412:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "20412:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "20468:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20602:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20476:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "20476:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20468:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20346:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20361:4:16", + "type": "" + } + ], + "src": "20195:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20726:125:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20748:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20756:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20744:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20744:14:16" + }, + { + "hexValue": "6572726f723a2063616e20626520696e766f6b6564206f6e6c7920627920726f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20760:34:16", + "type": "", + "value": "error: can be invoked only by ro" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20737:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "20737:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "20737:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20816:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20824:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20812:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "20812:15:16" + }, + { + "hexValue": "756e6420636f6e7472616374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20829:14:16", + "type": "", + "value": "und contract" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20805:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "20805:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "20805:39:16" + } + ] + }, + "name": "store_literal_in_memory_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "20718:6:16", + "type": "" + } + ], + "src": "20620:231:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21003:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21013:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21079:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21084:2:16", + "type": "", + "value": "44" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21020:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "21020:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21013:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21185:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7", + "nodeType": "YulIdentifier", + "src": "21096:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "21096:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "21096:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "21198:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21209:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21214:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21205:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "21205:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21198:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20991:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20999:3:16", + "type": "" + } + ], + "src": "20857:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21400:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21410:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21422:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21433:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21418:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "21418:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21410:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21457:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21468:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21453:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "21453:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21476:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21482:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "21472:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "21472:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21446:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "21446:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "21446:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "21502:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21636:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21510:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "21510:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21502:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "21380:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21395:4:16", + "type": "" + } + ], + "src": "21229:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21743:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21760:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21763:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21753:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "21753:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "21753:12:16" + } + ] + }, + "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", + "nodeType": "YulFunctionDefinition", + "src": "21654:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21866:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21883:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21886:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21876:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "21876:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "21876:12:16" + } + ] + }, + "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", + "nodeType": "YulFunctionDefinition", + "src": "21777:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21989:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22006:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22009:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21999:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "21999:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "21999:12:16" + } + ] + }, + "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", + "nodeType": "YulFunctionDefinition", + "src": "21900:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22113:634:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "22123:51:16", + "value": { + "arguments": [ + { + "name": "ptr_to_tail", + "nodeType": "YulIdentifier", + "src": "22162:11:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "22149:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "22149:25:16" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nodeType": "YulTypedName", + "src": "22127:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22268:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", + "nodeType": "YulIdentifier", + "src": "22270:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "22270:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "22270:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nodeType": "YulIdentifier", + "src": "22197:18:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nodeType": "YulIdentifier", + "src": "22225:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "22225:14:16" + }, + { + "name": "base_ref", + "nodeType": "YulIdentifier", + "src": "22241:8:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22221:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22221:29:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22256:4:16", + "type": "", + "value": "0x20" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22262:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22252:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22252:12:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22217:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22217:48:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "22193:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22193:73:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "22186:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "22186:81:16" + }, + "nodeType": "YulIf", + "src": "22183:168:16" + }, + { + "nodeType": "YulAssignment", + "src": "22360:41:16", + "value": { + "arguments": [ + { + "name": "base_ref", + "nodeType": "YulIdentifier", + "src": "22372:8:16" + }, + { + "name": "rel_offset_of_tail", + "nodeType": "YulIdentifier", + "src": "22382:18:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22368:33:16" + }, + "variableNames": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "22360:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "22411:28:16", + "value": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "22434:4:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "22421:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "22421:18:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "22411:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22482:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", + "nodeType": "YulIdentifier", + "src": "22484:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "22484:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "22484:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "22454:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22462:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "22451:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "22451:30:16" + }, + "nodeType": "YulIf", + "src": "22448:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "22574:21:16", + "value": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "22586:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22592:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22582:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22582:13:16" + }, + "variableNames": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "22574:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22657:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", + "nodeType": "YulIdentifier", + "src": "22659:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "22659:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "22659:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "22611:4:16" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nodeType": "YulIdentifier", + "src": "22621:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "22621:14:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "22641:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22649:4:16", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "22637:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22637:17:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22617:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22617:38:16" + } + ], + "functionName": { + "name": "sgt", + "nodeType": "YulIdentifier", + "src": "22607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "22607:49:16" + }, + "nodeType": "YulIf", + "src": "22604:136:16" + } + ] + }, + "name": "access_calldata_tail_t_bytes_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nodeType": "YulTypedName", + "src": "22074:8:16", + "type": "" + }, + { + "name": "ptr_to_tail", + "nodeType": "YulTypedName", + "src": "22084:11:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "addr", + "nodeType": "YulTypedName", + "src": "22100:4:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "22106:6:16", + "type": "" + } + ], + "src": "22023:724:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22806:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22816:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "22827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "22827:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "22816:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address_payable", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22788:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "22798:7:16", + "type": "" + } + ], + "src": "22753:104:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22914:87:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "22979:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22988:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22991:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "22981:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "22981:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "22981:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22937:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22970:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address_payable", + "nodeType": "YulIdentifier", + "src": "22944:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "22944:32:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "22934:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "22934:43:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "22927:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "22927:51:16" + }, + "nodeType": "YulIf", + "src": "22924:71:16" + } + ] + }, + "name": "validator_revert_t_address_payable", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22907:5:16", + "type": "" + } + ], + "src": "22863:138:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23067:95:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23077:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23099:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "23086:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "23086:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "23077:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "23150:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address_payable", + "nodeType": "YulIdentifier", + "src": "23115:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "23115:41:16" + }, + "nodeType": "YulExpressionStatement", + "src": "23115:41:16" + } + ] + }, + "name": "abi_decode_t_address_payable", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "23045:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23053:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "23061:5:16", + "type": "" + } + ], + "src": "23007:155:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23284:535:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "23330:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "23332:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "23332:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "23332:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "23305:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23314:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23301:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "23301:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23326:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "23297:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "23297:32:16" + }, + "nodeType": "YulIf", + "src": "23294:119:16" + }, + { + "nodeType": "YulBlock", + "src": "23423:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23438:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23452:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "23442:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23467:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23510:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23521:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23506:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "23506:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "23530:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_payable", + "nodeType": "YulIdentifier", + "src": "23477:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "23477:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "23467:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "23558:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23573:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23587:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "23577:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23603:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23638:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23649:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23634:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "23634:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "23658:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "23613:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "23613:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "23603:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "23686:126:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23701:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23715:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "23705:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23731:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23774:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23785:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23770:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "23770:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "23794:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_payable", + "nodeType": "YulIdentifier", + "src": "23741:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "23741:61:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "23731:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_payablet_uint256t_address_payable", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23238:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "23249:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "23261:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "23269:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "23277:6:16", + "type": "" + } + ], + "src": "23168:651:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23853:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23870:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23873:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23863:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "23863:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "23863:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23967:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23970:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23960:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "23960:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "23960:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23991:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23994:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "23984:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "23984:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "23984:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "23825:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24055:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24065:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24088:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "24070:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "24070:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24065:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "24099:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24122:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "24104:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "24104:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24099:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "24133:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24144:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24147:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24140:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "24133:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24173:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "24175:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "24175:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "24175:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24165:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "24168:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "24162:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "24162:10:16" + }, + "nodeType": "YulIf", + "src": "24159:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "24042:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "24045:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "24051:3:16", + "type": "" + } + ], + "src": "24011:191:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24334:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24344:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24356:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24367:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24352:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24352:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24344:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "24424:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24437:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24448:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24433:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24433:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "24380:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "24380:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "24380:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "24505:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24518:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24529:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24514:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24514:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "24461:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "24461:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "24461:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24298:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "24310:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "24318:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24329:4:16", + "type": "" + } + ], + "src": "24208:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24594:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24604:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24627:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "24609:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "24609:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24604:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "24638:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24661:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "24643:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "24643:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24638:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "24672:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24695:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24698:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "24691:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24691:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "24676:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "24709:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "24738:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "24720:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "24720:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "24709:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24927:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "24929:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "24929:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "24929:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24860:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "24853:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "24853:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "24883:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "24890:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "24899:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "24886:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "24886:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "24880:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "24880:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "24833:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "24833:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "24813:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "24813:113:16" + }, + "nodeType": "YulIf", + "src": "24810:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "24577:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "24580:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "24586:7:16", + "type": "" + } + ], + "src": "24546:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24990:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25007:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25010:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25000:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "25000:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25000:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25104:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25107:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25097:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "25097:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25097:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25128:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25131:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25121:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "25121:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25121:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "24962:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25190:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25200:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25223:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25205:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "25205:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25200:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25234:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25257:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25239:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "25239:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25234:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25281:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "25283:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "25283:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25283:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25278:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "25271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "25271:9:16" + }, + "nodeType": "YulIf", + "src": "25268:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "25313:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25322:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25325:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "25318:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "25318:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "25313:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "25179:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "25182:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "25188:1:16", + "type": "" + } + ], + "src": "25148:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25384:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25394:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25417:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25399:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "25399:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25394:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25428:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25451:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25433:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "25433:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25428:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25462:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25474:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25477:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25470:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "25470:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "25462:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25504:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "25506:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "25506:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25506:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "25495:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25501:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "25492:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "25492:11:16" + }, + "nodeType": "YulIf", + "src": "25489:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "25370:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "25373:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "25379:4:16", + "type": "" + } + ], + "src": "25339:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25645:75:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "25667:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25675:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25663:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "25663:14:16" + }, + { + "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "25679:33:16", + "type": "", + "value": "ReentrancyGuard: reentrant call" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25656:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "25656:57:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25656:57:16" + } + ] + }, + "name": "store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "25637:6:16", + "type": "" + } + ], + "src": "25539:181:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25872:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25882:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25948:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25953:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25889:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "25889:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25882:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26054:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "nodeType": "YulIdentifier", + "src": "25965:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "25965:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "25965:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "26067:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26078:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26083:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26074:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26074:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26067:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25860:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25868:3:16", + "type": "" + } + ], + "src": "25726:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26269:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26279:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26291:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26302:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26287:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26287:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26279:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26326:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26337:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26322:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26322:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26345:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26351:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "26341:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26341:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26315:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "26315:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "26315:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "26371:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26505:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26379:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "26379:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26371:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "26249:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "26264:4:16", + "type": "" + } + ], + "src": "26098:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26629:124:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "26651:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26659:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26647:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26647:14:16" + }, + { + "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26663:34:16", + "type": "", + "value": "Initializable: contract is not i" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26640:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "26640:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "26640:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "26719:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26727:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26715:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "26715:15:16" + }, + { + "hexValue": "6e697469616c697a696e67", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26732:13:16", + "type": "", + "value": "nitializing" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26708:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "26708:38:16" + }, + "nodeType": "YulExpressionStatement", + "src": "26708:38:16" + } + ] + }, + "name": "store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "26621:6:16", + "type": "" + } + ], + "src": "26523:230:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26905:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26915:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26981:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26986:2:16", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26922:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "26922:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26915:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27087:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", + "nodeType": "YulIdentifier", + "src": "26998:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "26998:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "26998:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "27100:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27111:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27116:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27107:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "27107:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27100:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26893:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26901:3:16", + "type": "" + } + ], + "src": "26759:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27302:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27312:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27324:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27335:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27320:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "27320:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27312:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27359:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27370:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27355:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "27355:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27378:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27384:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27374:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "27374:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27348:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "27348:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "27348:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "27404:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27538:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27412:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "27412:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27404:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27282:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27297:4:16", + "type": "" + } + ], + "src": "27131:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27669:34:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27679:18:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27694:3:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "27679:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27641:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "27646:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "27657:11:16", + "type": "" + } + ], + "src": "27556:147:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27815:8:16", + "statements": [] + }, + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "27807:6:16", + "type": "" + } + ], + "src": "27709:114:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27992:235:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28002:90:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28085:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28090:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "28009:75:16" + }, + "nodeType": "YulFunctionCall", + "src": "28009:83:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28002:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28190:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nodeType": "YulIdentifier", + "src": "28101:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "28101:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "28101:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "28203:18:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28214:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28219:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28210:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "28210:11:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28203:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27980:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27988:3:16", + "type": "" + } + ], + "src": "27829:398:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28421:191:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28432:154:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28582:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "28439:141:16" + }, + "nodeType": "YulFunctionCall", + "src": "28439:147:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28432:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28596:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28603:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28596:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28408:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28417:3:16", + "type": "" + } + ], + "src": "28233:379:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28732:34:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28742:18:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28757:3:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "28742:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28704:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "28709:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "28720:11:16", + "type": "" + } + ], + "src": "28618:148:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28878:67:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "28900:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28908:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28896:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "28896:14:16" + }, + { + "hexValue": "416363657373436f6e74726f6c3a206163636f756e7420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "28912:25:16", + "type": "", + "value": "AccessControl: account " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28889:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "28889:49:16" + }, + "nodeType": "YulExpressionStatement", + "src": "28889:49:16" + } + ] + }, + "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "28870:6:16", + "type": "" + } + ], + "src": "28772:173:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29115:238:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29125:92:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29209:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29214:2:16", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "29132:76:16" + }, + "nodeType": "YulFunctionCall", + "src": "29132:85:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29125:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29315:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", + "nodeType": "YulIdentifier", + "src": "29226:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "29226:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "29226:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "29328:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29339:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29344:2:16", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29335:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "29335:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29328:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29103:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29111:3:16", + "type": "" + } + ], + "src": "28951:402:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29418:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29429:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "29445:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "29439:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "29439:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "29429:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "29401:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "29411:6:16", + "type": "" + } + ], + "src": "29359:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29526:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "29536:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29545:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "29540:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29605:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "29630:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "29635:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29626:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "29626:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "29649:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "29654:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29645:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "29645:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "29639:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "29639:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29619:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "29619:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "29619:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "29566:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "29569:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "29563:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "29563:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "29577:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29579:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "29588:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29591:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29584:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "29584:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "29579:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "29559:3:16", + "statements": [] + }, + "src": "29555:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "29688:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "29693:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29684:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "29684:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29702:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29677:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "29677:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "29677:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "29508:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "29513:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "29518:6:16", + "type": "" + } + ], + "src": "29464:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29826:280:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "29836:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "29883:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "29850:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "29850:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "29840:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "29898:96:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29982:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "29987:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "29905:76:16" + }, + "nodeType": "YulFunctionCall", + "src": "29905:89:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29898:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "30042:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30049:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "30038:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30056:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "30061:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "30003:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "30003:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "30003:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "30077:23:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30088:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "30093:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "30084:16:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30077:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "29807:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29814:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29822:3:16", + "type": "" + } + ], + "src": "29716:390:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30218:61:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30240:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30248:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30236:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "30236:14:16" + }, + { + "hexValue": "206973206d697373696e6720726f6c6520", + "kind": "string", + "nodeType": "YulLiteral", + "src": "30252:19:16", + "type": "", + "value": " is missing role " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30229:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "30229:43:16" + }, + "nodeType": "YulExpressionStatement", + "src": "30229:43:16" + } + ] + }, + "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "30210:6:16", + "type": "" + } + ], + "src": "30112:167:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30449:238:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30459:92:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30543:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30548:2:16", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "30466:76:16" + }, + "nodeType": "YulFunctionCall", + "src": "30466:85:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30459:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30649:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "nodeType": "YulIdentifier", + "src": "30560:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "30560:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "30560:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "30662:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30673:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30678:2:16", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30669:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "30669:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30662:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30437:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30445:3:16", + "type": "" + } + ], + "src": "30285:402:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31079:581:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31090:155:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31241:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "31097:142:16" + }, + "nodeType": "YulFunctionCall", + "src": "31097:148:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31090:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31255:102:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "31344:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31353:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "31262:81:16" + }, + "nodeType": "YulFunctionCall", + "src": "31262:95:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31255:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31367:155:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31518:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "31374:142:16" + }, + "nodeType": "YulFunctionCall", + "src": "31374:148:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31367:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31532:102:16", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "31621:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31630:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "31539:81:16" + }, + "nodeType": "YulFunctionCall", + "src": "31539:95:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31532:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31644:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31651:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31644:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31050:3:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "31056:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "31064:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31075:3:16", + "type": "" + } + ], + "src": "30693:967:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31714:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31724:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "31742:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31749:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31738:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "31738:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31758:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "31754:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "31754:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "31734:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "31734:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "31724:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "31697:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "31707:6:16", + "type": "" + } + ], + "src": "31666:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31866:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "31876:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "31923:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "31890:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "31890:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "31880:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "31938:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32004:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "32009:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31945:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "31945:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31938:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32064:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32071:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32060:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32060:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32078:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "32083:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "32025:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "32025:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "32025:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "32099:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32110:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "32137:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "32115:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "32115:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32106:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32106:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32099:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "31847:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31854:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31862:3:16", + "type": "" + } + ], + "src": "31774:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32275:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32285:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32297:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32308:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32293:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32293:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32285:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32332:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32343:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32328:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32328:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32351:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32357:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "32347:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32347:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32321:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "32321:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "32321:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "32377:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "32449:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32458:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32385:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "32385:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32377:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "32247:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "32259:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "32270:4:16", + "type": "" + } + ], + "src": "32157:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32630:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32640:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32652:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32663:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32648:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32648:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32640:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "32720:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32733:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32744:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32729:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32729:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "32676:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "32676:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "32676:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "32801:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32814:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32825:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32810:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "32757:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "32757:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "32757:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "32883:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32896:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32907:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "32892:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "32839:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "32839:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "32839:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "32586:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "32598:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "32606:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "32614:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "32625:4:16", + "type": "" + } + ], + "src": "32476:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32967:128:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32977:33:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33004:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "32986:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "32986:24:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32977:5:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33038:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "33040:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "33040:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "33040:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33025:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33032:4:16", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "33022:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "33022:15:16" + }, + "nodeType": "YulIf", + "src": "33019:41:16" + }, + { + "nodeType": "YulAssignment", + "src": "33069:20:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33080:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33087:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "33076:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33076:13:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "33069:3:16" + } + ] + } + ] + }, + "name": "decrement_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32953:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "32963:3:16", + "type": "" + } + ], + "src": "32924:171:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33207:76:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "33229:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33237:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33225:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33225:14:16" + }, + { + "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", + "kind": "string", + "nodeType": "YulLiteral", + "src": "33241:34:16", + "type": "", + "value": "Strings: hex length insufficient" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "33218:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "33218:58:16" + } + ] + }, + "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "33199:6:16", + "type": "" + } + ], + "src": "33101:182:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33435:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33445:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33511:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33516:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33452:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "33452:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33445:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33617:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "nodeType": "YulIdentifier", + "src": "33528:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "33528:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "33528:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "33630:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33641:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33646:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33637:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33637:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33630:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33423:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33431:3:16", + "type": "" + } + ], + "src": "33289:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33832:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33842:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33854:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33865:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33850:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33850:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33842:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33889:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33900:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33885:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33885:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33908:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33914:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "33904:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "33904:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33878:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "33878:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "33878:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "33934:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34068:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33942:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "33942:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33934:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "33812:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "33827:4:16", + "type": "" + } + ], + "src": "33661:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34146:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34156:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "34171:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "34165:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "34165:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "34156:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "34211:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "34187:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "34187:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "34187:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "34124:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34132:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "34140:5:16", + "type": "" + } + ], + "src": "34086:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34303:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "34349:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "34351:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "34351:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "34351:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "34324:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34333:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "34320:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "34320:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34345:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "34316:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "34316:32:16" + }, + "nodeType": "YulIf", + "src": "34313:119:16" + }, + { + "nodeType": "YulBlock", + "src": "34442:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "34457:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34471:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "34461:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "34486:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34529:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "34540:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34525:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "34525:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "34549:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "34496:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "34496:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "34486:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "34273:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "34284:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "34296:6:16", + "type": "" + } + ], + "src": "34229:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34686:123:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34708:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34716:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34704:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "34704:14:16" + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34720:34:16", + "type": "", + "value": "SafeERC20: ERC20 operation did n" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34697:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "34697:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "34697:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34776:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34784:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34772:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "34772:15:16" + }, + { + "hexValue": "6f742073756363656564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34789:12:16", + "type": "", + "value": "ot succeed" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34765:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "34765:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "34765:37:16" + } + ] + }, + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "34678:6:16", + "type": "" + } + ], + "src": "34580:229:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34961:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34971:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35037:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35042:2:16", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34978:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "34978:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34971:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35143:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulIdentifier", + "src": "35054:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "35054:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "35054:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "35156:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35167:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35172:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35163:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35163:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35156:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34949:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34957:3:16", + "type": "" + } + ], + "src": "34815:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35358:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35368:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35380:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35391:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35376:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35376:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35368:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35415:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35426:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35411:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35411:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35434:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35440:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "35430:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35430:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35404:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "35404:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "35404:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "35460:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35594:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35468:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "35468:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35460:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35338:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "35353:4:16", + "type": "" + } + ], + "src": "35187:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35718:119:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "35740:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35748:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35736:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35736:14:16" + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "35752:34:16", + "type": "", + "value": "Address: insufficient balance fo" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35729:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "35729:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "35729:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "35808:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35816:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35804:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "35804:15:16" + }, + { + "hexValue": "722063616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "35821:8:16", + "type": "", + "value": "r call" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35797:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "35797:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "35797:33:16" + } + ] + }, + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "35710:6:16", + "type": "" + } + ], + "src": "35612:225:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35989:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35999:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36065:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36070:2:16", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "36006:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "36006:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35999:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36171:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulIdentifier", + "src": "36082:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "36082:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "36082:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "36184:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36195:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36200:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36191:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "36191:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "36184:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35977:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35985:3:16", + "type": "" + } + ], + "src": "35843:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36386:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36396:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36408:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36419:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36404:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "36404:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36396:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36443:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36454:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36439:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "36439:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36462:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36468:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "36458:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "36458:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "36432:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "36432:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "36432:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "36488:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36622:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "36496:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "36496:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36488:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "36366:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "36381:4:16", + "type": "" + } + ], + "src": "36215:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36698:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36709:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36725:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36719:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "36719:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "36709:6:16" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "36681:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "36691:6:16", + "type": "" + } + ], + "src": "36640:98:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36852:278:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36862:52:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36908:5:16" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "36876:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "36876:38:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "36866:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "36923:95:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37006:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37011:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "36930:75:16" + }, + "nodeType": "YulFunctionCall", + "src": "36930:88:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36923:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37066:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37073:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37062:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "37062:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37080:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37085:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "37027:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "37027:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "37027:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "37101:23:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37112:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37117:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37108:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "37108:16:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "37101:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "36833:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "36840:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "36848:3:16", + "type": "" + } + ], + "src": "36744:386:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37270:137:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37281:100:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "37368:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37377:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "37288:79:16" + }, + "nodeType": "YulFunctionCall", + "src": "37288:93:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37281:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "37391:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37398:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "37391:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "37249:3:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "37255:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "37266:3:16", + "type": "" + } + ], + "src": "37136:271:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37519:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "37541:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37549:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37537:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "37537:14:16" + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "37553:31:16", + "type": "", + "value": "Address: call to non-contract" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37530:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "37530:55:16" + }, + "nodeType": "YulExpressionStatement", + "src": "37530:55:16" + } + ] + }, + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "37511:6:16", + "type": "" + } + ], + "src": "37413:179:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37744:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37754:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37820:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37825:2:16", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37761:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "37761:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37754:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37926:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulIdentifier", + "src": "37837:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "37837:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "37837:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "37939:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37950:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37955:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37946:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "37946:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "37939:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "37732:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "37740:3:16", + "type": "" + } + ], + "src": "37598:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38141:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38151:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38163:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38174:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38159:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "38159:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38151:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38198:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38209:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38194:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "38194:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38217:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38223:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38213:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "38213:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "38187:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "38187:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "38243:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38377:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "38251:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "38251:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38243:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "38121:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "38136:4:16", + "type": "" + } + ], + "src": "37970:419:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4, value5 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value6, value7 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value8 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n // bytes[]\n function abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n mstore(add(memPtr, 32), \" roles for self\")\n\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716(memPtr) {\n\n mstore(add(memPtr, 0), \"init: roundAddress already set\")\n\n }\n\n function abi_encode_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n mstore(add(memPtr, 32), \"dy initialized\")\n\n }\n\n function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f(memPtr) {\n\n mstore(add(memPtr, 0), \"error: voting contract not linke\")\n\n mstore(add(memPtr, 32), \"d to a round\")\n\n }\n\n function abi_encode_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7(memPtr) {\n\n mstore(add(memPtr, 0), \"error: can be invoked only by ro\")\n\n mstore(add(memPtr, 32), \"und contract\")\n\n }\n\n function abi_encode_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_tuple_t_address_payablet_uint256t_address_payable(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(memPtr) {\n\n mstore(add(memPtr, 0), \"ReentrancyGuard: reentrant call\")\n\n }\n\n function abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n mstore(add(memPtr, 32), \"nitializing\")\n\n }\n\n function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: account \")\n\n }\n\n function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n end := add(pos, 23)\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n mstore(add(memPtr, 0), \" is missing role \")\n\n }\n\n function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n }\n\n function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(memPtr) {\n\n mstore(add(memPtr, 0), \"SafeERC20: ERC20 operation did n\")\n\n mstore(add(memPtr, 32), \"ot succeed\")\n\n }\n\n function abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: insufficient balance fo\")\n\n mstore(add(memPtr, 32), \"r call\")\n\n }\n\n function abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: call to non-contract\")\n\n }\n\n function abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106102725760003560e01c8063658e48211161014f578063d3e78e4d116100c1578063f46b80ca1161007a578063f46b80ca14610930578063f7888aec1461096d578063f85fc0ab146109aa578063fbfe3ab2146109d5578063fc6d4e3914610a12578063fdbb219d14610a2e57610272565b8063d3e78e4d14610848578063d547741f14610873578063dcda7dad1461089c578063e1c7392a146108c7578063f2d4120e146108de578063f3fef3a31461090757610272565b8063a0cf0aea11610113578063a0cf0aea14610726578063a217fddf14610751578063ae876f611461077c578063b278110f146107a5578063bf7cb70b146107e2578063c23f001f1461080b57610272565b8063658e4821146106455780636bb85f4c1461066e57806380c78f1c1461069757806391d14854146106c05780639d082c98146106fd57610272565b806324d7806c116101e857806331ac9920116101ac57806331ac99201461054d57806336568abe146105765780633b8453ca1461059f5780633d0950a8146105c857806342e228ef146105f157806360e007a61461061a57610272565b806324d7806c1461046857806324ec7590146104a55780632620d800146104d05780632a0acc6a146104f95780632f2ff15d1461052457610272565b8063102d79271161023a578063102d79271461035c5780631037d18c1461038757806310881166146103b0578063155dc549146103d95780631ac3ddeb14610402578063248a9ca31461042b57610272565b806301ffc9a714610277578063041c60ee146102b45780630560bd96146102dd5780630b67d9251461031a5780630d6aef0414610345575b600080fd5b34801561028357600080fd5b5061029e6004803603810190610299919061323c565b610a59565b6040516102ab9190613284565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d69190613304565b610ad3565b005b3480156102e957600080fd5b5061030460048036038101906102ff91906133af565b610b3c565b6040516103119190613284565b60405180910390f35b34801561032657600080fd5b5061032f610b6f565b60405161033c91906133eb565b60405180910390f35b34801561035157600080fd5b5061035a610b93565b005b34801561036857600080fd5b50610371610bc8565b60405161037e9190613284565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190613304565b610bdb565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190613304565b610c13565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190613432565b610c4b565b005b34801561040e57600080fd5b50610429600480360381019061042491906133af565b610ca8565b005b34801561043757600080fd5b50610452600480360381019061044d9190613495565b610d6d565b60405161045f91906134d1565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a91906133af565b610d8d565b60405161049c9190613284565b60405180910390f35b3480156104b157600080fd5b506104ba610dc0565b6040516104c79190613505565b60405180910390f35b3480156104dc57600080fd5b506104f760048036038101906104f29190613304565b610dc6565b005b34801561050557600080fd5b5061050e610dfe565b60405161051b91906134d1565b60405180910390f35b34801561053057600080fd5b5061054b60048036038101906105469190613520565b610e22565b005b34801561055957600080fd5b50610574600480360381019061056f919061358c565b610e43565b005b34801561058257600080fd5b5061059d60048036038101906105989190613520565b610e58565b005b3480156105ab57600080fd5b506105c660048036038101906105c191906135b9565b610edb565b005b3480156105d457600080fd5b506105ef60048036038101906105ea9190613304565b610fad565b005b3480156105fd57600080fd5b506106186004803603810190610613919061363a565b610fe5565b005b34801561062657600080fd5b5061062f611046565b60405161063c9190613284565b60405180910390f35b34801561065157600080fd5b5061066c60048036038101906106679190613304565b611059565b005b34801561067a57600080fd5b5061069560048036038101906106909190613432565b6110b9565b005b3480156106a357600080fd5b506106be60048036038101906106b99190613304565b611116565b005b3480156106cc57600080fd5b506106e760048036038101906106e29190613520565b61114e565b6040516106f49190613284565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f9190613304565b6111b9565b005b34801561073257600080fd5b5061073b6111f1565b60405161074891906133eb565b60405180910390f35b34801561075d57600080fd5b506107666111f6565b60405161077391906134d1565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e9190613304565b6111fd565b005b3480156107b157600080fd5b506107cc60048036038101906107c791906133af565b61126f565b6040516107d99190613284565b60405180910390f35b3480156107ee57600080fd5b5061080960048036038101906108049190613304565b6112a2565b005b34801561081757600080fd5b50610832600480360381019061082d919061369a565b6112da565b60405161083f9190613505565b60405180910390f35b34801561085457600080fd5b5061085d6112ff565b60405161086a91906134d1565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190613520565b611323565b005b3480156108a857600080fd5b506108b1611344565b6040516108be91906134d1565b60405180910390f35b3480156108d357600080fd5b506108dc611368565b005b3480156108ea57600080fd5b50610905600480360381019061090091906136da565b611439565b005b34801561091357600080fd5b5061092e600480360381019061092991906137d6565b61158e565b005b34801561093c57600080fd5b506109576004803603810190610952919061363a565b6115e8565b60405161096491906138d4565b60405180910390f35b34801561097957600080fd5b50610994600480360381019061098f919061369a565b611727565b6040516109a19190613505565b60405180910390f35b3480156109b657600080fd5b506109bf6117ae565b6040516109cc9190613505565b60405180910390f35b3480156109e157600080fd5b506109fc60048036038101906109f791906133af565b6117ba565b604051610a099190613284565b60405180910390f35b610a2c6004803603810190610a27919061394c565b6117ed565b005b348015610a3a57600080fd5b50610a43611b2e565b604051610a5091906134d1565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610acc5750610acb82611b52565b5b9050919050565b610adb611bbc565b610ae433611c0b565b610b30828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050503033611c6e565b610b38611d5f565b5050565b6000610b687f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198361114e565b9050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9c33611d69565b610bc67fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233611dcc565b565b60ca60019054906101000a900460ff1681565b610be433611d69565b610c0f7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383611eae565b5050565b610c1c33611d69565b610c477f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383611f06565b5050565b610c5433611d69565b8060ca60006101000a81548160ff0219169083151502179055507f46d6d1a61669d91ea3801d9d57b7398c4ced2120f35ca8559749a391047a24ae81604051610c9d9190613284565b60405180910390a150565b610cb0611bbc565b6000600167ffffffffffffffff811115610ccd57610ccc6139ac565b5b604051908082528060200260200182016040528015610cfb5781602001602082028036833780820191505090505b5090508181600081518110610d1357610d126139db565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610d5633611c0b565b610d61813033611c6e565b50610d6a611d5f565b50565b600060656000838152602001908152602001600020600101549050919050565b6000610db97fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428361114e565b9050919050565b60c95481565b610dcf33611d69565b610dfa7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383611eae565b5050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4281565b610e2b82610d6d565b610e3481611f5e565b610e3e8383611f72565b505050565b610e4c33611d69565b610e5581612053565b50565b610e606120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec490613a8d565b60405180910390fd5b610ed78282611dcc565b5050565b610ee3611bbc565b600082829050905060005b81811015610f9d57610f90868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050858584818110610f4e57610f4d6139db565b5b9050602002016020810190610f6391906133af565b868685818110610f7657610f756139db565b5b9050602002016020810190610f8b91906133af565b611c6e565b8080600101915050610eee565b5050610fa7611d5f565b50505050565b610fb633611d69565b610fe17fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611f06565b5050565b610fed611bbc565b611039838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508283611c6e565b611041611d5f565b505050565b60ca60009054906101000a900460ff1681565b611061611bbc565b6110ad828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050503333611c6e565b6110b5611d5f565b5050565b6110c233611d69565b8060ca60016101000a81548160ff0219169083151502179055507f618c1dfcdc0554eaa0869d571defb09f99ae2add7c190d59444db6d0392489a78160405161110b9190613284565b60405180910390a150565b61111f33611d69565b61114a7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383611f06565b5050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6111c233611d69565b6111ed7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383611f06565b5050565b600081565b6000801b81565b61120a6000801b3361114e565b611240576040517f46ab053d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61126b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611eae565b5050565b600061129b7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838361114e565b9050919050565b6112ab33611d69565b6112d67f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383611eae565b5050565b60cb602052816000526040600020602052806000526040600020600091509150505481565b7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f08381565b61132c82610d6d565b61133581611f5e565b61133f8383611dcc565b505050565b7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc63281565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90613af9565b60405180910390fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060159054906101000a900460ff1615905080801561146c57506001600060149054906101000a900460ff1660ff16105b8061149b575061147b306120de565b15801561149a57506001600060149054906101000a900460ff1660ff16145b5b6114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613b8b565b60405180910390fd5b6001600060146101000a81548160ff021916908360ff1602179055508015611518576001600060156101000a81548160ff0219169083151502179055505b6115298a8a8a8a8a8a8a8a8a612101565b80156115825760008060156101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516115799190613bfd565b60405180910390a15b50505050505050505050565b611596611bbc565b600081036115d0576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115dc823333846121d6565b6115e4611d5f565b5050565b6060600084849050905060008167ffffffffffffffff81111561160e5761160d6139ac565b5b60405190808252806020026020018201604052801561163c5781602001602082028036833780820191505090505b50905060005b8281101561171a5760cb60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888481811061169e5761169d6139db565b5b90506020020160208101906116b391906133af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054828281518110611701576117006139db565b5b6020026020010181815250508080600101915050611642565b5080925050509392505050565b600060cb60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b670de0b6b3a764000081565b60006117e67fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328361114e565b9050919050565b6117f5611bbc565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b90613c8a565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613d1c565b60405180910390fd5b60008383905090506000805b82811015611ae457600080600088888581811061193e5761193d6139db565b5b90506020028101906119509190613d4b565b81019061195d9190613dec565b92509250925060ca60009054906101000a900460ff161561198257611981836124aa565b5b60ca60019054906101000a900460ff16156119a1576119a08161250d565b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119e5576119e0878484612570565b6119f4565b81856119f19190613e6e565b94505b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f023f5e053cbb2c4e0d563d51f8cafaa385fc620caa979fbcac023059ad1687d98686604051611a6a929190613ea2565b60405180910390a4600060c9541115611ac8576000670de0b6b3a764000060c95484611a969190613ecb565b611aa09190613f3c565b9050611ab884838386611ab39190613f6d565b6125a2565b611ac284826126b6565b50611ad4565b611ad38382846125a2565b5b838060010194505050505061191e565b5034811115611b1f576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050611b29611d5f565b505050565b7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed1981565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600260975403611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890613fed565b60405180910390fd5b6002609781905550565b611c357fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838261114e565b611c6b576040517f9d13e6e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60008351905060005b81811015611d5857600060cb60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878481518110611cd557611cd46139db565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611d4a57611d49868381518110611d3957611d386139db565b5b60200260200101518686846121d6565b5b818060010192505050611c77565b5050505050565b6001609781905550565b611d937fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428261114e565b611dc9576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b611dd6828261114e565b15611eaa5760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e4f6120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600082829050905060005b81811015611eff57611ef285858584818110611ed857611ed76139db565b5b9050602002016020810190611eed91906133af565b611323565b8080600101915050611eb9565b5050505050565b600082829050905060005b81811015611f5757611f4a85858584818110611f3057611f2f6139db565b5b9050602002016020810190611f4591906133af565b6127b2565b8080600101915050611f11565b5050505050565b611f6f81611f6a6120d6565b6127c0565b50565b611f7c828261114e565b61204f5760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ff46120d6565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b670de0b6b3a7640000811115612095576040517fcd4e616700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c9819055507fd4c19c993aeeb50b76da8b158f84806c9d235eff5b86f3a36f12a2e1dd4e6eac816040516120cb9190613505565b60405180910390a150565b600033905090565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060159054906101000a900460ff16612150576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121479061407f565b60405180910390fd5b6121608989898989898989612845565b612168612a92565b600089899050111561219057600160ca60006101000a81548160ff0219169083151502179055505b60008787905011156121b857600160ca60016101000a81548160ff0219169083151502179055505b60008111156121cb576121ca81612053565b5b505050505050505050565b60cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561228c576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060cb60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123189190613f6d565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123fc5760008273ffffffffffffffffffffffffffffffffffffffff1682604051612379906140d0565b60006040518083038185875af1925050503d80600081146123b6576040519150601f19603f3d011682016040523d82523d6000602084013e6123bb565b606091505b50509050806123f6576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50612428565b61242782828673ffffffffffffffffffffffffffffffffffffffff16612aeb9092919063ffffffff16565b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f78460405161249c9190613505565b60405180910390a450505050565b6124d47f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198261114e565b61250a576040517fe51cf7bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6125377fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328261114e565b61256d576040517f375a7a9200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b61259d8330838573ffffffffffffffffffffffffffffffffffffffff16612b71909392919063ffffffff16565b505050565b8060cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461262e9190613e6e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fb91b2d1906a6e6e2b45b99eb26ac141804eb2684a0df30699fdcb8b5ced1d518846040516126a99190613505565b60405180910390a4505050565b8060cb60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127429190613e6e565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f468c2f4ec7ce54b88b575db5d64710429b1880e4581f5328aaa4b3f51dadc58b836040516127a69190613505565b60405180910390a35050565b6127bc8282611f72565b5050565b6127ca828261114e565b612841576127d781612bfa565b6127e58360001c6020612c27565b6040516020016127f69291906141ee565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128389190614272565b60405180910390fd5b5050565b600060159054906101000a900460ff16612894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288b9061407f565b60405180910390fd5b61289c612e63565b6128a96000801b336127b2565b6128d37fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632306127b2565b61291d7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed197fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129677fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6327fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129b17fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0837fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612eb4565b6129dc7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198989611f06565b612a077fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328787611f06565b612a327fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838585611f06565b612a5d7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383611f06565b612a887f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed1960006127b2565b5050505050505050565b600060159054906101000a900460ff16612ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad89061407f565b60405180910390fd5b612ae9612f10565b565b612b6c8363a9059cbb60e01b8484604051602401612b0a929190613ea2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f69565b505050565b612bf4846323b872dd60e01b858585604051602401612b9293929190614294565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612f69565b50505050565b6060612c208273ffffffffffffffffffffffffffffffffffffffff16601460ff16612c27565b9050919050565b606060006002836002612c3a9190613ecb565b612c449190613e6e565b67ffffffffffffffff811115612c5d57612c5c6139ac565b5b6040519080825280601f01601f191660200182016040528015612c8f5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612cc757612cc66139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612d2b57612d2a6139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612d6b9190613ecb565b612d759190613e6e565b90505b6001811115612e15577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612db757612db66139db565b5b1a60f81b828281518110612dce57612dcd6139db565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612e0e906142cb565b9050612d78565b5060008414612e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5090614340565b60405180910390fd5b8091505092915050565b600060159054906101000a900460ff16612eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea99061407f565b60405180910390fd5b565b6000612ebf83610d6d565b90508160656000858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600060159054906101000a900460ff16612f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f569061407f565b60405180910390fd5b6001609781905550565b6000612fcb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166130309092919063ffffffff16565b905060008151111561302b5780806020019051810190612feb9190614375565b61302a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302190614414565b60405180910390fd5b5b505050565b606061303f8484600085613048565b90509392505050565b60608247101561308d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613084906144a6565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516130b69190614502565b60006040518083038185875af1925050503d80600081146130f3576040519150601f19603f3d011682016040523d82523d6000602084013e6130f8565b606091505b509150915061310987838387613115565b92505050949350505050565b6060831561317757600083510361316f5761312f856120de565b61316e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316590614565565b60405180910390fd5b5b829050613182565b613181838361318a565b5b949350505050565b60008251111561319d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d19190614272565b60405180910390fd5b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613219816131e4565b811461322457600080fd5b50565b60008135905061323681613210565b92915050565b600060208284031215613252576132516131da565b5b600061326084828501613227565b91505092915050565b60008115159050919050565b61327e81613269565b82525050565b60006020820190506132996000830184613275565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126132c4576132c361329f565b5b8235905067ffffffffffffffff8111156132e1576132e06132a4565b5b6020830191508360208202830111156132fd576132fc6132a9565b5b9250929050565b6000806020838503121561331b5761331a6131da565b5b600083013567ffffffffffffffff811115613339576133386131df565b5b613345858286016132ae565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061337c82613351565b9050919050565b61338c81613371565b811461339757600080fd5b50565b6000813590506133a981613383565b92915050565b6000602082840312156133c5576133c46131da565b5b60006133d38482850161339a565b91505092915050565b6133e581613371565b82525050565b600060208201905061340060008301846133dc565b92915050565b61340f81613269565b811461341a57600080fd5b50565b60008135905061342c81613406565b92915050565b600060208284031215613448576134476131da565b5b60006134568482850161341d565b91505092915050565b6000819050919050565b6134728161345f565b811461347d57600080fd5b50565b60008135905061348f81613469565b92915050565b6000602082840312156134ab576134aa6131da565b5b60006134b984828501613480565b91505092915050565b6134cb8161345f565b82525050565b60006020820190506134e660008301846134c2565b92915050565b6000819050919050565b6134ff816134ec565b82525050565b600060208201905061351a60008301846134f6565b92915050565b60008060408385031215613537576135366131da565b5b600061354585828601613480565b92505060206135568582860161339a565b9150509250929050565b613569816134ec565b811461357457600080fd5b50565b60008135905061358681613560565b92915050565b6000602082840312156135a2576135a16131da565b5b60006135b084828501613577565b91505092915050565b600080600080604085870312156135d3576135d26131da565b5b600085013567ffffffffffffffff8111156135f1576135f06131df565b5b6135fd878288016132ae565b9450945050602085013567ffffffffffffffff8111156136205761361f6131df565b5b61362c878288016132ae565b925092505092959194509250565b600080600060408486031215613653576136526131da565b5b600084013567ffffffffffffffff811115613671576136706131df565b5b61367d868287016132ae565b935093505060206136908682870161339a565b9150509250925092565b600080604083850312156136b1576136b06131da565b5b60006136bf8582860161339a565b92505060206136d08582860161339a565b9150509250929050565b600080600080600080600080600060a08a8c0312156136fc576136fb6131da565b5b60008a013567ffffffffffffffff81111561371a576137196131df565b5b6137268c828d016132ae565b995099505060208a013567ffffffffffffffff811115613749576137486131df565b5b6137558c828d016132ae565b975097505060408a013567ffffffffffffffff811115613778576137776131df565b5b6137848c828d016132ae565b955095505060608a013567ffffffffffffffff8111156137a7576137a66131df565b5b6137b38c828d016132ae565b935093505060806137c68c828d01613577565b9150509295985092959850929598565b600080604083850312156137ed576137ec6131da565b5b60006137fb8582860161339a565b925050602061380c85828601613577565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61384b816134ec565b82525050565b600061385d8383613842565b60208301905092915050565b6000602082019050919050565b600061388182613816565b61388b8185613821565b935061389683613832565b8060005b838110156138c75781516138ae8882613851565b97506138b983613869565b92505060018101905061389a565b5085935050505092915050565b600060208201905081810360008301526138ee8184613876565b905092915050565b60008083601f84011261390c5761390b61329f565b5b8235905067ffffffffffffffff811115613929576139286132a4565b5b602083019150836020820283011115613945576139446132a9565b5b9250929050565b600080600060408486031215613965576139646131da565b5b600084013567ffffffffffffffff811115613983576139826131df565b5b61398f868287016138f6565b935093505060206139a28682870161339a565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613a77602f83613a0a565b9150613a8282613a1b565b604082019050919050565b60006020820190508181036000830152613aa681613a6a565b9050919050565b7f696e69743a20726f756e644164647265737320616c7265616479207365740000600082015250565b6000613ae3601e83613a0a565b9150613aee82613aad565b602082019050919050565b60006020820190508181036000830152613b1281613ad6565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613b75602e83613a0a565b9150613b8082613b19565b604082019050919050565b60006020820190508181036000830152613ba481613b68565b9050919050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b6000613be7613be2613bdd84613bab565b613bc2565b613bb5565b9050919050565b613bf781613bcc565b82525050565b6000602082019050613c126000830184613bee565b92915050565b7f6572726f723a20766f74696e6720636f6e7472616374206e6f74206c696e6b6560008201527f6420746f206120726f756e640000000000000000000000000000000000000000602082015250565b6000613c74602c83613a0a565b9150613c7f82613c18565b604082019050919050565b60006020820190508181036000830152613ca381613c67565b9050919050565b7f6572726f723a2063616e20626520696e766f6b6564206f6e6c7920627920726f60008201527f756e6420636f6e74726163740000000000000000000000000000000000000000602082015250565b6000613d06602c83613a0a565b9150613d1182613caa565b604082019050919050565b60006020820190508181036000830152613d3581613cf9565b9050919050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613d6857613d67613d3c565b5b80840192508235915067ffffffffffffffff821115613d8a57613d89613d41565b5b602083019250600182023603831315613da657613da5613d46565b5b509250929050565b6000613db982613351565b9050919050565b613dc981613dae565b8114613dd457600080fd5b50565b600081359050613de681613dc0565b92915050565b600080600060608486031215613e0557613e046131da565b5b6000613e1386828701613dd7565b9350506020613e2486828701613577565b9250506040613e3586828701613dd7565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e79826134ec565b9150613e84836134ec565b9250828201905080821115613e9c57613e9b613e3f565b5b92915050565b6000604082019050613eb760008301856133dc565b613ec460208301846134f6565b9392505050565b6000613ed6826134ec565b9150613ee1836134ec565b9250828202613eef816134ec565b91508282048414831517613f0657613f05613e3f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f47826134ec565b9150613f52836134ec565b925082613f6257613f61613f0d565b5b828204905092915050565b6000613f78826134ec565b9150613f83836134ec565b9250828203905081811115613f9b57613f9a613e3f565b5b92915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000613fd7601f83613a0a565b9150613fe282613fa1565b602082019050919050565b6000602082019050818103600083015261400681613fca565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000614069602b83613a0a565b91506140748261400d565b604082019050919050565b600060208201905081810360008301526140988161405c565b9050919050565b600081905092915050565b50565b60006140ba60008361409f565b91506140c5826140aa565b600082019050919050565b60006140db826140ad565b9150819050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006141266017836140e5565b9150614131826140f0565b601782019050919050565b600081519050919050565b60005b8381101561416557808201518184015260208101905061414a565b60008484015250505050565b600061417c8261413c565b61418681856140e5565b9350614196818560208601614147565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006141d86011836140e5565b91506141e3826141a2565b601182019050919050565b60006141f982614119565b91506142058285614171565b9150614210826141cb565b915061421c8284614171565b91508190509392505050565b6000601f19601f8301169050919050565b60006142448261413c565b61424e8185613a0a565b935061425e818560208601614147565b61426781614228565b840191505092915050565b6000602082019050818103600083015261428c8184614239565b905092915050565b60006060820190506142a960008301866133dc565b6142b660208301856133dc565b6142c360408301846134f6565b949350505050565b60006142d6826134ec565b9150600082036142e9576142e8613e3f565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061432a602083613a0a565b9150614335826142f4565b602082019050919050565b600060208201905081810360008301526143598161431d565b9050919050565b60008151905061436f81613406565b92915050565b60006020828403121561438b5761438a6131da565b5b600061439984828501614360565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006143fe602a83613a0a565b9150614409826143a2565b604082019050919050565b6000602082019050818103600083015261442d816143f1565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000614490602683613a0a565b915061449b82614434565b604082019050919050565b600060208201905081810360008301526144bf81614483565b9050919050565b600081519050919050565b60006144dc826144c6565b6144e6818561409f565b93506144f6818560208601614147565b80840191505092915050565b600061450e82846144d1565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061454f601d83613a0a565b915061455a82614519565b602082019050919050565b6000602082019050818103600083015261457e81614542565b905091905056fea26469706673582212201fcf5d16c95d4a4b926e62a8773ac7a8323e139f06764cee68c39bb9f600314364736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x272 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x658E4821 GT PUSH2 0x14F JUMPI DUP1 PUSH4 0xD3E78E4D GT PUSH2 0xC1 JUMPI DUP1 PUSH4 0xF46B80CA GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xF46B80CA EQ PUSH2 0x930 JUMPI DUP1 PUSH4 0xF7888AEC EQ PUSH2 0x96D JUMPI DUP1 PUSH4 0xF85FC0AB EQ PUSH2 0x9AA JUMPI DUP1 PUSH4 0xFBFE3AB2 EQ PUSH2 0x9D5 JUMPI DUP1 PUSH4 0xFC6D4E39 EQ PUSH2 0xA12 JUMPI DUP1 PUSH4 0xFDBB219D EQ PUSH2 0xA2E JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0xD3E78E4D EQ PUSH2 0x848 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x873 JUMPI DUP1 PUSH4 0xDCDA7DAD EQ PUSH2 0x89C JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x8C7 JUMPI DUP1 PUSH4 0xF2D4120E EQ PUSH2 0x8DE JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x907 JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0xA0CF0AEA GT PUSH2 0x113 JUMPI DUP1 PUSH4 0xA0CF0AEA EQ PUSH2 0x726 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x751 JUMPI DUP1 PUSH4 0xAE876F61 EQ PUSH2 0x77C JUMPI DUP1 PUSH4 0xB278110F EQ PUSH2 0x7A5 JUMPI DUP1 PUSH4 0xBF7CB70B EQ PUSH2 0x7E2 JUMPI DUP1 PUSH4 0xC23F001F EQ PUSH2 0x80B JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x658E4821 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x6BB85F4C EQ PUSH2 0x66E JUMPI DUP1 PUSH4 0x80C78F1C EQ PUSH2 0x697 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x6C0 JUMPI DUP1 PUSH4 0x9D082C98 EQ PUSH2 0x6FD JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C GT PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x31AC9920 GT PUSH2 0x1AC JUMPI DUP1 PUSH4 0x31AC9920 EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x576 JUMPI DUP1 PUSH4 0x3B8453CA EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0x3D0950A8 EQ PUSH2 0x5C8 JUMPI DUP1 PUSH4 0x42E228EF EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x60E007A6 EQ PUSH2 0x61A JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0x24EC7590 EQ PUSH2 0x4A5 JUMPI DUP1 PUSH4 0x2620D800 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x524 JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x102D7927 GT PUSH2 0x23A JUMPI DUP1 PUSH4 0x102D7927 EQ PUSH2 0x35C JUMPI DUP1 PUSH4 0x1037D18C EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x10881166 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x155DC549 EQ PUSH2 0x3D9 JUMPI DUP1 PUSH4 0x1AC3DDEB EQ PUSH2 0x402 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x42B JUMPI PUSH2 0x272 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0x41C60EE EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x560BD96 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xB67D925 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0xD6AEF04 EQ PUSH2 0x345 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x299 SWAP2 SWAP1 PUSH2 0x323C JUMP JUMPDEST PUSH2 0xA59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xAD3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FF SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xB3C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32F PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x33EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x35A PUSH2 0xB93 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x371 PUSH2 0xBC8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A9 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xBDB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D2 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xC13 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x400 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3FB SWAP2 SWAP1 PUSH2 0x3432 JUMP JUMPDEST PUSH2 0xC4B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x424 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xCA8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x437 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x452 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44D SWAP2 SWAP1 PUSH2 0x3495 JUMP JUMPDEST PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45F SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x474 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x48F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x48A SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0xD8D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x49C SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BA PUSH2 0xDC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C7 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F2 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xDC6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50E PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51B SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x54B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0xE22 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x574 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x56F SWAP2 SWAP1 PUSH2 0x358C JUMP JUMPDEST PUSH2 0xE43 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x582 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x598 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0xE58 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x35B9 JUMP JUMPDEST PUSH2 0xEDB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5EF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0xFAD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x618 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x613 SWAP2 SWAP1 PUSH2 0x363A JUMP JUMPDEST PUSH2 0xFE5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62F PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x63C SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x66C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x667 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x1059 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x695 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x690 SWAP2 SWAP1 PUSH2 0x3432 JUMP JUMPDEST PUSH2 0x10B9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6B9 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x1116 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E2 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0x114E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F4 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x709 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x724 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71F SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x11B9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x732 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x73B PUSH2 0x11F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x748 SWAP2 SWAP1 PUSH2 0x33EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x766 PUSH2 0x11F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x773 SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x788 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x79E SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x11FD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7CC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C7 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x126F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7D9 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x809 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x804 SWAP2 SWAP1 PUSH2 0x3304 JUMP JUMPDEST PUSH2 0x12A2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x817 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x832 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x82D SWAP2 SWAP1 PUSH2 0x369A JUMP JUMPDEST PUSH2 0x12DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83F SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x854 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x85D PUSH2 0x12FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x86A SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x89A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x895 SWAP2 SWAP1 PUSH2 0x3520 JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8B1 PUSH2 0x1344 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8BE SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8DC PUSH2 0x1368 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x905 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x900 SWAP2 SWAP1 PUSH2 0x36DA JUMP JUMPDEST PUSH2 0x1439 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x929 SWAP2 SWAP1 PUSH2 0x37D6 JUMP JUMPDEST PUSH2 0x158E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x957 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x952 SWAP2 SWAP1 PUSH2 0x363A JUMP JUMPDEST PUSH2 0x15E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x964 SWAP2 SWAP1 PUSH2 0x38D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x979 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x994 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x98F SWAP2 SWAP1 PUSH2 0x369A JUMP JUMPDEST PUSH2 0x1727 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9A1 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9BF PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9CC SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9F7 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x17BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA09 SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA2C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x394C JUMP JUMPDEST PUSH2 0x17ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x1B2E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA50 SWAP2 SWAP1 PUSH2 0x34D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xACC JUMPI POP PUSH2 0xACB DUP3 PUSH2 0x1B52 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xADB PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0xAE4 CALLER PUSH2 0x1C0B JUMP JUMPDEST PUSH2 0xB30 DUP3 DUP3 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP ADDRESS CALLER PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0xB38 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB68 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0xB9C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xBC6 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 CALLER PUSH2 0x1DCC JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xCA PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xBE4 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xC0F PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC1C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xC47 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC54 CALLER PUSH2 0x1D69 JUMP JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x46D6D1A61669D91EA3801D9D57B7398C4CED2120F35CA8559749A391047A24AE DUP2 PUSH1 0x40 MLOAD PUSH2 0xC9D SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xCB0 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCCD JUMPI PUSH2 0xCCC PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCFB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xD13 JUMPI PUSH2 0xD12 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH2 0xD56 CALLER PUSH2 0x1C0B JUMP JUMPDEST PUSH2 0xD61 DUP2 ADDRESS CALLER PUSH2 0x1C6E JUMP JUMPDEST POP PUSH2 0xD6A PUSH2 0x1D5F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB9 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xDCF CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xDFA PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP2 JUMP JUMPDEST PUSH2 0xE2B DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH2 0xE34 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0xE3E DUP4 DUP4 PUSH2 0x1F72 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xE4C CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xE55 DUP2 PUSH2 0x2053 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE60 PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xECD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC4 SWAP1 PUSH2 0x3A8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xED7 DUP3 DUP3 PUSH2 0x1DCC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xEE3 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF9D JUMPI PUSH2 0xF90 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xF4E JUMPI PUSH2 0xF4D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xF63 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0xF76 JUMPI PUSH2 0xF75 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xF8B SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x1C6E JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xEEE JUMP JUMPDEST POP POP PUSH2 0xFA7 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xFB6 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0xFE1 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFED PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0x1039 DUP4 DUP4 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP3 DUP4 PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0x1041 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1061 PUSH2 0x1BBC JUMP JUMPDEST PUSH2 0x10AD DUP3 DUP3 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP CALLER CALLER PUSH2 0x1C6E JUMP JUMPDEST PUSH2 0x10B5 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x10C2 CALLER PUSH2 0x1D69 JUMP JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x618C1DFCDC0554EAA0869D571DEFB09F99AE2ADD7C190D59444DB6D0392489A7 DUP2 PUSH1 0x40 MLOAD PUSH2 0x110B SWAP2 SWAP1 PUSH2 0x3284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x111F CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x114A PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11C2 CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x11ED PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x120A PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1240 JUMPI PUSH1 0x40 MLOAD PUSH32 0x46AB053D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x126B PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x129B PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12AB CALLER PUSH2 0x1D69 JUMP JUMPDEST PUSH2 0x12D6 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0x1EAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xCB PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP2 JUMP JUMPDEST PUSH2 0x132C DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH2 0x1335 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x133F DUP4 DUP4 PUSH2 0x1DCC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x13F7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13EE SWAP1 PUSH2 0x3AF9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x146C JUMPI POP PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND LT JUMPDEST DUP1 PUSH2 0x149B JUMPI POP PUSH2 0x147B ADDRESS PUSH2 0x20DE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x149A JUMPI POP PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ JUMPDEST JUMPDEST PUSH2 0x14DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14D1 SWAP1 PUSH2 0x3B8B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x1518 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x15 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1529 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x2101 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1582 JUMPI PUSH1 0x0 DUP1 PUSH1 0x15 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x1579 SWAP2 SWAP1 PUSH2 0x3BFD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1596 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 DUP2 SUB PUSH2 0x15D0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15DC DUP3 CALLER CALLER DUP5 PUSH2 0x21D6 JUMP JUMPDEST PUSH2 0x15E4 PUSH2 0x1D5F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 DUP5 SWAP1 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x160E JUMPI PUSH2 0x160D PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x163C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x171A JUMPI PUSH1 0xCB PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x169E JUMPI PUSH2 0x169D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x16B3 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1701 JUMPI PUSH2 0x1700 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1642 JUMP JUMPDEST POP DUP1 SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCB PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17E6 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 PUSH2 0x114E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17F5 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1884 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x187B SWAP1 PUSH2 0x3C8A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1909 SWAP1 PUSH2 0x3D1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP4 SWAP1 POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AE4 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x193E JUMPI PUSH2 0x193D PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1950 SWAP2 SWAP1 PUSH2 0x3D4B JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x195D SWAP2 SWAP1 PUSH2 0x3DEC JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1982 JUMPI PUSH2 0x1981 DUP4 PUSH2 0x24AA JUMP JUMPDEST JUMPDEST PUSH1 0xCA PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x19A1 JUMPI PUSH2 0x19A0 DUP2 PUSH2 0x250D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x19E5 JUMPI PUSH2 0x19E0 DUP8 DUP5 DUP5 PUSH2 0x2570 JUMP JUMPDEST PUSH2 0x19F4 JUMP JUMPDEST DUP2 DUP6 PUSH2 0x19F1 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP5 POP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x23F5E053CBB2C4E0D563D51F8CAFAA385FC620CAA979FBCAC023059AD1687D9 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1A6A SWAP3 SWAP2 SWAP1 PUSH2 0x3EA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x0 PUSH1 0xC9 SLOAD GT ISZERO PUSH2 0x1AC8 JUMPI PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 PUSH1 0xC9 SLOAD DUP5 PUSH2 0x1A96 SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x1AA0 SWAP2 SWAP1 PUSH2 0x3F3C JUMP JUMPDEST SWAP1 POP PUSH2 0x1AB8 DUP5 DUP4 DUP4 DUP7 PUSH2 0x1AB3 SWAP2 SWAP1 PUSH2 0x3F6D JUMP JUMPDEST PUSH2 0x25A2 JUMP JUMPDEST PUSH2 0x1AC2 DUP5 DUP3 PUSH2 0x26B6 JUMP JUMPDEST POP PUSH2 0x1AD4 JUMP JUMPDEST PUSH2 0x1AD3 DUP4 DUP3 DUP5 PUSH2 0x25A2 JUMP JUMPDEST JUMPDEST DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP POP POP POP POP PUSH2 0x191E JUMP JUMPDEST POP CALLVALUE DUP2 GT ISZERO PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH2 0x1B29 PUSH2 0x1D5F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x97 SLOAD SUB PUSH2 0x1C01 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BF8 SWAP1 PUSH2 0x3FED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x1C35 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1C6B JUMPI PUSH1 0x40 MLOAD PUSH32 0x9D13E6E300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1D58 JUMPI PUSH1 0x0 PUSH1 0xCB PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1CD5 JUMPI PUSH2 0x1CD4 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1D4A JUMPI PUSH2 0x1D49 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1D39 JUMPI PUSH2 0x1D38 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP7 DUP5 PUSH2 0x21D6 JUMP JUMPDEST JUMPDEST DUP2 DUP1 PUSH1 0x1 ADD SWAP3 POP POP POP PUSH2 0x1C77 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x1D93 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x1DC9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x7BFA4B9F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1DD6 DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST ISZERO PUSH2 0x1EAA JUMPI PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1E4F PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1EFF JUMPI PUSH2 0x1EF2 DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x1ED8 JUMPI PUSH2 0x1ED7 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1EED SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x1323 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1EB9 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F57 JUMPI PUSH2 0x1F4A DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x1F30 JUMPI PUSH2 0x1F2F PUSH2 0x39DB JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1F45 SWAP2 SWAP1 PUSH2 0x33AF JUMP JUMPDEST PUSH2 0x27B2 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1F11 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F6F DUP2 PUSH2 0x1F6A PUSH2 0x20D6 JUMP JUMPDEST PUSH2 0x27C0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1F7C DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x204F JUMPI PUSH1 0x1 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1FF4 PUSH2 0x20D6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCD4E616700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 DUP2 SWAP1 SSTORE POP PUSH32 0xD4C19C993AEEB50B76DA8B158F84806C9D235EFF5B86F3A36F12A2E1DD4E6EAC DUP2 PUSH1 0x40 MLOAD PUSH2 0x20CB SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2150 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2147 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2160 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x2845 JUMP JUMPDEST PUSH2 0x2168 PUSH2 0x2A92 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP10 SWAP1 POP GT ISZERO PUSH2 0x2190 JUMPI PUSH1 0x1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 DUP8 DUP8 SWAP1 POP GT ISZERO PUSH2 0x21B8 JUMPI PUSH1 0x1 PUSH1 0xCA PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x21CB JUMPI PUSH2 0x21CA DUP2 PUSH2 0x2053 JUMP JUMPDEST JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xCB PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x228C JUMPI PUSH1 0x40 MLOAD PUSH32 0xF4D678B800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2318 SWAP2 SWAP1 PUSH2 0x3F6D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x23FC JUMPI PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x2379 SWAP1 PUSH2 0x40D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x23B6 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x23BB JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x23F6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x90B8EC1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0x2428 JUMP JUMPDEST PUSH2 0x2427 DUP3 DUP3 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AEB SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3115D1449A7B732C986CBA18244E897A450F61E1BB8D589CD2E69E6C8924F9F7 DUP5 PUSH1 0x40 MLOAD PUSH2 0x249C SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH2 0x24D4 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x250A JUMPI PUSH1 0x40 MLOAD PUSH32 0xE51CF7BF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2537 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x256D JUMPI PUSH1 0x40 MLOAD PUSH32 0x375A7A9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x259D DUP4 ADDRESS DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2B71 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x262E SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB91B2D1906A6E6E2B45B99EB26AC141804EB2684A0DF30699FDCB8B5CED1D518 DUP5 PUSH1 0x40 MLOAD PUSH2 0x26A9 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST DUP1 PUSH1 0xCB PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2742 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x468C2F4EC7CE54B88B575DB5D64710429B1880E4581F5328AAA4B3F51DADC58B DUP4 PUSH1 0x40 MLOAD PUSH2 0x27A6 SWAP2 SWAP1 PUSH2 0x3505 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x27BC DUP3 DUP3 PUSH2 0x1F72 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x27CA DUP3 DUP3 PUSH2 0x114E JUMP JUMPDEST PUSH2 0x2841 JUMPI PUSH2 0x27D7 DUP2 PUSH2 0x2BFA JUMP JUMPDEST PUSH2 0x27E5 DUP4 PUSH1 0x0 SHR PUSH1 0x20 PUSH2 0x2C27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x27F6 SWAP3 SWAP2 SWAP1 PUSH2 0x41EE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2838 SWAP2 SWAP1 PUSH2 0x4272 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2894 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x288B SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x289C PUSH2 0x2E63 JUMP JUMPDEST PUSH2 0x28A9 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x27B2 JUMP JUMPDEST PUSH2 0x28D3 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 ADDRESS PUSH2 0x27B2 JUMP JUMPDEST PUSH2 0x291D PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x2967 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x29B1 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 PUSH2 0x2EB4 JUMP JUMPDEST PUSH2 0x29DC PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP10 DUP10 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A07 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP8 DUP8 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A32 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP6 DUP6 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A5D PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0x1F06 JUMP JUMPDEST PUSH2 0x2A88 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 PUSH1 0x0 PUSH2 0x27B2 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2AE1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2AD8 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2AE9 PUSH2 0x2F10 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x2B6C DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2B0A SWAP3 SWAP2 SWAP1 PUSH2 0x3EA2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2F69 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x2BF4 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2B92 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2F69 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2C20 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x14 PUSH1 0xFF AND PUSH2 0x2C27 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x2 DUP4 PUSH1 0x2 PUSH2 0x2C3A SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x2C44 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5D JUMPI PUSH2 0x2C5C PUSH2 0x39AC JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2C8F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2CC7 JUMPI PUSH2 0x2CC6 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2D2B JUMPI PUSH2 0x2D2A PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH1 0x1 DUP5 PUSH1 0x2 PUSH2 0x2D6B SWAP2 SWAP1 PUSH2 0x3ECB JUMP JUMPDEST PUSH2 0x2D75 SWAP2 SWAP1 PUSH2 0x3E6E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2E15 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xF DUP7 AND PUSH1 0x10 DUP2 LT PUSH2 0x2DB7 JUMPI PUSH2 0x2DB6 PUSH2 0x39DB JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2DCE JUMPI PUSH2 0x2DCD PUSH2 0x39DB JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 DUP6 SWAP1 SHR SWAP5 POP DUP1 PUSH2 0x2E0E SWAP1 PUSH2 0x42CB JUMP JUMPDEST SWAP1 POP PUSH2 0x2D78 JUMP JUMPDEST POP PUSH1 0x0 DUP5 EQ PUSH2 0x2E59 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E50 SWAP1 PUSH2 0x4340 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2EB2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EA9 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EBF DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP2 DUP2 DUP5 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x15 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2F5F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F56 SWAP1 PUSH2 0x407F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x97 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FCB DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x3030 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x302B JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2FEB SWAP2 SWAP1 PUSH2 0x4375 JUMP JUMPDEST PUSH2 0x302A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3021 SWAP1 PUSH2 0x4414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x303F DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x3048 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x308D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3084 SWAP1 PUSH2 0x44A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x30B6 SWAP2 SWAP1 PUSH2 0x4502 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x30F3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x30F8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3109 DUP8 DUP4 DUP4 DUP8 PUSH2 0x3115 JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3177 JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x316F JUMPI PUSH2 0x312F DUP6 PUSH2 0x20DE JUMP JUMPDEST PUSH2 0x316E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3165 SWAP1 PUSH2 0x4565 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x3182 JUMP JUMPDEST PUSH2 0x3181 DUP4 DUP4 PUSH2 0x318A JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x319D JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31D1 SWAP2 SWAP1 PUSH2 0x4272 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3219 DUP2 PUSH2 0x31E4 JUMP JUMPDEST DUP2 EQ PUSH2 0x3224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3236 DUP2 PUSH2 0x3210 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3252 JUMPI PUSH2 0x3251 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3260 DUP5 DUP3 DUP6 ADD PUSH2 0x3227 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x327E DUP2 PUSH2 0x3269 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3299 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3275 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x32C4 JUMPI PUSH2 0x32C3 PUSH2 0x329F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x32E1 JUMPI PUSH2 0x32E0 PUSH2 0x32A4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x32FD JUMPI PUSH2 0x32FC PUSH2 0x32A9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x331B JUMPI PUSH2 0x331A PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3339 JUMPI PUSH2 0x3338 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3345 DUP6 DUP3 DUP7 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x337C DUP3 PUSH2 0x3351 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x338C DUP2 PUSH2 0x3371 JUMP JUMPDEST DUP2 EQ PUSH2 0x3397 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x33A9 DUP2 PUSH2 0x3383 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33C5 JUMPI PUSH2 0x33C4 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x33D3 DUP5 DUP3 DUP6 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x33E5 DUP2 PUSH2 0x3371 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3400 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x33DC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x340F DUP2 PUSH2 0x3269 JUMP JUMPDEST DUP2 EQ PUSH2 0x341A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x342C DUP2 PUSH2 0x3406 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3448 JUMPI PUSH2 0x3447 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3456 DUP5 DUP3 DUP6 ADD PUSH2 0x341D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3472 DUP2 PUSH2 0x345F JUMP JUMPDEST DUP2 EQ PUSH2 0x347D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x348F DUP2 PUSH2 0x3469 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x34AB JUMPI PUSH2 0x34AA PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x34B9 DUP5 DUP3 DUP6 ADD PUSH2 0x3480 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x34CB DUP2 PUSH2 0x345F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x34E6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34C2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34FF DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x351A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3537 JUMPI PUSH2 0x3536 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3545 DUP6 DUP3 DUP7 ADD PUSH2 0x3480 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3556 DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x3569 DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP2 EQ PUSH2 0x3574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3586 DUP2 PUSH2 0x3560 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35A2 JUMPI PUSH2 0x35A1 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x35B0 DUP5 DUP3 DUP6 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x35D3 JUMPI PUSH2 0x35D2 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35F1 JUMPI PUSH2 0x35F0 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x35FD DUP8 DUP3 DUP9 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3620 JUMPI PUSH2 0x361F PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x362C DUP8 DUP3 DUP9 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3653 JUMPI PUSH2 0x3652 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3671 JUMPI PUSH2 0x3670 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x367D DUP7 DUP3 DUP8 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0x3690 DUP7 DUP3 DUP8 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x36B1 JUMPI PUSH2 0x36B0 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x36BF DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x36D0 DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x36FC JUMPI PUSH2 0x36FB PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x371A JUMPI PUSH2 0x3719 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3726 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP10 POP SWAP10 POP POP PUSH1 0x20 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3749 JUMPI PUSH2 0x3748 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3755 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP8 POP SWAP8 POP POP PUSH1 0x40 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3778 JUMPI PUSH2 0x3777 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x3784 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x60 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37A7 JUMPI PUSH2 0x37A6 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x37B3 DUP13 DUP3 DUP14 ADD PUSH2 0x32AE JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x80 PUSH2 0x37C6 DUP13 DUP3 DUP14 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x37ED JUMPI PUSH2 0x37EC PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x37FB DUP6 DUP3 DUP7 ADD PUSH2 0x339A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x380C DUP6 DUP3 DUP7 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x384B DUP2 PUSH2 0x34EC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x385D DUP4 DUP4 PUSH2 0x3842 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3881 DUP3 PUSH2 0x3816 JUMP JUMPDEST PUSH2 0x388B DUP2 DUP6 PUSH2 0x3821 JUMP JUMPDEST SWAP4 POP PUSH2 0x3896 DUP4 PUSH2 0x3832 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x38C7 JUMPI DUP2 MLOAD PUSH2 0x38AE DUP9 DUP3 PUSH2 0x3851 JUMP JUMPDEST SWAP8 POP PUSH2 0x38B9 DUP4 PUSH2 0x3869 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x389A JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x38EE DUP2 DUP5 PUSH2 0x3876 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x390C JUMPI PUSH2 0x390B PUSH2 0x329F JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3929 JUMPI PUSH2 0x3928 PUSH2 0x32A4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3945 JUMPI PUSH2 0x3944 PUSH2 0x32A9 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3965 JUMPI PUSH2 0x3964 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3983 JUMPI PUSH2 0x3982 PUSH2 0x31DF JUMP JUMPDEST JUMPDEST PUSH2 0x398F DUP7 DUP3 DUP8 ADD PUSH2 0x38F6 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0x39A2 DUP7 DUP3 DUP8 ADD PUSH2 0x339A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A77 PUSH1 0x2F DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3A82 DUP3 PUSH2 0x3A1B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3AA6 DUP2 PUSH2 0x3A6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x696E69743A20726F756E644164647265737320616C7265616479207365740000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AE3 PUSH1 0x1E DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3AEE DUP3 PUSH2 0x3AAD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3B12 DUP2 PUSH2 0x3AD6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B75 PUSH1 0x2E DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3B80 DUP3 PUSH2 0x3B19 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3BA4 DUP2 PUSH2 0x3B68 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BE7 PUSH2 0x3BE2 PUSH2 0x3BDD DUP5 PUSH2 0x3BAB JUMP JUMPDEST PUSH2 0x3BC2 JUMP JUMPDEST PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3BF7 DUP2 PUSH2 0x3BCC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3C12 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3BEE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6572726F723A20766F74696E6720636F6E7472616374206E6F74206C696E6B65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6420746F206120726F756E640000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C74 PUSH1 0x2C DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3C7F DUP3 PUSH2 0x3C18 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3CA3 DUP2 PUSH2 0x3C67 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6572726F723A2063616E20626520696E766F6B6564206F6E6C7920627920726F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x756E6420636F6E74726163740000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D06 PUSH1 0x2C DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3D11 DUP3 PUSH2 0x3CAA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3D35 DUP2 PUSH2 0x3CF9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x3D68 JUMPI PUSH2 0x3D67 PUSH2 0x3D3C JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3D8A JUMPI PUSH2 0x3D89 PUSH2 0x3D41 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x3DA6 JUMPI PUSH2 0x3DA5 PUSH2 0x3D46 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DB9 DUP3 PUSH2 0x3351 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DC9 DUP2 PUSH2 0x3DAE JUMP JUMPDEST DUP2 EQ PUSH2 0x3DD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3DE6 DUP2 PUSH2 0x3DC0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3E05 JUMPI PUSH2 0x3E04 PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3E13 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3E24 DUP7 DUP3 DUP8 ADD PUSH2 0x3577 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3E35 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E79 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3E84 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x3E9C JUMPI PUSH2 0x3E9B PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3EB7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x3EC4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3ED6 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3EE1 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x3EEF DUP2 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3F06 JUMPI PUSH2 0x3F05 PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F47 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3F52 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3F62 JUMPI PUSH2 0x3F61 PUSH2 0x3F0D JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F78 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH2 0x3F83 DUP4 PUSH2 0x34EC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3F9B JUMPI PUSH2 0x3F9A PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FD7 PUSH1 0x1F DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x3FE2 DUP3 PUSH2 0x3FA1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4006 DUP2 PUSH2 0x3FCA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4069 PUSH1 0x2B DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4074 DUP3 PUSH2 0x400D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4098 DUP2 PUSH2 0x405C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40BA PUSH1 0x0 DUP4 PUSH2 0x409F JUMP JUMPDEST SWAP2 POP PUSH2 0x40C5 DUP3 PUSH2 0x40AA JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40DB DUP3 PUSH2 0x40AD JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4126 PUSH1 0x17 DUP4 PUSH2 0x40E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x4131 DUP3 PUSH2 0x40F0 JUMP JUMPDEST PUSH1 0x17 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4165 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x414A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417C DUP3 PUSH2 0x413C JUMP JUMPDEST PUSH2 0x4186 DUP2 DUP6 PUSH2 0x40E5 JUMP JUMPDEST SWAP4 POP PUSH2 0x4196 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41D8 PUSH1 0x11 DUP4 PUSH2 0x40E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x41E3 DUP3 PUSH2 0x41A2 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41F9 DUP3 PUSH2 0x4119 JUMP JUMPDEST SWAP2 POP PUSH2 0x4205 DUP3 DUP6 PUSH2 0x4171 JUMP JUMPDEST SWAP2 POP PUSH2 0x4210 DUP3 PUSH2 0x41CB JUMP JUMPDEST SWAP2 POP PUSH2 0x421C DUP3 DUP5 PUSH2 0x4171 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4244 DUP3 PUSH2 0x413C JUMP JUMPDEST PUSH2 0x424E DUP2 DUP6 PUSH2 0x3A0A JUMP JUMPDEST SWAP4 POP PUSH2 0x425E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST PUSH2 0x4267 DUP2 PUSH2 0x4228 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x428C DUP2 DUP5 PUSH2 0x4239 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x42A9 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x42B6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x33DC JUMP JUMPDEST PUSH2 0x42C3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x34F6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D6 DUP3 PUSH2 0x34EC JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 SUB PUSH2 0x42E9 JUMPI PUSH2 0x42E8 PUSH2 0x3E3F JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x432A PUSH1 0x20 DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4335 DUP3 PUSH2 0x42F4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4359 DUP2 PUSH2 0x431D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x436F DUP2 PUSH2 0x3406 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x438B JUMPI PUSH2 0x438A PUSH2 0x31DA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4399 DUP5 DUP3 DUP6 ADD PUSH2 0x4360 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43FE PUSH1 0x2A DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x4409 DUP3 PUSH2 0x43A2 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x442D DUP2 PUSH2 0x43F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4490 PUSH1 0x26 DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x449B DUP3 PUSH2 0x4434 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x44BF DUP2 PUSH2 0x4483 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x44DC DUP3 PUSH2 0x44C6 JUMP JUMPDEST PUSH2 0x44E6 DUP2 DUP6 PUSH2 0x409F JUMP JUMPDEST SWAP4 POP PUSH2 0x44F6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4147 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x450E DUP3 DUP5 PUSH2 0x44D1 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x454F PUSH1 0x1D DUP4 PUSH2 0x3A0A JUMP JUMPDEST SWAP2 POP PUSH2 0x455A DUP3 PUSH2 0x4519 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x457E DUP2 PUSH2 0x4542 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1F 0xCF 0x5D AND 0xC9 0x5D 0x4A 0x4B SWAP3 PUSH15 0x62A8773AC7A8323E139F06764CEE68 0xC3 SWAP12 0xB9 0xF6 STOP BALANCE NUMBER PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "1887:13662:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:213:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8969:177:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5484:125:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;460:27:15;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3931:112:14;;;;;;;;;;;;;:::i;:::-;;2242:38:13;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6536:169:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4829:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12452:237:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8562:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4708:129:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4225:112:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2174:21:13;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7892:159:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;615:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5133:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11845:114:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6242:214:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8032:368:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3393:130:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7626:193:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2202:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7299:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12900:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6185:163:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3203:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7562:153:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;781:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2324:49:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3686:183:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8252:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5141:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2336:63:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;545:64:14;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5558:147:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;463:76:14;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;998:146:15;;;;;;;;;;;;;:::i;:::-;;2697:412:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6962:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11280:418;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10922:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2078:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6919:141:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3990:1516:13;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;389:68:14;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2903:213:0;2988:4;3026:43;3011:58;;;:11;:58;;;;:98;;;;3073:36;3097:11;3073:23;:36::i;:::-;3011:98;3004:105;;2903:213;;;:::o;8969:177:13:-;2505:21:3;:19;:21::i;:::-;9053:29:13::1;9071:10;9053:17;:29::i;:::-;9092:47;9105:6;;9092:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9121:4;9128:10;9092:12;:47::i;:::-;2547:20:3::0;:18;:20::i;:::-;8969:177:13;;:::o;5484:125:14:-;5548:4;5571:31;430:27;5595:6;5571:7;:31::i;:::-;5564:38;;5484:125;;;:::o;460:27:15:-;;;;;;;;;;;;:::o;3931:112:14:-;3973:23;3985:10;3973:11;:23::i;:::-;4006:30;647:18;4025:10;4006:11;:30::i;:::-;3931:112::o;2242:38:13:-;;;;;;;;;;;;;:::o;6536:169:14:-;6620:23;6632:10;6620:11;:23::i;:::-;6653:45;508:31;6686:11;;6653:12;:45::i;:::-;6536:169;;:::o;4829:137::-;4893:23;4905:10;4893:11;:23::i;:::-;4926:33;430:27;4952:6;;4926:9;:33::i;:::-;4829:137;;:::o;12452:237:13:-;12536:23;12548:10;12536:11;:23::i;:::-;12594;12569:22;;:48;;;;;;;;;;;;;;;;;;12632:50;12658:23;12632:50;;;;;;:::i;:::-;;;;;;;;12452:237;:::o;8562:239::-;2505:21:3;:19;:21::i;:::-;8631:22:13::1;8670:1;8656:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8631:41;;8693:6;8682:5;8688:1;8682:8;;;;;;;;:::i;:::-;;;;;;;:17;;;;;;;;;::::0;::::1;8709:29;8727:10;8709:17;:29::i;:::-;8748:46;8761:5;8776:4;8783:10;8748:12;:46::i;:::-;8621:180;2547:20:3::0;:18;:20::i;:::-;8562:239:13;:::o;4708:129:0:-;4782:7;4808:6;:12;4815:4;4808:12;;;;;;;;;;;:22;;;4801:29;;4708:129;;;:::o;4225:112:14:-;4283:4;4306:24;647:18;4321:8;4306:7;:24::i;:::-;4299:31;;4225:112;;;:::o;2174:21:13:-;;;;:::o;7892:159:14:-;7971:23;7983:10;7971:11;:23::i;:::-;8004:40;584:25;8031:12;;8004;:40::i;:::-;7892:159;;:::o;615:50::-;647:18;615:50;:::o;5133:145:0:-;5216:18;5229:4;5216:12;:18::i;:::-;2802:16;2813:4;2802:10;:16::i;:::-;5246:25:::1;5257:4;5263:7;5246:10;:25::i;:::-;5133:145:::0;;;:::o;11845:114:13:-;11900:23;11912:10;11900:11;:23::i;:::-;11933:19;11944:7;11933:10;:19::i;:::-;11845:114;:::o;6242:214:0:-;6348:12;:10;:12::i;:::-;6337:23;;:7;:23;;;6329:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;6423:26;6435:4;6441:7;6423:11;:26::i;:::-;6242:214;;:::o;8032:368:13:-;2505:21:3;:19;:21::i;:::-;8203:14:13::1;8220:3;;:10;;8203:27;;8245:9;8240:154;8264:6;8260:1;:10;8240:154;;;8288:36;8301:6;;8288:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8309:3;;8313:1;8309:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8317:3;;8321:1;8317:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8288:12;:36::i;:::-;8366:3;;;;;;;8240:154;;;;8151:249;2547:20:3::0;:18;:20::i;:::-;8032:368:13;;;;:::o;3393:130:14:-;3458:23;3470:10;3458:11;:23::i;:::-;3491:25;647:18;3508:7;;3491:9;:25::i;:::-;3393:130;;:::o;7626:193:13:-;2505:21:3;:19;:21::i;:::-;7782:30:13::1;7795:6;;7782:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7803:3;7808;7782:12;:30::i;:::-;2547:20:3::0;:18;:20::i;:::-;7626:193:13;;;:::o;2202:34::-;;;;;;;;;;;;;:::o;7299:132::-;2505:21:3;:19;:21::i;:::-;7380:44:13::1;7393:6;;7380:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7401:10;7413;7380:12;:44::i;:::-;2547:20:3::0;:18;:20::i;:::-;7299:132:13;;:::o;12900:275::-;13006:23;13018:10;13006:11;:23::i;:::-;13068:27;13039:26;;:56;;;;;;;;;;;;;;;;;;13110:58;13140:27;13110:58;;;;;;:::i;:::-;;;;;;;;12900:275;:::o;6185:163:14:-;6266:23;6278:10;6266:11;:23::i;:::-;6299:42;508:31;6329:11;;6299:9;:42::i;:::-;6185:163;;:::o;3203:145:0:-;3289:4;3312:6;:12;3319:4;3312:12;;;;;;;;;;;:20;;:29;3333:7;3312:29;;;;;;;;;;;;;;;;;;;;;;;;;3305:36;;3203:145;;;;:::o;7562:153:14:-;7638:23;7650:10;7638:11;:23::i;:::-;7671:37;584:25;7695:12;;7671:9;:37::i;:::-;7562:153;;:::o;781:43::-;822:1;781:43;:::o;2324:49:0:-;2369:4;2324:49;;;:::o;3686:183:14:-;3759:39;2369:4:0;3767:18:14;;3787:10;3759:7;:39::i;:::-;3754:70;;3807:17;;;;;;;;;;;;;;3754:70;3834:28;647:18;3854:7;;3834:12;:28::i;:::-;3686:183;;:::o;8252:127::-;8317:4;8340:32;584:25;8362:9;8340:7;:32::i;:::-;8333:39;;8252:127;;;:::o;5141:143::-;5208:23;5220:10;5208:11;:23::i;:::-;5241:36;430:27;5270:6;;5241:12;:36::i;:::-;5141:143;;:::o;2336:63:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;545:64:14:-;584:25;545:64;:::o;5558:147:0:-;5642:18;5655:4;5642:12;:18::i;:::-;2802:16;2813:4;2802:10;:16::i;:::-;5672:26:::1;5684:4;5690:7;5672:11;:26::i;:::-;5558:147:::0;;;:::o;463:76:14:-;508:31;463:76;:::o;998:146:15:-;1065:1;1041:26;;:12;;;;;;;;;;:26;;;1033:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1127:10;1112:12;;:25;;;;;;;;;;;;;;;;;;998:146::o;2697:412:13:-;3268:19:2;3291:13;;;;;;;;;;;3290:14;3268:36;;3336:14;:34;;;;;3369:1;3354:12;;;;;;;;;;;:16;;;3336:34;3335:108;;;;3377:44;3415:4;3377:29;:44::i;:::-;3376:45;:66;;;;;3441:1;3425:12;;;;;;;;;;;:17;;;3376:66;3335:108;3314:201;;;;;;;;;;;;:::i;:::-;;;;;;;;;3540:1;3525:12;;:16;;;;;;;;;;;;;;;;;;3555:14;3551:65;;;3601:4;3585:13;;:20;;;;;;;;;;;;;;;;;;3551:65;2943:159:13::1;2979:14;;3007:17;;3038:12;;3064:7;;3085;2943:22;:159::i;:::-;3640:14:2::0;3636:99;;;3686:5;3670:13;;:21;;;;;;;;;;;;;;;;;;3710:14;3722:1;3710:14;;;;;;:::i;:::-;;;;;;;;3636:99;3258:483;2697:412:13;;;;;;;;;:::o;6962:190::-;2505:21:3;:19;:21::i;:::-;7060:1:13::1;7049:7;:12:::0;7045:40:::1;;7070:15;;;;;;;;;;;;;;7045:40;7095:50;7105:6;7113:10;7125;7137:7;7095:9;:50::i;:::-;2547:20:3::0;:18;:20::i;:::-;6962:190:13;;:::o;11280:418::-;11387:16;11415:14;11432:6;;:13;;11415:30;;11455:23;11495:6;11481:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11455:47;;11518:9;11513:156;11537:6;11533:1;:10;11513:156;;;11573:8;:15;11582:5;11573:15;;;;;;;;;;;;;;;:26;11589:6;;11596:1;11589:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11573:26;;;;;;;;;;;;;;;;11561:6;11568:1;11561:9;;;;;;;;:::i;:::-;;;;;;;:38;;;;;11641:3;;;;;;;11513:156;;;;11685:6;11678:13;;;;11280:418;;;;;:::o;10922:151::-;11017:7;11043:8;:15;11052:5;11043:15;;;;;;;;;;;;;;;:23;11059:6;11043:23;;;;;;;;;;;;;;;;11036:30;;10922:151;;;;:::o;2078:38::-;2112:4;2078:38;:::o;6919:141:14:-;6991:4;7014:39;508:31;7042:10;7014:7;:39::i;:::-;7007:46;;6919:141;;;:::o;3990:1516:13:-;2505:21:3;:19;:21::i;:::-;651:1:15::1;627:26;;:12;::::0;::::1;;;;;;;;:26;;::::0;619:83:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;734:12;::::0;::::1;;;;;;;;720:26;;:10;:26;;;712:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;4212:14:13::2;4229:12;;:19;;4212:36;;4258:16;4294:9:::0;4289:1128:::2;4313:6;4309:1;:10;4289:1128;;;4338:14;4354:15:::0;4371:21:::2;4424:12;;4437:1;4424:15;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;4396:73;;;;;;;:::i;:::-;4337:132;;;;;;4488:22;;;;;;;;;;;4484:47;;;4512:19;4524:6;4512:11;:19::i;:::-;4484:47;4549:26;;;;;;;;;;;4545:103;;;4595:38;4619:13;4595:23;:38::i;:::-;4545:103;822:1:14;4666:16:13;;:6;:16;;;4662:153;;4702:40;4712:12;4726:6;4734:7;4702:9;:40::i;:::-;4662:153;;;4793:7;4781:19;;;;;:::i;:::-;;;4662:153;5012:10;4879:157;;4981:13;4879:157;;4951:12;4879:157;;;4902:6;4926:7;4879:157;;;;;;;:::i;:::-;;;;;;;;5064:1;5055:6;;:10;5051:296;;;5085:11;2112:4;5110:6;;5100:7;:16;;;;:::i;:::-;5099:28;;;;:::i;:::-;5085:42;;5146:55;5164:6;5172:13;5197:3;5187:7;:13;;;;:::i;:::-;5146:17;:55::i;:::-;5219:25;5232:6;5240:3;5219:12;:25::i;:::-;5067:192;5051:296;;;5283:49;5301:6;5309:13;5324:7;5283:17;:49::i;:::-;5051:296;5389:3;;;;;;;4323:1094;;;4289:1128;;;;5442:9;5431:8;:20;5427:73;;;5474:15;;;;;;;;;;;;;;5427:73;4134:1372;;2547:20:3::0;:18;:20::i;:::-;3990:1516:13;;;:::o;389:68:14:-;430:27;389:68;:::o;1060:166:10:-;1145:4;1183:36;1168:51;;;:11;:51;;;;1161:58;;1060:166;;;:::o;2580:287:3:-;1830:1;2712:7;;:19;2704:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1830:1;2842:7;:18;;;;2580:287::o;7250:139:14:-;7325:32;584:25;7347:9;7325:7;:32::i;:::-;7320:62;;7366:16;;;;;;;;;;;;;;7320:62;7250:139;:::o;9420:436:13:-;9544:14;9561:6;:13;9544:30;;9590:9;9585:265;9609:6;9605:1;:10;9585:265;;;9633:14;9650:8;:15;9659:5;9650:15;;;;;;;;;;;;;;;:26;9666:6;9673:1;9666:9;;;;;;;;:::i;:::-;;;;;;;;9650:26;;;;;;;;;;;;;;;;9633:43;;9704:1;9695:6;:10;9691:89;;;9725:40;9735:6;9742:1;9735:9;;;;;;;;:::i;:::-;;;;;;;;9746:5;9753:3;9758:6;9725:9;:40::i;:::-;9691:89;9822:3;;;;;;;9619:231;9585:265;;;;9534:322;9420:436;;;:::o;2873:209:3:-;1787:1;3053:7;:22;;;;2873:209::o;3121:118:14:-;3189:24;647:18;3204:8;3189:7;:24::i;:::-;3184:48;;3222:10;;;;;;;;;;;;;;3184:48;3121:118;:::o;8195:234:0:-;8278:22;8286:4;8292:7;8278;:22::i;:::-;8274:149;;;8348:5;8316:6;:12;8323:4;8316:12;;;;;;;;;;;:20;;:29;8337:7;8316:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;8399:12;:10;:12::i;:::-;8372:40;;8390:7;8372:40;;8384:4;8372:40;;;;;;;;;;8274:149;8195:234;;:::o;2713:286:14:-;2800:14;2817:10;;:17;;2800:34;;2849:9;2844:149;2868:6;2864:1;:10;2844:149;;;2891:32;2902:5;2909:10;;2920:1;2909:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2891:10;:32::i;:::-;2965:3;;;;;;;2844:149;;;;2790:209;2713:286;;;:::o;2215:283::-;2299:14;2316:10;;:17;;2299:34;;2348:9;2343:149;2367:6;2363:1;:10;2343:149;;;2390:32;2401:5;2408:10;;2419:1;2408:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2390:10;:32::i;:::-;2464:3;;;;;;;2343:149;;;;2289:209;2215:283;;;:::o;3642:103:0:-;3708:30;3719:4;3725:12;:10;:12::i;:::-;3708:10;:30::i;:::-;3642:103;:::o;7791:233::-;7874:22;7882:4;7888:7;7874;:22::i;:::-;7869:149;;7944:4;7912:6;:12;7919:4;7912:12;;;;;;;;;;;:20;;:29;7933:7;7912:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7994:12;:10;:12::i;:::-;7967:40;;7985:7;7967:40;;7979:4;7967:40;;;;;;;;;;7869:149;7791:233;;:::o;12093:164:13:-;2112:4;12153:7;:17;12149:42;;;12179:12;;;;;;;;;;;;;;12149:42;12210:7;12201:6;:16;;;;12232:18;12242:7;12232:18;;;;;;:::i;:::-;;;;;;;;12093:164;:::o;850:96:8:-;903:7;929:10;922:17;;850:96;:::o;1186:320:7:-;1246:4;1498:1;1476:7;:19;;;:23;1469:30;;1186:320;;;:::o;3115:716:13:-;5363:13:2;;;;;;;;;;;5355:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;3380:143:13::1;3421:14;;3449:17;;3480:12;;3506:7;;3380:27;:143::i;:::-;3533:24;:22;:24::i;:::-;3596:1;3572:14;;:21;;:25;3568:85;;;3638:4;3613:22;;:29;;;;;;;;;;;;;;;;;;3568:85;3693:1;3666:17;;:24;;:28;3662:92;;;3739:4;3710:26;;:33;;;;;;;;;;;;;;;;;;3662:92;3778:1;3768:7;:11;3764:61;;;3795:19;3806:7;3795:10;:19::i;:::-;3764:61;3115:716:::0;;;;;;;;;:::o;10186:552::-;10345:8;:15;10354:5;10345:15;;;;;;;;;;;;;;;:23;10361:6;10345:23;;;;;;;;;;;;;;;;10335:7;:33;10331:67;;;10377:21;;;;;;;;;;;;;;10331:67;10436:7;10409:8;:15;10418:5;10409:15;;;;;;;;;;;;;;;:23;10425:6;10409:23;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;822:1:14;10457:16:13;;:6;:16;;;10453:226;;10490:12;10516:3;10508:17;;10533:7;10508:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10489:56;;;10564:7;10559:37;;10580:16;;;;;;;;;;;;;;10559:37;10475:132;10453:226;;;10627:41;10655:3;10660:7;10634:6;10627:27;;;;:41;;;;;:::i;:::-;10453:226;10718:3;10694:37;;10711:5;10694:37;;10703:6;10694:37;;;10723:7;10694:37;;;;;;:::i;:::-;;;;;;;;10186:552;;;;:::o;4527:131:14:-;4593:31;430:27;4617:6;4593:7;:31::i;:::-;4588:63;;4633:18;;;;;;;;;;;;;;4588:63;4527:131;:::o;5818:183::-;5900:39;508:31;5928:10;5900:7;:39::i;:::-;5895:100;;5962:22;;;;;;;;;;;;;;5895:100;5818:183;:::o;6623:185:13:-;6739:62;6771:5;6786:4;6793:7;6746:6;6739:31;;;;:62;;;;;;:::i;:::-;6623:185;;;:::o;6200:249::-;6361:7;6329:8;:20;6338:10;6329:20;;;;;;;;;;;;;;;:28;6350:6;6329:28;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;6422:10;6383:59;;6410:10;6383:59;;6402:6;6383:59;;;6434:7;6383:59;;;;;;:::i;:::-;;;;;;;;6200:249;;;:::o;5736:180::-;5845:7;5810:8;:23;5827:4;5810:23;;;;;;;;;;;;;;;:31;5834:6;5810:31;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;5889:10;5867:42;;5881:6;5867:42;;;5901:7;5867:42;;;;;;:::i;:::-;;;;;;;;5736:180;;:::o;7141:110:0:-;7219:25;7230:4;7236:7;7219:10;:25::i;:::-;7141:110;;:::o;4026:501::-;4114:22;4122:4;4128:7;4114;:22::i;:::-;4109:412;;4297:39;4328:7;4297:30;:39::i;:::-;4407:49;4446:4;4438:13;;4453:2;4407:30;:49::i;:::-;4204:274;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4152:358;;;;;;;;;;;:::i;:::-;;;;;;;;4109:412;4026:501;;:::o;1191:824:14:-;5363:13:2;;;;;;;;;;;5355:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1437:22:14::1;:20;:22::i;:::-;1469:42;2369:4:0;1480:18:14::0;::::1;1500:10;1469;:42::i;:::-;1521:45;508:31;1560:4;1521:10;:45::i;:::-;1640:36;430:27;647:18;1640:13;:36::i;:::-;1686:40;508:31;647:18;1686:13;:40::i;:::-;1736:34;584:25;647:18;1736:13;:34::i;:::-;1781:41;430:27;1807:14;;1781:9;:41::i;:::-;1832:49;508:31;1862:18;;1832:9;:49::i;:::-;1891:37;584:25;1915:12;;1891:9;:37::i;:::-;1938:25;647:18;1955:7;;1938:9;:25::i;:::-;1974:34;430:27;822:1;1974:10;:34::i;:::-;1191:824:::0;;;;;;;;:::o;1868:111:3:-;5363:13:2;;;;;;;;;;;5355:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1938:34:3::1;:32;:34::i;:::-;1868:111::o:0;818:216:6:-;941:86;961:5;991:23;;;1016:2;1020:5;968:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;941:19;:86::i;:::-;818:216;;;:::o;1040:252::-;1189:96;1209:5;1239:27;;;1268:4;1274:2;1278:5;1216:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:19;:96::i;:::-;1040:252;;;;:::o;2146:149:9:-;2204:13;2236:52;2264:4;2248:22;;333:2;2236:52;;:11;:52::i;:::-;2229:59;;2146:149;;;:::o;1557:437::-;1632:13;1657:19;1702:1;1693:6;1689:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1679:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1657:47;;1714:15;:6;1721:1;1714:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1739;:6;1746:1;1739:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1769:9;1794:1;1785:6;1781:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1769:26;;1764:128;1801:1;1797;:5;1764:128;;;1835:8;1852:3;1844:5;:11;1835:21;;;;;;;:::i;:::-;;;;;1823:6;1830:1;1823:9;;;;;;;;:::i;:::-;;;;;:33;;;;;;;;;;;1880:1;1870:11;;;;;1804:3;;;;:::i;:::-;;;1764:128;;;;1918:1;1909:5;:10;1901:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;1980:6;1966:21;;;1557:437;;;;:::o;2025:65:0:-;5363:13:2;;;;;;;;;;;5355:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;2025:65:0:o;7376:247::-;7459:25;7487:18;7500:4;7487:12;:18::i;:::-;7459:46;;7540:9;7515:6;:12;7522:4;7515:12;;;;;;;;;;;:22;;:34;;;;7606:9;7587:17;7581:4;7564:52;;;;;;;;;;7449:174;7376:247;;:::o;1985:109:3:-;5363:13:2;;;;;;;;;;;5355:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1787:1:3::1;2065:7;:22;;;;1985:109::o:0;3868:717:6:-;4298:23;4324:69;4352:4;4324:69;;;;;;;;;;;;;;;;;4332:5;4324:27;;;;:69;;;;;:::i;:::-;4298:95;;4427:1;4407:10;:17;:21;4403:176;;;4502:10;4491:30;;;;;;;;;;;;:::i;:::-;4483:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4403:176;3949:636;3868:717;;:::o;3884:223:7:-;4017:12;4048:52;4070:6;4078:4;4084:1;4087:12;4048:21;:52::i;:::-;4041:59;;3884:223;;;;;:::o;4971:446::-;5136:12;5193:5;5168:21;:30;;5160:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5252:12;5266:23;5293:6;:11;;5312:5;5319:4;5293:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5251:73;;;;5341:69;5368:6;5376:7;5385:10;5397:12;5341:26;:69::i;:::-;5334:76;;;;4971:446;;;;;;:::o;6589:628::-;6769:12;6797:7;6793:418;;;6845:1;6824:10;:17;:22;6820:286;;7039:18;7050:6;7039:10;:18::i;:::-;7031:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6820:286;7126:10;7119:17;;;;6793:418;7167:33;7175:10;7187:12;7167:7;:33::i;:::-;6589:628;;;;;;;:::o;7739:540::-;7918:1;7898:10;:17;:21;7894:379;;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;7894:379;8249:12;8242:20;;;;;;;;;;;:::i;:::-;;;;;;;;88:117:16;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1904:568;1977:8;1987:6;2037:3;2030:4;2022:6;2018:17;2014:27;2004:122;;2045:79;;:::i;:::-;2004:122;2158:6;2145:20;2135:30;;2188:18;2180:6;2177:30;2174:117;;;2210:79;;:::i;:::-;2174:117;2324:4;2316:6;2312:17;2300:29;;2378:3;2370:4;2362:6;2358:17;2348:8;2344:32;2341:41;2338:128;;;2385:79;;:::i;:::-;2338:128;1904:568;;;;;:::o;2478:559::-;2564:6;2572;2621:2;2609:9;2600:7;2596:23;2592:32;2589:119;;;2627:79;;:::i;:::-;2589:119;2775:1;2764:9;2760:17;2747:31;2805:18;2797:6;2794:30;2791:117;;;2827:79;;:::i;:::-;2791:117;2940:80;3012:7;3003:6;2992:9;2988:22;2940:80;:::i;:::-;2922:98;;;;2718:312;2478:559;;;;;:::o;3043:126::-;3080:7;3120:42;3113:5;3109:54;3098:65;;3043:126;;;:::o;3175:96::-;3212:7;3241:24;3259:5;3241:24;:::i;:::-;3230:35;;3175:96;;;:::o;3277:122::-;3350:24;3368:5;3350:24;:::i;:::-;3343:5;3340:35;3330:63;;3389:1;3386;3379:12;3330:63;3277:122;:::o;3405:139::-;3451:5;3489:6;3476:20;3467:29;;3505:33;3532:5;3505:33;:::i;:::-;3405:139;;;;:::o;3550:329::-;3609:6;3658:2;3646:9;3637:7;3633:23;3629:32;3626:119;;;3664:79;;:::i;:::-;3626:119;3784:1;3809:53;3854:7;3845:6;3834:9;3830:22;3809:53;:::i;:::-;3799:63;;3755:117;3550:329;;;;:::o;3885:118::-;3972:24;3990:5;3972:24;:::i;:::-;3967:3;3960:37;3885:118;;:::o;4009:222::-;4102:4;4140:2;4129:9;4125:18;4117:26;;4153:71;4221:1;4210:9;4206:17;4197:6;4153:71;:::i;:::-;4009:222;;;;:::o;4237:116::-;4307:21;4322:5;4307:21;:::i;:::-;4300:5;4297:32;4287:60;;4343:1;4340;4333:12;4287:60;4237:116;:::o;4359:133::-;4402:5;4440:6;4427:20;4418:29;;4456:30;4480:5;4456:30;:::i;:::-;4359:133;;;;:::o;4498:323::-;4554:6;4603:2;4591:9;4582:7;4578:23;4574:32;4571:119;;;4609:79;;:::i;:::-;4571:119;4729:1;4754:50;4796:7;4787:6;4776:9;4772:22;4754:50;:::i;:::-;4744:60;;4700:114;4498:323;;;;:::o;4827:77::-;4864:7;4893:5;4882:16;;4827:77;;;:::o;4910:122::-;4983:24;5001:5;4983:24;:::i;:::-;4976:5;4973:35;4963:63;;5022:1;5019;5012:12;4963:63;4910:122;:::o;5038:139::-;5084:5;5122:6;5109:20;5100:29;;5138:33;5165:5;5138:33;:::i;:::-;5038:139;;;;:::o;5183:329::-;5242:6;5291:2;5279:9;5270:7;5266:23;5262:32;5259:119;;;5297:79;;:::i;:::-;5259:119;5417:1;5442:53;5487:7;5478:6;5467:9;5463:22;5442:53;:::i;:::-;5432:63;;5388:117;5183:329;;;;:::o;5518:118::-;5605:24;5623:5;5605:24;:::i;:::-;5600:3;5593:37;5518:118;;:::o;5642:222::-;5735:4;5773:2;5762:9;5758:18;5750:26;;5786:71;5854:1;5843:9;5839:17;5830:6;5786:71;:::i;:::-;5642:222;;;;:::o;5870:77::-;5907:7;5936:5;5925:16;;5870:77;;;:::o;5953:118::-;6040:24;6058:5;6040:24;:::i;:::-;6035:3;6028:37;5953:118;;:::o;6077:222::-;6170:4;6208:2;6197:9;6193:18;6185:26;;6221:71;6289:1;6278:9;6274:17;6265:6;6221:71;:::i;:::-;6077:222;;;;:::o;6305:474::-;6373:6;6381;6430:2;6418:9;6409:7;6405:23;6401:32;6398:119;;;6436:79;;:::i;:::-;6398:119;6556:1;6581:53;6626:7;6617:6;6606:9;6602:22;6581:53;:::i;:::-;6571:63;;6527:117;6683:2;6709:53;6754:7;6745:6;6734:9;6730:22;6709:53;:::i;:::-;6699:63;;6654:118;6305:474;;;;;:::o;6785:122::-;6858:24;6876:5;6858:24;:::i;:::-;6851:5;6848:35;6838:63;;6897:1;6894;6887:12;6838:63;6785:122;:::o;6913:139::-;6959:5;6997:6;6984:20;6975:29;;7013:33;7040:5;7013:33;:::i;:::-;6913:139;;;;:::o;7058:329::-;7117:6;7166:2;7154:9;7145:7;7141:23;7137:32;7134:119;;;7172:79;;:::i;:::-;7134:119;7292:1;7317:53;7362:7;7353:6;7342:9;7338:22;7317:53;:::i;:::-;7307:63;;7263:117;7058:329;;;;:::o;7393:934::-;7515:6;7523;7531;7539;7588:2;7576:9;7567:7;7563:23;7559:32;7556:119;;;7594:79;;:::i;:::-;7556:119;7742:1;7731:9;7727:17;7714:31;7772:18;7764:6;7761:30;7758:117;;;7794:79;;:::i;:::-;7758:117;7907:80;7979:7;7970:6;7959:9;7955:22;7907:80;:::i;:::-;7889:98;;;;7685:312;8064:2;8053:9;8049:18;8036:32;8095:18;8087:6;8084:30;8081:117;;;8117:79;;:::i;:::-;8081:117;8230:80;8302:7;8293:6;8282:9;8278:22;8230:80;:::i;:::-;8212:98;;;;8007:313;7393:934;;;;;;;:::o;8333:704::-;8428:6;8436;8444;8493:2;8481:9;8472:7;8468:23;8464:32;8461:119;;;8499:79;;:::i;:::-;8461:119;8647:1;8636:9;8632:17;8619:31;8677:18;8669:6;8666:30;8663:117;;;8699:79;;:::i;:::-;8663:117;8812:80;8884:7;8875:6;8864:9;8860:22;8812:80;:::i;:::-;8794:98;;;;8590:312;8941:2;8967:53;9012:7;9003:6;8992:9;8988:22;8967:53;:::i;:::-;8957:63;;8912:118;8333:704;;;;;:::o;9043:474::-;9111:6;9119;9168:2;9156:9;9147:7;9143:23;9139:32;9136:119;;;9174:79;;:::i;:::-;9136:119;9294:1;9319:53;9364:7;9355:6;9344:9;9340:22;9319:53;:::i;:::-;9309:63;;9265:117;9421:2;9447:53;9492:7;9483:6;9472:9;9468:22;9447:53;:::i;:::-;9437:63;;9392:118;9043:474;;;;;:::o;9523:1831::-;9726:6;9734;9742;9750;9758;9766;9774;9782;9790;9839:3;9827:9;9818:7;9814:23;9810:33;9807:120;;;9846:79;;:::i;:::-;9807:120;9994:1;9983:9;9979:17;9966:31;10024:18;10016:6;10013:30;10010:117;;;10046:79;;:::i;:::-;10010:117;10159:80;10231:7;10222:6;10211:9;10207:22;10159:80;:::i;:::-;10141:98;;;;9937:312;10316:2;10305:9;10301:18;10288:32;10347:18;10339:6;10336:30;10333:117;;;10369:79;;:::i;:::-;10333:117;10482:80;10554:7;10545:6;10534:9;10530:22;10482:80;:::i;:::-;10464:98;;;;10259:313;10639:2;10628:9;10624:18;10611:32;10670:18;10662:6;10659:30;10656:117;;;10692:79;;:::i;:::-;10656:117;10805:80;10877:7;10868:6;10857:9;10853:22;10805:80;:::i;:::-;10787:98;;;;10582:313;10962:2;10951:9;10947:18;10934:32;10993:18;10985:6;10982:30;10979:117;;;11015:79;;:::i;:::-;10979:117;11128:80;11200:7;11191:6;11180:9;11176:22;11128:80;:::i;:::-;11110:98;;;;10905:313;11257:3;11284:53;11329:7;11320:6;11309:9;11305:22;11284:53;:::i;:::-;11274:63;;11228:119;9523:1831;;;;;;;;;;;:::o;11360:474::-;11428:6;11436;11485:2;11473:9;11464:7;11460:23;11456:32;11453:119;;;11491:79;;:::i;:::-;11453:119;11611:1;11636:53;11681:7;11672:6;11661:9;11657:22;11636:53;:::i;:::-;11626:63;;11582:117;11738:2;11764:53;11809:7;11800:6;11789:9;11785:22;11764:53;:::i;:::-;11754:63;;11709:118;11360:474;;;;;:::o;11840:114::-;11907:6;11941:5;11935:12;11925:22;;11840:114;;;:::o;11960:184::-;12059:11;12093:6;12088:3;12081:19;12133:4;12128:3;12124:14;12109:29;;11960:184;;;;:::o;12150:132::-;12217:4;12240:3;12232:11;;12270:4;12265:3;12261:14;12253:22;;12150:132;;;:::o;12288:108::-;12365:24;12383:5;12365:24;:::i;:::-;12360:3;12353:37;12288:108;;:::o;12402:179::-;12471:10;12492:46;12534:3;12526:6;12492:46;:::i;:::-;12570:4;12565:3;12561:14;12547:28;;12402:179;;;;:::o;12587:113::-;12657:4;12689;12684:3;12680:14;12672:22;;12587:113;;;:::o;12736:732::-;12855:3;12884:54;12932:5;12884:54;:::i;:::-;12954:86;13033:6;13028:3;12954:86;:::i;:::-;12947:93;;13064:56;13114:5;13064:56;:::i;:::-;13143:7;13174:1;13159:284;13184:6;13181:1;13178:13;13159:284;;;13260:6;13254:13;13287:63;13346:3;13331:13;13287:63;:::i;:::-;13280:70;;13373:60;13426:6;13373:60;:::i;:::-;13363:70;;13219:224;13206:1;13203;13199:9;13194:14;;13159:284;;;13163:14;13459:3;13452:10;;12860:608;;;12736:732;;;;:::o;13474:373::-;13617:4;13655:2;13644:9;13640:18;13632:26;;13704:9;13698:4;13694:20;13690:1;13679:9;13675:17;13668:47;13732:108;13835:4;13826:6;13732:108;:::i;:::-;13724:116;;13474:373;;;;:::o;13868:579::-;13952:8;13962:6;14012:3;14005:4;13997:6;13993:17;13989:27;13979:122;;14020:79;;:::i;:::-;13979:122;14133:6;14120:20;14110:30;;14163:18;14155:6;14152:30;14149:117;;;14185:79;;:::i;:::-;14149:117;14299:4;14291:6;14287:17;14275:29;;14353:3;14345:4;14337:6;14333:17;14323:8;14319:32;14316:41;14313:128;;;14360:79;;:::i;:::-;14313:128;13868:579;;;;;:::o;14453:726::-;14559:6;14567;14575;14624:2;14612:9;14603:7;14599:23;14595:32;14592:119;;;14630:79;;:::i;:::-;14592:119;14778:1;14767:9;14763:17;14750:31;14808:18;14800:6;14797:30;14794:117;;;14830:79;;:::i;:::-;14794:117;14943:91;15026:7;15017:6;15006:9;15002:22;14943:91;:::i;:::-;14925:109;;;;14721:323;15083:2;15109:53;15154:7;15145:6;15134:9;15130:22;15109:53;:::i;:::-;15099:63;;15054:118;14453:726;;;;;:::o;15185:180::-;15233:77;15230:1;15223:88;15330:4;15327:1;15320:15;15354:4;15351:1;15344:15;15371:180;15419:77;15416:1;15409:88;15516:4;15513:1;15506:15;15540:4;15537:1;15530:15;15557:169;15641:11;15675:6;15670:3;15663:19;15715:4;15710:3;15706:14;15691:29;;15557:169;;;;:::o;15732:234::-;15872:34;15868:1;15860:6;15856:14;15849:58;15941:17;15936:2;15928:6;15924:15;15917:42;15732:234;:::o;15972:366::-;16114:3;16135:67;16199:2;16194:3;16135:67;:::i;:::-;16128:74;;16211:93;16300:3;16211:93;:::i;:::-;16329:2;16324:3;16320:12;16313:19;;15972:366;;;:::o;16344:419::-;16510:4;16548:2;16537:9;16533:18;16525:26;;16597:9;16591:4;16587:20;16583:1;16572:9;16568:17;16561:47;16625:131;16751:4;16625:131;:::i;:::-;16617:139;;16344:419;;;:::o;16769:180::-;16909:32;16905:1;16897:6;16893:14;16886:56;16769:180;:::o;16955:366::-;17097:3;17118:67;17182:2;17177:3;17118:67;:::i;:::-;17111:74;;17194:93;17283:3;17194:93;:::i;:::-;17312:2;17307:3;17303:12;17296:19;;16955:366;;;:::o;17327:419::-;17493:4;17531:2;17520:9;17516:18;17508:26;;17580:9;17574:4;17570:20;17566:1;17555:9;17551:17;17544:47;17608:131;17734:4;17608:131;:::i;:::-;17600:139;;17327:419;;;:::o;17752:233::-;17892:34;17888:1;17880:6;17876:14;17869:58;17961:16;17956:2;17948:6;17944:15;17937:41;17752:233;:::o;17991:366::-;18133:3;18154:67;18218:2;18213:3;18154:67;:::i;:::-;18147:74;;18230:93;18319:3;18230:93;:::i;:::-;18348:2;18343:3;18339:12;18332:19;;17991:366;;;:::o;18363:419::-;18529:4;18567:2;18556:9;18552:18;18544:26;;18616:9;18610:4;18606:20;18602:1;18591:9;18587:17;18580:47;18644:131;18770:4;18644:131;:::i;:::-;18636:139;;18363:419;;;:::o;18788:85::-;18833:7;18862:5;18851:16;;18788:85;;;:::o;18879:86::-;18914:7;18954:4;18947:5;18943:16;18932:27;;18879:86;;;:::o;18971:60::-;18999:3;19020:5;19013:12;;18971:60;;;:::o;19037:154::-;19093:9;19126:59;19142:42;19151:32;19177:5;19151:32;:::i;:::-;19142:42;:::i;:::-;19126:59;:::i;:::-;19113:72;;19037:154;;;:::o;19197:143::-;19290:43;19327:5;19290:43;:::i;:::-;19285:3;19278:56;19197:143;;:::o;19346:234::-;19445:4;19483:2;19472:9;19468:18;19460:26;;19496:77;19570:1;19559:9;19555:17;19546:6;19496:77;:::i;:::-;19346:234;;;;:::o;19586:231::-;19726:34;19722:1;19714:6;19710:14;19703:58;19795:14;19790:2;19782:6;19778:15;19771:39;19586:231;:::o;19823:366::-;19965:3;19986:67;20050:2;20045:3;19986:67;:::i;:::-;19979:74;;20062:93;20151:3;20062:93;:::i;:::-;20180:2;20175:3;20171:12;20164:19;;19823:366;;;:::o;20195:419::-;20361:4;20399:2;20388:9;20384:18;20376:26;;20448:9;20442:4;20438:20;20434:1;20423:9;20419:17;20412:47;20476:131;20602:4;20476:131;:::i;:::-;20468:139;;20195:419;;;:::o;20620:231::-;20760:34;20756:1;20748:6;20744:14;20737:58;20829:14;20824:2;20816:6;20812:15;20805:39;20620:231;:::o;20857:366::-;20999:3;21020:67;21084:2;21079:3;21020:67;:::i;:::-;21013:74;;21096:93;21185:3;21096:93;:::i;:::-;21214:2;21209:3;21205:12;21198:19;;20857:366;;;:::o;21229:419::-;21395:4;21433:2;21422:9;21418:18;21410:26;;21482:9;21476:4;21472:20;21468:1;21457:9;21453:17;21446:47;21510:131;21636:4;21510:131;:::i;:::-;21502:139;;21229:419;;;:::o;21654:117::-;21763:1;21760;21753:12;21777:117;21886:1;21883;21876:12;21900:117;22009:1;22006;21999:12;22023:724;22100:4;22106:6;22162:11;22149:25;22262:1;22256:4;22252:12;22241:8;22225:14;22221:29;22217:48;22197:18;22193:73;22183:168;;22270:79;;:::i;:::-;22183:168;22382:18;22372:8;22368:33;22360:41;;22434:4;22421:18;22411:28;;22462:18;22454:6;22451:30;22448:117;;;22484:79;;:::i;:::-;22448:117;22592:2;22586:4;22582:13;22574:21;;22649:4;22641:6;22637:17;22621:14;22617:38;22611:4;22607:49;22604:136;;;22659:79;;:::i;:::-;22604:136;22113:634;22023:724;;;;;:::o;22753:104::-;22798:7;22827:24;22845:5;22827:24;:::i;:::-;22816:35;;22753:104;;;:::o;22863:138::-;22944:32;22970:5;22944:32;:::i;:::-;22937:5;22934:43;22924:71;;22991:1;22988;22981:12;22924:71;22863:138;:::o;23007:155::-;23061:5;23099:6;23086:20;23077:29;;23115:41;23150:5;23115:41;:::i;:::-;23007:155;;;;:::o;23168:651::-;23261:6;23269;23277;23326:2;23314:9;23305:7;23301:23;23297:32;23294:119;;;23332:79;;:::i;:::-;23294:119;23452:1;23477:61;23530:7;23521:6;23510:9;23506:22;23477:61;:::i;:::-;23467:71;;23423:125;23587:2;23613:53;23658:7;23649:6;23638:9;23634:22;23613:53;:::i;:::-;23603:63;;23558:118;23715:2;23741:61;23794:7;23785:6;23774:9;23770:22;23741:61;:::i;:::-;23731:71;;23686:126;23168:651;;;;;:::o;23825:180::-;23873:77;23870:1;23863:88;23970:4;23967:1;23960:15;23994:4;23991:1;23984:15;24011:191;24051:3;24070:20;24088:1;24070:20;:::i;:::-;24065:25;;24104:20;24122:1;24104:20;:::i;:::-;24099:25;;24147:1;24144;24140:9;24133:16;;24168:3;24165:1;24162:10;24159:36;;;24175:18;;:::i;:::-;24159:36;24011:191;;;;:::o;24208:332::-;24329:4;24367:2;24356:9;24352:18;24344:26;;24380:71;24448:1;24437:9;24433:17;24424:6;24380:71;:::i;:::-;24461:72;24529:2;24518:9;24514:18;24505:6;24461:72;:::i;:::-;24208:332;;;;;:::o;24546:410::-;24586:7;24609:20;24627:1;24609:20;:::i;:::-;24604:25;;24643:20;24661:1;24643:20;:::i;:::-;24638:25;;24698:1;24695;24691:9;24720:30;24738:11;24720:30;:::i;:::-;24709:41;;24899:1;24890:7;24886:15;24883:1;24880:22;24860:1;24853:9;24833:83;24810:139;;24929:18;;:::i;:::-;24810:139;24594:362;24546:410;;;;:::o;24962:180::-;25010:77;25007:1;25000:88;25107:4;25104:1;25097:15;25131:4;25128:1;25121:15;25148:185;25188:1;25205:20;25223:1;25205:20;:::i;:::-;25200:25;;25239:20;25257:1;25239:20;:::i;:::-;25234:25;;25278:1;25268:35;;25283:18;;:::i;:::-;25268:35;25325:1;25322;25318:9;25313:14;;25148:185;;;;:::o;25339:194::-;25379:4;25399:20;25417:1;25399:20;:::i;:::-;25394:25;;25433:20;25451:1;25433:20;:::i;:::-;25428:25;;25477:1;25474;25470:9;25462:17;;25501:1;25495:4;25492:11;25489:37;;;25506:18;;:::i;:::-;25489:37;25339:194;;;;:::o;25539:181::-;25679:33;25675:1;25667:6;25663:14;25656:57;25539:181;:::o;25726:366::-;25868:3;25889:67;25953:2;25948:3;25889:67;:::i;:::-;25882:74;;25965:93;26054:3;25965:93;:::i;:::-;26083:2;26078:3;26074:12;26067:19;;25726:366;;;:::o;26098:419::-;26264:4;26302:2;26291:9;26287:18;26279:26;;26351:9;26345:4;26341:20;26337:1;26326:9;26322:17;26315:47;26379:131;26505:4;26379:131;:::i;:::-;26371:139;;26098:419;;;:::o;26523:230::-;26663:34;26659:1;26651:6;26647:14;26640:58;26732:13;26727:2;26719:6;26715:15;26708:38;26523:230;:::o;26759:366::-;26901:3;26922:67;26986:2;26981:3;26922:67;:::i;:::-;26915:74;;26998:93;27087:3;26998:93;:::i;:::-;27116:2;27111:3;27107:12;27100:19;;26759:366;;;:::o;27131:419::-;27297:4;27335:2;27324:9;27320:18;27312:26;;27384:9;27378:4;27374:20;27370:1;27359:9;27355:17;27348:47;27412:131;27538:4;27412:131;:::i;:::-;27404:139;;27131:419;;;:::o;27556:147::-;27657:11;27694:3;27679:18;;27556:147;;;;:::o;27709:114::-;;:::o;27829:398::-;27988:3;28009:83;28090:1;28085:3;28009:83;:::i;:::-;28002:90;;28101:93;28190:3;28101:93;:::i;:::-;28219:1;28214:3;28210:11;28203:18;;27829:398;;;:::o;28233:379::-;28417:3;28439:147;28582:3;28439:147;:::i;:::-;28432:154;;28603:3;28596:10;;28233:379;;;:::o;28618:148::-;28720:11;28757:3;28742:18;;28618:148;;;;:::o;28772:173::-;28912:25;28908:1;28900:6;28896:14;28889:49;28772:173;:::o;28951:402::-;29111:3;29132:85;29214:2;29209:3;29132:85;:::i;:::-;29125:92;;29226:93;29315:3;29226:93;:::i;:::-;29344:2;29339:3;29335:12;29328:19;;28951:402;;;:::o;29359:99::-;29411:6;29445:5;29439:12;29429:22;;29359:99;;;:::o;29464:246::-;29545:1;29555:113;29569:6;29566:1;29563:13;29555:113;;;29654:1;29649:3;29645:11;29639:18;29635:1;29630:3;29626:11;29619:39;29591:2;29588:1;29584:10;29579:15;;29555:113;;;29702:1;29693:6;29688:3;29684:16;29677:27;29526:184;29464:246;;;:::o;29716:390::-;29822:3;29850:39;29883:5;29850:39;:::i;:::-;29905:89;29987:6;29982:3;29905:89;:::i;:::-;29898:96;;30003:65;30061:6;30056:3;30049:4;30042:5;30038:16;30003:65;:::i;:::-;30093:6;30088:3;30084:16;30077:23;;29826:280;29716:390;;;;:::o;30112:167::-;30252:19;30248:1;30240:6;30236:14;30229:43;30112:167;:::o;30285:402::-;30445:3;30466:85;30548:2;30543:3;30466:85;:::i;:::-;30459:92;;30560:93;30649:3;30560:93;:::i;:::-;30678:2;30673:3;30669:12;30662:19;;30285:402;;;:::o;30693:967::-;31075:3;31097:148;31241:3;31097:148;:::i;:::-;31090:155;;31262:95;31353:3;31344:6;31262:95;:::i;:::-;31255:102;;31374:148;31518:3;31374:148;:::i;:::-;31367:155;;31539:95;31630:3;31621:6;31539:95;:::i;:::-;31532:102;;31651:3;31644:10;;30693:967;;;;;:::o;31666:102::-;31707:6;31758:2;31754:7;31749:2;31742:5;31738:14;31734:28;31724:38;;31666:102;;;:::o;31774:377::-;31862:3;31890:39;31923:5;31890:39;:::i;:::-;31945:71;32009:6;32004:3;31945:71;:::i;:::-;31938:78;;32025:65;32083:6;32078:3;32071:4;32064:5;32060:16;32025:65;:::i;:::-;32115:29;32137:6;32115:29;:::i;:::-;32110:3;32106:39;32099:46;;31866:285;31774:377;;;;:::o;32157:313::-;32270:4;32308:2;32297:9;32293:18;32285:26;;32357:9;32351:4;32347:20;32343:1;32332:9;32328:17;32321:47;32385:78;32458:4;32449:6;32385:78;:::i;:::-;32377:86;;32157:313;;;;:::o;32476:442::-;32625:4;32663:2;32652:9;32648:18;32640:26;;32676:71;32744:1;32733:9;32729:17;32720:6;32676:71;:::i;:::-;32757:72;32825:2;32814:9;32810:18;32801:6;32757:72;:::i;:::-;32839;32907:2;32896:9;32892:18;32883:6;32839:72;:::i;:::-;32476:442;;;;;;:::o;32924:171::-;32963:3;32986:24;33004:5;32986:24;:::i;:::-;32977:33;;33032:4;33025:5;33022:15;33019:41;;33040:18;;:::i;:::-;33019:41;33087:1;33080:5;33076:13;33069:20;;32924:171;;;:::o;33101:182::-;33241:34;33237:1;33229:6;33225:14;33218:58;33101:182;:::o;33289:366::-;33431:3;33452:67;33516:2;33511:3;33452:67;:::i;:::-;33445:74;;33528:93;33617:3;33528:93;:::i;:::-;33646:2;33641:3;33637:12;33630:19;;33289:366;;;:::o;33661:419::-;33827:4;33865:2;33854:9;33850:18;33842:26;;33914:9;33908:4;33904:20;33900:1;33889:9;33885:17;33878:47;33942:131;34068:4;33942:131;:::i;:::-;33934:139;;33661:419;;;:::o;34086:137::-;34140:5;34171:6;34165:13;34156:22;;34187:30;34211:5;34187:30;:::i;:::-;34086:137;;;;:::o;34229:345::-;34296:6;34345:2;34333:9;34324:7;34320:23;34316:32;34313:119;;;34351:79;;:::i;:::-;34313:119;34471:1;34496:61;34549:7;34540:6;34529:9;34525:22;34496:61;:::i;:::-;34486:71;;34442:125;34229:345;;;;:::o;34580:229::-;34720:34;34716:1;34708:6;34704:14;34697:58;34789:12;34784:2;34776:6;34772:15;34765:37;34580:229;:::o;34815:366::-;34957:3;34978:67;35042:2;35037:3;34978:67;:::i;:::-;34971:74;;35054:93;35143:3;35054:93;:::i;:::-;35172:2;35167:3;35163:12;35156:19;;34815:366;;;:::o;35187:419::-;35353:4;35391:2;35380:9;35376:18;35368:26;;35440:9;35434:4;35430:20;35426:1;35415:9;35411:17;35404:47;35468:131;35594:4;35468:131;:::i;:::-;35460:139;;35187:419;;;:::o;35612:225::-;35752:34;35748:1;35740:6;35736:14;35729:58;35821:8;35816:2;35808:6;35804:15;35797:33;35612:225;:::o;35843:366::-;35985:3;36006:67;36070:2;36065:3;36006:67;:::i;:::-;35999:74;;36082:93;36171:3;36082:93;:::i;:::-;36200:2;36195:3;36191:12;36184:19;;35843:366;;;:::o;36215:419::-;36381:4;36419:2;36408:9;36404:18;36396:26;;36468:9;36462:4;36458:20;36454:1;36443:9;36439:17;36432:47;36496:131;36622:4;36496:131;:::i;:::-;36488:139;;36215:419;;;:::o;36640:98::-;36691:6;36725:5;36719:12;36709:22;;36640:98;;;:::o;36744:386::-;36848:3;36876:38;36908:5;36876:38;:::i;:::-;36930:88;37011:6;37006:3;36930:88;:::i;:::-;36923:95;;37027:65;37085:6;37080:3;37073:4;37066:5;37062:16;37027:65;:::i;:::-;37117:6;37112:3;37108:16;37101:23;;36852:278;36744:386;;;;:::o;37136:271::-;37266:3;37288:93;37377:3;37368:6;37288:93;:::i;:::-;37281:100;;37398:3;37391:10;;37136:271;;;;:::o;37413:179::-;37553:31;37549:1;37541:6;37537:14;37530:55;37413:179;:::o;37598:366::-;37740:3;37761:67;37825:2;37820:3;37761:67;:::i;:::-;37754:74;;37837:93;37926:3;37837:93;:::i;:::-;37955:2;37950:3;37946:12;37939:19;;37598:366;;;:::o;37970:419::-;38136:4;38174:2;38163:9;38159:18;38151:26;;38223:9;38217:4;38213:20;38209:1;38198:9;38194:17;38187:47;38251:131;38377:4;38251:131;:::i;:::-;38243:139;;37970:419;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "3570200", + "executionCost": "4007", + "totalCost": "3574207" + }, + "external": { + "ACCEPTED_TOKEN()": "483", + "ADMIN()": "441", + "DEFAULT_ADMIN_ROLE()": "402", + "DONATION_RECIPIENT()": "418", + "FEE_RECEIVER()": "374", + "HUNDRED()": "417", + "NATIVE()": "423", + "addAdmin(address[])": "infinite", + "addDonationRecipient(address[])": "infinite", + "addFeeReceiver(address[])": "infinite", + "addToken(address[])": "infinite", + "balanceOf(address,address)": "infinite", + "balances(address,address)": "infinite", + "balancesOf(address[],address)": "infinite", + "distribute(address[],address)": "infinite", + "distributeMany(address[],address[])": "infinite", + "getRoleAdmin(bytes32)": "infinite", + "grantRole(bytes32,address)": "infinite", + "hasRole(bytes32,address)": "3252", + "init()": "26689", + "initialize(address[],address[],address[],address[],uint256)": "infinite", + "isAdmin(address)": "3061", + "isDonationRecipient(address)": "3125", + "isFeeReceiver(address)": "3126", + "isRecipientWhitelistActive()": "2567", + "isTokenAccepted(address)": "3106", + "isTokenWhitelistActive()": "2626", + "minFee()": "2497", + "removeAdmin(address[])": "infinite", + "removeDonationRecipient(address[])": "infinite", + "removeFeeReceiver(address[])": "infinite", + "removeToken(address[])": "infinite", + "renounceRole(bytes32,address)": "infinite", + "revokeAdmin()": "infinite", + "revokeRole(bytes32,address)": "infinite", + "roundAddress()": "2624", + "setIsRecipientWhitelistActive(bool)": "infinite", + "setIsTokenWhitelistActive(bool)": "infinite", + "setMinFee(uint256)": "infinite", + "supportsInterface(bytes4)": "774", + "vote(bytes[],address)": "infinite", + "withdraw(address,uint256)": "infinite", + "withdrawFee(address)": "infinite", + "withdrawFeeMany(address[])": "infinite", + "withdrawMany(address[])": "infinite" + }, + "internal": { + "__DonationHandler_init(address[] calldata,address[] calldata,address[] calldata,address[] calldata,uint256)": "infinite", + "_registerDonation(address,address,uint256)": "infinite", + "_registerFee(address,uint256)": "infinite", + "_setMinFee(uint256)": "infinite", + "_transfer(address,address,uint256)": "infinite", + "_withdraw(address,address,address,uint256)": "infinite", + "_withdrawAll(address[] memory,address,address)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "80" + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 1887, + "end": 15549, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "1" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "REVERT", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "tag", + "source": 13, + "value": "1" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "POP", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH #[$]", + "source": 13, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [$]", + "source": 13, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 1887, + "end": 15549, + "name": "CODECOPY", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 1887, + "end": 15549, + "name": "RETURN", + "source": 13 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212201fcf5d16c95d4a4b926e62a8773ac7a8323e139f06764cee68c39bb9f600314364736f6c63430008110033", + ".code": [ + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "80" + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 1887, + "end": 15549, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 1887, + "end": 15549, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "LT", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "1" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 1887, + "end": 15549, + "name": "CALLDATALOAD", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "E0" + }, + { + "begin": 1887, + "end": 15549, + "name": "SHR", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "658E4821" + }, + { + "begin": 1887, + "end": 15549, + "name": "GT", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "47" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "D3E78E4D" + }, + { + "begin": 1887, + "end": 15549, + "name": "GT", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "48" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "F46B80CA" + }, + { + "begin": 1887, + "end": 15549, + "name": "GT", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "49" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "F46B80CA" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "41" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "F7888AEC" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "42" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "F85FC0AB" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "43" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "FBFE3AB2" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "44" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "FC6D4E39" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "45" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "FDBB219D" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "46" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "1" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMP", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "tag", + "source": 13, + "value": "49" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "D3E78E4D" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "35" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "D547741F" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "36" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "DCDA7DAD" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "37" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "E1C7392A" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "38" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "F2D4120E" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "39" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "F3FEF3A3" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "40" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "1" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMP", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "tag", + "source": 13, + "value": "48" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "A0CF0AEA" + }, + { + "begin": 1887, + "end": 15549, + "name": "GT", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "50" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "A0CF0AEA" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "29" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "A217FDDF" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "30" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "AE876F61" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "31" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "B278110F" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "32" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "BF7CB70B" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "33" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "C23F001F" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "34" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "1" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMP", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "tag", + "source": 13, + "value": "50" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "658E4821" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "24" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "6BB85F4C" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "25" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "80C78F1C" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "26" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "91D14854" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "27" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "9D082C98" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "28" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "1" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMP", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "tag", + "source": 13, + "value": "47" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "24D7806C" + }, + { + "begin": 1887, + "end": 15549, + "name": "GT", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "51" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "31AC9920" + }, + { + "begin": 1887, + "end": 15549, + "name": "GT", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "52" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "31AC9920" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "18" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "36568ABE" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "19" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "3B8453CA" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "20" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "3D0950A8" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "21" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "42E228EF" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "22" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "60E007A6" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "23" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "1" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMP", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "tag", + "source": 13, + "value": "52" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "24D7806C" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "13" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "24EC7590" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "14" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "2620D800" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "15" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "2A0ACC6A" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "16" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "2F2FF15D" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "17" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "1" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMP", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "tag", + "source": 13, + "value": "51" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "102D7927" + }, + { + "begin": 1887, + "end": 15549, + "name": "GT", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "53" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "102D7927" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "7" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "1037D18C" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "8" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "10881166" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "9" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "155DC549" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "10" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "1AC3DDEB" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "11" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "248A9CA3" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "12" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "1" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMP", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "tag", + "source": 13, + "value": "53" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "1FFC9A7" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "2" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "41C60EE" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "3" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "560BD96" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "4" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "B67D925" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "5" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "D6AEF04" + }, + { + "begin": 1887, + "end": 15549, + "name": "EQ", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH [tag]", + "source": 13, + "value": "6" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "tag", + "source": 13, + "value": "1" + }, + { + "begin": 1887, + "end": 15549, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 1887, + "end": 15549, + "name": "DUP1", + "source": 13 + }, + { + "begin": 1887, + "end": 15549, + "name": "REVERT", + "source": 13 + }, + { + "begin": 2903, + "end": 3116, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "54" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 2903, + "end": 3116, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "REVERT", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "tag", + "source": 0, + "value": "54" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "POP", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "55" + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 2903, + "end": 3116, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SUB", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "ADD", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "56" + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "57" + }, + { + "begin": 2903, + "end": 3116, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "tag", + "source": 0, + "value": "56" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "58" + }, + { + "begin": 2903, + "end": 3116, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "tag", + "source": 0, + "value": "55" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 2903, + "end": 3116, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "59" + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "60" + }, + { + "begin": 2903, + "end": 3116, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "tag", + "source": 0, + "value": "59" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 2903, + "end": 3116, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SUB", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "RETURN", + "source": 0 + }, + { + "begin": 8969, + "end": 9146, + "name": "tag", + "source": 13, + "value": "3" + }, + { + "begin": 8969, + "end": 9146, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "PUSH [tag]", + "source": 13, + "value": "61" + }, + { + "begin": 8969, + "end": 9146, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 8969, + "end": 9146, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "REVERT", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "tag", + "source": 13, + "value": "61" + }, + { + "begin": 8969, + "end": 9146, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "POP", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "PUSH [tag]", + "source": 13, + "value": "62" + }, + { + "begin": 8969, + "end": 9146, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 8969, + "end": 9146, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "SUB", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "ADD", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "PUSH [tag]", + "source": 13, + "value": "63" + }, + { + "begin": 8969, + "end": 9146, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "PUSH [tag]", + "source": 13, + "value": "64" + }, + { + "begin": 8969, + "end": 9146, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "tag", + "source": 13, + "value": "63" + }, + { + "begin": 8969, + "end": 9146, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "PUSH [tag]", + "source": 13, + "value": "65" + }, + { + "begin": 8969, + "end": 9146, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "tag", + "source": 13, + "value": "62" + }, + { + "begin": 8969, + "end": 9146, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "STOP", + "source": 13 + }, + { + "begin": 5484, + "end": 5609, + "name": "tag", + "source": 14, + "value": "4" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "DUP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "66" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 5484, + "end": 5609, + "name": "DUP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "REVERT", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "tag", + "source": 14, + "value": "66" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "POP", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "67" + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 5484, + "end": 5609, + "name": "DUP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SUB", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "DUP2", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "ADD", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "68" + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "69" + }, + { + "begin": 5484, + "end": 5609, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "tag", + "source": 14, + "value": "68" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "70" + }, + { + "begin": 5484, + "end": 5609, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "tag", + "source": 14, + "value": "67" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 5484, + "end": 5609, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "71" + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "60" + }, + { + "begin": 5484, + "end": 5609, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "tag", + "source": 14, + "value": "71" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 5484, + "end": 5609, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "DUP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SUB", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "RETURN", + "source": 14 + }, + { + "begin": 460, + "end": 487, + "name": "tag", + "source": 15, + "value": "5" + }, + { + "begin": 460, + "end": 487, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "CALLVALUE", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "DUP1", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "ISZERO", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "PUSH [tag]", + "source": 15, + "value": "72" + }, + { + "begin": 460, + "end": 487, + "name": "JUMPI", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "PUSH", + "source": 15, + "value": "0" + }, + { + "begin": 460, + "end": 487, + "name": "DUP1", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "REVERT", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "tag", + "source": 15, + "value": "72" + }, + { + "begin": 460, + "end": 487, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "POP", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "PUSH [tag]", + "source": 15, + "value": "73" + }, + { + "begin": 460, + "end": 487, + "name": "PUSH [tag]", + "source": 15, + "value": "74" + }, + { + "begin": 460, + "end": 487, + "jumpType": "[in]", + "name": "JUMP", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "tag", + "source": 15, + "value": "73" + }, + { + "begin": 460, + "end": 487, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "PUSH", + "source": 15, + "value": "40" + }, + { + "begin": 460, + "end": 487, + "name": "MLOAD", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "PUSH [tag]", + "source": 15, + "value": "75" + }, + { + "begin": 460, + "end": 487, + "name": "SWAP2", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "PUSH [tag]", + "source": 15, + "value": "76" + }, + { + "begin": 460, + "end": 487, + "jumpType": "[in]", + "name": "JUMP", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "tag", + "source": 15, + "value": "75" + }, + { + "begin": 460, + "end": 487, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "PUSH", + "source": 15, + "value": "40" + }, + { + "begin": 460, + "end": 487, + "name": "MLOAD", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "DUP1", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "SWAP2", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "SUB", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "RETURN", + "source": 15 + }, + { + "begin": 3931, + "end": 4043, + "name": "tag", + "source": 14, + "value": "6" + }, + { + "begin": 3931, + "end": 4043, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "PUSH [tag]", + "source": 14, + "value": "77" + }, + { + "begin": 3931, + "end": 4043, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 3931, + "end": 4043, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "REVERT", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "tag", + "source": 14, + "value": "77" + }, + { + "begin": 3931, + "end": 4043, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "POP", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "PUSH [tag]", + "source": 14, + "value": "78" + }, + { + "begin": 3931, + "end": 4043, + "name": "PUSH [tag]", + "source": 14, + "value": "79" + }, + { + "begin": 3931, + "end": 4043, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "tag", + "source": 14, + "value": "78" + }, + { + "begin": 3931, + "end": 4043, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "STOP", + "source": 14 + }, + { + "begin": 2242, + "end": 2280, + "name": "tag", + "source": 13, + "value": "7" + }, + { + "begin": 2242, + "end": 2280, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH [tag]", + "source": 13, + "value": "80" + }, + { + "begin": 2242, + "end": 2280, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2242, + "end": 2280, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "REVERT", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "tag", + "source": 13, + "value": "80" + }, + { + "begin": 2242, + "end": 2280, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "POP", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH [tag]", + "source": 13, + "value": "81" + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH [tag]", + "source": 13, + "value": "82" + }, + { + "begin": 2242, + "end": 2280, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "tag", + "source": 13, + "value": "81" + }, + { + "begin": 2242, + "end": 2280, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2242, + "end": 2280, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH [tag]", + "source": 13, + "value": "83" + }, + { + "begin": 2242, + "end": 2280, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH [tag]", + "source": 13, + "value": "60" + }, + { + "begin": 2242, + "end": 2280, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "tag", + "source": 13, + "value": "83" + }, + { + "begin": 2242, + "end": 2280, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2242, + "end": 2280, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "SUB", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "RETURN", + "source": 13 + }, + { + "begin": 6536, + "end": 6705, + "name": "tag", + "source": 14, + "value": "8" + }, + { + "begin": 6536, + "end": 6705, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH [tag]", + "source": 14, + "value": "84" + }, + { + "begin": 6536, + "end": 6705, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 6536, + "end": 6705, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "REVERT", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "tag", + "source": 14, + "value": "84" + }, + { + "begin": 6536, + "end": 6705, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "POP", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH [tag]", + "source": 14, + "value": "85" + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 6536, + "end": 6705, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "SUB", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "DUP2", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "ADD", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH [tag]", + "source": 14, + "value": "86" + }, + { + "begin": 6536, + "end": 6705, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH [tag]", + "source": 14, + "value": "64" + }, + { + "begin": 6536, + "end": 6705, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "tag", + "source": 14, + "value": "86" + }, + { + "begin": 6536, + "end": 6705, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH [tag]", + "source": 14, + "value": "87" + }, + { + "begin": 6536, + "end": 6705, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "tag", + "source": 14, + "value": "85" + }, + { + "begin": 6536, + "end": 6705, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "STOP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "tag", + "source": 14, + "value": "9" + }, + { + "begin": 4829, + "end": 4966, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "DUP1", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH [tag]", + "source": 14, + "value": "88" + }, + { + "begin": 4829, + "end": 4966, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 4829, + "end": 4966, + "name": "DUP1", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "REVERT", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "tag", + "source": 14, + "value": "88" + }, + { + "begin": 4829, + "end": 4966, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "POP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH [tag]", + "source": 14, + "value": "89" + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 4829, + "end": 4966, + "name": "DUP1", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "SUB", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "DUP2", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "ADD", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH [tag]", + "source": 14, + "value": "90" + }, + { + "begin": 4829, + "end": 4966, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH [tag]", + "source": 14, + "value": "64" + }, + { + "begin": 4829, + "end": 4966, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "tag", + "source": 14, + "value": "90" + }, + { + "begin": 4829, + "end": 4966, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH [tag]", + "source": 14, + "value": "91" + }, + { + "begin": 4829, + "end": 4966, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "tag", + "source": 14, + "value": "89" + }, + { + "begin": 4829, + "end": 4966, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "STOP", + "source": 14 + }, + { + "begin": 12452, + "end": 12689, + "name": "tag", + "source": 13, + "value": "10" + }, + { + "begin": 12452, + "end": 12689, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "DUP1", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "PUSH [tag]", + "source": 13, + "value": "92" + }, + { + "begin": 12452, + "end": 12689, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 12452, + "end": 12689, + "name": "DUP1", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "REVERT", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "tag", + "source": 13, + "value": "92" + }, + { + "begin": 12452, + "end": 12689, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "POP", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "PUSH [tag]", + "source": 13, + "value": "93" + }, + { + "begin": 12452, + "end": 12689, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 12452, + "end": 12689, + "name": "DUP1", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "SUB", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "DUP2", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "ADD", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "PUSH [tag]", + "source": 13, + "value": "94" + }, + { + "begin": 12452, + "end": 12689, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "PUSH [tag]", + "source": 13, + "value": "95" + }, + { + "begin": 12452, + "end": 12689, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "tag", + "source": 13, + "value": "94" + }, + { + "begin": 12452, + "end": 12689, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "PUSH [tag]", + "source": 13, + "value": "96" + }, + { + "begin": 12452, + "end": 12689, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "tag", + "source": 13, + "value": "93" + }, + { + "begin": 12452, + "end": 12689, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "STOP", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "tag", + "source": 13, + "value": "11" + }, + { + "begin": 8562, + "end": 8801, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "PUSH [tag]", + "source": 13, + "value": "97" + }, + { + "begin": 8562, + "end": 8801, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 8562, + "end": 8801, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "REVERT", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "tag", + "source": 13, + "value": "97" + }, + { + "begin": 8562, + "end": 8801, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "POP", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "PUSH [tag]", + "source": 13, + "value": "98" + }, + { + "begin": 8562, + "end": 8801, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 8562, + "end": 8801, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "SUB", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "ADD", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "PUSH [tag]", + "source": 13, + "value": "99" + }, + { + "begin": 8562, + "end": 8801, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "PUSH [tag]", + "source": 13, + "value": "69" + }, + { + "begin": 8562, + "end": 8801, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "tag", + "source": 13, + "value": "99" + }, + { + "begin": 8562, + "end": 8801, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "PUSH [tag]", + "source": 13, + "value": "100" + }, + { + "begin": 8562, + "end": 8801, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "tag", + "source": 13, + "value": "98" + }, + { + "begin": 8562, + "end": 8801, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "STOP", + "source": 13 + }, + { + "begin": 4708, + "end": 4837, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "DUP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "101" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 4708, + "end": 4837, + "name": "DUP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "REVERT", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "tag", + "source": 0, + "value": "101" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "POP", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "102" + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 4708, + "end": 4837, + "name": "DUP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SUB", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "ADD", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "103" + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "104" + }, + { + "begin": 4708, + "end": 4837, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "tag", + "source": 0, + "value": "103" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "105" + }, + { + "begin": 4708, + "end": 4837, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "tag", + "source": 0, + "value": "102" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4708, + "end": 4837, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "106" + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "107" + }, + { + "begin": 4708, + "end": 4837, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "tag", + "source": 0, + "value": "106" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4708, + "end": 4837, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "DUP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SUB", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "RETURN", + "source": 0 + }, + { + "begin": 4225, + "end": 4337, + "name": "tag", + "source": 14, + "value": "13" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "DUP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "108" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 4225, + "end": 4337, + "name": "DUP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "REVERT", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "tag", + "source": 14, + "value": "108" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "POP", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "109" + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 4225, + "end": 4337, + "name": "DUP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SUB", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "DUP2", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "ADD", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "110" + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "69" + }, + { + "begin": 4225, + "end": 4337, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "tag", + "source": 14, + "value": "110" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "111" + }, + { + "begin": 4225, + "end": 4337, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "tag", + "source": 14, + "value": "109" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 4225, + "end": 4337, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "112" + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "60" + }, + { + "begin": 4225, + "end": 4337, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "tag", + "source": 14, + "value": "112" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 4225, + "end": 4337, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "DUP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SUB", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "RETURN", + "source": 14 + }, + { + "begin": 2174, + "end": 2195, + "name": "tag", + "source": 13, + "value": "14" + }, + { + "begin": 2174, + "end": 2195, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "PUSH [tag]", + "source": 13, + "value": "113" + }, + { + "begin": 2174, + "end": 2195, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2174, + "end": 2195, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "REVERT", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "tag", + "source": 13, + "value": "113" + }, + { + "begin": 2174, + "end": 2195, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "POP", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "PUSH [tag]", + "source": 13, + "value": "114" + }, + { + "begin": 2174, + "end": 2195, + "name": "PUSH [tag]", + "source": 13, + "value": "115" + }, + { + "begin": 2174, + "end": 2195, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "tag", + "source": 13, + "value": "114" + }, + { + "begin": 2174, + "end": 2195, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2174, + "end": 2195, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "PUSH [tag]", + "source": 13, + "value": "116" + }, + { + "begin": 2174, + "end": 2195, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "PUSH [tag]", + "source": 13, + "value": "117" + }, + { + "begin": 2174, + "end": 2195, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "tag", + "source": 13, + "value": "116" + }, + { + "begin": 2174, + "end": 2195, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2174, + "end": 2195, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "SUB", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "RETURN", + "source": 13 + }, + { + "begin": 7892, + "end": 8051, + "name": "tag", + "source": 14, + "value": "15" + }, + { + "begin": 7892, + "end": 8051, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "DUP1", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH [tag]", + "source": 14, + "value": "118" + }, + { + "begin": 7892, + "end": 8051, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 7892, + "end": 8051, + "name": "DUP1", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "REVERT", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "tag", + "source": 14, + "value": "118" + }, + { + "begin": 7892, + "end": 8051, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "POP", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH [tag]", + "source": 14, + "value": "119" + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 7892, + "end": 8051, + "name": "DUP1", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "SUB", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "DUP2", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "ADD", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH [tag]", + "source": 14, + "value": "120" + }, + { + "begin": 7892, + "end": 8051, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH [tag]", + "source": 14, + "value": "64" + }, + { + "begin": 7892, + "end": 8051, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "tag", + "source": 14, + "value": "120" + }, + { + "begin": 7892, + "end": 8051, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH [tag]", + "source": 14, + "value": "121" + }, + { + "begin": 7892, + "end": 8051, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "tag", + "source": 14, + "value": "119" + }, + { + "begin": 7892, + "end": 8051, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "STOP", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "tag", + "source": 14, + "value": "16" + }, + { + "begin": 615, + "end": 665, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "DUP1", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH [tag]", + "source": 14, + "value": "122" + }, + { + "begin": 615, + "end": 665, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 615, + "end": 665, + "name": "DUP1", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "REVERT", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "tag", + "source": 14, + "value": "122" + }, + { + "begin": 615, + "end": 665, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "POP", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH [tag]", + "source": 14, + "value": "123" + }, + { + "begin": 615, + "end": 665, + "name": "PUSH [tag]", + "source": 14, + "value": "124" + }, + { + "begin": 615, + "end": 665, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "tag", + "source": 14, + "value": "123" + }, + { + "begin": 615, + "end": 665, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 615, + "end": 665, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH [tag]", + "source": 14, + "value": "125" + }, + { + "begin": 615, + "end": 665, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH [tag]", + "source": 14, + "value": "107" + }, + { + "begin": 615, + "end": 665, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "tag", + "source": 14, + "value": "125" + }, + { + "begin": 615, + "end": 665, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 615, + "end": 665, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "DUP1", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "SUB", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "RETURN", + "source": 14 + }, + { + "begin": 5133, + "end": 5278, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 5133, + "end": 5278, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "DUP1", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH [tag]", + "source": 0, + "value": "126" + }, + { + "begin": 5133, + "end": 5278, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 5133, + "end": 5278, + "name": "DUP1", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "REVERT", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "tag", + "source": 0, + "value": "126" + }, + { + "begin": 5133, + "end": 5278, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "POP", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH [tag]", + "source": 0, + "value": "127" + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 5133, + "end": 5278, + "name": "DUP1", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "SUB", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "DUP2", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "ADD", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH [tag]", + "source": 0, + "value": "128" + }, + { + "begin": 5133, + "end": 5278, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH [tag]", + "source": 0, + "value": "129" + }, + { + "begin": 5133, + "end": 5278, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "tag", + "source": 0, + "value": "128" + }, + { + "begin": 5133, + "end": 5278, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH [tag]", + "source": 0, + "value": "130" + }, + { + "begin": 5133, + "end": 5278, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "tag", + "source": 0, + "value": "127" + }, + { + "begin": 5133, + "end": 5278, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "STOP", + "source": 0 + }, + { + "begin": 11845, + "end": 11959, + "name": "tag", + "source": 13, + "value": "18" + }, + { + "begin": 11845, + "end": 11959, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "PUSH [tag]", + "source": 13, + "value": "131" + }, + { + "begin": 11845, + "end": 11959, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11845, + "end": 11959, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "REVERT", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "tag", + "source": 13, + "value": "131" + }, + { + "begin": 11845, + "end": 11959, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "POP", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "PUSH [tag]", + "source": 13, + "value": "132" + }, + { + "begin": 11845, + "end": 11959, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 11845, + "end": 11959, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "SUB", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "ADD", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "PUSH [tag]", + "source": 13, + "value": "133" + }, + { + "begin": 11845, + "end": 11959, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "PUSH [tag]", + "source": 13, + "value": "134" + }, + { + "begin": 11845, + "end": 11959, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "tag", + "source": 13, + "value": "133" + }, + { + "begin": 11845, + "end": 11959, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "PUSH [tag]", + "source": 13, + "value": "135" + }, + { + "begin": 11845, + "end": 11959, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "tag", + "source": 13, + "value": "132" + }, + { + "begin": 11845, + "end": 11959, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "STOP", + "source": 13 + }, + { + "begin": 6242, + "end": 6456, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 6242, + "end": 6456, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "DUP1", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH [tag]", + "source": 0, + "value": "136" + }, + { + "begin": 6242, + "end": 6456, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 6242, + "end": 6456, + "name": "DUP1", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "REVERT", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "tag", + "source": 0, + "value": "136" + }, + { + "begin": 6242, + "end": 6456, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "POP", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH [tag]", + "source": 0, + "value": "137" + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 6242, + "end": 6456, + "name": "DUP1", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "SUB", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "DUP2", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "ADD", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH [tag]", + "source": 0, + "value": "138" + }, + { + "begin": 6242, + "end": 6456, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH [tag]", + "source": 0, + "value": "129" + }, + { + "begin": 6242, + "end": 6456, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "tag", + "source": 0, + "value": "138" + }, + { + "begin": 6242, + "end": 6456, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH [tag]", + "source": 0, + "value": "139" + }, + { + "begin": 6242, + "end": 6456, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "tag", + "source": 0, + "value": "137" + }, + { + "begin": 6242, + "end": 6456, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "STOP", + "source": 0 + }, + { + "begin": 8032, + "end": 8400, + "name": "tag", + "source": 13, + "value": "20" + }, + { + "begin": 8032, + "end": 8400, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "PUSH [tag]", + "source": 13, + "value": "140" + }, + { + "begin": 8032, + "end": 8400, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 8032, + "end": 8400, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "REVERT", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "tag", + "source": 13, + "value": "140" + }, + { + "begin": 8032, + "end": 8400, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "POP", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "PUSH [tag]", + "source": 13, + "value": "141" + }, + { + "begin": 8032, + "end": 8400, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 8032, + "end": 8400, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "SUB", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "ADD", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "PUSH [tag]", + "source": 13, + "value": "142" + }, + { + "begin": 8032, + "end": 8400, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "PUSH [tag]", + "source": 13, + "value": "143" + }, + { + "begin": 8032, + "end": 8400, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "tag", + "source": 13, + "value": "142" + }, + { + "begin": 8032, + "end": 8400, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "PUSH [tag]", + "source": 13, + "value": "144" + }, + { + "begin": 8032, + "end": 8400, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "tag", + "source": 13, + "value": "141" + }, + { + "begin": 8032, + "end": 8400, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "STOP", + "source": 13 + }, + { + "begin": 3393, + "end": 3523, + "name": "tag", + "source": 14, + "value": "21" + }, + { + "begin": 3393, + "end": 3523, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH [tag]", + "source": 14, + "value": "145" + }, + { + "begin": 3393, + "end": 3523, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 3393, + "end": 3523, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "REVERT", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "tag", + "source": 14, + "value": "145" + }, + { + "begin": 3393, + "end": 3523, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "POP", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH [tag]", + "source": 14, + "value": "146" + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 3393, + "end": 3523, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "SUB", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "DUP2", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "ADD", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH [tag]", + "source": 14, + "value": "147" + }, + { + "begin": 3393, + "end": 3523, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH [tag]", + "source": 14, + "value": "64" + }, + { + "begin": 3393, + "end": 3523, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "tag", + "source": 14, + "value": "147" + }, + { + "begin": 3393, + "end": 3523, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH [tag]", + "source": 14, + "value": "148" + }, + { + "begin": 3393, + "end": 3523, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "tag", + "source": 14, + "value": "146" + }, + { + "begin": 3393, + "end": 3523, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "STOP", + "source": 14 + }, + { + "begin": 7626, + "end": 7819, + "name": "tag", + "source": 13, + "value": "22" + }, + { + "begin": 7626, + "end": 7819, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "PUSH [tag]", + "source": 13, + "value": "149" + }, + { + "begin": 7626, + "end": 7819, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 7626, + "end": 7819, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "REVERT", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "tag", + "source": 13, + "value": "149" + }, + { + "begin": 7626, + "end": 7819, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "POP", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "PUSH [tag]", + "source": 13, + "value": "150" + }, + { + "begin": 7626, + "end": 7819, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 7626, + "end": 7819, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "SUB", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "ADD", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "PUSH [tag]", + "source": 13, + "value": "151" + }, + { + "begin": 7626, + "end": 7819, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "PUSH [tag]", + "source": 13, + "value": "152" + }, + { + "begin": 7626, + "end": 7819, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "tag", + "source": 13, + "value": "151" + }, + { + "begin": 7626, + "end": 7819, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "PUSH [tag]", + "source": 13, + "value": "153" + }, + { + "begin": 7626, + "end": 7819, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "tag", + "source": 13, + "value": "150" + }, + { + "begin": 7626, + "end": 7819, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "STOP", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "tag", + "source": 13, + "value": "23" + }, + { + "begin": 2202, + "end": 2236, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH [tag]", + "source": 13, + "value": "154" + }, + { + "begin": 2202, + "end": 2236, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2202, + "end": 2236, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "REVERT", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "tag", + "source": 13, + "value": "154" + }, + { + "begin": 2202, + "end": 2236, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "POP", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH [tag]", + "source": 13, + "value": "155" + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH [tag]", + "source": 13, + "value": "156" + }, + { + "begin": 2202, + "end": 2236, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "tag", + "source": 13, + "value": "155" + }, + { + "begin": 2202, + "end": 2236, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2202, + "end": 2236, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH [tag]", + "source": 13, + "value": "157" + }, + { + "begin": 2202, + "end": 2236, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH [tag]", + "source": 13, + "value": "60" + }, + { + "begin": 2202, + "end": 2236, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "tag", + "source": 13, + "value": "157" + }, + { + "begin": 2202, + "end": 2236, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2202, + "end": 2236, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "SUB", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "RETURN", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "tag", + "source": 13, + "value": "24" + }, + { + "begin": 7299, + "end": 7431, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "PUSH [tag]", + "source": 13, + "value": "158" + }, + { + "begin": 7299, + "end": 7431, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 7299, + "end": 7431, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "REVERT", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "tag", + "source": 13, + "value": "158" + }, + { + "begin": 7299, + "end": 7431, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "POP", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "PUSH [tag]", + "source": 13, + "value": "159" + }, + { + "begin": 7299, + "end": 7431, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 7299, + "end": 7431, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "SUB", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "ADD", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "PUSH [tag]", + "source": 13, + "value": "160" + }, + { + "begin": 7299, + "end": 7431, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "PUSH [tag]", + "source": 13, + "value": "64" + }, + { + "begin": 7299, + "end": 7431, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "tag", + "source": 13, + "value": "160" + }, + { + "begin": 7299, + "end": 7431, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "PUSH [tag]", + "source": 13, + "value": "161" + }, + { + "begin": 7299, + "end": 7431, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "tag", + "source": 13, + "value": "159" + }, + { + "begin": 7299, + "end": 7431, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "STOP", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "tag", + "source": 13, + "value": "25" + }, + { + "begin": 12900, + "end": 13175, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "DUP1", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "PUSH [tag]", + "source": 13, + "value": "162" + }, + { + "begin": 12900, + "end": 13175, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 12900, + "end": 13175, + "name": "DUP1", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "REVERT", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "tag", + "source": 13, + "value": "162" + }, + { + "begin": 12900, + "end": 13175, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "POP", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "PUSH [tag]", + "source": 13, + "value": "163" + }, + { + "begin": 12900, + "end": 13175, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 12900, + "end": 13175, + "name": "DUP1", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "SUB", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "DUP2", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "ADD", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "PUSH [tag]", + "source": 13, + "value": "164" + }, + { + "begin": 12900, + "end": 13175, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "PUSH [tag]", + "source": 13, + "value": "95" + }, + { + "begin": 12900, + "end": 13175, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "tag", + "source": 13, + "value": "164" + }, + { + "begin": 12900, + "end": 13175, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "PUSH [tag]", + "source": 13, + "value": "165" + }, + { + "begin": 12900, + "end": 13175, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "tag", + "source": 13, + "value": "163" + }, + { + "begin": 12900, + "end": 13175, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "STOP", + "source": 13 + }, + { + "begin": 6185, + "end": 6348, + "name": "tag", + "source": 14, + "value": "26" + }, + { + "begin": 6185, + "end": 6348, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH [tag]", + "source": 14, + "value": "166" + }, + { + "begin": 6185, + "end": 6348, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 6185, + "end": 6348, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "REVERT", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "tag", + "source": 14, + "value": "166" + }, + { + "begin": 6185, + "end": 6348, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "POP", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH [tag]", + "source": 14, + "value": "167" + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 6185, + "end": 6348, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "SUB", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "DUP2", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "ADD", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH [tag]", + "source": 14, + "value": "168" + }, + { + "begin": 6185, + "end": 6348, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH [tag]", + "source": 14, + "value": "64" + }, + { + "begin": 6185, + "end": 6348, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "tag", + "source": 14, + "value": "168" + }, + { + "begin": 6185, + "end": 6348, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH [tag]", + "source": 14, + "value": "169" + }, + { + "begin": 6185, + "end": 6348, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "tag", + "source": 14, + "value": "167" + }, + { + "begin": 6185, + "end": 6348, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "STOP", + "source": 14 + }, + { + "begin": 3203, + "end": 3348, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "DUP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "170" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3203, + "end": 3348, + "name": "DUP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "REVERT", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "tag", + "source": 0, + "value": "170" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "POP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "171" + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 3203, + "end": 3348, + "name": "DUP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SUB", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "ADD", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "172" + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "129" + }, + { + "begin": 3203, + "end": 3348, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "tag", + "source": 0, + "value": "172" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "173" + }, + { + "begin": 3203, + "end": 3348, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "tag", + "source": 0, + "value": "171" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 3203, + "end": 3348, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "174" + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "60" + }, + { + "begin": 3203, + "end": 3348, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "tag", + "source": 0, + "value": "174" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 3203, + "end": 3348, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "DUP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SUB", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "RETURN", + "source": 0 + }, + { + "begin": 7562, + "end": 7715, + "name": "tag", + "source": 14, + "value": "28" + }, + { + "begin": 7562, + "end": 7715, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "DUP1", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH [tag]", + "source": 14, + "value": "175" + }, + { + "begin": 7562, + "end": 7715, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 7562, + "end": 7715, + "name": "DUP1", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "REVERT", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "tag", + "source": 14, + "value": "175" + }, + { + "begin": 7562, + "end": 7715, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "POP", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH [tag]", + "source": 14, + "value": "176" + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 7562, + "end": 7715, + "name": "DUP1", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "SUB", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "DUP2", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "ADD", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH [tag]", + "source": 14, + "value": "177" + }, + { + "begin": 7562, + "end": 7715, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH [tag]", + "source": 14, + "value": "64" + }, + { + "begin": 7562, + "end": 7715, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "tag", + "source": 14, + "value": "177" + }, + { + "begin": 7562, + "end": 7715, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH [tag]", + "source": 14, + "value": "178" + }, + { + "begin": 7562, + "end": 7715, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "tag", + "source": 14, + "value": "176" + }, + { + "begin": 7562, + "end": 7715, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "STOP", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "tag", + "source": 14, + "value": "29" + }, + { + "begin": 781, + "end": 824, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "DUP1", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH [tag]", + "source": 14, + "value": "179" + }, + { + "begin": 781, + "end": 824, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 781, + "end": 824, + "name": "DUP1", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "REVERT", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "tag", + "source": 14, + "value": "179" + }, + { + "begin": 781, + "end": 824, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "POP", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH [tag]", + "source": 14, + "value": "180" + }, + { + "begin": 781, + "end": 824, + "name": "PUSH [tag]", + "source": 14, + "value": "181" + }, + { + "begin": 781, + "end": 824, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "tag", + "source": 14, + "value": "180" + }, + { + "begin": 781, + "end": 824, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 781, + "end": 824, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH [tag]", + "source": 14, + "value": "182" + }, + { + "begin": 781, + "end": 824, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH [tag]", + "source": 14, + "value": "76" + }, + { + "begin": 781, + "end": 824, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "tag", + "source": 14, + "value": "182" + }, + { + "begin": 781, + "end": 824, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 781, + "end": 824, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "DUP1", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "SUB", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "RETURN", + "source": 14 + }, + { + "begin": 2324, + "end": 2373, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 2324, + "end": 2373, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH [tag]", + "source": 0, + "value": "183" + }, + { + "begin": 2324, + "end": 2373, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 2324, + "end": 2373, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "REVERT", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "tag", + "source": 0, + "value": "183" + }, + { + "begin": 2324, + "end": 2373, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "POP", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH [tag]", + "source": 0, + "value": "184" + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH [tag]", + "source": 0, + "value": "185" + }, + { + "begin": 2324, + "end": 2373, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "tag", + "source": 0, + "value": "184" + }, + { + "begin": 2324, + "end": 2373, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 2324, + "end": 2373, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH [tag]", + "source": 0, + "value": "186" + }, + { + "begin": 2324, + "end": 2373, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH [tag]", + "source": 0, + "value": "107" + }, + { + "begin": 2324, + "end": 2373, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "tag", + "source": 0, + "value": "186" + }, + { + "begin": 2324, + "end": 2373, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 2324, + "end": 2373, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "SUB", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "RETURN", + "source": 0 + }, + { + "begin": 3686, + "end": 3869, + "name": "tag", + "source": 14, + "value": "31" + }, + { + "begin": 3686, + "end": 3869, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH [tag]", + "source": 14, + "value": "187" + }, + { + "begin": 3686, + "end": 3869, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 3686, + "end": 3869, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "REVERT", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "tag", + "source": 14, + "value": "187" + }, + { + "begin": 3686, + "end": 3869, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "POP", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH [tag]", + "source": 14, + "value": "188" + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 3686, + "end": 3869, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "SUB", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "DUP2", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "ADD", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH [tag]", + "source": 14, + "value": "189" + }, + { + "begin": 3686, + "end": 3869, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH [tag]", + "source": 14, + "value": "64" + }, + { + "begin": 3686, + "end": 3869, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "tag", + "source": 14, + "value": "189" + }, + { + "begin": 3686, + "end": 3869, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH [tag]", + "source": 14, + "value": "190" + }, + { + "begin": 3686, + "end": 3869, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "tag", + "source": 14, + "value": "188" + }, + { + "begin": 3686, + "end": 3869, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "STOP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "tag", + "source": 14, + "value": "32" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "DUP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "191" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 8252, + "end": 8379, + "name": "DUP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "REVERT", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "tag", + "source": 14, + "value": "191" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "POP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "192" + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 8252, + "end": 8379, + "name": "DUP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SUB", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "DUP2", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "ADD", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "193" + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "69" + }, + { + "begin": 8252, + "end": 8379, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "tag", + "source": 14, + "value": "193" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "194" + }, + { + "begin": 8252, + "end": 8379, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "tag", + "source": 14, + "value": "192" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 8252, + "end": 8379, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "195" + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "60" + }, + { + "begin": 8252, + "end": 8379, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "tag", + "source": 14, + "value": "195" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 8252, + "end": 8379, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "DUP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SUB", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "RETURN", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "tag", + "source": 14, + "value": "33" + }, + { + "begin": 5141, + "end": 5284, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "DUP1", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH [tag]", + "source": 14, + "value": "196" + }, + { + "begin": 5141, + "end": 5284, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 5141, + "end": 5284, + "name": "DUP1", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "REVERT", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "tag", + "source": 14, + "value": "196" + }, + { + "begin": 5141, + "end": 5284, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "POP", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH [tag]", + "source": 14, + "value": "197" + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 5141, + "end": 5284, + "name": "DUP1", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "SUB", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "DUP2", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "ADD", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH [tag]", + "source": 14, + "value": "198" + }, + { + "begin": 5141, + "end": 5284, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH [tag]", + "source": 14, + "value": "64" + }, + { + "begin": 5141, + "end": 5284, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "tag", + "source": 14, + "value": "198" + }, + { + "begin": 5141, + "end": 5284, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH [tag]", + "source": 14, + "value": "199" + }, + { + "begin": 5141, + "end": 5284, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "tag", + "source": 14, + "value": "197" + }, + { + "begin": 5141, + "end": 5284, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "STOP", + "source": 14 + }, + { + "begin": 2336, + "end": 2399, + "name": "tag", + "source": 13, + "value": "34" + }, + { + "begin": 2336, + "end": 2399, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH [tag]", + "source": 13, + "value": "200" + }, + { + "begin": 2336, + "end": 2399, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2336, + "end": 2399, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "REVERT", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "tag", + "source": 13, + "value": "200" + }, + { + "begin": 2336, + "end": 2399, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "POP", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH [tag]", + "source": 13, + "value": "201" + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 2336, + "end": 2399, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "SUB", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "DUP2", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "ADD", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH [tag]", + "source": 13, + "value": "202" + }, + { + "begin": 2336, + "end": 2399, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH [tag]", + "source": 13, + "value": "203" + }, + { + "begin": 2336, + "end": 2399, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "tag", + "source": 13, + "value": "202" + }, + { + "begin": 2336, + "end": 2399, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH [tag]", + "source": 13, + "value": "204" + }, + { + "begin": 2336, + "end": 2399, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "tag", + "source": 13, + "value": "201" + }, + { + "begin": 2336, + "end": 2399, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2336, + "end": 2399, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH [tag]", + "source": 13, + "value": "205" + }, + { + "begin": 2336, + "end": 2399, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH [tag]", + "source": 13, + "value": "117" + }, + { + "begin": 2336, + "end": 2399, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "tag", + "source": 13, + "value": "205" + }, + { + "begin": 2336, + "end": 2399, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2336, + "end": 2399, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "SUB", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "RETURN", + "source": 13 + }, + { + "begin": 545, + "end": 609, + "name": "tag", + "source": 14, + "value": "35" + }, + { + "begin": 545, + "end": 609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "DUP1", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH [tag]", + "source": 14, + "value": "206" + }, + { + "begin": 545, + "end": 609, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 545, + "end": 609, + "name": "DUP1", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "REVERT", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "tag", + "source": 14, + "value": "206" + }, + { + "begin": 545, + "end": 609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "POP", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH [tag]", + "source": 14, + "value": "207" + }, + { + "begin": 545, + "end": 609, + "name": "PUSH [tag]", + "source": 14, + "value": "208" + }, + { + "begin": 545, + "end": 609, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "tag", + "source": 14, + "value": "207" + }, + { + "begin": 545, + "end": 609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 545, + "end": 609, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH [tag]", + "source": 14, + "value": "209" + }, + { + "begin": 545, + "end": 609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH [tag]", + "source": 14, + "value": "107" + }, + { + "begin": 545, + "end": 609, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "tag", + "source": 14, + "value": "209" + }, + { + "begin": 545, + "end": 609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 545, + "end": 609, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "DUP1", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "SUB", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "RETURN", + "source": 14 + }, + { + "begin": 5558, + "end": 5705, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 5558, + "end": 5705, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "DUP1", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH [tag]", + "source": 0, + "value": "210" + }, + { + "begin": 5558, + "end": 5705, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 5558, + "end": 5705, + "name": "DUP1", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "REVERT", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "tag", + "source": 0, + "value": "210" + }, + { + "begin": 5558, + "end": 5705, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "POP", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH [tag]", + "source": 0, + "value": "211" + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 5558, + "end": 5705, + "name": "DUP1", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "SUB", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "DUP2", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "ADD", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH [tag]", + "source": 0, + "value": "212" + }, + { + "begin": 5558, + "end": 5705, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH [tag]", + "source": 0, + "value": "129" + }, + { + "begin": 5558, + "end": 5705, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "tag", + "source": 0, + "value": "212" + }, + { + "begin": 5558, + "end": 5705, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH [tag]", + "source": 0, + "value": "213" + }, + { + "begin": 5558, + "end": 5705, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "tag", + "source": 0, + "value": "211" + }, + { + "begin": 5558, + "end": 5705, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "STOP", + "source": 0 + }, + { + "begin": 463, + "end": 539, + "name": "tag", + "source": 14, + "value": "37" + }, + { + "begin": 463, + "end": 539, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "DUP1", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH [tag]", + "source": 14, + "value": "214" + }, + { + "begin": 463, + "end": 539, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 463, + "end": 539, + "name": "DUP1", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "REVERT", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "tag", + "source": 14, + "value": "214" + }, + { + "begin": 463, + "end": 539, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "POP", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH [tag]", + "source": 14, + "value": "215" + }, + { + "begin": 463, + "end": 539, + "name": "PUSH [tag]", + "source": 14, + "value": "216" + }, + { + "begin": 463, + "end": 539, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "tag", + "source": 14, + "value": "215" + }, + { + "begin": 463, + "end": 539, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 463, + "end": 539, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH [tag]", + "source": 14, + "value": "217" + }, + { + "begin": 463, + "end": 539, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH [tag]", + "source": 14, + "value": "107" + }, + { + "begin": 463, + "end": 539, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "tag", + "source": 14, + "value": "217" + }, + { + "begin": 463, + "end": 539, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 463, + "end": 539, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "DUP1", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "SUB", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "RETURN", + "source": 14 + }, + { + "begin": 998, + "end": 1144, + "name": "tag", + "source": 15, + "value": "38" + }, + { + "begin": 998, + "end": 1144, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "name": "CALLVALUE", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "name": "DUP1", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "name": "ISZERO", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "name": "PUSH [tag]", + "source": 15, + "value": "218" + }, + { + "begin": 998, + "end": 1144, + "name": "JUMPI", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "name": "PUSH", + "source": 15, + "value": "0" + }, + { + "begin": 998, + "end": 1144, + "name": "DUP1", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "name": "REVERT", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "name": "tag", + "source": 15, + "value": "218" + }, + { + "begin": 998, + "end": 1144, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "name": "POP", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "name": "PUSH [tag]", + "source": 15, + "value": "219" + }, + { + "begin": 998, + "end": 1144, + "name": "PUSH [tag]", + "source": 15, + "value": "220" + }, + { + "begin": 998, + "end": 1144, + "jumpType": "[in]", + "name": "JUMP", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "name": "tag", + "source": 15, + "value": "219" + }, + { + "begin": 998, + "end": 1144, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "name": "STOP", + "source": 15 + }, + { + "begin": 2697, + "end": 3109, + "name": "tag", + "source": 13, + "value": "39" + }, + { + "begin": 2697, + "end": 3109, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "PUSH [tag]", + "source": 13, + "value": "221" + }, + { + "begin": 2697, + "end": 3109, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2697, + "end": 3109, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "REVERT", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "tag", + "source": 13, + "value": "221" + }, + { + "begin": 2697, + "end": 3109, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "POP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "PUSH [tag]", + "source": 13, + "value": "222" + }, + { + "begin": 2697, + "end": 3109, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 2697, + "end": 3109, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "SUB", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "DUP2", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "ADD", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "PUSH [tag]", + "source": 13, + "value": "223" + }, + { + "begin": 2697, + "end": 3109, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "PUSH [tag]", + "source": 13, + "value": "224" + }, + { + "begin": 2697, + "end": 3109, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "tag", + "source": 13, + "value": "223" + }, + { + "begin": 2697, + "end": 3109, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "PUSH [tag]", + "source": 13, + "value": "225" + }, + { + "begin": 2697, + "end": 3109, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "tag", + "source": 13, + "value": "222" + }, + { + "begin": 2697, + "end": 3109, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "STOP", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "tag", + "source": 13, + "value": "40" + }, + { + "begin": 6962, + "end": 7152, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "DUP1", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "PUSH [tag]", + "source": 13, + "value": "226" + }, + { + "begin": 6962, + "end": 7152, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 6962, + "end": 7152, + "name": "DUP1", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "REVERT", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "tag", + "source": 13, + "value": "226" + }, + { + "begin": 6962, + "end": 7152, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "POP", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "PUSH [tag]", + "source": 13, + "value": "227" + }, + { + "begin": 6962, + "end": 7152, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 6962, + "end": 7152, + "name": "DUP1", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "SUB", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "DUP2", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "ADD", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "PUSH [tag]", + "source": 13, + "value": "228" + }, + { + "begin": 6962, + "end": 7152, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "PUSH [tag]", + "source": 13, + "value": "229" + }, + { + "begin": 6962, + "end": 7152, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "tag", + "source": 13, + "value": "228" + }, + { + "begin": 6962, + "end": 7152, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "PUSH [tag]", + "source": 13, + "value": "230" + }, + { + "begin": 6962, + "end": 7152, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "tag", + "source": 13, + "value": "227" + }, + { + "begin": 6962, + "end": 7152, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "STOP", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "tag", + "source": 13, + "value": "41" + }, + { + "begin": 11280, + "end": 11698, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "PUSH [tag]", + "source": 13, + "value": "231" + }, + { + "begin": 11280, + "end": 11698, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11280, + "end": 11698, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "REVERT", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "tag", + "source": 13, + "value": "231" + }, + { + "begin": 11280, + "end": 11698, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "POP", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "PUSH [tag]", + "source": 13, + "value": "232" + }, + { + "begin": 11280, + "end": 11698, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 11280, + "end": 11698, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "SUB", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "ADD", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "PUSH [tag]", + "source": 13, + "value": "233" + }, + { + "begin": 11280, + "end": 11698, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "PUSH [tag]", + "source": 13, + "value": "152" + }, + { + "begin": 11280, + "end": 11698, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "tag", + "source": 13, + "value": "233" + }, + { + "begin": 11280, + "end": 11698, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "PUSH [tag]", + "source": 13, + "value": "234" + }, + { + "begin": 11280, + "end": 11698, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "tag", + "source": 13, + "value": "232" + }, + { + "begin": 11280, + "end": 11698, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 11280, + "end": 11698, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "PUSH [tag]", + "source": 13, + "value": "235" + }, + { + "begin": 11280, + "end": 11698, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "PUSH [tag]", + "source": 13, + "value": "236" + }, + { + "begin": 11280, + "end": 11698, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "tag", + "source": 13, + "value": "235" + }, + { + "begin": 11280, + "end": 11698, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 11280, + "end": 11698, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "SUB", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "RETURN", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "tag", + "source": 13, + "value": "42" + }, + { + "begin": 10922, + "end": 11073, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "DUP1", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "PUSH [tag]", + "source": 13, + "value": "237" + }, + { + "begin": 10922, + "end": 11073, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10922, + "end": 11073, + "name": "DUP1", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "REVERT", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "tag", + "source": 13, + "value": "237" + }, + { + "begin": 10922, + "end": 11073, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "POP", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "PUSH [tag]", + "source": 13, + "value": "238" + }, + { + "begin": 10922, + "end": 11073, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 10922, + "end": 11073, + "name": "DUP1", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "SUB", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "ADD", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "PUSH [tag]", + "source": 13, + "value": "239" + }, + { + "begin": 10922, + "end": 11073, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "PUSH [tag]", + "source": 13, + "value": "203" + }, + { + "begin": 10922, + "end": 11073, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "tag", + "source": 13, + "value": "239" + }, + { + "begin": 10922, + "end": 11073, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "PUSH [tag]", + "source": 13, + "value": "240" + }, + { + "begin": 10922, + "end": 11073, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "tag", + "source": 13, + "value": "238" + }, + { + "begin": 10922, + "end": 11073, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10922, + "end": 11073, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "PUSH [tag]", + "source": 13, + "value": "241" + }, + { + "begin": 10922, + "end": 11073, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "PUSH [tag]", + "source": 13, + "value": "117" + }, + { + "begin": 10922, + "end": 11073, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "tag", + "source": 13, + "value": "241" + }, + { + "begin": 10922, + "end": 11073, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10922, + "end": 11073, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "DUP1", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "SUB", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "RETURN", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "tag", + "source": 13, + "value": "43" + }, + { + "begin": 2078, + "end": 2116, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "PUSH [tag]", + "source": 13, + "value": "242" + }, + { + "begin": 2078, + "end": 2116, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2078, + "end": 2116, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "REVERT", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "tag", + "source": 13, + "value": "242" + }, + { + "begin": 2078, + "end": 2116, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "POP", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "PUSH [tag]", + "source": 13, + "value": "243" + }, + { + "begin": 2078, + "end": 2116, + "name": "PUSH [tag]", + "source": 13, + "value": "244" + }, + { + "begin": 2078, + "end": 2116, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "tag", + "source": 13, + "value": "243" + }, + { + "begin": 2078, + "end": 2116, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2078, + "end": 2116, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "PUSH [tag]", + "source": 13, + "value": "245" + }, + { + "begin": 2078, + "end": 2116, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "PUSH [tag]", + "source": 13, + "value": "117" + }, + { + "begin": 2078, + "end": 2116, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "tag", + "source": 13, + "value": "245" + }, + { + "begin": 2078, + "end": 2116, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2078, + "end": 2116, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "SUB", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "RETURN", + "source": 13 + }, + { + "begin": 6919, + "end": 7060, + "name": "tag", + "source": 14, + "value": "44" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "246" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 6919, + "end": 7060, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "REVERT", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "tag", + "source": 14, + "value": "246" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "POP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "247" + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 6919, + "end": 7060, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SUB", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "DUP2", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "ADD", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "248" + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "69" + }, + { + "begin": 6919, + "end": 7060, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "tag", + "source": 14, + "value": "248" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "249" + }, + { + "begin": 6919, + "end": 7060, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "tag", + "source": 14, + "value": "247" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 6919, + "end": 7060, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "250" + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "60" + }, + { + "begin": 6919, + "end": 7060, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "tag", + "source": 14, + "value": "250" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 6919, + "end": 7060, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SUB", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "RETURN", + "source": 14 + }, + { + "begin": 3990, + "end": 5506, + "name": "tag", + "source": 13, + "value": "45" + }, + { + "begin": 3990, + "end": 5506, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "PUSH [tag]", + "source": 13, + "value": "251" + }, + { + "begin": 3990, + "end": 5506, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 3990, + "end": 5506, + "name": "DUP1", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "SUB", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "DUP2", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "ADD", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "PUSH [tag]", + "source": 13, + "value": "252" + }, + { + "begin": 3990, + "end": 5506, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "PUSH [tag]", + "source": 13, + "value": "253" + }, + { + "begin": 3990, + "end": 5506, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "tag", + "source": 13, + "value": "252" + }, + { + "begin": 3990, + "end": 5506, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "PUSH [tag]", + "source": 13, + "value": "254" + }, + { + "begin": 3990, + "end": 5506, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "tag", + "source": 13, + "value": "251" + }, + { + "begin": 3990, + "end": 5506, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "STOP", + "source": 13 + }, + { + "begin": 389, + "end": 457, + "name": "tag", + "source": 14, + "value": "46" + }, + { + "begin": 389, + "end": 457, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "DUP1", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH [tag]", + "source": 14, + "value": "255" + }, + { + "begin": 389, + "end": 457, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 389, + "end": 457, + "name": "DUP1", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "REVERT", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "tag", + "source": 14, + "value": "255" + }, + { + "begin": 389, + "end": 457, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "POP", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH [tag]", + "source": 14, + "value": "256" + }, + { + "begin": 389, + "end": 457, + "name": "PUSH [tag]", + "source": 14, + "value": "257" + }, + { + "begin": 389, + "end": 457, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "tag", + "source": 14, + "value": "256" + }, + { + "begin": 389, + "end": 457, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 389, + "end": 457, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH [tag]", + "source": 14, + "value": "258" + }, + { + "begin": 389, + "end": 457, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH [tag]", + "source": 14, + "value": "107" + }, + { + "begin": 389, + "end": 457, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "tag", + "source": 14, + "value": "258" + }, + { + "begin": 389, + "end": 457, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 389, + "end": 457, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "DUP1", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "SUB", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "RETURN", + "source": 14 + }, + { + "begin": 2903, + "end": 3116, + "name": "tag", + "source": 0, + "value": "58" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2988, + "end": 2992, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3026, + "end": 3069, + "name": "PUSH", + "source": 0, + "value": "7965DB0B00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3011, + "end": 3069, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3011, + "end": 3069, + "name": "NOT", + "source": 0 + }, + { + "begin": 3011, + "end": 3069, + "name": "AND", + "source": 0 + }, + { + "begin": 3011, + "end": 3022, + "name": "DUP3", + "source": 0 + }, + { + "begin": 3011, + "end": 3069, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3011, + "end": 3069, + "name": "NOT", + "source": 0 + }, + { + "begin": 3011, + "end": 3069, + "name": "AND", + "source": 0 + }, + { + "begin": 3011, + "end": 3069, + "name": "EQ", + "source": 0 + }, + { + "begin": 3011, + "end": 3109, + "name": "DUP1", + "source": 0 + }, + { + "begin": 3011, + "end": 3109, + "name": "PUSH [tag]", + "source": 0, + "value": "260" + }, + { + "begin": 3011, + "end": 3109, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 3011, + "end": 3109, + "name": "POP", + "source": 0 + }, + { + "begin": 3073, + "end": 3109, + "name": "PUSH [tag]", + "source": 0, + "value": "261" + }, + { + "begin": 3097, + "end": 3108, + "name": "DUP3", + "source": 0 + }, + { + "begin": 3073, + "end": 3096, + "name": "PUSH [tag]", + "source": 0, + "value": "262" + }, + { + "begin": 3073, + "end": 3109, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3073, + "end": 3109, + "name": "tag", + "source": 0, + "value": "261" + }, + { + "begin": 3073, + "end": 3109, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3011, + "end": 3109, + "name": "tag", + "source": 0, + "value": "260" + }, + { + "begin": 3011, + "end": 3109, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3004, + "end": 3109, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3004, + "end": 3109, + "name": "POP", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "POP", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 8969, + "end": 9146, + "name": "tag", + "source": 13, + "value": "65" + }, + { + "begin": 8969, + "end": 9146, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2505, + "end": 2526, + "name": "PUSH [tag]", + "source": 3, + "value": "264" + }, + { + "begin": 2505, + "end": 2524, + "name": "PUSH [tag]", + "source": 3, + "value": "265" + }, + { + "begin": 2505, + "end": 2526, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2505, + "end": 2526, + "name": "tag", + "source": 3, + "value": "264" + }, + { + "begin": 2505, + "end": 2526, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 9053, + "end": 9082, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "267" + }, + { + "begin": 9071, + "end": 9081, + "modifierDepth": 1, + "name": "CALLER", + "source": 13 + }, + { + "begin": 9053, + "end": 9070, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "268" + }, + { + "begin": 9053, + "end": 9082, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 9053, + "end": 9082, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "267" + }, + { + "begin": 9053, + "end": 9082, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "269" + }, + { + "begin": 9105, + "end": 9111, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 9105, + "end": 9111, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "SWAP4", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP5", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "CALLDATACOPY", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP5", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1F" + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "NOT", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1F" + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "AND", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 9121, + "end": 9125, + "modifierDepth": 1, + "name": "ADDRESS", + "source": 13 + }, + { + "begin": 9128, + "end": 9138, + "modifierDepth": 1, + "name": "CALLER", + "source": 13 + }, + { + "begin": 9092, + "end": 9104, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "270" + }, + { + "begin": 9092, + "end": 9139, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "269" + }, + { + "begin": 9092, + "end": 9139, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2547, + "end": 2567, + "name": "PUSH [tag]", + "source": 3, + "value": "271" + }, + { + "begin": 2547, + "end": 2565, + "name": "PUSH [tag]", + "source": 3, + "value": "272" + }, + { + "begin": 2547, + "end": 2567, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2547, + "end": 2567, + "name": "tag", + "source": 3, + "value": "271" + }, + { + "begin": 2547, + "end": 2567, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 8969, + "end": 9146, + "name": "POP", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "name": "POP", + "source": 13 + }, + { + "begin": 8969, + "end": 9146, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 5484, + "end": 5609, + "name": "tag", + "source": 14, + "value": "70" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5548, + "end": 5552, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 5571, + "end": 5602, + "name": "PUSH [tag]", + "source": 14, + "value": "274" + }, + { + "begin": 430, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 5595, + "end": 5601, + "name": "DUP4", + "source": 14 + }, + { + "begin": 5571, + "end": 5578, + "name": "PUSH [tag]", + "source": 14, + "value": "173" + }, + { + "begin": 5571, + "end": 5602, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5571, + "end": 5602, + "name": "tag", + "source": 14, + "value": "274" + }, + { + "begin": 5571, + "end": 5602, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5564, + "end": 5602, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5564, + "end": 5602, + "name": "POP", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "POP", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 460, + "end": 487, + "name": "tag", + "source": 15, + "value": "74" + }, + { + "begin": 460, + "end": 487, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "PUSH", + "source": 15, + "value": "0" + }, + { + "begin": 460, + "end": 487, + "name": "DUP1", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "SLOAD", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "PUSH", + "source": 15, + "value": "100" + }, + { + "begin": 460, + "end": 487, + "name": "EXP", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "DIV", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 460, + "end": 487, + "name": "AND", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "name": "DUP2", + "source": 15 + }, + { + "begin": 460, + "end": 487, + "jumpType": "[out]", + "name": "JUMP", + "source": 15 + }, + { + "begin": 3931, + "end": 4043, + "name": "tag", + "source": 14, + "value": "79" + }, + { + "begin": 3931, + "end": 4043, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3973, + "end": 3996, + "name": "PUSH [tag]", + "source": 14, + "value": "276" + }, + { + "begin": 3985, + "end": 3995, + "name": "CALLER", + "source": 14 + }, + { + "begin": 3973, + "end": 3984, + "name": "PUSH [tag]", + "source": 14, + "value": "277" + }, + { + "begin": 3973, + "end": 3996, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3973, + "end": 3996, + "name": "tag", + "source": 14, + "value": "276" + }, + { + "begin": 3973, + "end": 3996, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4006, + "end": 4036, + "name": "PUSH [tag]", + "source": 14, + "value": "278" + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 4025, + "end": 4035, + "name": "CALLER", + "source": 14 + }, + { + "begin": 4006, + "end": 4017, + "name": "PUSH [tag]", + "source": 14, + "value": "279" + }, + { + "begin": 4006, + "end": 4036, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4006, + "end": 4036, + "name": "tag", + "source": 14, + "value": "278" + }, + { + "begin": 4006, + "end": 4036, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2242, + "end": 2280, + "name": "tag", + "source": 13, + "value": "82" + }, + { + "begin": 2242, + "end": 2280, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH", + "source": 13, + "value": "CA" + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 2242, + "end": 2280, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH", + "source": 13, + "value": "100" + }, + { + "begin": 2242, + "end": 2280, + "name": "EXP", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "DIV", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "PUSH", + "source": 13, + "value": "FF" + }, + { + "begin": 2242, + "end": 2280, + "name": "AND", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "name": "DUP2", + "source": 13 + }, + { + "begin": 2242, + "end": 2280, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 6536, + "end": 6705, + "name": "tag", + "source": 14, + "value": "87" + }, + { + "begin": 6536, + "end": 6705, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6620, + "end": 6643, + "name": "PUSH [tag]", + "source": 14, + "value": "281" + }, + { + "begin": 6632, + "end": 6642, + "name": "CALLER", + "source": 14 + }, + { + "begin": 6620, + "end": 6631, + "name": "PUSH [tag]", + "source": 14, + "value": "277" + }, + { + "begin": 6620, + "end": 6643, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6620, + "end": 6643, + "name": "tag", + "source": 14, + "value": "281" + }, + { + "begin": 6620, + "end": 6643, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6653, + "end": 6698, + "name": "PUSH [tag]", + "source": 14, + "value": "282" + }, + { + "begin": 508, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 6686, + "end": 6697, + "name": "DUP4", + "source": 14 + }, + { + "begin": 6686, + "end": 6697, + "name": "DUP4", + "source": 14 + }, + { + "begin": 6653, + "end": 6665, + "name": "PUSH [tag]", + "source": 14, + "value": "283" + }, + { + "begin": 6653, + "end": 6698, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6653, + "end": 6698, + "name": "tag", + "source": 14, + "value": "282" + }, + { + "begin": 6653, + "end": 6698, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "POP", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "POP", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "tag", + "source": 14, + "value": "91" + }, + { + "begin": 4829, + "end": 4966, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4893, + "end": 4916, + "name": "PUSH [tag]", + "source": 14, + "value": "285" + }, + { + "begin": 4905, + "end": 4915, + "name": "CALLER", + "source": 14 + }, + { + "begin": 4893, + "end": 4904, + "name": "PUSH [tag]", + "source": 14, + "value": "277" + }, + { + "begin": 4893, + "end": 4916, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4893, + "end": 4916, + "name": "tag", + "source": 14, + "value": "285" + }, + { + "begin": 4893, + "end": 4916, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4926, + "end": 4959, + "name": "PUSH [tag]", + "source": 14, + "value": "286" + }, + { + "begin": 430, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 4952, + "end": 4958, + "name": "DUP4", + "source": 14 + }, + { + "begin": 4952, + "end": 4958, + "name": "DUP4", + "source": 14 + }, + { + "begin": 4926, + "end": 4935, + "name": "PUSH [tag]", + "source": 14, + "value": "287" + }, + { + "begin": 4926, + "end": 4959, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4926, + "end": 4959, + "name": "tag", + "source": 14, + "value": "286" + }, + { + "begin": 4926, + "end": 4959, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "POP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "POP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 12452, + "end": 12689, + "name": "tag", + "source": 13, + "value": "96" + }, + { + "begin": 12452, + "end": 12689, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12536, + "end": 12559, + "name": "PUSH [tag]", + "source": 13, + "value": "289" + }, + { + "begin": 12548, + "end": 12558, + "name": "CALLER", + "source": 13 + }, + { + "begin": 12536, + "end": 12547, + "name": "PUSH [tag]", + "source": 13, + "value": "277" + }, + { + "begin": 12536, + "end": 12559, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 12536, + "end": 12559, + "name": "tag", + "source": 13, + "value": "289" + }, + { + "begin": 12536, + "end": 12559, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12594, + "end": 12617, + "name": "DUP1", + "source": 13 + }, + { + "begin": 12569, + "end": 12591, + "name": "PUSH", + "source": 13, + "value": "CA" + }, + { + "begin": 12569, + "end": 12591, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 12569, + "end": 12617, + "name": "PUSH", + "source": 13, + "value": "100" + }, + { + "begin": 12569, + "end": 12617, + "name": "EXP", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "DUP2", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "DUP2", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "PUSH", + "source": 13, + "value": "FF" + }, + { + "begin": 12569, + "end": 12617, + "name": "MUL", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "NOT", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "AND", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "DUP4", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "MUL", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "OR", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "SSTORE", + "source": 13 + }, + { + "begin": 12569, + "end": 12617, + "name": "POP", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "PUSH", + "source": 13, + "value": "46D6D1A61669D91EA3801D9D57B7398C4CED2120F35CA8559749A391047A24AE" + }, + { + "begin": 12658, + "end": 12681, + "name": "DUP2", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 12632, + "end": 12682, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "PUSH [tag]", + "source": 13, + "value": "290" + }, + { + "begin": 12632, + "end": 12682, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "PUSH [tag]", + "source": 13, + "value": "60" + }, + { + "begin": 12632, + "end": 12682, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "tag", + "source": 13, + "value": "290" + }, + { + "begin": 12632, + "end": 12682, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 12632, + "end": 12682, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "DUP1", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "SUB", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12632, + "end": 12682, + "name": "LOG1", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "name": "POP", + "source": 13 + }, + { + "begin": 12452, + "end": 12689, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "name": "tag", + "source": 13, + "value": "100" + }, + { + "begin": 8562, + "end": 8801, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2505, + "end": 2526, + "name": "PUSH [tag]", + "source": 3, + "value": "292" + }, + { + "begin": 2505, + "end": 2524, + "name": "PUSH [tag]", + "source": 3, + "value": "265" + }, + { + "begin": 2505, + "end": 2526, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2505, + "end": 2526, + "name": "tag", + "source": 3, + "value": "292" + }, + { + "begin": 2505, + "end": 2526, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 8631, + "end": 8653, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 8670, + "end": 8671, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "GT", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "294" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "295" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "296" + }, + { + "begin": 8656, + "end": 8672, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "295" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "294" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "297" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "CALLDATACOPY", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "297" + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8656, + "end": 8672, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8631, + "end": 8672, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8631, + "end": 8672, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8693, + "end": 8699, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8682, + "end": 8687, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8688, + "end": 8689, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "LT", + "source": 13 + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "298" + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "299" + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "300" + }, + { + "begin": 8682, + "end": 8690, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "299" + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "298" + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8682, + "end": 8690, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8682, + "end": 8699, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8682, + "end": 8699, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 8682, + "end": 8699, + "modifierDepth": 1, + "name": "AND", + "source": 13 + }, + { + "begin": 8682, + "end": 8699, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8682, + "end": 8699, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8682, + "end": 8699, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 8682, + "end": 8699, + "modifierDepth": 1, + "name": "AND", + "source": 13 + }, + { + "begin": 8682, + "end": 8699, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8682, + "end": 8699, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 8682, + "end": 8699, + "name": "POP", + "source": 13 + }, + { + "begin": 8682, + "end": 8699, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8709, + "end": 8738, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "301" + }, + { + "begin": 8727, + "end": 8737, + "modifierDepth": 1, + "name": "CALLER", + "source": 13 + }, + { + "begin": 8709, + "end": 8726, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "268" + }, + { + "begin": 8709, + "end": 8738, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 8709, + "end": 8738, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "301" + }, + { + "begin": 8709, + "end": 8738, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8748, + "end": 8794, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "302" + }, + { + "begin": 8761, + "end": 8766, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8776, + "end": 8780, + "modifierDepth": 1, + "name": "ADDRESS", + "source": 13 + }, + { + "begin": 8783, + "end": 8793, + "modifierDepth": 1, + "name": "CALLER", + "source": 13 + }, + { + "begin": 8748, + "end": 8760, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "270" + }, + { + "begin": 8748, + "end": 8794, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 8748, + "end": 8794, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "302" + }, + { + "begin": 8748, + "end": 8794, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8621, + "end": 8801, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 2547, + "end": 2567, + "name": "PUSH [tag]", + "source": 3, + "value": "303" + }, + { + "begin": 2547, + "end": 2565, + "name": "PUSH [tag]", + "source": 3, + "value": "272" + }, + { + "begin": 2547, + "end": 2567, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2547, + "end": 2567, + "name": "tag", + "source": 3, + "value": "303" + }, + { + "begin": 2547, + "end": 2567, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 8562, + "end": 8801, + "name": "POP", + "source": 13 + }, + { + "begin": 8562, + "end": 8801, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 4708, + "end": 4837, + "name": "tag", + "source": 0, + "value": "105" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4782, + "end": 4789, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 4808, + "end": 4814, + "name": "PUSH", + "source": 0, + "value": "65" + }, + { + "begin": 4808, + "end": 4820, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 4815, + "end": 4819, + "name": "DUP4", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 4808, + "end": 4820, + "name": "ADD", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 4808, + "end": 4820, + "name": "ADD", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 4808, + "end": 4820, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 4808, + "end": 4830, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 4808, + "end": 4830, + "name": "ADD", + "source": 0 + }, + { + "begin": 4808, + "end": 4830, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 4801, + "end": 4830, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4801, + "end": 4830, + "name": "POP", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "POP", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4225, + "end": 4337, + "name": "tag", + "source": 14, + "value": "111" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4283, + "end": 4287, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 4306, + "end": 4330, + "name": "PUSH [tag]", + "source": 14, + "value": "306" + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 4321, + "end": 4329, + "name": "DUP4", + "source": 14 + }, + { + "begin": 4306, + "end": 4313, + "name": "PUSH [tag]", + "source": 14, + "value": "173" + }, + { + "begin": 4306, + "end": 4330, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4306, + "end": 4330, + "name": "tag", + "source": 14, + "value": "306" + }, + { + "begin": 4306, + "end": 4330, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4299, + "end": 4330, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4299, + "end": 4330, + "name": "POP", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "POP", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2174, + "end": 2195, + "name": "tag", + "source": 13, + "value": "115" + }, + { + "begin": 2174, + "end": 2195, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "PUSH", + "source": 13, + "value": "C9" + }, + { + "begin": 2174, + "end": 2195, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "name": "DUP2", + "source": 13 + }, + { + "begin": 2174, + "end": 2195, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 7892, + "end": 8051, + "name": "tag", + "source": 14, + "value": "121" + }, + { + "begin": 7892, + "end": 8051, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7971, + "end": 7994, + "name": "PUSH [tag]", + "source": 14, + "value": "308" + }, + { + "begin": 7983, + "end": 7993, + "name": "CALLER", + "source": 14 + }, + { + "begin": 7971, + "end": 7982, + "name": "PUSH [tag]", + "source": 14, + "value": "277" + }, + { + "begin": 7971, + "end": 7994, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7971, + "end": 7994, + "name": "tag", + "source": 14, + "value": "308" + }, + { + "begin": 7971, + "end": 7994, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8004, + "end": 8044, + "name": "PUSH [tag]", + "source": 14, + "value": "309" + }, + { + "begin": 584, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "B65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083" + }, + { + "begin": 8031, + "end": 8043, + "name": "DUP4", + "source": 14 + }, + { + "begin": 8031, + "end": 8043, + "name": "DUP4", + "source": 14 + }, + { + "begin": 8004, + "end": 8016, + "name": "PUSH [tag]", + "source": 14, + "value": "283" + }, + { + "begin": 8004, + "end": 8044, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8004, + "end": 8044, + "name": "tag", + "source": 14, + "value": "309" + }, + { + "begin": 8004, + "end": 8044, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "POP", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "POP", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "tag", + "source": 14, + "value": "124" + }, + { + "begin": 615, + "end": 665, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 615, + "end": 665, + "name": "DUP2", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5133, + "end": 5278, + "name": "tag", + "source": 0, + "value": "130" + }, + { + "begin": 5133, + "end": 5278, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5216, + "end": 5234, + "name": "PUSH [tag]", + "source": 0, + "value": "310" + }, + { + "begin": 5229, + "end": 5233, + "name": "DUP3", + "source": 0 + }, + { + "begin": 5216, + "end": 5228, + "name": "PUSH [tag]", + "source": 0, + "value": "105" + }, + { + "begin": 5216, + "end": 5234, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5216, + "end": 5234, + "name": "tag", + "source": 0, + "value": "310" + }, + { + "begin": 5216, + "end": 5234, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2802, + "end": 2818, + "name": "PUSH [tag]", + "source": 0, + "value": "312" + }, + { + "begin": 2813, + "end": 2817, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2802, + "end": 2812, + "name": "PUSH [tag]", + "source": 0, + "value": "313" + }, + { + "begin": 2802, + "end": 2818, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2802, + "end": 2818, + "name": "tag", + "source": 0, + "value": "312" + }, + { + "begin": 2802, + "end": 2818, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5246, + "end": 5271, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "315" + }, + { + "begin": 5257, + "end": 5261, + "modifierDepth": 1, + "name": "DUP4", + "source": 0 + }, + { + "begin": 5263, + "end": 5270, + "modifierDepth": 1, + "name": "DUP4", + "source": 0 + }, + { + "begin": 5246, + "end": 5256, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "316" + }, + { + "begin": 5246, + "end": 5271, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 0 + }, + { + "begin": 5246, + "end": 5271, + "modifierDepth": 1, + "name": "tag", + "source": 0, + "value": "315" + }, + { + "begin": 5246, + "end": 5271, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "POP", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "POP", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "POP", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 11845, + "end": 11959, + "name": "tag", + "source": 13, + "value": "135" + }, + { + "begin": 11845, + "end": 11959, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11900, + "end": 11923, + "name": "PUSH [tag]", + "source": 13, + "value": "318" + }, + { + "begin": 11912, + "end": 11922, + "name": "CALLER", + "source": 13 + }, + { + "begin": 11900, + "end": 11911, + "name": "PUSH [tag]", + "source": 13, + "value": "277" + }, + { + "begin": 11900, + "end": 11923, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11900, + "end": 11923, + "name": "tag", + "source": 13, + "value": "318" + }, + { + "begin": 11900, + "end": 11923, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11933, + "end": 11952, + "name": "PUSH [tag]", + "source": 13, + "value": "319" + }, + { + "begin": 11944, + "end": 11951, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11933, + "end": 11943, + "name": "PUSH [tag]", + "source": 13, + "value": "320" + }, + { + "begin": 11933, + "end": 11952, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11933, + "end": 11952, + "name": "tag", + "source": 13, + "value": "319" + }, + { + "begin": 11933, + "end": 11952, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "name": "POP", + "source": 13 + }, + { + "begin": 11845, + "end": 11959, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 6242, + "end": 6456, + "name": "tag", + "source": 0, + "value": "139" + }, + { + "begin": 6242, + "end": 6456, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6348, + "end": 6360, + "name": "PUSH [tag]", + "source": 0, + "value": "322" + }, + { + "begin": 6348, + "end": 6358, + "name": "PUSH [tag]", + "source": 0, + "value": "323" + }, + { + "begin": 6348, + "end": 6360, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 6348, + "end": 6360, + "name": "tag", + "source": 0, + "value": "322" + }, + { + "begin": 6348, + "end": 6360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6337, + "end": 6360, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6337, + "end": 6360, + "name": "AND", + "source": 0 + }, + { + "begin": 6337, + "end": 6344, + "name": "DUP2", + "source": 0 + }, + { + "begin": 6337, + "end": 6360, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6337, + "end": 6360, + "name": "AND", + "source": 0 + }, + { + "begin": 6337, + "end": 6360, + "name": "EQ", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH [tag]", + "source": 0, + "value": "324" + }, + { + "begin": 6329, + "end": 6412, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 6329, + "end": 6412, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH", + "source": 0, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 6329, + "end": 6412, + "name": "DUP2", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 6329, + "end": 6412, + "name": "ADD", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH [tag]", + "source": 0, + "value": "325" + }, + { + "begin": 6329, + "end": 6412, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH [tag]", + "source": 0, + "value": "326" + }, + { + "begin": 6329, + "end": 6412, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "tag", + "source": 0, + "value": "325" + }, + { + "begin": 6329, + "end": 6412, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 6329, + "end": 6412, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "DUP1", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "SUB", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "REVERT", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "tag", + "source": 0, + "value": "324" + }, + { + "begin": 6329, + "end": 6412, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6423, + "end": 6449, + "name": "PUSH [tag]", + "source": 0, + "value": "327" + }, + { + "begin": 6435, + "end": 6439, + "name": "DUP3", + "source": 0 + }, + { + "begin": 6441, + "end": 6448, + "name": "DUP3", + "source": 0 + }, + { + "begin": 6423, + "end": 6434, + "name": "PUSH [tag]", + "source": 0, + "value": "279" + }, + { + "begin": 6423, + "end": 6449, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 6423, + "end": 6449, + "name": "tag", + "source": 0, + "value": "327" + }, + { + "begin": 6423, + "end": 6449, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "POP", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "POP", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 8032, + "end": 8400, + "name": "tag", + "source": 13, + "value": "144" + }, + { + "begin": 8032, + "end": 8400, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2505, + "end": 2526, + "name": "PUSH [tag]", + "source": 3, + "value": "329" + }, + { + "begin": 2505, + "end": 2524, + "name": "PUSH [tag]", + "source": 3, + "value": "265" + }, + { + "begin": 2505, + "end": 2526, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2505, + "end": 2526, + "name": "tag", + "source": 3, + "value": "329" + }, + { + "begin": 2505, + "end": 2526, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 8203, + "end": 8217, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 8220, + "end": 8223, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 8220, + "end": 8223, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 8220, + "end": 8230, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8220, + "end": 8230, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8203, + "end": 8230, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8203, + "end": 8230, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8245, + "end": 8254, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 8240, + "end": 8394, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "331" + }, + { + "begin": 8240, + "end": 8394, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8264, + "end": 8270, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8260, + "end": 8261, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8260, + "end": 8270, + "modifierDepth": 1, + "name": "LT", + "source": 13 + }, + { + "begin": 8240, + "end": 8394, + "modifierDepth": 1, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 8240, + "end": 8394, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "332" + }, + { + "begin": 8240, + "end": 8394, + "modifierDepth": 1, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "334" + }, + { + "begin": 8301, + "end": 8307, + "modifierDepth": 1, + "name": "DUP7", + "source": 13 + }, + { + "begin": 8301, + "end": 8307, + "modifierDepth": 1, + "name": "DUP7", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "SWAP4", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP5", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "CALLDATACOPY", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP5", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1F" + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "NOT", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1F" + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "AND", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8309, + "end": 8312, + "modifierDepth": 1, + "name": "DUP6", + "source": 13 + }, + { + "begin": 8309, + "end": 8312, + "modifierDepth": 1, + "name": "DUP6", + "source": 13 + }, + { + "begin": 8313, + "end": 8314, + "modifierDepth": 1, + "name": "DUP5", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "LT", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "335" + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "336" + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "300" + }, + { + "begin": 8309, + "end": 8315, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "336" + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "335" + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "337" + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "69" + }, + { + "begin": 8309, + "end": 8315, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "337" + }, + { + "begin": 8309, + "end": 8315, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8317, + "end": 8320, + "modifierDepth": 1, + "name": "DUP7", + "source": 13 + }, + { + "begin": 8317, + "end": 8320, + "modifierDepth": 1, + "name": "DUP7", + "source": 13 + }, + { + "begin": 8321, + "end": 8322, + "modifierDepth": 1, + "name": "DUP6", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "LT", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "338" + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "339" + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "300" + }, + { + "begin": 8317, + "end": 8323, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "339" + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "338" + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "340" + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "69" + }, + { + "begin": 8317, + "end": 8323, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "340" + }, + { + "begin": 8317, + "end": 8323, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8288, + "end": 8300, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "270" + }, + { + "begin": 8288, + "end": 8324, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "334" + }, + { + "begin": 8288, + "end": 8324, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8366, + "end": 8369, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8366, + "end": 8369, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 8366, + "end": 8369, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 8366, + "end": 8369, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 8366, + "end": 8369, + "modifierDepth": 1, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 8366, + "end": 8369, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8366, + "end": 8369, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8240, + "end": 8394, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "331" + }, + { + "begin": 8240, + "end": 8394, + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 8240, + "end": 8394, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "332" + }, + { + "begin": 8240, + "end": 8394, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 8240, + "end": 8394, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 8151, + "end": 8400, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 2547, + "end": 2567, + "name": "PUSH [tag]", + "source": 3, + "value": "341" + }, + { + "begin": 2547, + "end": 2565, + "name": "PUSH [tag]", + "source": 3, + "value": "272" + }, + { + "begin": 2547, + "end": 2567, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2547, + "end": 2567, + "name": "tag", + "source": 3, + "value": "341" + }, + { + "begin": 2547, + "end": 2567, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 8032, + "end": 8400, + "name": "POP", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "POP", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "POP", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "name": "POP", + "source": 13 + }, + { + "begin": 8032, + "end": 8400, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 3393, + "end": 3523, + "name": "tag", + "source": 14, + "value": "148" + }, + { + "begin": 3393, + "end": 3523, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3458, + "end": 3481, + "name": "PUSH [tag]", + "source": 14, + "value": "343" + }, + { + "begin": 3470, + "end": 3480, + "name": "CALLER", + "source": 14 + }, + { + "begin": 3458, + "end": 3469, + "name": "PUSH [tag]", + "source": 14, + "value": "277" + }, + { + "begin": 3458, + "end": 3481, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3458, + "end": 3481, + "name": "tag", + "source": 14, + "value": "343" + }, + { + "begin": 3458, + "end": 3481, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3491, + "end": 3516, + "name": "PUSH [tag]", + "source": 14, + "value": "344" + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 3508, + "end": 3515, + "name": "DUP4", + "source": 14 + }, + { + "begin": 3508, + "end": 3515, + "name": "DUP4", + "source": 14 + }, + { + "begin": 3491, + "end": 3500, + "name": "PUSH [tag]", + "source": 14, + "value": "287" + }, + { + "begin": 3491, + "end": 3516, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3491, + "end": 3516, + "name": "tag", + "source": 14, + "value": "344" + }, + { + "begin": 3491, + "end": 3516, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "POP", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "POP", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7626, + "end": 7819, + "name": "tag", + "source": 13, + "value": "153" + }, + { + "begin": 7626, + "end": 7819, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2505, + "end": 2526, + "name": "PUSH [tag]", + "source": 3, + "value": "346" + }, + { + "begin": 2505, + "end": 2524, + "name": "PUSH [tag]", + "source": 3, + "value": "265" + }, + { + "begin": 2505, + "end": 2526, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2505, + "end": 2526, + "name": "tag", + "source": 3, + "value": "346" + }, + { + "begin": 2505, + "end": 2526, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "348" + }, + { + "begin": 7795, + "end": 7801, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 7795, + "end": 7801, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "SWAP4", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP5", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "CALLDATACOPY", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP5", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1F" + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "NOT", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1F" + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "AND", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7803, + "end": 7806, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 7808, + "end": 7811, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 7782, + "end": 7794, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "270" + }, + { + "begin": 7782, + "end": 7812, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "348" + }, + { + "begin": 7782, + "end": 7812, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2547, + "end": 2567, + "name": "PUSH [tag]", + "source": 3, + "value": "349" + }, + { + "begin": 2547, + "end": 2565, + "name": "PUSH [tag]", + "source": 3, + "value": "272" + }, + { + "begin": 2547, + "end": 2567, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2547, + "end": 2567, + "name": "tag", + "source": 3, + "value": "349" + }, + { + "begin": 2547, + "end": 2567, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 7626, + "end": 7819, + "name": "POP", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "POP", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "name": "POP", + "source": 13 + }, + { + "begin": 7626, + "end": 7819, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "tag", + "source": 13, + "value": "156" + }, + { + "begin": 2202, + "end": 2236, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH", + "source": 13, + "value": "CA" + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2202, + "end": 2236, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH", + "source": 13, + "value": "100" + }, + { + "begin": 2202, + "end": 2236, + "name": "EXP", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "DIV", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "PUSH", + "source": 13, + "value": "FF" + }, + { + "begin": 2202, + "end": 2236, + "name": "AND", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "name": "DUP2", + "source": 13 + }, + { + "begin": 2202, + "end": 2236, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "tag", + "source": 13, + "value": "161" + }, + { + "begin": 7299, + "end": 7431, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2505, + "end": 2526, + "name": "PUSH [tag]", + "source": 3, + "value": "351" + }, + { + "begin": 2505, + "end": 2524, + "name": "PUSH [tag]", + "source": 3, + "value": "265" + }, + { + "begin": 2505, + "end": 2526, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2505, + "end": 2526, + "name": "tag", + "source": 3, + "value": "351" + }, + { + "begin": 2505, + "end": 2526, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "353" + }, + { + "begin": 7393, + "end": 7399, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 7393, + "end": 7399, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "SWAP4", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP5", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "CALLDATACOPY", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP5", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1F" + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "NOT", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1F" + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "AND", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 7401, + "end": 7411, + "modifierDepth": 1, + "name": "CALLER", + "source": 13 + }, + { + "begin": 7413, + "end": 7423, + "modifierDepth": 1, + "name": "CALLER", + "source": 13 + }, + { + "begin": 7380, + "end": 7392, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "270" + }, + { + "begin": 7380, + "end": 7424, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "353" + }, + { + "begin": 7380, + "end": 7424, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2547, + "end": 2567, + "name": "PUSH [tag]", + "source": 3, + "value": "354" + }, + { + "begin": 2547, + "end": 2565, + "name": "PUSH [tag]", + "source": 3, + "value": "272" + }, + { + "begin": 2547, + "end": 2567, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2547, + "end": 2567, + "name": "tag", + "source": 3, + "value": "354" + }, + { + "begin": 2547, + "end": 2567, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 7299, + "end": 7431, + "name": "POP", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "name": "POP", + "source": 13 + }, + { + "begin": 7299, + "end": 7431, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "tag", + "source": 13, + "value": "165" + }, + { + "begin": 12900, + "end": 13175, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 13006, + "end": 13029, + "name": "PUSH [tag]", + "source": 13, + "value": "356" + }, + { + "begin": 13018, + "end": 13028, + "name": "CALLER", + "source": 13 + }, + { + "begin": 13006, + "end": 13017, + "name": "PUSH [tag]", + "source": 13, + "value": "277" + }, + { + "begin": 13006, + "end": 13029, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 13006, + "end": 13029, + "name": "tag", + "source": 13, + "value": "356" + }, + { + "begin": 13006, + "end": 13029, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 13068, + "end": 13095, + "name": "DUP1", + "source": 13 + }, + { + "begin": 13039, + "end": 13065, + "name": "PUSH", + "source": 13, + "value": "CA" + }, + { + "begin": 13039, + "end": 13065, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 13039, + "end": 13095, + "name": "PUSH", + "source": 13, + "value": "100" + }, + { + "begin": 13039, + "end": 13095, + "name": "EXP", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "DUP2", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "DUP2", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "PUSH", + "source": 13, + "value": "FF" + }, + { + "begin": 13039, + "end": 13095, + "name": "MUL", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "NOT", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "AND", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "DUP4", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "MUL", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "OR", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "SSTORE", + "source": 13 + }, + { + "begin": 13039, + "end": 13095, + "name": "POP", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "PUSH", + "source": 13, + "value": "618C1DFCDC0554EAA0869D571DEFB09F99AE2ADD7C190D59444DB6D0392489A7" + }, + { + "begin": 13140, + "end": 13167, + "name": "DUP2", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 13110, + "end": 13168, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "PUSH [tag]", + "source": 13, + "value": "357" + }, + { + "begin": 13110, + "end": 13168, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "PUSH [tag]", + "source": 13, + "value": "60" + }, + { + "begin": 13110, + "end": 13168, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "tag", + "source": 13, + "value": "357" + }, + { + "begin": 13110, + "end": 13168, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 13110, + "end": 13168, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "DUP1", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "SUB", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 13110, + "end": 13168, + "name": "LOG1", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "name": "POP", + "source": 13 + }, + { + "begin": 12900, + "end": 13175, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 6185, + "end": 6348, + "name": "tag", + "source": 14, + "value": "169" + }, + { + "begin": 6185, + "end": 6348, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6266, + "end": 6289, + "name": "PUSH [tag]", + "source": 14, + "value": "359" + }, + { + "begin": 6278, + "end": 6288, + "name": "CALLER", + "source": 14 + }, + { + "begin": 6266, + "end": 6277, + "name": "PUSH [tag]", + "source": 14, + "value": "277" + }, + { + "begin": 6266, + "end": 6289, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6266, + "end": 6289, + "name": "tag", + "source": 14, + "value": "359" + }, + { + "begin": 6266, + "end": 6289, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6299, + "end": 6341, + "name": "PUSH [tag]", + "source": 14, + "value": "360" + }, + { + "begin": 508, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 6329, + "end": 6340, + "name": "DUP4", + "source": 14 + }, + { + "begin": 6329, + "end": 6340, + "name": "DUP4", + "source": 14 + }, + { + "begin": 6299, + "end": 6308, + "name": "PUSH [tag]", + "source": 14, + "value": "287" + }, + { + "begin": 6299, + "end": 6341, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6299, + "end": 6341, + "name": "tag", + "source": 14, + "value": "360" + }, + { + "begin": 6299, + "end": 6341, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "POP", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "POP", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3203, + "end": 3348, + "name": "tag", + "source": 0, + "value": "173" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3289, + "end": 3293, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3312, + "end": 3318, + "name": "PUSH", + "source": 0, + "value": "65" + }, + { + "begin": 3312, + "end": 3324, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3319, + "end": 3323, + "name": "DUP5", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 3312, + "end": 3324, + "name": "ADD", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 3312, + "end": 3324, + "name": "ADD", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3312, + "end": 3324, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 3312, + "end": 3332, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3312, + "end": 3332, + "name": "ADD", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3333, + "end": 3340, + "name": "DUP4", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3312, + "end": 3341, + "name": "AND", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3312, + "end": 3341, + "name": "AND", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 3312, + "end": 3341, + "name": "ADD", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 3312, + "end": 3341, + "name": "ADD", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3312, + "end": 3341, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3312, + "end": 3341, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 3312, + "end": 3341, + "name": "EXP", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "DIV", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 3312, + "end": 3341, + "name": "AND", + "source": 0 + }, + { + "begin": 3305, + "end": 3341, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3305, + "end": 3341, + "name": "POP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "POP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "POP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7562, + "end": 7715, + "name": "tag", + "source": 14, + "value": "178" + }, + { + "begin": 7562, + "end": 7715, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7638, + "end": 7661, + "name": "PUSH [tag]", + "source": 14, + "value": "363" + }, + { + "begin": 7650, + "end": 7660, + "name": "CALLER", + "source": 14 + }, + { + "begin": 7638, + "end": 7649, + "name": "PUSH [tag]", + "source": 14, + "value": "277" + }, + { + "begin": 7638, + "end": 7661, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7638, + "end": 7661, + "name": "tag", + "source": 14, + "value": "363" + }, + { + "begin": 7638, + "end": 7661, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7671, + "end": 7708, + "name": "PUSH [tag]", + "source": 14, + "value": "364" + }, + { + "begin": 584, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "B65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083" + }, + { + "begin": 7695, + "end": 7707, + "name": "DUP4", + "source": 14 + }, + { + "begin": 7695, + "end": 7707, + "name": "DUP4", + "source": 14 + }, + { + "begin": 7671, + "end": 7680, + "name": "PUSH [tag]", + "source": 14, + "value": "287" + }, + { + "begin": 7671, + "end": 7708, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7671, + "end": 7708, + "name": "tag", + "source": 14, + "value": "364" + }, + { + "begin": 7671, + "end": 7708, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "POP", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "POP", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "tag", + "source": 14, + "value": "181" + }, + { + "begin": 781, + "end": 824, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 822, + "end": 823, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 781, + "end": 824, + "name": "DUP2", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2324, + "end": 2373, + "name": "tag", + "source": 0, + "value": "185" + }, + { + "begin": 2324, + "end": 2373, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2369, + "end": 2373, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 2324, + "end": 2373, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "SHL", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3686, + "end": 3869, + "name": "tag", + "source": 14, + "value": "190" + }, + { + "begin": 3686, + "end": 3869, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3759, + "end": 3798, + "name": "PUSH [tag]", + "source": 14, + "value": "366" + }, + { + "begin": 2369, + "end": 2373, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3767, + "end": 3785, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3767, + "end": 3785, + "name": "SHL", + "source": 14 + }, + { + "begin": 3787, + "end": 3797, + "name": "CALLER", + "source": 14 + }, + { + "begin": 3759, + "end": 3766, + "name": "PUSH [tag]", + "source": 14, + "value": "173" + }, + { + "begin": 3759, + "end": 3798, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3759, + "end": 3798, + "name": "tag", + "source": 14, + "value": "366" + }, + { + "begin": 3759, + "end": 3798, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3754, + "end": 3824, + "name": "PUSH [tag]", + "source": 14, + "value": "367" + }, + { + "begin": 3754, + "end": 3824, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 3807, + "end": 3824, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "PUSH", + "source": 14, + "value": "46AB053D00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3807, + "end": 3824, + "name": "DUP2", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "MSTORE", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 3807, + "end": 3824, + "name": "ADD", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 3807, + "end": 3824, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "SUB", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "REVERT", + "source": 14 + }, + { + "begin": 3754, + "end": 3824, + "name": "tag", + "source": 14, + "value": "367" + }, + { + "begin": 3754, + "end": 3824, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3834, + "end": 3862, + "name": "PUSH [tag]", + "source": 14, + "value": "368" + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 3854, + "end": 3861, + "name": "DUP4", + "source": 14 + }, + { + "begin": 3854, + "end": 3861, + "name": "DUP4", + "source": 14 + }, + { + "begin": 3834, + "end": 3846, + "name": "PUSH [tag]", + "source": 14, + "value": "283" + }, + { + "begin": 3834, + "end": 3862, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3834, + "end": 3862, + "name": "tag", + "source": 14, + "value": "368" + }, + { + "begin": 3834, + "end": 3862, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "POP", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "POP", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "tag", + "source": 14, + "value": "194" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8317, + "end": 8321, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 8340, + "end": 8372, + "name": "PUSH [tag]", + "source": 14, + "value": "370" + }, + { + "begin": 584, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "B65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083" + }, + { + "begin": 8362, + "end": 8371, + "name": "DUP4", + "source": 14 + }, + { + "begin": 8340, + "end": 8347, + "name": "PUSH [tag]", + "source": 14, + "value": "173" + }, + { + "begin": 8340, + "end": 8372, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8340, + "end": 8372, + "name": "tag", + "source": 14, + "value": "370" + }, + { + "begin": 8340, + "end": 8372, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8333, + "end": 8372, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8333, + "end": 8372, + "name": "POP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "POP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "tag", + "source": 14, + "value": "199" + }, + { + "begin": 5141, + "end": 5284, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5208, + "end": 5231, + "name": "PUSH [tag]", + "source": 14, + "value": "372" + }, + { + "begin": 5220, + "end": 5230, + "name": "CALLER", + "source": 14 + }, + { + "begin": 5208, + "end": 5219, + "name": "PUSH [tag]", + "source": 14, + "value": "277" + }, + { + "begin": 5208, + "end": 5231, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5208, + "end": 5231, + "name": "tag", + "source": 14, + "value": "372" + }, + { + "begin": 5208, + "end": 5231, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5241, + "end": 5277, + "name": "PUSH [tag]", + "source": 14, + "value": "373" + }, + { + "begin": 430, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 5270, + "end": 5276, + "name": "DUP4", + "source": 14 + }, + { + "begin": 5270, + "end": 5276, + "name": "DUP4", + "source": 14 + }, + { + "begin": 5241, + "end": 5253, + "name": "PUSH [tag]", + "source": 14, + "value": "283" + }, + { + "begin": 5241, + "end": 5277, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5241, + "end": 5277, + "name": "tag", + "source": 14, + "value": "373" + }, + { + "begin": 5241, + "end": 5277, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "POP", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "POP", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2336, + "end": 2399, + "name": "tag", + "source": 13, + "value": "204" + }, + { + "begin": 2336, + "end": 2399, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "CB" + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 2336, + "end": 2399, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "DUP2", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2336, + "end": 2399, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2336, + "end": 2399, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 2336, + "end": 2399, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "DUP1", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2336, + "end": 2399, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2336, + "end": 2399, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2336, + "end": 2399, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "POP", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "POP", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "POP", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "name": "DUP2", + "source": 13 + }, + { + "begin": 2336, + "end": 2399, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 545, + "end": 609, + "name": "tag", + "source": 14, + "value": "208" + }, + { + "begin": 545, + "end": 609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 584, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "B65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083" + }, + { + "begin": 545, + "end": 609, + "name": "DUP2", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5558, + "end": 5705, + "name": "tag", + "source": 0, + "value": "213" + }, + { + "begin": 5558, + "end": 5705, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5642, + "end": 5660, + "name": "PUSH [tag]", + "source": 0, + "value": "374" + }, + { + "begin": 5655, + "end": 5659, + "name": "DUP3", + "source": 0 + }, + { + "begin": 5642, + "end": 5654, + "name": "PUSH [tag]", + "source": 0, + "value": "105" + }, + { + "begin": 5642, + "end": 5660, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5642, + "end": 5660, + "name": "tag", + "source": 0, + "value": "374" + }, + { + "begin": 5642, + "end": 5660, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2802, + "end": 2818, + "name": "PUSH [tag]", + "source": 0, + "value": "376" + }, + { + "begin": 2813, + "end": 2817, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2802, + "end": 2812, + "name": "PUSH [tag]", + "source": 0, + "value": "313" + }, + { + "begin": 2802, + "end": 2818, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2802, + "end": 2818, + "name": "tag", + "source": 0, + "value": "376" + }, + { + "begin": 2802, + "end": 2818, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5672, + "end": 5698, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "378" + }, + { + "begin": 5684, + "end": 5688, + "modifierDepth": 1, + "name": "DUP4", + "source": 0 + }, + { + "begin": 5690, + "end": 5697, + "modifierDepth": 1, + "name": "DUP4", + "source": 0 + }, + { + "begin": 5672, + "end": 5683, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "279" + }, + { + "begin": 5672, + "end": 5698, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 0 + }, + { + "begin": 5672, + "end": 5698, + "modifierDepth": 1, + "name": "tag", + "source": 0, + "value": "378" + }, + { + "begin": 5672, + "end": 5698, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "POP", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "POP", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "POP", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 463, + "end": 539, + "name": "tag", + "source": 14, + "value": "216" + }, + { + "begin": 463, + "end": 539, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 508, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 463, + "end": 539, + "name": "DUP2", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 998, + "end": 1144, + "name": "tag", + "source": 15, + "value": "220" + }, + { + "begin": 998, + "end": 1144, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 1065, + "end": 1066, + "name": "PUSH", + "source": 15, + "value": "0" + }, + { + "begin": 1041, + "end": 1067, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1041, + "end": 1067, + "name": "AND", + "source": 15 + }, + { + "begin": 1041, + "end": 1053, + "name": "PUSH", + "source": 15, + "value": "0" + }, + { + "begin": 1041, + "end": 1053, + "name": "DUP1", + "source": 15 + }, + { + "begin": 1041, + "end": 1053, + "name": "SLOAD", + "source": 15 + }, + { + "begin": 1041, + "end": 1053, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 1041, + "end": 1053, + "name": "PUSH", + "source": 15, + "value": "100" + }, + { + "begin": 1041, + "end": 1053, + "name": "EXP", + "source": 15 + }, + { + "begin": 1041, + "end": 1053, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 1041, + "end": 1053, + "name": "DIV", + "source": 15 + }, + { + "begin": 1041, + "end": 1053, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1041, + "end": 1053, + "name": "AND", + "source": 15 + }, + { + "begin": 1041, + "end": 1067, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1041, + "end": 1067, + "name": "AND", + "source": 15 + }, + { + "begin": 1041, + "end": 1067, + "name": "EQ", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "PUSH [tag]", + "source": 15, + "value": "380" + }, + { + "begin": 1033, + "end": 1102, + "name": "JUMPI", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "PUSH", + "source": 15, + "value": "40" + }, + { + "begin": 1033, + "end": 1102, + "name": "MLOAD", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "PUSH", + "source": 15, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1033, + "end": 1102, + "name": "DUP2", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "MSTORE", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "PUSH", + "source": 15, + "value": "4" + }, + { + "begin": 1033, + "end": 1102, + "name": "ADD", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "PUSH [tag]", + "source": 15, + "value": "381" + }, + { + "begin": 1033, + "end": 1102, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "PUSH [tag]", + "source": 15, + "value": "382" + }, + { + "begin": 1033, + "end": 1102, + "jumpType": "[in]", + "name": "JUMP", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "tag", + "source": 15, + "value": "381" + }, + { + "begin": 1033, + "end": 1102, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "PUSH", + "source": 15, + "value": "40" + }, + { + "begin": 1033, + "end": 1102, + "name": "MLOAD", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "DUP1", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "SWAP2", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "SUB", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "REVERT", + "source": 15 + }, + { + "begin": 1033, + "end": 1102, + "name": "tag", + "source": 15, + "value": "380" + }, + { + "begin": 1033, + "end": 1102, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 1127, + "end": 1137, + "name": "CALLER", + "source": 15 + }, + { + "begin": 1112, + "end": 1124, + "name": "PUSH", + "source": 15, + "value": "0" + }, + { + "begin": 1112, + "end": 1124, + "name": "DUP1", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "PUSH", + "source": 15, + "value": "100" + }, + { + "begin": 1112, + "end": 1137, + "name": "EXP", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "DUP2", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "SLOAD", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "DUP2", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1112, + "end": 1137, + "name": "MUL", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "NOT", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "AND", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "DUP4", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1112, + "end": 1137, + "name": "AND", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "MUL", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "OR", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "SSTORE", + "source": 15 + }, + { + "begin": 1112, + "end": 1137, + "name": "POP", + "source": 15 + }, + { + "begin": 998, + "end": 1144, + "jumpType": "[out]", + "name": "JUMP", + "source": 15 + }, + { + "begin": 2697, + "end": 3109, + "name": "tag", + "source": 13, + "value": "225" + }, + { + "begin": 2697, + "end": 3109, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 3268, + "end": 3287, + "name": "PUSH", + "source": 2, + "value": "0" + }, + { + "begin": 3291, + "end": 3304, + "name": "DUP1", + "source": 2 + }, + { + "begin": 3291, + "end": 3304, + "name": "PUSH", + "source": 2, + "value": "15" + }, + { + "begin": 3291, + "end": 3304, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3291, + "end": 3304, + "name": "SLOAD", + "source": 2 + }, + { + "begin": 3291, + "end": 3304, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3291, + "end": 3304, + "name": "PUSH", + "source": 2, + "value": "100" + }, + { + "begin": 3291, + "end": 3304, + "name": "EXP", + "source": 2 + }, + { + "begin": 3291, + "end": 3304, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3291, + "end": 3304, + "name": "DIV", + "source": 2 + }, + { + "begin": 3291, + "end": 3304, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 3291, + "end": 3304, + "name": "AND", + "source": 2 + }, + { + "begin": 3290, + "end": 3304, + "name": "ISZERO", + "source": 2 + }, + { + "begin": 3268, + "end": 3304, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3268, + "end": 3304, + "name": "POP", + "source": 2 + }, + { + "begin": 3336, + "end": 3350, + "name": "DUP1", + "source": 2 + }, + { + "begin": 3336, + "end": 3370, + "name": "DUP1", + "source": 2 + }, + { + "begin": 3336, + "end": 3370, + "name": "ISZERO", + "source": 2 + }, + { + "begin": 3336, + "end": 3370, + "name": "PUSH [tag]", + "source": 2, + "value": "384" + }, + { + "begin": 3336, + "end": 3370, + "name": "JUMPI", + "source": 2 + }, + { + "begin": 3336, + "end": 3370, + "name": "POP", + "source": 2 + }, + { + "begin": 3369, + "end": 3370, + "name": "PUSH", + "source": 2, + "value": "1" + }, + { + "begin": 3354, + "end": 3366, + "name": "PUSH", + "source": 2, + "value": "0" + }, + { + "begin": 3354, + "end": 3366, + "name": "PUSH", + "source": 2, + "value": "14" + }, + { + "begin": 3354, + "end": 3366, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3354, + "end": 3366, + "name": "SLOAD", + "source": 2 + }, + { + "begin": 3354, + "end": 3366, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3354, + "end": 3366, + "name": "PUSH", + "source": 2, + "value": "100" + }, + { + "begin": 3354, + "end": 3366, + "name": "EXP", + "source": 2 + }, + { + "begin": 3354, + "end": 3366, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3354, + "end": 3366, + "name": "DIV", + "source": 2 + }, + { + "begin": 3354, + "end": 3366, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 3354, + "end": 3366, + "name": "AND", + "source": 2 + }, + { + "begin": 3354, + "end": 3370, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 3354, + "end": 3370, + "name": "AND", + "source": 2 + }, + { + "begin": 3354, + "end": 3370, + "name": "LT", + "source": 2 + }, + { + "begin": 3336, + "end": 3370, + "name": "tag", + "source": 2, + "value": "384" + }, + { + "begin": 3336, + "end": 3370, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 3335, + "end": 3443, + "name": "DUP1", + "source": 2 + }, + { + "begin": 3335, + "end": 3443, + "name": "PUSH [tag]", + "source": 2, + "value": "385" + }, + { + "begin": 3335, + "end": 3443, + "name": "JUMPI", + "source": 2 + }, + { + "begin": 3335, + "end": 3443, + "name": "POP", + "source": 2 + }, + { + "begin": 3377, + "end": 3421, + "name": "PUSH [tag]", + "source": 2, + "value": "386" + }, + { + "begin": 3415, + "end": 3419, + "name": "ADDRESS", + "source": 2 + }, + { + "begin": 3377, + "end": 3406, + "name": "PUSH [tag]", + "source": 2, + "value": "387" + }, + { + "begin": 3377, + "end": 3421, + "jumpType": "[in]", + "name": "JUMP", + "source": 2 + }, + { + "begin": 3377, + "end": 3421, + "name": "tag", + "source": 2, + "value": "386" + }, + { + "begin": 3377, + "end": 3421, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 3376, + "end": 3421, + "name": "ISZERO", + "source": 2 + }, + { + "begin": 3376, + "end": 3442, + "name": "DUP1", + "source": 2 + }, + { + "begin": 3376, + "end": 3442, + "name": "ISZERO", + "source": 2 + }, + { + "begin": 3376, + "end": 3442, + "name": "PUSH [tag]", + "source": 2, + "value": "388" + }, + { + "begin": 3376, + "end": 3442, + "name": "JUMPI", + "source": 2 + }, + { + "begin": 3376, + "end": 3442, + "name": "POP", + "source": 2 + }, + { + "begin": 3441, + "end": 3442, + "name": "PUSH", + "source": 2, + "value": "1" + }, + { + "begin": 3425, + "end": 3437, + "name": "PUSH", + "source": 2, + "value": "0" + }, + { + "begin": 3425, + "end": 3437, + "name": "PUSH", + "source": 2, + "value": "14" + }, + { + "begin": 3425, + "end": 3437, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3425, + "end": 3437, + "name": "SLOAD", + "source": 2 + }, + { + "begin": 3425, + "end": 3437, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3425, + "end": 3437, + "name": "PUSH", + "source": 2, + "value": "100" + }, + { + "begin": 3425, + "end": 3437, + "name": "EXP", + "source": 2 + }, + { + "begin": 3425, + "end": 3437, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3425, + "end": 3437, + "name": "DIV", + "source": 2 + }, + { + "begin": 3425, + "end": 3437, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 3425, + "end": 3437, + "name": "AND", + "source": 2 + }, + { + "begin": 3425, + "end": 3442, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 3425, + "end": 3442, + "name": "AND", + "source": 2 + }, + { + "begin": 3425, + "end": 3442, + "name": "EQ", + "source": 2 + }, + { + "begin": 3376, + "end": 3442, + "name": "tag", + "source": 2, + "value": "388" + }, + { + "begin": 3376, + "end": 3442, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 3335, + "end": 3443, + "name": "tag", + "source": 2, + "value": "385" + }, + { + "begin": 3335, + "end": 3443, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "PUSH [tag]", + "source": 2, + "value": "389" + }, + { + "begin": 3314, + "end": 3515, + "name": "JUMPI", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 3314, + "end": 3515, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "PUSH", + "source": 2, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3314, + "end": 3515, + "name": "DUP2", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "MSTORE", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "PUSH", + "source": 2, + "value": "4" + }, + { + "begin": 3314, + "end": 3515, + "name": "ADD", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "PUSH [tag]", + "source": 2, + "value": "390" + }, + { + "begin": 3314, + "end": 3515, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "PUSH [tag]", + "source": 2, + "value": "391" + }, + { + "begin": 3314, + "end": 3515, + "jumpType": "[in]", + "name": "JUMP", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "tag", + "source": 2, + "value": "390" + }, + { + "begin": 3314, + "end": 3515, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 3314, + "end": 3515, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "DUP1", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "SWAP2", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "SUB", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "REVERT", + "source": 2 + }, + { + "begin": 3314, + "end": 3515, + "name": "tag", + "source": 2, + "value": "389" + }, + { + "begin": 3314, + "end": 3515, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 3540, + "end": 3541, + "name": "PUSH", + "source": 2, + "value": "1" + }, + { + "begin": 3525, + "end": 3537, + "name": "PUSH", + "source": 2, + "value": "0" + }, + { + "begin": 3525, + "end": 3537, + "name": "PUSH", + "source": 2, + "value": "14" + }, + { + "begin": 3525, + "end": 3541, + "name": "PUSH", + "source": 2, + "value": "100" + }, + { + "begin": 3525, + "end": 3541, + "name": "EXP", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "DUP2", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "SLOAD", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "DUP2", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 3525, + "end": 3541, + "name": "MUL", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "NOT", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "AND", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "DUP4", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 3525, + "end": 3541, + "name": "AND", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "MUL", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "OR", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "SSTORE", + "source": 2 + }, + { + "begin": 3525, + "end": 3541, + "name": "POP", + "source": 2 + }, + { + "begin": 3555, + "end": 3569, + "name": "DUP1", + "source": 2 + }, + { + "begin": 3551, + "end": 3616, + "name": "ISZERO", + "source": 2 + }, + { + "begin": 3551, + "end": 3616, + "name": "PUSH [tag]", + "source": 2, + "value": "392" + }, + { + "begin": 3551, + "end": 3616, + "name": "JUMPI", + "source": 2 + }, + { + "begin": 3601, + "end": 3605, + "name": "PUSH", + "source": 2, + "value": "1" + }, + { + "begin": 3585, + "end": 3598, + "name": "PUSH", + "source": 2, + "value": "0" + }, + { + "begin": 3585, + "end": 3598, + "name": "PUSH", + "source": 2, + "value": "15" + }, + { + "begin": 3585, + "end": 3605, + "name": "PUSH", + "source": 2, + "value": "100" + }, + { + "begin": 3585, + "end": 3605, + "name": "EXP", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "DUP2", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "SLOAD", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "DUP2", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 3585, + "end": 3605, + "name": "MUL", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "NOT", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "AND", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "DUP4", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "ISZERO", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "ISZERO", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "MUL", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "OR", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "SSTORE", + "source": 2 + }, + { + "begin": 3585, + "end": 3605, + "name": "POP", + "source": 2 + }, + { + "begin": 3551, + "end": 3616, + "name": "tag", + "source": 2, + "value": "392" + }, + { + "begin": 3551, + "end": 3616, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 2943, + "end": 3102, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "394" + }, + { + "begin": 2979, + "end": 2993, + "modifierDepth": 1, + "name": "DUP11", + "source": 13 + }, + { + "begin": 2979, + "end": 2993, + "modifierDepth": 1, + "name": "DUP11", + "source": 13 + }, + { + "begin": 3007, + "end": 3024, + "modifierDepth": 1, + "name": "DUP11", + "source": 13 + }, + { + "begin": 3007, + "end": 3024, + "modifierDepth": 1, + "name": "DUP11", + "source": 13 + }, + { + "begin": 3038, + "end": 3050, + "modifierDepth": 1, + "name": "DUP11", + "source": 13 + }, + { + "begin": 3038, + "end": 3050, + "modifierDepth": 1, + "name": "DUP11", + "source": 13 + }, + { + "begin": 3064, + "end": 3071, + "modifierDepth": 1, + "name": "DUP11", + "source": 13 + }, + { + "begin": 3064, + "end": 3071, + "modifierDepth": 1, + "name": "DUP11", + "source": 13 + }, + { + "begin": 3085, + "end": 3092, + "modifierDepth": 1, + "name": "DUP11", + "source": 13 + }, + { + "begin": 2943, + "end": 2965, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "395" + }, + { + "begin": 2943, + "end": 3102, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 2943, + "end": 3102, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "394" + }, + { + "begin": 2943, + "end": 3102, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 3640, + "end": 3654, + "name": "DUP1", + "source": 2 + }, + { + "begin": 3636, + "end": 3735, + "name": "ISZERO", + "source": 2 + }, + { + "begin": 3636, + "end": 3735, + "name": "PUSH [tag]", + "source": 2, + "value": "396" + }, + { + "begin": 3636, + "end": 3735, + "name": "JUMPI", + "source": 2 + }, + { + "begin": 3686, + "end": 3691, + "name": "PUSH", + "source": 2, + "value": "0" + }, + { + "begin": 3670, + "end": 3683, + "name": "DUP1", + "source": 2 + }, + { + "begin": 3670, + "end": 3683, + "name": "PUSH", + "source": 2, + "value": "15" + }, + { + "begin": 3670, + "end": 3691, + "name": "PUSH", + "source": 2, + "value": "100" + }, + { + "begin": 3670, + "end": 3691, + "name": "EXP", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "DUP2", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "SLOAD", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "DUP2", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 3670, + "end": 3691, + "name": "MUL", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "NOT", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "AND", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "DUP4", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "ISZERO", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "ISZERO", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "MUL", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "OR", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "SSTORE", + "source": 2 + }, + { + "begin": 3670, + "end": 3691, + "name": "POP", + "source": 2 + }, + { + "begin": 3710, + "end": 3724, + "name": "PUSH", + "source": 2, + "value": "7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498" + }, + { + "begin": 3722, + "end": 3723, + "name": "PUSH", + "source": 2, + "value": "1" + }, + { + "begin": 3710, + "end": 3724, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 3710, + "end": 3724, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 3710, + "end": 3724, + "name": "PUSH [tag]", + "source": 2, + "value": "397" + }, + { + "begin": 3710, + "end": 3724, + "name": "SWAP2", + "source": 2 + }, + { + "begin": 3710, + "end": 3724, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3710, + "end": 3724, + "name": "PUSH [tag]", + "source": 2, + "value": "398" + }, + { + "begin": 3710, + "end": 3724, + "jumpType": "[in]", + "name": "JUMP", + "source": 2 + }, + { + "begin": 3710, + "end": 3724, + "name": "tag", + "source": 2, + "value": "397" + }, + { + "begin": 3710, + "end": 3724, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 3710, + "end": 3724, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 3710, + "end": 3724, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 3710, + "end": 3724, + "name": "DUP1", + "source": 2 + }, + { + "begin": 3710, + "end": 3724, + "name": "SWAP2", + "source": 2 + }, + { + "begin": 3710, + "end": 3724, + "name": "SUB", + "source": 2 + }, + { + "begin": 3710, + "end": 3724, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 3710, + "end": 3724, + "name": "LOG1", + "source": 2 + }, + { + "begin": 3636, + "end": 3735, + "name": "tag", + "source": 2, + "value": "396" + }, + { + "begin": 3636, + "end": 3735, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 3258, + "end": 3741, + "name": "POP", + "source": 2 + }, + { + "begin": 2697, + "end": 3109, + "name": "POP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "POP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "POP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "POP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "POP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "POP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "POP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "POP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "name": "POP", + "source": 13 + }, + { + "begin": 2697, + "end": 3109, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "tag", + "source": 13, + "value": "230" + }, + { + "begin": 6962, + "end": 7152, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2505, + "end": 2526, + "name": "PUSH [tag]", + "source": 3, + "value": "400" + }, + { + "begin": 2505, + "end": 2524, + "name": "PUSH [tag]", + "source": 3, + "value": "265" + }, + { + "begin": 2505, + "end": 2526, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2505, + "end": 2526, + "name": "tag", + "source": 3, + "value": "400" + }, + { + "begin": 2505, + "end": 2526, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 7060, + "end": 7061, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 7049, + "end": 7056, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7049, + "end": 7061, + "name": "SUB", + "source": 13 + }, + { + "begin": 7045, + "end": 7085, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "402" + }, + { + "begin": 7045, + "end": 7085, + "modifierDepth": 1, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "2C5211C600000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "ADD", + "source": 13 + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "DUP1", + "source": 13 + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "SUB", + "source": 13 + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 7070, + "end": 7085, + "modifierDepth": 1, + "name": "REVERT", + "source": 13 + }, + { + "begin": 7045, + "end": 7085, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "402" + }, + { + "begin": 7045, + "end": 7085, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 7095, + "end": 7145, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "403" + }, + { + "begin": 7105, + "end": 7111, + "modifierDepth": 1, + "name": "DUP3", + "source": 13 + }, + { + "begin": 7113, + "end": 7123, + "modifierDepth": 1, + "name": "CALLER", + "source": 13 + }, + { + "begin": 7125, + "end": 7135, + "modifierDepth": 1, + "name": "CALLER", + "source": 13 + }, + { + "begin": 7137, + "end": 7144, + "modifierDepth": 1, + "name": "DUP5", + "source": 13 + }, + { + "begin": 7095, + "end": 7104, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "404" + }, + { + "begin": 7095, + "end": 7145, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 7095, + "end": 7145, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "403" + }, + { + "begin": 7095, + "end": 7145, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2547, + "end": 2567, + "name": "PUSH [tag]", + "source": 3, + "value": "405" + }, + { + "begin": 2547, + "end": 2565, + "name": "PUSH [tag]", + "source": 3, + "value": "272" + }, + { + "begin": 2547, + "end": 2567, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2547, + "end": 2567, + "name": "tag", + "source": 3, + "value": "405" + }, + { + "begin": 2547, + "end": 2567, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 6962, + "end": 7152, + "name": "POP", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "name": "POP", + "source": 13 + }, + { + "begin": 6962, + "end": 7152, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "tag", + "source": 13, + "value": "234" + }, + { + "begin": 11280, + "end": 11698, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11387, + "end": 11403, + "name": "PUSH", + "source": 13, + "value": "60" + }, + { + "begin": 11415, + "end": 11429, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11432, + "end": 11438, + "name": "DUP5", + "source": 13 + }, + { + "begin": 11432, + "end": 11438, + "name": "DUP5", + "source": 13 + }, + { + "begin": 11432, + "end": 11445, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11432, + "end": 11445, + "name": "POP", + "source": 13 + }, + { + "begin": 11415, + "end": 11445, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11415, + "end": 11445, + "name": "POP", + "source": 13 + }, + { + "begin": 11455, + "end": 11478, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11495, + "end": 11501, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "GT", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "PUSH [tag]", + "source": 13, + "value": "407" + }, + { + "begin": 11481, + "end": 11502, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "PUSH [tag]", + "source": 13, + "value": "408" + }, + { + "begin": 11481, + "end": 11502, + "name": "PUSH [tag]", + "source": 13, + "value": "296" + }, + { + "begin": 11481, + "end": 11502, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "tag", + "source": 13, + "value": "408" + }, + { + "begin": 11481, + "end": 11502, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "tag", + "source": 13, + "value": "407" + }, + { + "begin": 11481, + "end": 11502, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 11481, + "end": 11502, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP3", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11481, + "end": 11502, + "name": "MUL", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11481, + "end": 11502, + "name": "ADD", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP3", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "ADD", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 11481, + "end": 11502, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "PUSH [tag]", + "source": 13, + "value": "409" + }, + { + "begin": 11481, + "end": 11502, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11481, + "end": 11502, + "name": "ADD", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP3", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "MUL", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "CALLDATASIZE", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP4", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "CALLDATACOPY", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "DUP3", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "ADD", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "POP", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "POP", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "POP", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "tag", + "source": 13, + "value": "409" + }, + { + "begin": 11481, + "end": 11502, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11481, + "end": 11502, + "name": "POP", + "source": 13 + }, + { + "begin": 11455, + "end": 11502, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11455, + "end": 11502, + "name": "POP", + "source": 13 + }, + { + "begin": 11518, + "end": 11527, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11513, + "end": 11669, + "name": "tag", + "source": 13, + "value": "410" + }, + { + "begin": 11513, + "end": 11669, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11537, + "end": 11543, + "name": "DUP3", + "source": 13 + }, + { + "begin": 11533, + "end": 11534, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11533, + "end": 11543, + "name": "LT", + "source": 13 + }, + { + "begin": 11513, + "end": 11669, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 11513, + "end": 11669, + "name": "PUSH [tag]", + "source": 13, + "value": "411" + }, + { + "begin": 11513, + "end": 11669, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 11573, + "end": 11581, + "name": "PUSH", + "source": 13, + "value": "CB" + }, + { + "begin": 11573, + "end": 11588, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11582, + "end": 11587, + "name": "DUP7", + "source": 13 + }, + { + "begin": 11573, + "end": 11588, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 11573, + "end": 11588, + "name": "AND", + "source": 13 + }, + { + "begin": 11573, + "end": 11588, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 11573, + "end": 11588, + "name": "AND", + "source": 13 + }, + { + "begin": 11573, + "end": 11588, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11573, + "end": 11588, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 11573, + "end": 11588, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11573, + "end": 11588, + "name": "ADD", + "source": 13 + }, + { + "begin": 11573, + "end": 11588, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11573, + "end": 11588, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11573, + "end": 11588, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 11573, + "end": 11588, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11573, + "end": 11588, + "name": "ADD", + "source": 13 + }, + { + "begin": 11573, + "end": 11588, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11573, + "end": 11588, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11589, + "end": 11595, + "name": "DUP9", + "source": 13 + }, + { + "begin": 11589, + "end": 11595, + "name": "DUP9", + "source": 13 + }, + { + "begin": 11596, + "end": 11597, + "name": "DUP5", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "LT", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "PUSH [tag]", + "source": 13, + "value": "413" + }, + { + "begin": 11589, + "end": 11598, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "PUSH [tag]", + "source": 13, + "value": "414" + }, + { + "begin": 11589, + "end": 11598, + "name": "PUSH [tag]", + "source": 13, + "value": "300" + }, + { + "begin": 11589, + "end": 11598, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "tag", + "source": 13, + "value": "414" + }, + { + "begin": 11589, + "end": 11598, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "tag", + "source": 13, + "value": "413" + }, + { + "begin": 11589, + "end": 11598, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "POP", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11589, + "end": 11598, + "name": "MUL", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "ADD", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11589, + "end": 11598, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "ADD", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "PUSH [tag]", + "source": 13, + "value": "415" + }, + { + "begin": 11589, + "end": 11598, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "PUSH [tag]", + "source": 13, + "value": "69" + }, + { + "begin": 11589, + "end": 11598, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11589, + "end": 11598, + "name": "tag", + "source": 13, + "value": "415" + }, + { + "begin": 11589, + "end": 11598, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 11573, + "end": 11599, + "name": "AND", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 11573, + "end": 11599, + "name": "AND", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11573, + "end": 11599, + "name": "ADD", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11573, + "end": 11599, + "name": "ADD", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11573, + "end": 11599, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 11573, + "end": 11599, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 11561, + "end": 11567, + "name": "DUP3", + "source": 13 + }, + { + "begin": 11568, + "end": 11569, + "name": "DUP3", + "source": 13 + }, + { + "begin": 11561, + "end": 11570, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11561, + "end": 11570, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 11561, + "end": 11570, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11561, + "end": 11570, + "name": "LT", + "source": 13 + }, + { + "begin": 11561, + "end": 11570, + "name": "PUSH [tag]", + "source": 13, + "value": "416" + }, + { + "begin": 11561, + "end": 11570, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 11561, + "end": 11570, + "name": "PUSH [tag]", + "source": 13, + "value": "417" + }, + { + "begin": 11561, + "end": 11570, + "name": "PUSH [tag]", + "source": 13, + "value": "300" + }, + { + "begin": 11561, + "end": 11570, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 11561, + "end": 11570, + "name": "tag", + "source": 13, + "value": "417" + }, + { + "begin": 11561, + "end": 11570, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11561, + "end": 11570, + "name": "tag", + "source": 13, + "value": "416" + }, + { + "begin": 11561, + "end": 11570, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11561, + "end": 11570, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11561, + "end": 11570, + "name": "MUL", + "source": 13 + }, + { + "begin": 11561, + "end": 11570, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11561, + "end": 11570, + "name": "ADD", + "source": 13 + }, + { + "begin": 11561, + "end": 11570, + "name": "ADD", + "source": 13 + }, + { + "begin": 11561, + "end": 11599, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11561, + "end": 11599, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11561, + "end": 11599, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 11561, + "end": 11599, + "name": "POP", + "source": 13 + }, + { + "begin": 11561, + "end": 11599, + "name": "POP", + "source": 13 + }, + { + "begin": 11641, + "end": 11644, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11641, + "end": 11644, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11641, + "end": 11644, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 11641, + "end": 11644, + "name": "ADD", + "source": 13 + }, + { + "begin": 11641, + "end": 11644, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 11641, + "end": 11644, + "name": "POP", + "source": 13 + }, + { + "begin": 11641, + "end": 11644, + "name": "POP", + "source": 13 + }, + { + "begin": 11513, + "end": 11669, + "name": "PUSH [tag]", + "source": 13, + "value": "410" + }, + { + "begin": 11513, + "end": 11669, + "name": "JUMP", + "source": 13 + }, + { + "begin": 11513, + "end": 11669, + "name": "tag", + "source": 13, + "value": "411" + }, + { + "begin": 11513, + "end": 11669, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11513, + "end": 11669, + "name": "POP", + "source": 13 + }, + { + "begin": 11685, + "end": 11691, + "name": "DUP1", + "source": 13 + }, + { + "begin": 11678, + "end": 11691, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 11678, + "end": 11691, + "name": "POP", + "source": 13 + }, + { + "begin": 11678, + "end": 11691, + "name": "POP", + "source": 13 + }, + { + "begin": 11678, + "end": 11691, + "name": "POP", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "SWAP4", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "POP", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "POP", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "name": "POP", + "source": 13 + }, + { + "begin": 11280, + "end": 11698, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "tag", + "source": 13, + "value": "240" + }, + { + "begin": 10922, + "end": 11073, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 11017, + "end": 11024, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11043, + "end": 11051, + "name": "PUSH", + "source": 13, + "value": "CB" + }, + { + "begin": 11043, + "end": 11058, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11052, + "end": 11057, + "name": "DUP4", + "source": 13 + }, + { + "begin": 11043, + "end": 11058, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 11043, + "end": 11058, + "name": "AND", + "source": 13 + }, + { + "begin": 11043, + "end": 11058, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 11043, + "end": 11058, + "name": "AND", + "source": 13 + }, + { + "begin": 11043, + "end": 11058, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11043, + "end": 11058, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 11043, + "end": 11058, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11043, + "end": 11058, + "name": "ADD", + "source": 13 + }, + { + "begin": 11043, + "end": 11058, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11043, + "end": 11058, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11043, + "end": 11058, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 11043, + "end": 11058, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11043, + "end": 11058, + "name": "ADD", + "source": 13 + }, + { + "begin": 11043, + "end": 11058, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11043, + "end": 11058, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11059, + "end": 11065, + "name": "DUP5", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 11043, + "end": 11066, + "name": "AND", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 11043, + "end": 11066, + "name": "AND", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11043, + "end": 11066, + "name": "ADD", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "DUP2", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 11043, + "end": 11066, + "name": "ADD", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 11043, + "end": 11066, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 11043, + "end": 11066, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 11036, + "end": 11066, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 11036, + "end": 11066, + "name": "POP", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "POP", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "name": "POP", + "source": 13 + }, + { + "begin": 10922, + "end": 11073, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "name": "tag", + "source": 13, + "value": "244" + }, + { + "begin": 2078, + "end": 2116, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2112, + "end": 2116, + "name": "PUSH", + "source": 13, + "value": "DE0B6B3A7640000" + }, + { + "begin": 2078, + "end": 2116, + "name": "DUP2", + "source": 13 + }, + { + "begin": 2078, + "end": 2116, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 6919, + "end": 7060, + "name": "tag", + "source": 14, + "value": "249" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6991, + "end": 6995, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 7014, + "end": 7053, + "name": "PUSH [tag]", + "source": 14, + "value": "420" + }, + { + "begin": 508, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 7042, + "end": 7052, + "name": "DUP4", + "source": 14 + }, + { + "begin": 7014, + "end": 7021, + "name": "PUSH [tag]", + "source": 14, + "value": "173" + }, + { + "begin": 7014, + "end": 7053, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7014, + "end": 7053, + "name": "tag", + "source": 14, + "value": "420" + }, + { + "begin": 7014, + "end": 7053, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7007, + "end": 7053, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 7007, + "end": 7053, + "name": "POP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "POP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3990, + "end": 5506, + "name": "tag", + "source": 13, + "value": "254" + }, + { + "begin": 3990, + "end": 5506, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2505, + "end": 2526, + "name": "PUSH [tag]", + "source": 3, + "value": "422" + }, + { + "begin": 2505, + "end": 2524, + "name": "PUSH [tag]", + "source": 3, + "value": "265" + }, + { + "begin": 2505, + "end": 2526, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2505, + "end": 2526, + "name": "tag", + "source": 3, + "value": "422" + }, + { + "begin": 2505, + "end": 2526, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 651, + "end": 652, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "0" + }, + { + "begin": 627, + "end": 653, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 627, + "end": 653, + "modifierDepth": 1, + "name": "AND", + "source": 15 + }, + { + "begin": 627, + "end": 639, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "0" + }, + { + "begin": 627, + "end": 639, + "name": "DUP1", + "source": 15 + }, + { + "begin": 627, + "end": 639, + "modifierDepth": 1, + "name": "SLOAD", + "source": 15 + }, + { + "begin": 627, + "end": 639, + "modifierDepth": 1, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 627, + "end": 639, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "100" + }, + { + "begin": 627, + "end": 639, + "modifierDepth": 1, + "name": "EXP", + "source": 15 + }, + { + "begin": 627, + "end": 639, + "modifierDepth": 1, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 627, + "end": 639, + "modifierDepth": 1, + "name": "DIV", + "source": 15 + }, + { + "begin": 627, + "end": 639, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 627, + "end": 639, + "modifierDepth": 1, + "name": "AND", + "source": 15 + }, + { + "begin": 627, + "end": 653, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 627, + "end": 653, + "modifierDepth": 1, + "name": "AND", + "source": 15 + }, + { + "begin": 627, + "end": 653, + "name": "SUB", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 15, + "value": "424" + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "JUMPI", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "40" + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "MLOAD", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "DUP2", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "MSTORE", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "4" + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "ADD", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 15, + "value": "425" + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 15, + "value": "426" + }, + { + "begin": 619, + "end": 702, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "tag", + "source": 15, + "value": "425" + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "40" + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "MLOAD", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "DUP1", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "SWAP2", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "SUB", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "REVERT", + "source": 15 + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "tag", + "source": 15, + "value": "424" + }, + { + "begin": 619, + "end": 702, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 734, + "end": 746, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "0" + }, + { + "begin": 734, + "end": 746, + "name": "DUP1", + "source": 15 + }, + { + "begin": 734, + "end": 746, + "modifierDepth": 1, + "name": "SLOAD", + "source": 15 + }, + { + "begin": 734, + "end": 746, + "modifierDepth": 1, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 734, + "end": 746, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "100" + }, + { + "begin": 734, + "end": 746, + "modifierDepth": 1, + "name": "EXP", + "source": 15 + }, + { + "begin": 734, + "end": 746, + "modifierDepth": 1, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 734, + "end": 746, + "modifierDepth": 1, + "name": "DIV", + "source": 15 + }, + { + "begin": 734, + "end": 746, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 734, + "end": 746, + "modifierDepth": 1, + "name": "AND", + "source": 15 + }, + { + "begin": 720, + "end": 746, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 720, + "end": 746, + "modifierDepth": 1, + "name": "AND", + "source": 15 + }, + { + "begin": 720, + "end": 730, + "modifierDepth": 1, + "name": "CALLER", + "source": 15 + }, + { + "begin": 720, + "end": 746, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 720, + "end": 746, + "modifierDepth": 1, + "name": "AND", + "source": 15 + }, + { + "begin": 720, + "end": 746, + "modifierDepth": 1, + "name": "EQ", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 15, + "value": "427" + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "JUMPI", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "40" + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "MLOAD", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "DUP2", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "MSTORE", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "4" + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "ADD", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 15, + "value": "428" + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 15, + "value": "429" + }, + { + "begin": 712, + "end": 795, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "tag", + "source": 15, + "value": "428" + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "PUSH", + "source": 15, + "value": "40" + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "MLOAD", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "DUP1", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "SWAP2", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "SUB", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "SWAP1", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "REVERT", + "source": 15 + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "tag", + "source": 15, + "value": "427" + }, + { + "begin": 712, + "end": 795, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 15 + }, + { + "begin": 4212, + "end": 4226, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 4229, + "end": 4241, + "modifierDepth": 2, + "name": "DUP4", + "source": 13 + }, + { + "begin": 4229, + "end": 4241, + "modifierDepth": 2, + "name": "DUP4", + "source": 13 + }, + { + "begin": 4229, + "end": 4248, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4229, + "end": 4248, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4212, + "end": 4248, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4212, + "end": 4248, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4258, + "end": 4274, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 4294, + "end": 4303, + "name": "DUP1", + "source": 13 + }, + { + "begin": 4289, + "end": 5417, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "431" + }, + { + "begin": 4289, + "end": 5417, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4313, + "end": 4319, + "modifierDepth": 2, + "name": "DUP3", + "source": 13 + }, + { + "begin": 4309, + "end": 4310, + "modifierDepth": 2, + "name": "DUP2", + "source": 13 + }, + { + "begin": 4309, + "end": 4319, + "modifierDepth": 2, + "name": "LT", + "source": 13 + }, + { + "begin": 4289, + "end": 5417, + "modifierDepth": 2, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 4289, + "end": 5417, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "432" + }, + { + "begin": 4289, + "end": 5417, + "modifierDepth": 2, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 4338, + "end": 4352, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 4354, + "end": 4369, + "name": "DUP1", + "source": 13 + }, + { + "begin": 4371, + "end": 4392, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 4424, + "end": 4436, + "modifierDepth": 2, + "name": "DUP9", + "source": 13 + }, + { + "begin": 4424, + "end": 4436, + "modifierDepth": 2, + "name": "DUP9", + "source": 13 + }, + { + "begin": 4437, + "end": 4438, + "modifierDepth": 2, + "name": "DUP6", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "DUP2", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "DUP2", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "LT", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "434" + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "435" + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "300" + }, + { + "begin": 4424, + "end": 4439, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "435" + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "434" + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "MUL", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "DUP2", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "ADD", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "436" + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "437" + }, + { + "begin": 4424, + "end": 4439, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "436" + }, + { + "begin": 4424, + "end": 4439, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4396, + "end": 4469, + "modifierDepth": 2, + "name": "DUP2", + "source": 13 + }, + { + "begin": 4396, + "end": 4469, + "modifierDepth": 2, + "name": "ADD", + "source": 13 + }, + { + "begin": 4396, + "end": 4469, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4396, + "end": 4469, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "438" + }, + { + "begin": 4396, + "end": 4469, + "modifierDepth": 2, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 4396, + "end": 4469, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4396, + "end": 4469, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "439" + }, + { + "begin": 4396, + "end": 4469, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 4396, + "end": 4469, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "438" + }, + { + "begin": 4396, + "end": 4469, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4337, + "end": 4469, + "modifierDepth": 2, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 4337, + "end": 4469, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4337, + "end": 4469, + "modifierDepth": 2, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 4337, + "end": 4469, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4337, + "end": 4469, + "modifierDepth": 2, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 4337, + "end": 4469, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4488, + "end": 4510, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "CA" + }, + { + "begin": 4488, + "end": 4510, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 4488, + "end": 4510, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4488, + "end": 4510, + "modifierDepth": 2, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 4488, + "end": 4510, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4488, + "end": 4510, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "100" + }, + { + "begin": 4488, + "end": 4510, + "modifierDepth": 2, + "name": "EXP", + "source": 13 + }, + { + "begin": 4488, + "end": 4510, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4488, + "end": 4510, + "modifierDepth": 2, + "name": "DIV", + "source": 13 + }, + { + "begin": 4488, + "end": 4510, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "FF" + }, + { + "begin": 4488, + "end": 4510, + "modifierDepth": 2, + "name": "AND", + "source": 13 + }, + { + "begin": 4484, + "end": 4531, + "modifierDepth": 2, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 4484, + "end": 4531, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "440" + }, + { + "begin": 4484, + "end": 4531, + "modifierDepth": 2, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 4512, + "end": 4531, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "441" + }, + { + "begin": 4524, + "end": 4530, + "modifierDepth": 2, + "name": "DUP4", + "source": 13 + }, + { + "begin": 4512, + "end": 4523, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "442" + }, + { + "begin": 4512, + "end": 4531, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 4512, + "end": 4531, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "441" + }, + { + "begin": 4512, + "end": 4531, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4484, + "end": 4531, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "440" + }, + { + "begin": 4484, + "end": 4531, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4549, + "end": 4575, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "CA" + }, + { + "begin": 4549, + "end": 4575, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 4549, + "end": 4575, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4549, + "end": 4575, + "modifierDepth": 2, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 4549, + "end": 4575, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4549, + "end": 4575, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "100" + }, + { + "begin": 4549, + "end": 4575, + "modifierDepth": 2, + "name": "EXP", + "source": 13 + }, + { + "begin": 4549, + "end": 4575, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4549, + "end": 4575, + "modifierDepth": 2, + "name": "DIV", + "source": 13 + }, + { + "begin": 4549, + "end": 4575, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "FF" + }, + { + "begin": 4549, + "end": 4575, + "modifierDepth": 2, + "name": "AND", + "source": 13 + }, + { + "begin": 4545, + "end": 4648, + "modifierDepth": 2, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 4545, + "end": 4648, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "443" + }, + { + "begin": 4545, + "end": 4648, + "modifierDepth": 2, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 4595, + "end": 4633, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "444" + }, + { + "begin": 4619, + "end": 4632, + "modifierDepth": 2, + "name": "DUP2", + "source": 13 + }, + { + "begin": 4595, + "end": 4618, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "445" + }, + { + "begin": 4595, + "end": 4633, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 4595, + "end": 4633, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "444" + }, + { + "begin": 4595, + "end": 4633, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4545, + "end": 4648, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "443" + }, + { + "begin": 4545, + "end": 4648, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 822, + "end": 823, + "modifierDepth": 2, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 4666, + "end": 4682, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4666, + "end": 4682, + "modifierDepth": 2, + "name": "AND", + "source": 13 + }, + { + "begin": 4666, + "end": 4672, + "modifierDepth": 2, + "name": "DUP4", + "source": 13 + }, + { + "begin": 4666, + "end": 4682, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4666, + "end": 4682, + "modifierDepth": 2, + "name": "AND", + "source": 13 + }, + { + "begin": 4666, + "end": 4682, + "modifierDepth": 2, + "name": "EQ", + "source": 13 + }, + { + "begin": 4662, + "end": 4815, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "446" + }, + { + "begin": 4662, + "end": 4815, + "modifierDepth": 2, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 4702, + "end": 4742, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "447" + }, + { + "begin": 4712, + "end": 4724, + "modifierDepth": 2, + "name": "DUP8", + "source": 13 + }, + { + "begin": 4726, + "end": 4732, + "modifierDepth": 2, + "name": "DUP5", + "source": 13 + }, + { + "begin": 4734, + "end": 4741, + "modifierDepth": 2, + "name": "DUP5", + "source": 13 + }, + { + "begin": 4702, + "end": 4711, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "448" + }, + { + "begin": 4702, + "end": 4742, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 4702, + "end": 4742, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "447" + }, + { + "begin": 4702, + "end": 4742, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4662, + "end": 4815, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "449" + }, + { + "begin": 4662, + "end": 4815, + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 4662, + "end": 4815, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "446" + }, + { + "begin": 4662, + "end": 4815, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4793, + "end": 4800, + "modifierDepth": 2, + "name": "DUP2", + "source": 13 + }, + { + "begin": 4781, + "end": 4800, + "modifierDepth": 2, + "name": "DUP6", + "source": 13 + }, + { + "begin": 4781, + "end": 4800, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "450" + }, + { + "begin": 4781, + "end": 4800, + "modifierDepth": 2, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 4781, + "end": 4800, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4781, + "end": 4800, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "451" + }, + { + "begin": 4781, + "end": 4800, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 4781, + "end": 4800, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "450" + }, + { + "begin": 4781, + "end": 4800, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4781, + "end": 4800, + "modifierDepth": 2, + "name": "SWAP5", + "source": 13 + }, + { + "begin": 4781, + "end": 4800, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4662, + "end": 4815, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "449" + }, + { + "begin": 4662, + "end": 4815, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5012, + "end": 5022, + "modifierDepth": 2, + "name": "CALLER", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "AND", + "source": 13 + }, + { + "begin": 4981, + "end": 4994, + "modifierDepth": 2, + "name": "DUP2", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "AND", + "source": 13 + }, + { + "begin": 4951, + "end": 4963, + "modifierDepth": 2, + "name": "DUP9", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "AND", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "23F5E053CBB2C4E0D563D51F8CAFAA385FC620CAA979FBCAC023059AD1687D9" + }, + { + "begin": 4902, + "end": 4908, + "modifierDepth": 2, + "name": "DUP7", + "source": 13 + }, + { + "begin": 4926, + "end": 4933, + "modifierDepth": 2, + "name": "DUP7", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "452" + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "453" + }, + { + "begin": 4879, + "end": 5036, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "452" + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "DUP1", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "SUB", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 4879, + "end": 5036, + "modifierDepth": 2, + "name": "LOG4", + "source": 13 + }, + { + "begin": 5064, + "end": 5065, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 5055, + "end": 5061, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "C9" + }, + { + "begin": 5055, + "end": 5061, + "modifierDepth": 2, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 5055, + "end": 5065, + "modifierDepth": 2, + "name": "GT", + "source": 13 + }, + { + "begin": 5051, + "end": 5347, + "modifierDepth": 2, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 5051, + "end": 5347, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "454" + }, + { + "begin": 5051, + "end": 5347, + "modifierDepth": 2, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 5085, + "end": 5096, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 2112, + "end": 2116, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "DE0B6B3A7640000" + }, + { + "begin": 5110, + "end": 5116, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "C9" + }, + { + "begin": 5110, + "end": 5116, + "modifierDepth": 2, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 5100, + "end": 5107, + "modifierDepth": 2, + "name": "DUP5", + "source": 13 + }, + { + "begin": 5100, + "end": 5116, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "455" + }, + { + "begin": 5100, + "end": 5116, + "modifierDepth": 2, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 5100, + "end": 5116, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 5100, + "end": 5116, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "456" + }, + { + "begin": 5100, + "end": 5116, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 5100, + "end": 5116, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "455" + }, + { + "begin": 5100, + "end": 5116, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5099, + "end": 5127, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "457" + }, + { + "begin": 5099, + "end": 5127, + "modifierDepth": 2, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 5099, + "end": 5127, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 5099, + "end": 5127, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "458" + }, + { + "begin": 5099, + "end": 5127, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 5099, + "end": 5127, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "457" + }, + { + "begin": 5099, + "end": 5127, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5085, + "end": 5127, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 5085, + "end": 5127, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 5146, + "end": 5201, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "459" + }, + { + "begin": 5164, + "end": 5170, + "modifierDepth": 2, + "name": "DUP5", + "source": 13 + }, + { + "begin": 5172, + "end": 5185, + "modifierDepth": 2, + "name": "DUP4", + "source": 13 + }, + { + "begin": 5197, + "end": 5200, + "modifierDepth": 2, + "name": "DUP4", + "source": 13 + }, + { + "begin": 5187, + "end": 5194, + "modifierDepth": 2, + "name": "DUP7", + "source": 13 + }, + { + "begin": 5187, + "end": 5200, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "460" + }, + { + "begin": 5187, + "end": 5200, + "modifierDepth": 2, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 5187, + "end": 5200, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 5187, + "end": 5200, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "461" + }, + { + "begin": 5187, + "end": 5200, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 5187, + "end": 5200, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "460" + }, + { + "begin": 5187, + "end": 5200, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5146, + "end": 5163, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "462" + }, + { + "begin": 5146, + "end": 5201, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 5146, + "end": 5201, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "459" + }, + { + "begin": 5146, + "end": 5201, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5219, + "end": 5244, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "463" + }, + { + "begin": 5232, + "end": 5238, + "modifierDepth": 2, + "name": "DUP5", + "source": 13 + }, + { + "begin": 5240, + "end": 5243, + "modifierDepth": 2, + "name": "DUP3", + "source": 13 + }, + { + "begin": 5219, + "end": 5231, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "464" + }, + { + "begin": 5219, + "end": 5244, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 5219, + "end": 5244, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "463" + }, + { + "begin": 5219, + "end": 5244, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5067, + "end": 5259, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 5051, + "end": 5347, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "465" + }, + { + "begin": 5051, + "end": 5347, + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 5051, + "end": 5347, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "454" + }, + { + "begin": 5051, + "end": 5347, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5283, + "end": 5332, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "466" + }, + { + "begin": 5301, + "end": 5307, + "modifierDepth": 2, + "name": "DUP4", + "source": 13 + }, + { + "begin": 5309, + "end": 5322, + "modifierDepth": 2, + "name": "DUP3", + "source": 13 + }, + { + "begin": 5324, + "end": 5331, + "modifierDepth": 2, + "name": "DUP5", + "source": 13 + }, + { + "begin": 5283, + "end": 5300, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "462" + }, + { + "begin": 5283, + "end": 5332, + "jumpType": "[in]", + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 5283, + "end": 5332, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "466" + }, + { + "begin": 5283, + "end": 5332, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5051, + "end": 5347, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "465" + }, + { + "begin": 5051, + "end": 5347, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5389, + "end": 5392, + "modifierDepth": 2, + "name": "DUP4", + "source": 13 + }, + { + "begin": 5389, + "end": 5392, + "modifierDepth": 2, + "name": "DUP1", + "source": 13 + }, + { + "begin": 5389, + "end": 5392, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 5389, + "end": 5392, + "modifierDepth": 2, + "name": "ADD", + "source": 13 + }, + { + "begin": 5389, + "end": 5392, + "modifierDepth": 2, + "name": "SWAP5", + "source": 13 + }, + { + "begin": 5389, + "end": 5392, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 5389, + "end": 5392, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4323, + "end": 5417, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4323, + "end": 5417, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4323, + "end": 5417, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4289, + "end": 5417, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "431" + }, + { + "begin": 4289, + "end": 5417, + "modifierDepth": 2, + "name": "JUMP", + "source": 13 + }, + { + "begin": 4289, + "end": 5417, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "432" + }, + { + "begin": 4289, + "end": 5417, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4289, + "end": 5417, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 5442, + "end": 5451, + "modifierDepth": 2, + "name": "CALLVALUE", + "source": 13 + }, + { + "begin": 5431, + "end": 5439, + "modifierDepth": 2, + "name": "DUP2", + "source": 13 + }, + { + "begin": 5431, + "end": 5451, + "modifierDepth": 2, + "name": "GT", + "source": 13 + }, + { + "begin": 5427, + "end": 5500, + "modifierDepth": 2, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 5427, + "end": 5500, + "modifierDepth": 2, + "name": "PUSH [tag]", + "source": 13, + "value": "467" + }, + { + "begin": 5427, + "end": 5500, + "modifierDepth": 2, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "2C5211C600000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "DUP2", + "source": 13 + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "ADD", + "source": 13 + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "DUP1", + "source": 13 + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "SUB", + "source": 13 + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 5474, + "end": 5489, + "modifierDepth": 2, + "name": "REVERT", + "source": 13 + }, + { + "begin": 5427, + "end": 5500, + "modifierDepth": 2, + "name": "tag", + "source": 13, + "value": "467" + }, + { + "begin": 5427, + "end": 5500, + "modifierDepth": 2, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 4134, + "end": 5506, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 4134, + "end": 5506, + "modifierDepth": 2, + "name": "POP", + "source": 13 + }, + { + "begin": 2547, + "end": 2567, + "name": "PUSH [tag]", + "source": 3, + "value": "468" + }, + { + "begin": 2547, + "end": 2565, + "name": "PUSH [tag]", + "source": 3, + "value": "272" + }, + { + "begin": 2547, + "end": 2567, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2547, + "end": 2567, + "name": "tag", + "source": 3, + "value": "468" + }, + { + "begin": 2547, + "end": 2567, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 3990, + "end": 5506, + "name": "POP", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "POP", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "name": "POP", + "source": 13 + }, + { + "begin": 3990, + "end": 5506, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 389, + "end": 457, + "name": "tag", + "source": 14, + "value": "257" + }, + { + "begin": 389, + "end": 457, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 430, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 389, + "end": 457, + "name": "DUP2", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 1060, + "end": 1226, + "name": "tag", + "source": 10, + "value": "262" + }, + { + "begin": 1060, + "end": 1226, + "name": "JUMPDEST", + "source": 10 + }, + { + "begin": 1145, + "end": 1149, + "name": "PUSH", + "source": 10, + "value": "0" + }, + { + "begin": 1183, + "end": 1219, + "name": "PUSH", + "source": 10, + "value": "1FFC9A700000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1168, + "end": 1219, + "name": "PUSH", + "source": 10, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1168, + "end": 1219, + "name": "NOT", + "source": 10 + }, + { + "begin": 1168, + "end": 1219, + "name": "AND", + "source": 10 + }, + { + "begin": 1168, + "end": 1179, + "name": "DUP3", + "source": 10 + }, + { + "begin": 1168, + "end": 1219, + "name": "PUSH", + "source": 10, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1168, + "end": 1219, + "name": "NOT", + "source": 10 + }, + { + "begin": 1168, + "end": 1219, + "name": "AND", + "source": 10 + }, + { + "begin": 1168, + "end": 1219, + "name": "EQ", + "source": 10 + }, + { + "begin": 1161, + "end": 1219, + "name": "SWAP1", + "source": 10 + }, + { + "begin": 1161, + "end": 1219, + "name": "POP", + "source": 10 + }, + { + "begin": 1060, + "end": 1226, + "name": "SWAP2", + "source": 10 + }, + { + "begin": 1060, + "end": 1226, + "name": "SWAP1", + "source": 10 + }, + { + "begin": 1060, + "end": 1226, + "name": "POP", + "source": 10 + }, + { + "begin": 1060, + "end": 1226, + "jumpType": "[out]", + "name": "JUMP", + "source": 10 + }, + { + "begin": 2580, + "end": 2867, + "name": "tag", + "source": 3, + "value": "265" + }, + { + "begin": 2580, + "end": 2867, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 1830, + "end": 1831, + "name": "PUSH", + "source": 3, + "value": "2" + }, + { + "begin": 2712, + "end": 2719, + "name": "PUSH", + "source": 3, + "value": "97" + }, + { + "begin": 2712, + "end": 2719, + "name": "SLOAD", + "source": 3 + }, + { + "begin": 2712, + "end": 2731, + "name": "SUB", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "PUSH [tag]", + "source": 3, + "value": "471" + }, + { + "begin": 2704, + "end": 2767, + "name": "JUMPI", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "PUSH", + "source": 3, + "value": "40" + }, + { + "begin": 2704, + "end": 2767, + "name": "MLOAD", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "PUSH", + "source": 3, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2704, + "end": 2767, + "name": "DUP2", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "MSTORE", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "PUSH", + "source": 3, + "value": "4" + }, + { + "begin": 2704, + "end": 2767, + "name": "ADD", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "PUSH [tag]", + "source": 3, + "value": "472" + }, + { + "begin": 2704, + "end": 2767, + "name": "SWAP1", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "PUSH [tag]", + "source": 3, + "value": "473" + }, + { + "begin": 2704, + "end": 2767, + "jumpType": "[in]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "tag", + "source": 3, + "value": "472" + }, + { + "begin": 2704, + "end": 2767, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "PUSH", + "source": 3, + "value": "40" + }, + { + "begin": 2704, + "end": 2767, + "name": "MLOAD", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "DUP1", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "SWAP2", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "SUB", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "SWAP1", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "REVERT", + "source": 3 + }, + { + "begin": 2704, + "end": 2767, + "name": "tag", + "source": 3, + "value": "471" + }, + { + "begin": 2704, + "end": 2767, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 1830, + "end": 1831, + "name": "PUSH", + "source": 3, + "value": "2" + }, + { + "begin": 2842, + "end": 2849, + "name": "PUSH", + "source": 3, + "value": "97" + }, + { + "begin": 2842, + "end": 2860, + "name": "DUP2", + "source": 3 + }, + { + "begin": 2842, + "end": 2860, + "name": "SWAP1", + "source": 3 + }, + { + "begin": 2842, + "end": 2860, + "name": "SSTORE", + "source": 3 + }, + { + "begin": 2842, + "end": 2860, + "name": "POP", + "source": 3 + }, + { + "begin": 2580, + "end": 2867, + "jumpType": "[out]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 7250, + "end": 7389, + "name": "tag", + "source": 14, + "value": "268" + }, + { + "begin": 7250, + "end": 7389, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7325, + "end": 7357, + "name": "PUSH [tag]", + "source": 14, + "value": "475" + }, + { + "begin": 584, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "B65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083" + }, + { + "begin": 7347, + "end": 7356, + "name": "DUP3", + "source": 14 + }, + { + "begin": 7325, + "end": 7332, + "name": "PUSH [tag]", + "source": 14, + "value": "173" + }, + { + "begin": 7325, + "end": 7357, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7325, + "end": 7357, + "name": "tag", + "source": 14, + "value": "475" + }, + { + "begin": 7325, + "end": 7357, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7320, + "end": 7382, + "name": "PUSH [tag]", + "source": 14, + "value": "476" + }, + { + "begin": 7320, + "end": 7382, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 7366, + "end": 7382, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 7366, + "end": 7382, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 7366, + "end": 7382, + "name": "PUSH", + "source": 14, + "value": "9D13E6E300000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 7366, + "end": 7382, + "name": "DUP2", + "source": 14 + }, + { + "begin": 7366, + "end": 7382, + "name": "MSTORE", + "source": 14 + }, + { + "begin": 7366, + "end": 7382, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 7366, + "end": 7382, + "name": "ADD", + "source": 14 + }, + { + "begin": 7366, + "end": 7382, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 7366, + "end": 7382, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 7366, + "end": 7382, + "name": "DUP1", + "source": 14 + }, + { + "begin": 7366, + "end": 7382, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 7366, + "end": 7382, + "name": "SUB", + "source": 14 + }, + { + "begin": 7366, + "end": 7382, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 7366, + "end": 7382, + "name": "REVERT", + "source": 14 + }, + { + "begin": 7320, + "end": 7382, + "name": "tag", + "source": 14, + "value": "476" + }, + { + "begin": 7320, + "end": 7382, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7250, + "end": 7389, + "name": "POP", + "source": 14 + }, + { + "begin": 7250, + "end": 7389, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 9420, + "end": 9856, + "name": "tag", + "source": 13, + "value": "270" + }, + { + "begin": 9420, + "end": 9856, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 9544, + "end": 9558, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 9561, + "end": 9567, + "name": "DUP4", + "source": 13 + }, + { + "begin": 9561, + "end": 9574, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 9544, + "end": 9574, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 9544, + "end": 9574, + "name": "POP", + "source": 13 + }, + { + "begin": 9590, + "end": 9599, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 9585, + "end": 9850, + "name": "tag", + "source": 13, + "value": "478" + }, + { + "begin": 9585, + "end": 9850, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 9609, + "end": 9615, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9605, + "end": 9606, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9605, + "end": 9615, + "name": "LT", + "source": 13 + }, + { + "begin": 9585, + "end": 9850, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 9585, + "end": 9850, + "name": "PUSH [tag]", + "source": 13, + "value": "479" + }, + { + "begin": 9585, + "end": 9850, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 9633, + "end": 9647, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 9650, + "end": 9658, + "name": "PUSH", + "source": 13, + "value": "CB" + }, + { + "begin": 9650, + "end": 9665, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 9659, + "end": 9664, + "name": "DUP7", + "source": 13 + }, + { + "begin": 9650, + "end": 9665, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9650, + "end": 9665, + "name": "AND", + "source": 13 + }, + { + "begin": 9650, + "end": 9665, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9650, + "end": 9665, + "name": "AND", + "source": 13 + }, + { + "begin": 9650, + "end": 9665, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9650, + "end": 9665, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 9650, + "end": 9665, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9650, + "end": 9665, + "name": "ADD", + "source": 13 + }, + { + "begin": 9650, + "end": 9665, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 9650, + "end": 9665, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9650, + "end": 9665, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 9650, + "end": 9665, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9650, + "end": 9665, + "name": "ADD", + "source": 13 + }, + { + "begin": 9650, + "end": 9665, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 9650, + "end": 9665, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 9666, + "end": 9672, + "name": "DUP8", + "source": 13 + }, + { + "begin": 9673, + "end": 9674, + "name": "DUP5", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "LT", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "PUSH [tag]", + "source": 13, + "value": "481" + }, + { + "begin": 9666, + "end": 9675, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "PUSH [tag]", + "source": 13, + "value": "482" + }, + { + "begin": 9666, + "end": 9675, + "name": "PUSH [tag]", + "source": 13, + "value": "300" + }, + { + "begin": 9666, + "end": 9675, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "tag", + "source": 13, + "value": "482" + }, + { + "begin": 9666, + "end": 9675, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "tag", + "source": 13, + "value": "481" + }, + { + "begin": 9666, + "end": 9675, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9666, + "end": 9675, + "name": "MUL", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9666, + "end": 9675, + "name": "ADD", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "ADD", + "source": 13 + }, + { + "begin": 9666, + "end": 9675, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9650, + "end": 9676, + "name": "AND", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 9650, + "end": 9676, + "name": "AND", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9650, + "end": 9676, + "name": "ADD", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9650, + "end": 9676, + "name": "ADD", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 9650, + "end": 9676, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 9650, + "end": 9676, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 9633, + "end": 9676, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 9633, + "end": 9676, + "name": "POP", + "source": 13 + }, + { + "begin": 9704, + "end": 9705, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 9695, + "end": 9701, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9695, + "end": 9705, + "name": "GT", + "source": 13 + }, + { + "begin": 9691, + "end": 9780, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 9691, + "end": 9780, + "name": "PUSH [tag]", + "source": 13, + "value": "483" + }, + { + "begin": 9691, + "end": 9780, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 9725, + "end": 9765, + "name": "PUSH [tag]", + "source": 13, + "value": "484" + }, + { + "begin": 9735, + "end": 9741, + "name": "DUP7", + "source": 13 + }, + { + "begin": 9742, + "end": 9743, + "name": "DUP4", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "LT", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "PUSH [tag]", + "source": 13, + "value": "485" + }, + { + "begin": 9735, + "end": 9744, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "PUSH [tag]", + "source": 13, + "value": "486" + }, + { + "begin": 9735, + "end": 9744, + "name": "PUSH [tag]", + "source": 13, + "value": "300" + }, + { + "begin": 9735, + "end": 9744, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "tag", + "source": 13, + "value": "486" + }, + { + "begin": 9735, + "end": 9744, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "tag", + "source": 13, + "value": "485" + }, + { + "begin": 9735, + "end": 9744, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9735, + "end": 9744, + "name": "MUL", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 9735, + "end": 9744, + "name": "ADD", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "ADD", + "source": 13 + }, + { + "begin": 9735, + "end": 9744, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 9746, + "end": 9751, + "name": "DUP7", + "source": 13 + }, + { + "begin": 9753, + "end": 9756, + "name": "DUP7", + "source": 13 + }, + { + "begin": 9758, + "end": 9764, + "name": "DUP5", + "source": 13 + }, + { + "begin": 9725, + "end": 9734, + "name": "PUSH [tag]", + "source": 13, + "value": "404" + }, + { + "begin": 9725, + "end": 9765, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 9725, + "end": 9765, + "name": "tag", + "source": 13, + "value": "484" + }, + { + "begin": 9725, + "end": 9765, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 9691, + "end": 9780, + "name": "tag", + "source": 13, + "value": "483" + }, + { + "begin": 9691, + "end": 9780, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 9822, + "end": 9825, + "name": "DUP2", + "source": 13 + }, + { + "begin": 9822, + "end": 9825, + "name": "DUP1", + "source": 13 + }, + { + "begin": 9822, + "end": 9825, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 9822, + "end": 9825, + "name": "ADD", + "source": 13 + }, + { + "begin": 9822, + "end": 9825, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 9822, + "end": 9825, + "name": "POP", + "source": 13 + }, + { + "begin": 9822, + "end": 9825, + "name": "POP", + "source": 13 + }, + { + "begin": 9619, + "end": 9850, + "name": "POP", + "source": 13 + }, + { + "begin": 9585, + "end": 9850, + "name": "PUSH [tag]", + "source": 13, + "value": "478" + }, + { + "begin": 9585, + "end": 9850, + "name": "JUMP", + "source": 13 + }, + { + "begin": 9585, + "end": 9850, + "name": "tag", + "source": 13, + "value": "479" + }, + { + "begin": 9585, + "end": 9850, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 9585, + "end": 9850, + "name": "POP", + "source": 13 + }, + { + "begin": 9534, + "end": 9856, + "name": "POP", + "source": 13 + }, + { + "begin": 9420, + "end": 9856, + "name": "POP", + "source": 13 + }, + { + "begin": 9420, + "end": 9856, + "name": "POP", + "source": 13 + }, + { + "begin": 9420, + "end": 9856, + "name": "POP", + "source": 13 + }, + { + "begin": 9420, + "end": 9856, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 2873, + "end": 3082, + "name": "tag", + "source": 3, + "value": "272" + }, + { + "begin": 2873, + "end": 3082, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 1787, + "end": 1788, + "name": "PUSH", + "source": 3, + "value": "1" + }, + { + "begin": 3053, + "end": 3060, + "name": "PUSH", + "source": 3, + "value": "97" + }, + { + "begin": 3053, + "end": 3075, + "name": "DUP2", + "source": 3 + }, + { + "begin": 3053, + "end": 3075, + "name": "SWAP1", + "source": 3 + }, + { + "begin": 3053, + "end": 3075, + "name": "SSTORE", + "source": 3 + }, + { + "begin": 3053, + "end": 3075, + "name": "POP", + "source": 3 + }, + { + "begin": 2873, + "end": 3082, + "jumpType": "[out]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 3121, + "end": 3239, + "name": "tag", + "source": 14, + "value": "277" + }, + { + "begin": 3121, + "end": 3239, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3189, + "end": 3213, + "name": "PUSH [tag]", + "source": 14, + "value": "489" + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 3204, + "end": 3212, + "name": "DUP3", + "source": 14 + }, + { + "begin": 3189, + "end": 3196, + "name": "PUSH [tag]", + "source": 14, + "value": "173" + }, + { + "begin": 3189, + "end": 3213, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3189, + "end": 3213, + "name": "tag", + "source": 14, + "value": "489" + }, + { + "begin": 3189, + "end": 3213, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3184, + "end": 3232, + "name": "PUSH [tag]", + "source": 14, + "value": "490" + }, + { + "begin": 3184, + "end": 3232, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 3222, + "end": 3232, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "PUSH", + "source": 14, + "value": "7BFA4B9F00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3222, + "end": 3232, + "name": "DUP2", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "MSTORE", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 3222, + "end": 3232, + "name": "ADD", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 3222, + "end": 3232, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "SUB", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "REVERT", + "source": 14 + }, + { + "begin": 3184, + "end": 3232, + "name": "tag", + "source": 14, + "value": "490" + }, + { + "begin": 3184, + "end": 3232, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3121, + "end": 3239, + "name": "POP", + "source": 14 + }, + { + "begin": 3121, + "end": 3239, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8195, + "end": 8429, + "name": "tag", + "source": 0, + "value": "279" + }, + { + "begin": 8195, + "end": 8429, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 8278, + "end": 8300, + "name": "PUSH [tag]", + "source": 0, + "value": "492" + }, + { + "begin": 8286, + "end": 8290, + "name": "DUP3", + "source": 0 + }, + { + "begin": 8292, + "end": 8299, + "name": "DUP3", + "source": 0 + }, + { + "begin": 8278, + "end": 8285, + "name": "PUSH [tag]", + "source": 0, + "value": "173" + }, + { + "begin": 8278, + "end": 8300, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 8278, + "end": 8300, + "name": "tag", + "source": 0, + "value": "492" + }, + { + "begin": 8278, + "end": 8300, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 8274, + "end": 8423, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 8274, + "end": 8423, + "name": "PUSH [tag]", + "source": 0, + "value": "493" + }, + { + "begin": 8274, + "end": 8423, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 8348, + "end": 8353, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8316, + "end": 8322, + "name": "PUSH", + "source": 0, + "value": "65" + }, + { + "begin": 8316, + "end": 8328, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8323, + "end": 8327, + "name": "DUP5", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 8316, + "end": 8328, + "name": "ADD", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 8316, + "end": 8328, + "name": "ADD", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8316, + "end": 8328, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 8316, + "end": 8336, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8316, + "end": 8336, + "name": "ADD", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8337, + "end": 8344, + "name": "DUP4", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 8316, + "end": 8345, + "name": "AND", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 8316, + "end": 8345, + "name": "AND", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 8316, + "end": 8345, + "name": "ADD", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 8316, + "end": 8345, + "name": "ADD", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8316, + "end": 8345, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8316, + "end": 8353, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 8316, + "end": 8353, + "name": "EXP", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 8316, + "end": 8353, + "name": "MUL", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "NOT", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "AND", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "DUP4", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "MUL", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "OR", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "POP", + "source": 0 + }, + { + "begin": 8399, + "end": 8411, + "name": "PUSH [tag]", + "source": 0, + "value": "494" + }, + { + "begin": 8399, + "end": 8409, + "name": "PUSH [tag]", + "source": 0, + "value": "323" + }, + { + "begin": 8399, + "end": 8411, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 8399, + "end": 8411, + "name": "tag", + "source": 0, + "value": "494" + }, + { + "begin": 8399, + "end": 8411, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 8372, + "end": 8412, + "name": "AND", + "source": 0 + }, + { + "begin": 8390, + "end": 8397, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 8372, + "end": 8412, + "name": "AND", + "source": 0 + }, + { + "begin": 8384, + "end": 8388, + "name": "DUP4", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "PUSH", + "source": 0, + "value": "F6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B" + }, + { + "begin": 8372, + "end": 8412, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 8372, + "end": 8412, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 8372, + "end": 8412, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "DUP1", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "SUB", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "LOG4", + "source": 0 + }, + { + "begin": 8274, + "end": 8423, + "name": "tag", + "source": 0, + "value": "493" + }, + { + "begin": 8274, + "end": 8423, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 8195, + "end": 8429, + "name": "POP", + "source": 0 + }, + { + "begin": 8195, + "end": 8429, + "name": "POP", + "source": 0 + }, + { + "begin": 8195, + "end": 8429, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2713, + "end": 2999, + "name": "tag", + "source": 14, + "value": "283" + }, + { + "begin": 2713, + "end": 2999, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2800, + "end": 2814, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 2817, + "end": 2827, + "name": "DUP3", + "source": 14 + }, + { + "begin": 2817, + "end": 2827, + "name": "DUP3", + "source": 14 + }, + { + "begin": 2817, + "end": 2834, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2817, + "end": 2834, + "name": "POP", + "source": 14 + }, + { + "begin": 2800, + "end": 2834, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2800, + "end": 2834, + "name": "POP", + "source": 14 + }, + { + "begin": 2849, + "end": 2858, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 2844, + "end": 2993, + "name": "tag", + "source": 14, + "value": "496" + }, + { + "begin": 2844, + "end": 2993, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2868, + "end": 2874, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2864, + "end": 2865, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2864, + "end": 2874, + "name": "LT", + "source": 14 + }, + { + "begin": 2844, + "end": 2993, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 2844, + "end": 2993, + "name": "PUSH [tag]", + "source": 14, + "value": "497" + }, + { + "begin": 2844, + "end": 2993, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 2891, + "end": 2923, + "name": "PUSH [tag]", + "source": 14, + "value": "499" + }, + { + "begin": 2902, + "end": 2907, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2909, + "end": 2919, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2909, + "end": 2919, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2920, + "end": 2921, + "name": "DUP5", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "LT", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH [tag]", + "source": 14, + "value": "500" + }, + { + "begin": 2909, + "end": 2922, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH [tag]", + "source": 14, + "value": "501" + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH [tag]", + "source": 14, + "value": "300" + }, + { + "begin": 2909, + "end": 2922, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "tag", + "source": 14, + "value": "501" + }, + { + "begin": 2909, + "end": 2922, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "tag", + "source": 14, + "value": "500" + }, + { + "begin": 2909, + "end": 2922, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "POP", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH", + "source": 14, + "value": "20" + }, + { + "begin": 2909, + "end": 2922, + "name": "MUL", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "ADD", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH", + "source": 14, + "value": "20" + }, + { + "begin": 2909, + "end": 2922, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "ADD", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH [tag]", + "source": 14, + "value": "502" + }, + { + "begin": 2909, + "end": 2922, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH [tag]", + "source": 14, + "value": "69" + }, + { + "begin": 2909, + "end": 2922, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "tag", + "source": 14, + "value": "502" + }, + { + "begin": 2909, + "end": 2922, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2891, + "end": 2901, + "name": "PUSH [tag]", + "source": 14, + "value": "213" + }, + { + "begin": 2891, + "end": 2923, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2891, + "end": 2923, + "name": "tag", + "source": 14, + "value": "499" + }, + { + "begin": 2891, + "end": 2923, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "DUP1", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "DUP1", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "PUSH", + "source": 14, + "value": "1" + }, + { + "begin": 2965, + "end": 2968, + "name": "ADD", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "POP", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "POP", + "source": 14 + }, + { + "begin": 2844, + "end": 2993, + "name": "PUSH [tag]", + "source": 14, + "value": "496" + }, + { + "begin": 2844, + "end": 2993, + "name": "JUMP", + "source": 14 + }, + { + "begin": 2844, + "end": 2993, + "name": "tag", + "source": 14, + "value": "497" + }, + { + "begin": 2844, + "end": 2993, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2844, + "end": 2993, + "name": "POP", + "source": 14 + }, + { + "begin": 2790, + "end": 2999, + "name": "POP", + "source": 14 + }, + { + "begin": 2713, + "end": 2999, + "name": "POP", + "source": 14 + }, + { + "begin": 2713, + "end": 2999, + "name": "POP", + "source": 14 + }, + { + "begin": 2713, + "end": 2999, + "name": "POP", + "source": 14 + }, + { + "begin": 2713, + "end": 2999, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2215, + "end": 2498, + "name": "tag", + "source": 14, + "value": "287" + }, + { + "begin": 2215, + "end": 2498, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2299, + "end": 2313, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 2316, + "end": 2326, + "name": "DUP3", + "source": 14 + }, + { + "begin": 2316, + "end": 2326, + "name": "DUP3", + "source": 14 + }, + { + "begin": 2316, + "end": 2333, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2316, + "end": 2333, + "name": "POP", + "source": 14 + }, + { + "begin": 2299, + "end": 2333, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2299, + "end": 2333, + "name": "POP", + "source": 14 + }, + { + "begin": 2348, + "end": 2357, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 2343, + "end": 2492, + "name": "tag", + "source": 14, + "value": "504" + }, + { + "begin": 2343, + "end": 2492, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2367, + "end": 2373, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2363, + "end": 2364, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2363, + "end": 2373, + "name": "LT", + "source": 14 + }, + { + "begin": 2343, + "end": 2492, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 2343, + "end": 2492, + "name": "PUSH [tag]", + "source": 14, + "value": "505" + }, + { + "begin": 2343, + "end": 2492, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 2390, + "end": 2422, + "name": "PUSH [tag]", + "source": 14, + "value": "507" + }, + { + "begin": 2401, + "end": 2406, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2408, + "end": 2418, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2408, + "end": 2418, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2419, + "end": 2420, + "name": "DUP5", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "LT", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH [tag]", + "source": 14, + "value": "508" + }, + { + "begin": 2408, + "end": 2421, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH [tag]", + "source": 14, + "value": "509" + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH [tag]", + "source": 14, + "value": "300" + }, + { + "begin": 2408, + "end": 2421, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "tag", + "source": 14, + "value": "509" + }, + { + "begin": 2408, + "end": 2421, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "tag", + "source": 14, + "value": "508" + }, + { + "begin": 2408, + "end": 2421, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "POP", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH", + "source": 14, + "value": "20" + }, + { + "begin": 2408, + "end": 2421, + "name": "MUL", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "ADD", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH", + "source": 14, + "value": "20" + }, + { + "begin": 2408, + "end": 2421, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "ADD", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH [tag]", + "source": 14, + "value": "510" + }, + { + "begin": 2408, + "end": 2421, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH [tag]", + "source": 14, + "value": "69" + }, + { + "begin": 2408, + "end": 2421, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "tag", + "source": 14, + "value": "510" + }, + { + "begin": 2408, + "end": 2421, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2390, + "end": 2400, + "name": "PUSH [tag]", + "source": 14, + "value": "511" + }, + { + "begin": 2390, + "end": 2422, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2390, + "end": 2422, + "name": "tag", + "source": 14, + "value": "507" + }, + { + "begin": 2390, + "end": 2422, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "DUP1", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "DUP1", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "PUSH", + "source": 14, + "value": "1" + }, + { + "begin": 2464, + "end": 2467, + "name": "ADD", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "POP", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "POP", + "source": 14 + }, + { + "begin": 2343, + "end": 2492, + "name": "PUSH [tag]", + "source": 14, + "value": "504" + }, + { + "begin": 2343, + "end": 2492, + "name": "JUMP", + "source": 14 + }, + { + "begin": 2343, + "end": 2492, + "name": "tag", + "source": 14, + "value": "505" + }, + { + "begin": 2343, + "end": 2492, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2343, + "end": 2492, + "name": "POP", + "source": 14 + }, + { + "begin": 2289, + "end": 2498, + "name": "POP", + "source": 14 + }, + { + "begin": 2215, + "end": 2498, + "name": "POP", + "source": 14 + }, + { + "begin": 2215, + "end": 2498, + "name": "POP", + "source": 14 + }, + { + "begin": 2215, + "end": 2498, + "name": "POP", + "source": 14 + }, + { + "begin": 2215, + "end": 2498, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3642, + "end": 3745, + "name": "tag", + "source": 0, + "value": "313" + }, + { + "begin": 3642, + "end": 3745, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3708, + "end": 3738, + "name": "PUSH [tag]", + "source": 0, + "value": "513" + }, + { + "begin": 3719, + "end": 3723, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3725, + "end": 3737, + "name": "PUSH [tag]", + "source": 0, + "value": "514" + }, + { + "begin": 3725, + "end": 3735, + "name": "PUSH [tag]", + "source": 0, + "value": "323" + }, + { + "begin": 3725, + "end": 3737, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3725, + "end": 3737, + "name": "tag", + "source": 0, + "value": "514" + }, + { + "begin": 3725, + "end": 3737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3708, + "end": 3718, + "name": "PUSH [tag]", + "source": 0, + "value": "515" + }, + { + "begin": 3708, + "end": 3738, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3708, + "end": 3738, + "name": "tag", + "source": 0, + "value": "513" + }, + { + "begin": 3708, + "end": 3738, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3642, + "end": 3745, + "name": "POP", + "source": 0 + }, + { + "begin": 3642, + "end": 3745, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7791, + "end": 8024, + "name": "tag", + "source": 0, + "value": "316" + }, + { + "begin": 7791, + "end": 8024, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7874, + "end": 7896, + "name": "PUSH [tag]", + "source": 0, + "value": "517" + }, + { + "begin": 7882, + "end": 7886, + "name": "DUP3", + "source": 0 + }, + { + "begin": 7888, + "end": 7895, + "name": "DUP3", + "source": 0 + }, + { + "begin": 7874, + "end": 7881, + "name": "PUSH [tag]", + "source": 0, + "value": "173" + }, + { + "begin": 7874, + "end": 7896, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7874, + "end": 7896, + "name": "tag", + "source": 0, + "value": "517" + }, + { + "begin": 7874, + "end": 7896, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7869, + "end": 8018, + "name": "PUSH [tag]", + "source": 0, + "value": "518" + }, + { + "begin": 7869, + "end": 8018, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 7944, + "end": 7948, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 7912, + "end": 7918, + "name": "PUSH", + "source": 0, + "value": "65" + }, + { + "begin": 7912, + "end": 7924, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7919, + "end": 7923, + "name": "DUP5", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 7912, + "end": 7924, + "name": "ADD", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 7912, + "end": 7924, + "name": "ADD", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7912, + "end": 7924, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 7912, + "end": 7932, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7912, + "end": 7932, + "name": "ADD", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7933, + "end": 7940, + "name": "DUP4", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 7912, + "end": 7941, + "name": "AND", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 7912, + "end": 7941, + "name": "AND", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 7912, + "end": 7941, + "name": "ADD", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 7912, + "end": 7941, + "name": "ADD", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7912, + "end": 7941, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7912, + "end": 7948, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 7912, + "end": 7948, + "name": "EXP", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 7912, + "end": 7948, + "name": "MUL", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "NOT", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "AND", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "DUP4", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "MUL", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "OR", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "POP", + "source": 0 + }, + { + "begin": 7994, + "end": 8006, + "name": "PUSH [tag]", + "source": 0, + "value": "519" + }, + { + "begin": 7994, + "end": 8004, + "name": "PUSH [tag]", + "source": 0, + "value": "323" + }, + { + "begin": 7994, + "end": 8006, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7994, + "end": 8006, + "name": "tag", + "source": 0, + "value": "519" + }, + { + "begin": 7994, + "end": 8006, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 7967, + "end": 8007, + "name": "AND", + "source": 0 + }, + { + "begin": 7985, + "end": 7992, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 7967, + "end": 8007, + "name": "AND", + "source": 0 + }, + { + "begin": 7979, + "end": 7983, + "name": "DUP4", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "PUSH", + "source": 0, + "value": "2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D" + }, + { + "begin": 7967, + "end": 8007, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 7967, + "end": 8007, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 7967, + "end": 8007, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "DUP1", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "SUB", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "LOG4", + "source": 0 + }, + { + "begin": 7869, + "end": 8018, + "name": "tag", + "source": 0, + "value": "518" + }, + { + "begin": 7869, + "end": 8018, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7791, + "end": 8024, + "name": "POP", + "source": 0 + }, + { + "begin": 7791, + "end": 8024, + "name": "POP", + "source": 0 + }, + { + "begin": 7791, + "end": 8024, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 12093, + "end": 12257, + "name": "tag", + "source": 13, + "value": "320" + }, + { + "begin": 12093, + "end": 12257, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 2112, + "end": 2116, + "name": "PUSH", + "source": 13, + "value": "DE0B6B3A7640000" + }, + { + "begin": 12153, + "end": 12160, + "name": "DUP2", + "source": 13 + }, + { + "begin": 12153, + "end": 12170, + "name": "GT", + "source": 13 + }, + { + "begin": 12149, + "end": 12191, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 12149, + "end": 12191, + "name": "PUSH [tag]", + "source": 13, + "value": "521" + }, + { + "begin": 12149, + "end": 12191, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 12179, + "end": 12191, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 12179, + "end": 12191, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 12179, + "end": 12191, + "name": "PUSH", + "source": 13, + "value": "CD4E616700000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 12179, + "end": 12191, + "name": "DUP2", + "source": 13 + }, + { + "begin": 12179, + "end": 12191, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 12179, + "end": 12191, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 12179, + "end": 12191, + "name": "ADD", + "source": 13 + }, + { + "begin": 12179, + "end": 12191, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 12179, + "end": 12191, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 12179, + "end": 12191, + "name": "DUP1", + "source": 13 + }, + { + "begin": 12179, + "end": 12191, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 12179, + "end": 12191, + "name": "SUB", + "source": 13 + }, + { + "begin": 12179, + "end": 12191, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12179, + "end": 12191, + "name": "REVERT", + "source": 13 + }, + { + "begin": 12149, + "end": 12191, + "name": "tag", + "source": 13, + "value": "521" + }, + { + "begin": 12149, + "end": 12191, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12210, + "end": 12217, + "name": "DUP1", + "source": 13 + }, + { + "begin": 12201, + "end": 12207, + "name": "PUSH", + "source": 13, + "value": "C9" + }, + { + "begin": 12201, + "end": 12217, + "name": "DUP2", + "source": 13 + }, + { + "begin": 12201, + "end": 12217, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12201, + "end": 12217, + "name": "SSTORE", + "source": 13 + }, + { + "begin": 12201, + "end": 12217, + "name": "POP", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "PUSH", + "source": 13, + "value": "D4C19C993AEEB50B76DA8B158F84806C9D235EFF5B86F3A36F12A2E1DD4E6EAC" + }, + { + "begin": 12242, + "end": 12249, + "name": "DUP2", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 12232, + "end": 12250, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "PUSH [tag]", + "source": 13, + "value": "522" + }, + { + "begin": 12232, + "end": 12250, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "PUSH [tag]", + "source": 13, + "value": "117" + }, + { + "begin": 12232, + "end": 12250, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "tag", + "source": 13, + "value": "522" + }, + { + "begin": 12232, + "end": 12250, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 12232, + "end": 12250, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "DUP1", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "SUB", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 12232, + "end": 12250, + "name": "LOG1", + "source": 13 + }, + { + "begin": 12093, + "end": 12257, + "name": "POP", + "source": 13 + }, + { + "begin": 12093, + "end": 12257, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 850, + "end": 946, + "name": "tag", + "source": 8, + "value": "323" + }, + { + "begin": 850, + "end": 946, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 903, + "end": 910, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 929, + "end": 939, + "name": "CALLER", + "source": 8 + }, + { + "begin": 922, + "end": 939, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 922, + "end": 939, + "name": "POP", + "source": 8 + }, + { + "begin": 850, + "end": 946, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 850, + "end": 946, + "jumpType": "[out]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 1186, + "end": 1506, + "name": "tag", + "source": 7, + "value": "387" + }, + { + "begin": 1186, + "end": 1506, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 1246, + "end": 1250, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 1498, + "end": 1499, + "name": "DUP1", + "source": 7 + }, + { + "begin": 1476, + "end": 1483, + "name": "DUP3", + "source": 7 + }, + { + "begin": 1476, + "end": 1495, + "name": "PUSH", + "source": 7, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1476, + "end": 1495, + "name": "AND", + "source": 7 + }, + { + "begin": 1476, + "end": 1495, + "name": "EXTCODESIZE", + "source": 7 + }, + { + "begin": 1476, + "end": 1499, + "name": "GT", + "source": 7 + }, + { + "begin": 1469, + "end": 1499, + "name": "SWAP1", + "source": 7 + }, + { + "begin": 1469, + "end": 1499, + "name": "POP", + "source": 7 + }, + { + "begin": 1186, + "end": 1506, + "name": "SWAP2", + "source": 7 + }, + { + "begin": 1186, + "end": 1506, + "name": "SWAP1", + "source": 7 + }, + { + "begin": 1186, + "end": 1506, + "name": "POP", + "source": 7 + }, + { + "begin": 1186, + "end": 1506, + "jumpType": "[out]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 3115, + "end": 3831, + "name": "tag", + "source": 13, + "value": "395" + }, + { + "begin": 3115, + "end": 3831, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "0" + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "15" + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SLOAD", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "100" + }, + { + "begin": 5363, + "end": 5376, + "name": "EXP", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "DIV", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 5363, + "end": 5376, + "name": "AND", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "526" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPI", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 5355, + "end": 5424, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 5355, + "end": 5424, + "name": "DUP2", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "MSTORE", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "4" + }, + { + "begin": 5355, + "end": 5424, + "name": "ADD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "527" + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "528" + }, + { + "begin": 5355, + "end": 5424, + "jumpType": "[in]", + "name": "JUMP", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "tag", + "source": 2, + "value": "527" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 5355, + "end": 5424, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "DUP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP2", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SUB", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "REVERT", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "tag", + "source": 2, + "value": "526" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 3380, + "end": 3523, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "530" + }, + { + "begin": 3421, + "end": 3435, + "modifierDepth": 1, + "name": "DUP10", + "source": 13 + }, + { + "begin": 3421, + "end": 3435, + "modifierDepth": 1, + "name": "DUP10", + "source": 13 + }, + { + "begin": 3449, + "end": 3466, + "modifierDepth": 1, + "name": "DUP10", + "source": 13 + }, + { + "begin": 3449, + "end": 3466, + "modifierDepth": 1, + "name": "DUP10", + "source": 13 + }, + { + "begin": 3480, + "end": 3492, + "modifierDepth": 1, + "name": "DUP10", + "source": 13 + }, + { + "begin": 3480, + "end": 3492, + "modifierDepth": 1, + "name": "DUP10", + "source": 13 + }, + { + "begin": 3506, + "end": 3513, + "modifierDepth": 1, + "name": "DUP10", + "source": 13 + }, + { + "begin": 3506, + "end": 3513, + "modifierDepth": 1, + "name": "DUP10", + "source": 13 + }, + { + "begin": 3380, + "end": 3407, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "531" + }, + { + "begin": 3380, + "end": 3523, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 3380, + "end": 3523, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "530" + }, + { + "begin": 3380, + "end": 3523, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 3533, + "end": 3557, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "532" + }, + { + "begin": 3533, + "end": 3555, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "533" + }, + { + "begin": 3533, + "end": 3557, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 3533, + "end": 3557, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "532" + }, + { + "begin": 3533, + "end": 3557, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 3596, + "end": 3597, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 3572, + "end": 3586, + "modifierDepth": 1, + "name": "DUP10", + "source": 13 + }, + { + "begin": 3572, + "end": 3586, + "modifierDepth": 1, + "name": "DUP10", + "source": 13 + }, + { + "begin": 3572, + "end": 3593, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 3572, + "end": 3593, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 3572, + "end": 3597, + "modifierDepth": 1, + "name": "GT", + "source": 13 + }, + { + "begin": 3568, + "end": 3653, + "modifierDepth": 1, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 3568, + "end": 3653, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "534" + }, + { + "begin": 3568, + "end": 3653, + "modifierDepth": 1, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 3638, + "end": 3642, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 3613, + "end": 3635, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "CA" + }, + { + "begin": 3613, + "end": 3635, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "100" + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "EXP", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "FF" + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "NOT", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "AND", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "OR", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "SSTORE", + "source": 13 + }, + { + "begin": 3613, + "end": 3642, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 3568, + "end": 3653, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "534" + }, + { + "begin": 3568, + "end": 3653, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 3693, + "end": 3694, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 3666, + "end": 3683, + "modifierDepth": 1, + "name": "DUP8", + "source": 13 + }, + { + "begin": 3666, + "end": 3683, + "modifierDepth": 1, + "name": "DUP8", + "source": 13 + }, + { + "begin": 3666, + "end": 3690, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 3666, + "end": 3690, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 3666, + "end": 3694, + "modifierDepth": 1, + "name": "GT", + "source": 13 + }, + { + "begin": 3662, + "end": 3754, + "modifierDepth": 1, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 3662, + "end": 3754, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "535" + }, + { + "begin": 3662, + "end": 3754, + "modifierDepth": 1, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 3739, + "end": 3743, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 3710, + "end": 3736, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "CA" + }, + { + "begin": 3710, + "end": 3736, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "1" + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "100" + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "EXP", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "FF" + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "NOT", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "AND", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "DUP4", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "MUL", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "OR", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "SSTORE", + "source": 13 + }, + { + "begin": 3710, + "end": 3743, + "modifierDepth": 1, + "name": "POP", + "source": 13 + }, + { + "begin": 3662, + "end": 3754, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "535" + }, + { + "begin": 3662, + "end": 3754, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 3778, + "end": 3779, + "modifierDepth": 1, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 3768, + "end": 3775, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 3768, + "end": 3779, + "modifierDepth": 1, + "name": "GT", + "source": 13 + }, + { + "begin": 3764, + "end": 3825, + "modifierDepth": 1, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 3764, + "end": 3825, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "536" + }, + { + "begin": 3764, + "end": 3825, + "modifierDepth": 1, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 3795, + "end": 3814, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "537" + }, + { + "begin": 3806, + "end": 3813, + "modifierDepth": 1, + "name": "DUP2", + "source": 13 + }, + { + "begin": 3795, + "end": 3805, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 13, + "value": "320" + }, + { + "begin": 3795, + "end": 3814, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 13 + }, + { + "begin": 3795, + "end": 3814, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "537" + }, + { + "begin": 3795, + "end": 3814, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 3764, + "end": 3825, + "modifierDepth": 1, + "name": "tag", + "source": 13, + "value": "536" + }, + { + "begin": 3764, + "end": 3825, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 3115, + "end": 3831, + "name": "POP", + "source": 13 + }, + { + "begin": 3115, + "end": 3831, + "name": "POP", + "source": 13 + }, + { + "begin": 3115, + "end": 3831, + "name": "POP", + "source": 13 + }, + { + "begin": 3115, + "end": 3831, + "name": "POP", + "source": 13 + }, + { + "begin": 3115, + "end": 3831, + "name": "POP", + "source": 13 + }, + { + "begin": 3115, + "end": 3831, + "name": "POP", + "source": 13 + }, + { + "begin": 3115, + "end": 3831, + "name": "POP", + "source": 13 + }, + { + "begin": 3115, + "end": 3831, + "name": "POP", + "source": 13 + }, + { + "begin": 3115, + "end": 3831, + "name": "POP", + "source": 13 + }, + { + "begin": 3115, + "end": 3831, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 10186, + "end": 10738, + "name": "tag", + "source": 13, + "value": "404" + }, + { + "begin": 10186, + "end": 10738, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10345, + "end": 10353, + "name": "PUSH", + "source": 13, + "value": "CB" + }, + { + "begin": 10345, + "end": 10360, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10354, + "end": 10359, + "name": "DUP5", + "source": 13 + }, + { + "begin": 10345, + "end": 10360, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10345, + "end": 10360, + "name": "AND", + "source": 13 + }, + { + "begin": 10345, + "end": 10360, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10345, + "end": 10360, + "name": "AND", + "source": 13 + }, + { + "begin": 10345, + "end": 10360, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10345, + "end": 10360, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10345, + "end": 10360, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 10345, + "end": 10360, + "name": "ADD", + "source": 13 + }, + { + "begin": 10345, + "end": 10360, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10345, + "end": 10360, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10345, + "end": 10360, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10345, + "end": 10360, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 10345, + "end": 10360, + "name": "ADD", + "source": 13 + }, + { + "begin": 10345, + "end": 10360, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10345, + "end": 10360, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10361, + "end": 10367, + "name": "DUP6", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10345, + "end": 10368, + "name": "AND", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10345, + "end": 10368, + "name": "AND", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 10345, + "end": 10368, + "name": "ADD", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 10345, + "end": 10368, + "name": "ADD", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10345, + "end": 10368, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 10345, + "end": 10368, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 10335, + "end": 10342, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10335, + "end": 10368, + "name": "GT", + "source": 13 + }, + { + "begin": 10331, + "end": 10398, + "name": "ISZERO", + "source": 13 + }, + { + "begin": 10331, + "end": 10398, + "name": "PUSH [tag]", + "source": 13, + "value": "539" + }, + { + "begin": 10331, + "end": 10398, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 10377, + "end": 10398, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10377, + "end": 10398, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 10377, + "end": 10398, + "name": "PUSH", + "source": 13, + "value": "F4D678B800000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 10377, + "end": 10398, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10377, + "end": 10398, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10377, + "end": 10398, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 10377, + "end": 10398, + "name": "ADD", + "source": 13 + }, + { + "begin": 10377, + "end": 10398, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10377, + "end": 10398, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 10377, + "end": 10398, + "name": "DUP1", + "source": 13 + }, + { + "begin": 10377, + "end": 10398, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10377, + "end": 10398, + "name": "SUB", + "source": 13 + }, + { + "begin": 10377, + "end": 10398, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10377, + "end": 10398, + "name": "REVERT", + "source": 13 + }, + { + "begin": 10331, + "end": 10398, + "name": "tag", + "source": 13, + "value": "539" + }, + { + "begin": 10331, + "end": 10398, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10436, + "end": 10443, + "name": "DUP1", + "source": 13 + }, + { + "begin": 10409, + "end": 10417, + "name": "PUSH", + "source": 13, + "value": "CB" + }, + { + "begin": 10409, + "end": 10424, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10418, + "end": 10423, + "name": "DUP6", + "source": 13 + }, + { + "begin": 10409, + "end": 10424, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10409, + "end": 10424, + "name": "AND", + "source": 13 + }, + { + "begin": 10409, + "end": 10424, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10409, + "end": 10424, + "name": "AND", + "source": 13 + }, + { + "begin": 10409, + "end": 10424, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10409, + "end": 10424, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10409, + "end": 10424, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 10409, + "end": 10424, + "name": "ADD", + "source": 13 + }, + { + "begin": 10409, + "end": 10424, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10409, + "end": 10424, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10409, + "end": 10424, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10409, + "end": 10424, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 10409, + "end": 10424, + "name": "ADD", + "source": 13 + }, + { + "begin": 10409, + "end": 10424, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10409, + "end": 10424, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10425, + "end": 10431, + "name": "DUP7", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10409, + "end": 10432, + "name": "AND", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10409, + "end": 10432, + "name": "AND", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 10409, + "end": 10432, + "name": "ADD", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 10409, + "end": 10432, + "name": "ADD", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10409, + "end": 10432, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 10409, + "end": 10432, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10409, + "end": 10443, + "name": "DUP3", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "DUP3", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "PUSH [tag]", + "source": 13, + "value": "540" + }, + { + "begin": 10409, + "end": 10443, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "PUSH [tag]", + "source": 13, + "value": "461" + }, + { + "begin": 10409, + "end": 10443, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "tag", + "source": 13, + "value": "540" + }, + { + "begin": 10409, + "end": 10443, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "POP", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "POP", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "SSTORE", + "source": 13 + }, + { + "begin": 10409, + "end": 10443, + "name": "POP", + "source": 13 + }, + { + "begin": 822, + "end": 823, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 10457, + "end": 10473, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10457, + "end": 10473, + "name": "AND", + "source": 13 + }, + { + "begin": 10457, + "end": 10463, + "name": "DUP5", + "source": 13 + }, + { + "begin": 10457, + "end": 10473, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10457, + "end": 10473, + "name": "AND", + "source": 13 + }, + { + "begin": 10457, + "end": 10473, + "name": "SUB", + "source": 13 + }, + { + "begin": 10453, + "end": 10679, + "name": "PUSH [tag]", + "source": 13, + "value": "541" + }, + { + "begin": 10453, + "end": 10679, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 10490, + "end": 10502, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10516, + "end": 10519, + "name": "DUP3", + "source": 13 + }, + { + "begin": 10508, + "end": 10525, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10508, + "end": 10525, + "name": "AND", + "source": 13 + }, + { + "begin": 10533, + "end": 10540, + "name": "DUP3", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10508, + "end": 10545, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH [tag]", + "source": 13, + "value": "542" + }, + { + "begin": 10508, + "end": 10545, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH [tag]", + "source": 13, + "value": "543" + }, + { + "begin": 10508, + "end": 10545, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "tag", + "source": 13, + "value": "542" + }, + { + "begin": 10508, + "end": 10545, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10508, + "end": 10545, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "DUP1", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "DUP4", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "SUB", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "DUP6", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "DUP8", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "GAS", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "CALL", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "POP", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "POP", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "POP", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "RETURNDATASIZE", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "DUP1", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10508, + "end": 10545, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "EQ", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH [tag]", + "source": 13, + "value": "546" + }, + { + "begin": 10508, + "end": 10545, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10508, + "end": 10545, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "POP", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH", + "source": 13, + "value": "1F" + }, + { + "begin": 10508, + "end": 10545, + "name": "NOT", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH", + "source": 13, + "value": "3F" + }, + { + "begin": 10508, + "end": 10545, + "name": "RETURNDATASIZE", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "ADD", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "AND", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "DUP3", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "ADD", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10508, + "end": 10545, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "RETURNDATASIZE", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "DUP3", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "RETURNDATASIZE", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 10508, + "end": 10545, + "name": "DUP5", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "ADD", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "RETURNDATACOPY", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH [tag]", + "source": 13, + "value": "545" + }, + { + "begin": 10508, + "end": 10545, + "name": "JUMP", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "tag", + "source": 13, + "value": "546" + }, + { + "begin": 10508, + "end": 10545, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "PUSH", + "source": 13, + "value": "60" + }, + { + "begin": 10508, + "end": 10545, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "POP", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "tag", + "source": 13, + "value": "545" + }, + { + "begin": 10508, + "end": 10545, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10508, + "end": 10545, + "name": "POP", + "source": 13 + }, + { + "begin": 10489, + "end": 10545, + "name": "POP", + "source": 13 + }, + { + "begin": 10489, + "end": 10545, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10489, + "end": 10545, + "name": "POP", + "source": 13 + }, + { + "begin": 10564, + "end": 10571, + "name": "DUP1", + "source": 13 + }, + { + "begin": 10559, + "end": 10596, + "name": "PUSH [tag]", + "source": 13, + "value": "547" + }, + { + "begin": 10559, + "end": 10596, + "name": "JUMPI", + "source": 13 + }, + { + "begin": 10580, + "end": 10596, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10580, + "end": 10596, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 10580, + "end": 10596, + "name": "PUSH", + "source": 13, + "value": "90B8EC1800000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 10580, + "end": 10596, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10580, + "end": 10596, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 10580, + "end": 10596, + "name": "PUSH", + "source": 13, + "value": "4" + }, + { + "begin": 10580, + "end": 10596, + "name": "ADD", + "source": 13 + }, + { + "begin": 10580, + "end": 10596, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10580, + "end": 10596, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 10580, + "end": 10596, + "name": "DUP1", + "source": 13 + }, + { + "begin": 10580, + "end": 10596, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10580, + "end": 10596, + "name": "SUB", + "source": 13 + }, + { + "begin": 10580, + "end": 10596, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10580, + "end": 10596, + "name": "REVERT", + "source": 13 + }, + { + "begin": 10559, + "end": 10596, + "name": "tag", + "source": 13, + "value": "547" + }, + { + "begin": 10559, + "end": 10596, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10475, + "end": 10607, + "name": "POP", + "source": 13 + }, + { + "begin": 10453, + "end": 10679, + "name": "PUSH [tag]", + "source": 13, + "value": "548" + }, + { + "begin": 10453, + "end": 10679, + "name": "JUMP", + "source": 13 + }, + { + "begin": 10453, + "end": 10679, + "name": "tag", + "source": 13, + "value": "541" + }, + { + "begin": 10453, + "end": 10679, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10627, + "end": 10668, + "name": "PUSH [tag]", + "source": 13, + "value": "549" + }, + { + "begin": 10655, + "end": 10658, + "name": "DUP3", + "source": 13 + }, + { + "begin": 10660, + "end": 10667, + "name": "DUP3", + "source": 13 + }, + { + "begin": 10634, + "end": 10640, + "name": "DUP7", + "source": 13 + }, + { + "begin": 10627, + "end": 10654, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10627, + "end": 10654, + "name": "AND", + "source": 13 + }, + { + "begin": 10627, + "end": 10654, + "name": "PUSH [tag]", + "source": 13, + "value": "550" + }, + { + "begin": 10627, + "end": 10654, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10627, + "end": 10668, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 10627, + "end": 10668, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10627, + "end": 10668, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10627, + "end": 10668, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFF" + }, + { + "begin": 10627, + "end": 10668, + "name": "AND", + "source": 13 + }, + { + "begin": 10627, + "end": 10668, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 10627, + "end": 10668, + "name": "tag", + "source": 13, + "value": "549" + }, + { + "begin": 10627, + "end": 10668, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10453, + "end": 10679, + "name": "tag", + "source": 13, + "value": "548" + }, + { + "begin": 10453, + "end": 10679, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10718, + "end": 10721, + "name": "DUP2", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10694, + "end": 10731, + "name": "AND", + "source": 13 + }, + { + "begin": 10711, + "end": 10716, + "name": "DUP4", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10694, + "end": 10731, + "name": "AND", + "source": 13 + }, + { + "begin": 10703, + "end": 10709, + "name": "DUP6", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 10694, + "end": 10731, + "name": "AND", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "PUSH", + "source": 13, + "value": "3115D1449A7B732C986CBA18244E897A450F61E1BB8D589CD2E69E6C8924F9F7" + }, + { + "begin": 10723, + "end": 10730, + "name": "DUP5", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10694, + "end": 10731, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "PUSH [tag]", + "source": 13, + "value": "551" + }, + { + "begin": 10694, + "end": 10731, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "PUSH [tag]", + "source": 13, + "value": "117" + }, + { + "begin": 10694, + "end": 10731, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "tag", + "source": 13, + "value": "551" + }, + { + "begin": 10694, + "end": 10731, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 10694, + "end": 10731, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "DUP1", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "SUB", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 10694, + "end": 10731, + "name": "LOG4", + "source": 13 + }, + { + "begin": 10186, + "end": 10738, + "name": "POP", + "source": 13 + }, + { + "begin": 10186, + "end": 10738, + "name": "POP", + "source": 13 + }, + { + "begin": 10186, + "end": 10738, + "name": "POP", + "source": 13 + }, + { + "begin": 10186, + "end": 10738, + "name": "POP", + "source": 13 + }, + { + "begin": 10186, + "end": 10738, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 4527, + "end": 4658, + "name": "tag", + "source": 14, + "value": "442" + }, + { + "begin": 4527, + "end": 4658, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4593, + "end": 4624, + "name": "PUSH [tag]", + "source": 14, + "value": "553" + }, + { + "begin": 430, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 4617, + "end": 4623, + "name": "DUP3", + "source": 14 + }, + { + "begin": 4593, + "end": 4600, + "name": "PUSH [tag]", + "source": 14, + "value": "173" + }, + { + "begin": 4593, + "end": 4624, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4593, + "end": 4624, + "name": "tag", + "source": 14, + "value": "553" + }, + { + "begin": 4593, + "end": 4624, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4588, + "end": 4651, + "name": "PUSH [tag]", + "source": 14, + "value": "554" + }, + { + "begin": 4588, + "end": 4651, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 4633, + "end": 4651, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 4633, + "end": 4651, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 4633, + "end": 4651, + "name": "PUSH", + "source": 14, + "value": "E51CF7BF00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 4633, + "end": 4651, + "name": "DUP2", + "source": 14 + }, + { + "begin": 4633, + "end": 4651, + "name": "MSTORE", + "source": 14 + }, + { + "begin": 4633, + "end": 4651, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 4633, + "end": 4651, + "name": "ADD", + "source": 14 + }, + { + "begin": 4633, + "end": 4651, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 4633, + "end": 4651, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 4633, + "end": 4651, + "name": "DUP1", + "source": 14 + }, + { + "begin": 4633, + "end": 4651, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 4633, + "end": 4651, + "name": "SUB", + "source": 14 + }, + { + "begin": 4633, + "end": 4651, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4633, + "end": 4651, + "name": "REVERT", + "source": 14 + }, + { + "begin": 4588, + "end": 4651, + "name": "tag", + "source": 14, + "value": "554" + }, + { + "begin": 4588, + "end": 4651, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4527, + "end": 4658, + "name": "POP", + "source": 14 + }, + { + "begin": 4527, + "end": 4658, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5818, + "end": 6001, + "name": "tag", + "source": 14, + "value": "445" + }, + { + "begin": 5818, + "end": 6001, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5900, + "end": 5939, + "name": "PUSH [tag]", + "source": 14, + "value": "556" + }, + { + "begin": 508, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 5928, + "end": 5938, + "name": "DUP3", + "source": 14 + }, + { + "begin": 5900, + "end": 5907, + "name": "PUSH [tag]", + "source": 14, + "value": "173" + }, + { + "begin": 5900, + "end": 5939, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5900, + "end": 5939, + "name": "tag", + "source": 14, + "value": "556" + }, + { + "begin": 5900, + "end": 5939, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5895, + "end": 5995, + "name": "PUSH [tag]", + "source": 14, + "value": "557" + }, + { + "begin": 5895, + "end": 5995, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 5962, + "end": 5984, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 5962, + "end": 5984, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 5962, + "end": 5984, + "name": "PUSH", + "source": 14, + "value": "375A7A9200000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 5962, + "end": 5984, + "name": "DUP2", + "source": 14 + }, + { + "begin": 5962, + "end": 5984, + "name": "MSTORE", + "source": 14 + }, + { + "begin": 5962, + "end": 5984, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 5962, + "end": 5984, + "name": "ADD", + "source": 14 + }, + { + "begin": 5962, + "end": 5984, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 5962, + "end": 5984, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 5962, + "end": 5984, + "name": "DUP1", + "source": 14 + }, + { + "begin": 5962, + "end": 5984, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 5962, + "end": 5984, + "name": "SUB", + "source": 14 + }, + { + "begin": 5962, + "end": 5984, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5962, + "end": 5984, + "name": "REVERT", + "source": 14 + }, + { + "begin": 5895, + "end": 5995, + "name": "tag", + "source": 14, + "value": "557" + }, + { + "begin": 5895, + "end": 5995, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5818, + "end": 6001, + "name": "POP", + "source": 14 + }, + { + "begin": 5818, + "end": 6001, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6623, + "end": 6808, + "name": "tag", + "source": 13, + "value": "448" + }, + { + "begin": 6623, + "end": 6808, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 6739, + "end": 6801, + "name": "PUSH [tag]", + "source": 13, + "value": "559" + }, + { + "begin": 6771, + "end": 6776, + "name": "DUP4", + "source": 13 + }, + { + "begin": 6786, + "end": 6790, + "name": "ADDRESS", + "source": 13 + }, + { + "begin": 6793, + "end": 6800, + "name": "DUP4", + "source": 13 + }, + { + "begin": 6746, + "end": 6752, + "name": "DUP6", + "source": 13 + }, + { + "begin": 6739, + "end": 6770, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6739, + "end": 6770, + "name": "AND", + "source": 13 + }, + { + "begin": 6739, + "end": 6770, + "name": "PUSH [tag]", + "source": 13, + "value": "560" + }, + { + "begin": 6739, + "end": 6770, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 6739, + "end": 6801, + "name": "SWAP4", + "source": 13 + }, + { + "begin": 6739, + "end": 6801, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 6739, + "end": 6801, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 6739, + "end": 6801, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 6739, + "end": 6801, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFF" + }, + { + "begin": 6739, + "end": 6801, + "name": "AND", + "source": 13 + }, + { + "begin": 6739, + "end": 6801, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 6739, + "end": 6801, + "name": "tag", + "source": 13, + "value": "559" + }, + { + "begin": 6739, + "end": 6801, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 6623, + "end": 6808, + "name": "POP", + "source": 13 + }, + { + "begin": 6623, + "end": 6808, + "name": "POP", + "source": 13 + }, + { + "begin": 6623, + "end": 6808, + "name": "POP", + "source": 13 + }, + { + "begin": 6623, + "end": 6808, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 6200, + "end": 6449, + "name": "tag", + "source": 13, + "value": "462" + }, + { + "begin": 6200, + "end": 6449, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 6361, + "end": 6368, + "name": "DUP1", + "source": 13 + }, + { + "begin": 6329, + "end": 6337, + "name": "PUSH", + "source": 13, + "value": "CB" + }, + { + "begin": 6329, + "end": 6349, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 6338, + "end": 6348, + "name": "DUP5", + "source": 13 + }, + { + "begin": 6329, + "end": 6349, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6329, + "end": 6349, + "name": "AND", + "source": 13 + }, + { + "begin": 6329, + "end": 6349, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6329, + "end": 6349, + "name": "AND", + "source": 13 + }, + { + "begin": 6329, + "end": 6349, + "name": "DUP2", + "source": 13 + }, + { + "begin": 6329, + "end": 6349, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 6329, + "end": 6349, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 6329, + "end": 6349, + "name": "ADD", + "source": 13 + }, + { + "begin": 6329, + "end": 6349, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 6329, + "end": 6349, + "name": "DUP2", + "source": 13 + }, + { + "begin": 6329, + "end": 6349, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 6329, + "end": 6349, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 6329, + "end": 6349, + "name": "ADD", + "source": 13 + }, + { + "begin": 6329, + "end": 6349, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 6329, + "end": 6349, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 6350, + "end": 6356, + "name": "DUP6", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6329, + "end": 6357, + "name": "AND", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6329, + "end": 6357, + "name": "AND", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "DUP2", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 6329, + "end": 6357, + "name": "ADD", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "DUP2", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 6329, + "end": 6357, + "name": "ADD", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 6329, + "end": 6357, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 6329, + "end": 6357, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 6329, + "end": 6368, + "name": "DUP3", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "DUP3", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "PUSH [tag]", + "source": 13, + "value": "562" + }, + { + "begin": 6329, + "end": 6368, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "PUSH [tag]", + "source": 13, + "value": "451" + }, + { + "begin": 6329, + "end": 6368, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "tag", + "source": 13, + "value": "562" + }, + { + "begin": 6329, + "end": 6368, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "POP", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "POP", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "DUP2", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "SSTORE", + "source": 13 + }, + { + "begin": 6329, + "end": 6368, + "name": "POP", + "source": 13 + }, + { + "begin": 6422, + "end": 6432, + "name": "DUP2", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6383, + "end": 6442, + "name": "AND", + "source": 13 + }, + { + "begin": 6410, + "end": 6420, + "name": "CALLER", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6383, + "end": 6442, + "name": "AND", + "source": 13 + }, + { + "begin": 6402, + "end": 6408, + "name": "DUP5", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6383, + "end": 6442, + "name": "AND", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "PUSH", + "source": 13, + "value": "B91B2D1906A6E6E2B45B99EB26AC141804EB2684A0DF30699FDCB8B5CED1D518" + }, + { + "begin": 6434, + "end": 6441, + "name": "DUP5", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 6383, + "end": 6442, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "PUSH [tag]", + "source": 13, + "value": "563" + }, + { + "begin": 6383, + "end": 6442, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "PUSH [tag]", + "source": 13, + "value": "117" + }, + { + "begin": 6383, + "end": 6442, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "tag", + "source": 13, + "value": "563" + }, + { + "begin": 6383, + "end": 6442, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 6383, + "end": 6442, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "DUP1", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "SUB", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 6383, + "end": 6442, + "name": "LOG4", + "source": 13 + }, + { + "begin": 6200, + "end": 6449, + "name": "POP", + "source": 13 + }, + { + "begin": 6200, + "end": 6449, + "name": "POP", + "source": 13 + }, + { + "begin": 6200, + "end": 6449, + "name": "POP", + "source": 13 + }, + { + "begin": 6200, + "end": 6449, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 5736, + "end": 5916, + "name": "tag", + "source": 13, + "value": "464" + }, + { + "begin": 5736, + "end": 5916, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5845, + "end": 5852, + "name": "DUP1", + "source": 13 + }, + { + "begin": 5810, + "end": 5818, + "name": "PUSH", + "source": 13, + "value": "CB" + }, + { + "begin": 5810, + "end": 5833, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 5827, + "end": 5831, + "name": "ADDRESS", + "source": 13 + }, + { + "begin": 5810, + "end": 5833, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5810, + "end": 5833, + "name": "AND", + "source": 13 + }, + { + "begin": 5810, + "end": 5833, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5810, + "end": 5833, + "name": "AND", + "source": 13 + }, + { + "begin": 5810, + "end": 5833, + "name": "DUP2", + "source": 13 + }, + { + "begin": 5810, + "end": 5833, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 5810, + "end": 5833, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 5810, + "end": 5833, + "name": "ADD", + "source": 13 + }, + { + "begin": 5810, + "end": 5833, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 5810, + "end": 5833, + "name": "DUP2", + "source": 13 + }, + { + "begin": 5810, + "end": 5833, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 5810, + "end": 5833, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 5810, + "end": 5833, + "name": "ADD", + "source": 13 + }, + { + "begin": 5810, + "end": 5833, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 5810, + "end": 5833, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 5834, + "end": 5840, + "name": "DUP5", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5810, + "end": 5841, + "name": "AND", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5810, + "end": 5841, + "name": "AND", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "DUP2", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 5810, + "end": 5841, + "name": "ADD", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "DUP2", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "MSTORE", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "PUSH", + "source": 13, + "value": "20" + }, + { + "begin": 5810, + "end": 5841, + "name": "ADD", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 5810, + "end": 5841, + "name": "KECCAK256", + "source": 13 + }, + { + "begin": 5810, + "end": 5841, + "name": "PUSH", + "source": 13, + "value": "0" + }, + { + "begin": 5810, + "end": 5852, + "name": "DUP3", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "DUP3", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "SLOAD", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "PUSH [tag]", + "source": 13, + "value": "565" + }, + { + "begin": 5810, + "end": 5852, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "PUSH [tag]", + "source": 13, + "value": "451" + }, + { + "begin": 5810, + "end": 5852, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "tag", + "source": 13, + "value": "565" + }, + { + "begin": 5810, + "end": 5852, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "SWAP3", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "POP", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "POP", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "DUP2", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "SSTORE", + "source": 13 + }, + { + "begin": 5810, + "end": 5852, + "name": "POP", + "source": 13 + }, + { + "begin": 5889, + "end": 5899, + "name": "CALLER", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5867, + "end": 5909, + "name": "AND", + "source": 13 + }, + { + "begin": 5881, + "end": 5887, + "name": "DUP3", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "PUSH", + "source": 13, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5867, + "end": 5909, + "name": "AND", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "PUSH", + "source": 13, + "value": "468C2F4EC7CE54B88B575DB5D64710429B1880E4581F5328AAA4B3F51DADC58B" + }, + { + "begin": 5901, + "end": 5908, + "name": "DUP4", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 5867, + "end": 5909, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "PUSH [tag]", + "source": 13, + "value": "566" + }, + { + "begin": 5867, + "end": 5909, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "PUSH [tag]", + "source": 13, + "value": "117" + }, + { + "begin": 5867, + "end": 5909, + "jumpType": "[in]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "tag", + "source": 13, + "value": "566" + }, + { + "begin": 5867, + "end": 5909, + "name": "JUMPDEST", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "PUSH", + "source": 13, + "value": "40" + }, + { + "begin": 5867, + "end": 5909, + "name": "MLOAD", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "DUP1", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "SWAP2", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "SUB", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "SWAP1", + "source": 13 + }, + { + "begin": 5867, + "end": 5909, + "name": "LOG3", + "source": 13 + }, + { + "begin": 5736, + "end": 5916, + "name": "POP", + "source": 13 + }, + { + "begin": 5736, + "end": 5916, + "name": "POP", + "source": 13 + }, + { + "begin": 5736, + "end": 5916, + "jumpType": "[out]", + "name": "JUMP", + "source": 13 + }, + { + "begin": 7141, + "end": 7251, + "name": "tag", + "source": 0, + "value": "511" + }, + { + "begin": 7141, + "end": 7251, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7219, + "end": 7244, + "name": "PUSH [tag]", + "source": 0, + "value": "568" + }, + { + "begin": 7230, + "end": 7234, + "name": "DUP3", + "source": 0 + }, + { + "begin": 7236, + "end": 7243, + "name": "DUP3", + "source": 0 + }, + { + "begin": 7219, + "end": 7229, + "name": "PUSH [tag]", + "source": 0, + "value": "316" + }, + { + "begin": 7219, + "end": 7244, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7219, + "end": 7244, + "name": "tag", + "source": 0, + "value": "568" + }, + { + "begin": 7219, + "end": 7244, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7141, + "end": 7251, + "name": "POP", + "source": 0 + }, + { + "begin": 7141, + "end": 7251, + "name": "POP", + "source": 0 + }, + { + "begin": 7141, + "end": 7251, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4026, + "end": 4527, + "name": "tag", + "source": 0, + "value": "515" + }, + { + "begin": 4026, + "end": 4527, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4114, + "end": 4136, + "name": "PUSH [tag]", + "source": 0, + "value": "570" + }, + { + "begin": 4122, + "end": 4126, + "name": "DUP3", + "source": 0 + }, + { + "begin": 4128, + "end": 4135, + "name": "DUP3", + "source": 0 + }, + { + "begin": 4114, + "end": 4121, + "name": "PUSH [tag]", + "source": 0, + "value": "173" + }, + { + "begin": 4114, + "end": 4136, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4114, + "end": 4136, + "name": "tag", + "source": 0, + "value": "570" + }, + { + "begin": 4114, + "end": 4136, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4109, + "end": 4521, + "name": "PUSH [tag]", + "source": 0, + "value": "571" + }, + { + "begin": 4109, + "end": 4521, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 4297, + "end": 4336, + "name": "PUSH [tag]", + "source": 0, + "value": "572" + }, + { + "begin": 4328, + "end": 4335, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4297, + "end": 4327, + "name": "PUSH [tag]", + "source": 0, + "value": "573" + }, + { + "begin": 4297, + "end": 4336, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4297, + "end": 4336, + "name": "tag", + "source": 0, + "value": "572" + }, + { + "begin": 4297, + "end": 4336, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4407, + "end": 4456, + "name": "PUSH [tag]", + "source": 0, + "value": "574" + }, + { + "begin": 4446, + "end": 4450, + "name": "DUP4", + "source": 0 + }, + { + "begin": 4438, + "end": 4451, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 4438, + "end": 4451, + "name": "SHR", + "source": 0 + }, + { + "begin": 4453, + "end": 4455, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 4407, + "end": 4437, + "name": "PUSH [tag]", + "source": 0, + "value": "575" + }, + { + "begin": 4407, + "end": 4456, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4407, + "end": 4456, + "name": "tag", + "source": 0, + "value": "574" + }, + { + "begin": 4407, + "end": 4456, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4204, + "end": 4478, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 4204, + "end": 4478, + "name": "ADD", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH [tag]", + "source": 0, + "value": "576" + }, + { + "begin": 4204, + "end": 4478, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH [tag]", + "source": 0, + "value": "577" + }, + { + "begin": 4204, + "end": 4478, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "tag", + "source": 0, + "value": "576" + }, + { + "begin": 4204, + "end": 4478, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4204, + "end": 4478, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 4204, + "end": 4478, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "DUP4", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "SUB", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "SUB", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4204, + "end": 4478, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4152, + "end": 4510, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH", + "source": 0, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 4152, + "end": 4510, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 4152, + "end": 4510, + "name": "ADD", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH [tag]", + "source": 0, + "value": "578" + }, + { + "begin": 4152, + "end": 4510, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH [tag]", + "source": 0, + "value": "579" + }, + { + "begin": 4152, + "end": 4510, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "tag", + "source": 0, + "value": "578" + }, + { + "begin": 4152, + "end": 4510, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4152, + "end": 4510, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "DUP1", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "SUB", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "REVERT", + "source": 0 + }, + { + "begin": 4109, + "end": 4521, + "name": "tag", + "source": 0, + "value": "571" + }, + { + "begin": 4109, + "end": 4521, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4026, + "end": 4527, + "name": "POP", + "source": 0 + }, + { + "begin": 4026, + "end": 4527, + "name": "POP", + "source": 0 + }, + { + "begin": 4026, + "end": 4527, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1191, + "end": 2015, + "name": "tag", + "source": 14, + "value": "531" + }, + { + "begin": 1191, + "end": 2015, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "0" + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "15" + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SLOAD", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "100" + }, + { + "begin": 5363, + "end": 5376, + "name": "EXP", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "DIV", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 5363, + "end": 5376, + "name": "AND", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "581" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPI", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 5355, + "end": 5424, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 5355, + "end": 5424, + "name": "DUP2", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "MSTORE", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "4" + }, + { + "begin": 5355, + "end": 5424, + "name": "ADD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "582" + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "528" + }, + { + "begin": 5355, + "end": 5424, + "jumpType": "[in]", + "name": "JUMP", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "tag", + "source": 2, + "value": "582" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 5355, + "end": 5424, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "DUP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP2", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SUB", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "REVERT", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "tag", + "source": 2, + "value": "581" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 1437, + "end": 1459, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "584" + }, + { + "begin": 1437, + "end": 1457, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "585" + }, + { + "begin": 1437, + "end": 1459, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 14 + }, + { + "begin": 1437, + "end": 1459, + "modifierDepth": 1, + "name": "tag", + "source": 14, + "value": "584" + }, + { + "begin": 1437, + "end": 1459, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 1469, + "end": 1511, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "586" + }, + { + "begin": 2369, + "end": 2373, + "modifierDepth": 1, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1480, + "end": 1498, + "name": "DUP1", + "source": 14 + }, + { + "begin": 1480, + "end": 1498, + "modifierDepth": 1, + "name": "SHL", + "source": 14 + }, + { + "begin": 1500, + "end": 1510, + "modifierDepth": 1, + "name": "CALLER", + "source": 14 + }, + { + "begin": 1469, + "end": 1479, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "511" + }, + { + "begin": 1469, + "end": 1511, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 14 + }, + { + "begin": 1469, + "end": 1511, + "modifierDepth": 1, + "name": "tag", + "source": 14, + "value": "586" + }, + { + "begin": 1469, + "end": 1511, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 1521, + "end": 1566, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "587" + }, + { + "begin": 508, + "end": 539, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 1560, + "end": 1564, + "modifierDepth": 1, + "name": "ADDRESS", + "source": 14 + }, + { + "begin": 1521, + "end": 1531, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "511" + }, + { + "begin": 1521, + "end": 1566, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 14 + }, + { + "begin": 1521, + "end": 1566, + "modifierDepth": 1, + "name": "tag", + "source": 14, + "value": "587" + }, + { + "begin": 1521, + "end": 1566, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 1640, + "end": 1676, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "588" + }, + { + "begin": 430, + "end": 457, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 647, + "end": 665, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 1640, + "end": 1653, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "589" + }, + { + "begin": 1640, + "end": 1676, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 14 + }, + { + "begin": 1640, + "end": 1676, + "modifierDepth": 1, + "name": "tag", + "source": 14, + "value": "588" + }, + { + "begin": 1640, + "end": 1676, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 1686, + "end": 1726, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "590" + }, + { + "begin": 508, + "end": 539, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 647, + "end": 665, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 1686, + "end": 1699, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "589" + }, + { + "begin": 1686, + "end": 1726, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 14 + }, + { + "begin": 1686, + "end": 1726, + "modifierDepth": 1, + "name": "tag", + "source": 14, + "value": "590" + }, + { + "begin": 1686, + "end": 1726, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 1736, + "end": 1770, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "591" + }, + { + "begin": 584, + "end": 609, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "B65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083" + }, + { + "begin": 647, + "end": 665, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 1736, + "end": 1749, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "589" + }, + { + "begin": 1736, + "end": 1770, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 14 + }, + { + "begin": 1736, + "end": 1770, + "modifierDepth": 1, + "name": "tag", + "source": 14, + "value": "591" + }, + { + "begin": 1736, + "end": 1770, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 1781, + "end": 1822, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "592" + }, + { + "begin": 430, + "end": 457, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 1807, + "end": 1821, + "modifierDepth": 1, + "name": "DUP10", + "source": 14 + }, + { + "begin": 1807, + "end": 1821, + "modifierDepth": 1, + "name": "DUP10", + "source": 14 + }, + { + "begin": 1781, + "end": 1790, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "287" + }, + { + "begin": 1781, + "end": 1822, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 14 + }, + { + "begin": 1781, + "end": 1822, + "modifierDepth": 1, + "name": "tag", + "source": 14, + "value": "592" + }, + { + "begin": 1781, + "end": 1822, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 1832, + "end": 1881, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "593" + }, + { + "begin": 508, + "end": 539, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 1862, + "end": 1880, + "modifierDepth": 1, + "name": "DUP8", + "source": 14 + }, + { + "begin": 1862, + "end": 1880, + "modifierDepth": 1, + "name": "DUP8", + "source": 14 + }, + { + "begin": 1832, + "end": 1841, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "287" + }, + { + "begin": 1832, + "end": 1881, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 14 + }, + { + "begin": 1832, + "end": 1881, + "modifierDepth": 1, + "name": "tag", + "source": 14, + "value": "593" + }, + { + "begin": 1832, + "end": 1881, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 1891, + "end": 1928, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "594" + }, + { + "begin": 584, + "end": 609, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "B65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083" + }, + { + "begin": 1915, + "end": 1927, + "modifierDepth": 1, + "name": "DUP6", + "source": 14 + }, + { + "begin": 1915, + "end": 1927, + "modifierDepth": 1, + "name": "DUP6", + "source": 14 + }, + { + "begin": 1891, + "end": 1900, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "287" + }, + { + "begin": 1891, + "end": 1928, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 14 + }, + { + "begin": 1891, + "end": 1928, + "modifierDepth": 1, + "name": "tag", + "source": 14, + "value": "594" + }, + { + "begin": 1891, + "end": 1928, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 1938, + "end": 1963, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "595" + }, + { + "begin": 647, + "end": 665, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 1955, + "end": 1962, + "modifierDepth": 1, + "name": "DUP4", + "source": 14 + }, + { + "begin": 1955, + "end": 1962, + "modifierDepth": 1, + "name": "DUP4", + "source": 14 + }, + { + "begin": 1938, + "end": 1947, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "287" + }, + { + "begin": 1938, + "end": 1963, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 14 + }, + { + "begin": 1938, + "end": 1963, + "modifierDepth": 1, + "name": "tag", + "source": 14, + "value": "595" + }, + { + "begin": 1938, + "end": 1963, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 1974, + "end": 2008, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "596" + }, + { + "begin": 430, + "end": 457, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 822, + "end": 823, + "modifierDepth": 1, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 1974, + "end": 1984, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 14, + "value": "511" + }, + { + "begin": 1974, + "end": 2008, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 14 + }, + { + "begin": 1974, + "end": 2008, + "modifierDepth": 1, + "name": "tag", + "source": 14, + "value": "596" + }, + { + "begin": 1974, + "end": 2008, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 1191, + "end": 2015, + "name": "POP", + "source": 14 + }, + { + "begin": 1191, + "end": 2015, + "name": "POP", + "source": 14 + }, + { + "begin": 1191, + "end": 2015, + "name": "POP", + "source": 14 + }, + { + "begin": 1191, + "end": 2015, + "name": "POP", + "source": 14 + }, + { + "begin": 1191, + "end": 2015, + "name": "POP", + "source": 14 + }, + { + "begin": 1191, + "end": 2015, + "name": "POP", + "source": 14 + }, + { + "begin": 1191, + "end": 2015, + "name": "POP", + "source": 14 + }, + { + "begin": 1191, + "end": 2015, + "name": "POP", + "source": 14 + }, + { + "begin": 1191, + "end": 2015, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 1868, + "end": 1979, + "name": "tag", + "source": 3, + "value": "533" + }, + { + "begin": 1868, + "end": 1979, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "0" + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "15" + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SLOAD", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "100" + }, + { + "begin": 5363, + "end": 5376, + "name": "EXP", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "DIV", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 5363, + "end": 5376, + "name": "AND", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "598" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPI", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 5355, + "end": 5424, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 5355, + "end": 5424, + "name": "DUP2", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "MSTORE", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "4" + }, + { + "begin": 5355, + "end": 5424, + "name": "ADD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "599" + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "528" + }, + { + "begin": 5355, + "end": 5424, + "jumpType": "[in]", + "name": "JUMP", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "tag", + "source": 2, + "value": "599" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 5355, + "end": 5424, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "DUP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP2", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SUB", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "REVERT", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "tag", + "source": 2, + "value": "598" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 1938, + "end": 1972, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 3, + "value": "601" + }, + { + "begin": 1938, + "end": 1970, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 3, + "value": "602" + }, + { + "begin": 1938, + "end": 1972, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 3 + }, + { + "begin": 1938, + "end": 1972, + "modifierDepth": 1, + "name": "tag", + "source": 3, + "value": "601" + }, + { + "begin": 1938, + "end": 1972, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 1868, + "end": 1979, + "jumpType": "[out]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 818, + "end": 1034, + "name": "tag", + "source": 6, + "value": "550" + }, + { + "begin": 818, + "end": 1034, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 941, + "end": 1027, + "name": "PUSH [tag]", + "source": 6, + "value": "604" + }, + { + "begin": 961, + "end": 966, + "name": "DUP4", + "source": 6 + }, + { + "begin": 991, + "end": 1014, + "name": "PUSH", + "source": 6, + "value": "A9059CBB" + }, + { + "begin": 991, + "end": 1014, + "name": "PUSH", + "source": 6, + "value": "E0" + }, + { + "begin": 991, + "end": 1014, + "name": "SHL", + "source": 6 + }, + { + "begin": 1016, + "end": 1018, + "name": "DUP5", + "source": 6 + }, + { + "begin": 1020, + "end": 1025, + "name": "DUP5", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 968, + "end": 1026, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "PUSH", + "source": 6, + "value": "24" + }, + { + "begin": 968, + "end": 1026, + "name": "ADD", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "PUSH [tag]", + "source": 6, + "value": "605" + }, + { + "begin": 968, + "end": 1026, + "name": "SWAP3", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "SWAP2", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "PUSH [tag]", + "source": 6, + "value": "453" + }, + { + "begin": 968, + "end": 1026, + "jumpType": "[in]", + "name": "JUMP", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "tag", + "source": 6, + "value": "605" + }, + { + "begin": 968, + "end": 1026, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 968, + "end": 1026, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "PUSH", + "source": 6, + "value": "20" + }, + { + "begin": 968, + "end": 1026, + "name": "DUP2", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "DUP4", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "SUB", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "SUB", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "DUP2", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 968, + "end": 1026, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "PUSH", + "source": 6, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 968, + "end": 1026, + "name": "NOT", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "AND", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "PUSH", + "source": 6, + "value": "20" + }, + { + "begin": 968, + "end": 1026, + "name": "DUP3", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "ADD", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "DUP1", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "PUSH", + "source": 6, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 968, + "end": 1026, + "name": "DUP4", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "DUP2", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "DUP4", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "AND", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "OR", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "DUP4", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "POP", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "POP", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "POP", + "source": 6 + }, + { + "begin": 968, + "end": 1026, + "name": "POP", + "source": 6 + }, + { + "begin": 941, + "end": 960, + "name": "PUSH [tag]", + "source": 6, + "value": "606" + }, + { + "begin": 941, + "end": 1027, + "jumpType": "[in]", + "name": "JUMP", + "source": 6 + }, + { + "begin": 941, + "end": 1027, + "name": "tag", + "source": 6, + "value": "604" + }, + { + "begin": 941, + "end": 1027, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 818, + "end": 1034, + "name": "POP", + "source": 6 + }, + { + "begin": 818, + "end": 1034, + "name": "POP", + "source": 6 + }, + { + "begin": 818, + "end": 1034, + "name": "POP", + "source": 6 + }, + { + "begin": 818, + "end": 1034, + "jumpType": "[out]", + "name": "JUMP", + "source": 6 + }, + { + "begin": 1040, + "end": 1292, + "name": "tag", + "source": 6, + "value": "560" + }, + { + "begin": 1040, + "end": 1292, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 1189, + "end": 1285, + "name": "PUSH [tag]", + "source": 6, + "value": "608" + }, + { + "begin": 1209, + "end": 1214, + "name": "DUP5", + "source": 6 + }, + { + "begin": 1239, + "end": 1266, + "name": "PUSH", + "source": 6, + "value": "23B872DD" + }, + { + "begin": 1239, + "end": 1266, + "name": "PUSH", + "source": 6, + "value": "E0" + }, + { + "begin": 1239, + "end": 1266, + "name": "SHL", + "source": 6 + }, + { + "begin": 1268, + "end": 1272, + "name": "DUP6", + "source": 6 + }, + { + "begin": 1274, + "end": 1276, + "name": "DUP6", + "source": 6 + }, + { + "begin": 1278, + "end": 1283, + "name": "DUP6", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 1216, + "end": 1284, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "PUSH", + "source": 6, + "value": "24" + }, + { + "begin": 1216, + "end": 1284, + "name": "ADD", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "PUSH [tag]", + "source": 6, + "value": "609" + }, + { + "begin": 1216, + "end": 1284, + "name": "SWAP4", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "SWAP3", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "SWAP2", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "PUSH [tag]", + "source": 6, + "value": "610" + }, + { + "begin": 1216, + "end": 1284, + "jumpType": "[in]", + "name": "JUMP", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "tag", + "source": 6, + "value": "609" + }, + { + "begin": 1216, + "end": 1284, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 1216, + "end": 1284, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "PUSH", + "source": 6, + "value": "20" + }, + { + "begin": 1216, + "end": 1284, + "name": "DUP2", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "DUP4", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "SUB", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "SUB", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "DUP2", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 1216, + "end": 1284, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "PUSH", + "source": 6, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1216, + "end": 1284, + "name": "NOT", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "AND", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "PUSH", + "source": 6, + "value": "20" + }, + { + "begin": 1216, + "end": 1284, + "name": "DUP3", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "ADD", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "DUP1", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "PUSH", + "source": 6, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1216, + "end": 1284, + "name": "DUP4", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "DUP2", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "DUP4", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "AND", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "OR", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "DUP4", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "POP", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "POP", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "POP", + "source": 6 + }, + { + "begin": 1216, + "end": 1284, + "name": "POP", + "source": 6 + }, + { + "begin": 1189, + "end": 1208, + "name": "PUSH [tag]", + "source": 6, + "value": "606" + }, + { + "begin": 1189, + "end": 1285, + "jumpType": "[in]", + "name": "JUMP", + "source": 6 + }, + { + "begin": 1189, + "end": 1285, + "name": "tag", + "source": 6, + "value": "608" + }, + { + "begin": 1189, + "end": 1285, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 1040, + "end": 1292, + "name": "POP", + "source": 6 + }, + { + "begin": 1040, + "end": 1292, + "name": "POP", + "source": 6 + }, + { + "begin": 1040, + "end": 1292, + "name": "POP", + "source": 6 + }, + { + "begin": 1040, + "end": 1292, + "name": "POP", + "source": 6 + }, + { + "begin": 1040, + "end": 1292, + "jumpType": "[out]", + "name": "JUMP", + "source": 6 + }, + { + "begin": 2146, + "end": 2295, + "name": "tag", + "source": 9, + "value": "573" + }, + { + "begin": 2146, + "end": 2295, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 2204, + "end": 2217, + "name": "PUSH", + "source": 9, + "value": "60" + }, + { + "begin": 2236, + "end": 2288, + "name": "PUSH [tag]", + "source": 9, + "value": "612" + }, + { + "begin": 2264, + "end": 2268, + "name": "DUP3", + "source": 9 + }, + { + "begin": 2248, + "end": 2270, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2248, + "end": 2270, + "name": "AND", + "source": 9 + }, + { + "begin": 333, + "end": 335, + "name": "PUSH", + "source": 9, + "value": "14" + }, + { + "begin": 2236, + "end": 2288, + "name": "PUSH", + "source": 9, + "value": "FF" + }, + { + "begin": 2236, + "end": 2288, + "name": "AND", + "source": 9 + }, + { + "begin": 2236, + "end": 2247, + "name": "PUSH [tag]", + "source": 9, + "value": "575" + }, + { + "begin": 2236, + "end": 2288, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 2236, + "end": 2288, + "name": "tag", + "source": 9, + "value": "612" + }, + { + "begin": 2236, + "end": 2288, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 2229, + "end": 2288, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 2229, + "end": 2288, + "name": "POP", + "source": 9 + }, + { + "begin": 2146, + "end": 2295, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 2146, + "end": 2295, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 2146, + "end": 2295, + "name": "POP", + "source": 9 + }, + { + "begin": 2146, + "end": 2295, + "jumpType": "[out]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "name": "tag", + "source": 9, + "value": "575" + }, + { + "begin": 1557, + "end": 1994, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1632, + "end": 1645, + "name": "PUSH", + "source": 9, + "value": "60" + }, + { + "begin": 1657, + "end": 1676, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1702, + "end": 1703, + "name": "PUSH", + "source": 9, + "value": "2" + }, + { + "begin": 1693, + "end": 1699, + "name": "DUP4", + "source": 9 + }, + { + "begin": 1689, + "end": 1690, + "name": "PUSH", + "source": 9, + "value": "2" + }, + { + "begin": 1689, + "end": 1699, + "name": "PUSH [tag]", + "source": 9, + "value": "614" + }, + { + "begin": 1689, + "end": 1699, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1689, + "end": 1699, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1689, + "end": 1699, + "name": "PUSH [tag]", + "source": 9, + "value": "456" + }, + { + "begin": 1689, + "end": 1699, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1689, + "end": 1699, + "name": "tag", + "source": 9, + "value": "614" + }, + { + "begin": 1689, + "end": 1699, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1689, + "end": 1703, + "name": "PUSH [tag]", + "source": 9, + "value": "615" + }, + { + "begin": 1689, + "end": 1703, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1689, + "end": 1703, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1689, + "end": 1703, + "name": "PUSH [tag]", + "source": 9, + "value": "451" + }, + { + "begin": 1689, + "end": 1703, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1689, + "end": 1703, + "name": "tag", + "source": 9, + "value": "615" + }, + { + "begin": 1689, + "end": 1703, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "GT", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "ISZERO", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH [tag]", + "source": 9, + "value": "616" + }, + { + "begin": 1679, + "end": 1704, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH [tag]", + "source": 9, + "value": "617" + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH [tag]", + "source": 9, + "value": "296" + }, + { + "begin": 1679, + "end": 1704, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "tag", + "source": 9, + "value": "617" + }, + { + "begin": 1679, + "end": 1704, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "tag", + "source": 9, + "value": "616" + }, + { + "begin": 1679, + "end": 1704, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "40" + }, + { + "begin": 1679, + "end": 1704, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "1F" + }, + { + "begin": 1679, + "end": 1704, + "name": "ADD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "1F" + }, + { + "begin": 1679, + "end": 1704, + "name": "NOT", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "AND", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 1679, + "end": 1704, + "name": "ADD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "ADD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "40" + }, + { + "begin": 1679, + "end": 1704, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "ISZERO", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH [tag]", + "source": 9, + "value": "618" + }, + { + "begin": 1679, + "end": 1704, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 1679, + "end": 1704, + "name": "ADD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "1" + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "MUL", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "CALLDATASIZE", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP4", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "CALLDATACOPY", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "ADD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "POP", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "POP", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "POP", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "tag", + "source": 9, + "value": "618" + }, + { + "begin": 1679, + "end": 1704, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "POP", + "source": 9 + }, + { + "begin": 1657, + "end": 1704, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1657, + "end": 1704, + "name": "POP", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "PUSH", + "source": 9, + "value": "3000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1714, + "end": 1720, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1721, + "end": 1722, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1714, + "end": 1723, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "LT", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "PUSH [tag]", + "source": 9, + "value": "619" + }, + { + "begin": 1714, + "end": 1723, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "PUSH [tag]", + "source": 9, + "value": "620" + }, + { + "begin": 1714, + "end": 1723, + "name": "PUSH [tag]", + "source": 9, + "value": "300" + }, + { + "begin": 1714, + "end": 1723, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "tag", + "source": 9, + "value": "620" + }, + { + "begin": 1714, + "end": 1723, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "tag", + "source": 9, + "value": "619" + }, + { + "begin": 1714, + "end": 1723, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 1714, + "end": 1723, + "name": "ADD", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "ADD", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1714, + "end": 1729, + "name": "NOT", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "AND", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1714, + "end": 1729, + "name": "BYTE", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "MSTORE8", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "POP", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "PUSH", + "source": 9, + "value": "7800000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1739, + "end": 1745, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1746, + "end": 1747, + "name": "PUSH", + "source": 9, + "value": "1" + }, + { + "begin": 1739, + "end": 1748, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "LT", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "PUSH [tag]", + "source": 9, + "value": "621" + }, + { + "begin": 1739, + "end": 1748, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "PUSH [tag]", + "source": 9, + "value": "622" + }, + { + "begin": 1739, + "end": 1748, + "name": "PUSH [tag]", + "source": 9, + "value": "300" + }, + { + "begin": 1739, + "end": 1748, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "tag", + "source": 9, + "value": "622" + }, + { + "begin": 1739, + "end": 1748, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "tag", + "source": 9, + "value": "621" + }, + { + "begin": 1739, + "end": 1748, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 1739, + "end": 1748, + "name": "ADD", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "ADD", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1739, + "end": 1754, + "name": "NOT", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "AND", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1739, + "end": 1754, + "name": "BYTE", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "MSTORE8", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "POP", + "source": 9 + }, + { + "begin": 1769, + "end": 1778, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1794, + "end": 1795, + "name": "PUSH", + "source": 9, + "value": "1" + }, + { + "begin": 1785, + "end": 1791, + "name": "DUP5", + "source": 9 + }, + { + "begin": 1781, + "end": 1782, + "name": "PUSH", + "source": 9, + "value": "2" + }, + { + "begin": 1781, + "end": 1791, + "name": "PUSH [tag]", + "source": 9, + "value": "626" + }, + { + "begin": 1781, + "end": 1791, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1781, + "end": 1791, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1781, + "end": 1791, + "name": "PUSH [tag]", + "source": 9, + "value": "456" + }, + { + "begin": 1781, + "end": 1791, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1781, + "end": 1791, + "name": "tag", + "source": 9, + "value": "626" + }, + { + "begin": 1781, + "end": 1791, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1781, + "end": 1795, + "name": "PUSH [tag]", + "source": 9, + "value": "627" + }, + { + "begin": 1781, + "end": 1795, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1781, + "end": 1795, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1781, + "end": 1795, + "name": "PUSH [tag]", + "source": 9, + "value": "451" + }, + { + "begin": 1781, + "end": 1795, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1781, + "end": 1795, + "name": "tag", + "source": 9, + "value": "627" + }, + { + "begin": 1781, + "end": 1795, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1769, + "end": 1795, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1769, + "end": 1795, + "name": "POP", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "tag", + "source": 9, + "value": "623" + }, + { + "begin": 1764, + "end": 1892, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1801, + "end": 1802, + "name": "PUSH", + "source": 9, + "value": "1" + }, + { + "begin": 1797, + "end": 1798, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1797, + "end": 1802, + "name": "GT", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "ISZERO", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "PUSH [tag]", + "source": 9, + "value": "624" + }, + { + "begin": 1764, + "end": 1892, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1835, + "end": 1843, + "name": "PUSH", + "source": 9, + "value": "3031323334353637383961626364656600000000000000000000000000000000" + }, + { + "begin": 1852, + "end": 1855, + "name": "PUSH", + "source": 9, + "value": "F" + }, + { + "begin": 1844, + "end": 1849, + "name": "DUP7", + "source": 9 + }, + { + "begin": 1844, + "end": 1855, + "name": "AND", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "PUSH", + "source": 9, + "value": "10" + }, + { + "begin": 1835, + "end": 1856, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "LT", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "PUSH [tag]", + "source": 9, + "value": "628" + }, + { + "begin": 1835, + "end": 1856, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "PUSH [tag]", + "source": 9, + "value": "629" + }, + { + "begin": 1835, + "end": 1856, + "name": "PUSH [tag]", + "source": 9, + "value": "300" + }, + { + "begin": 1835, + "end": 1856, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "tag", + "source": 9, + "value": "629" + }, + { + "begin": 1835, + "end": 1856, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "tag", + "source": 9, + "value": "628" + }, + { + "begin": 1835, + "end": 1856, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "BYTE", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "PUSH", + "source": 9, + "value": "F8" + }, + { + "begin": 1835, + "end": 1856, + "name": "SHL", + "source": 9 + }, + { + "begin": 1823, + "end": 1829, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1830, + "end": 1831, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "LT", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "PUSH [tag]", + "source": 9, + "value": "630" + }, + { + "begin": 1823, + "end": 1832, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "PUSH [tag]", + "source": 9, + "value": "631" + }, + { + "begin": 1823, + "end": 1832, + "name": "PUSH [tag]", + "source": 9, + "value": "300" + }, + { + "begin": 1823, + "end": 1832, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "tag", + "source": 9, + "value": "631" + }, + { + "begin": 1823, + "end": 1832, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "tag", + "source": 9, + "value": "630" + }, + { + "begin": 1823, + "end": 1832, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 1823, + "end": 1832, + "name": "ADD", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "ADD", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1823, + "end": 1856, + "name": "NOT", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "AND", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1823, + "end": 1856, + "name": "BYTE", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "MSTORE8", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "POP", + "source": 9 + }, + { + "begin": 1880, + "end": 1881, + "name": "PUSH", + "source": 9, + "value": "4" + }, + { + "begin": 1870, + "end": 1881, + "name": "DUP6", + "source": 9 + }, + { + "begin": 1870, + "end": 1881, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1870, + "end": 1881, + "name": "SHR", + "source": 9 + }, + { + "begin": 1870, + "end": 1881, + "name": "SWAP5", + "source": 9 + }, + { + "begin": 1870, + "end": 1881, + "name": "POP", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "PUSH [tag]", + "source": 9, + "value": "632" + }, + { + "begin": 1804, + "end": 1807, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "PUSH [tag]", + "source": 9, + "value": "633" + }, + { + "begin": 1804, + "end": 1807, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "tag", + "source": 9, + "value": "632" + }, + { + "begin": 1804, + "end": 1807, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "POP", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "PUSH [tag]", + "source": 9, + "value": "623" + }, + { + "begin": 1764, + "end": 1892, + "name": "JUMP", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "tag", + "source": 9, + "value": "624" + }, + { + "begin": 1764, + "end": 1892, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "POP", + "source": 9 + }, + { + "begin": 1918, + "end": 1919, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1909, + "end": 1914, + "name": "DUP5", + "source": 9 + }, + { + "begin": 1909, + "end": 1919, + "name": "EQ", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH [tag]", + "source": 9, + "value": "634" + }, + { + "begin": 1901, + "end": 1956, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH", + "source": 9, + "value": "40" + }, + { + "begin": 1901, + "end": 1956, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH", + "source": 9, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1901, + "end": 1956, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH", + "source": 9, + "value": "4" + }, + { + "begin": 1901, + "end": 1956, + "name": "ADD", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH [tag]", + "source": 9, + "value": "635" + }, + { + "begin": 1901, + "end": 1956, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH [tag]", + "source": 9, + "value": "636" + }, + { + "begin": 1901, + "end": 1956, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "tag", + "source": 9, + "value": "635" + }, + { + "begin": 1901, + "end": 1956, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH", + "source": 9, + "value": "40" + }, + { + "begin": 1901, + "end": 1956, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "SUB", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "REVERT", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "tag", + "source": 9, + "value": "634" + }, + { + "begin": 1901, + "end": 1956, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1980, + "end": 1986, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1966, + "end": 1987, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1966, + "end": 1987, + "name": "POP", + "source": 9 + }, + { + "begin": 1966, + "end": 1987, + "name": "POP", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "name": "SWAP3", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "name": "POP", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "name": "POP", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "jumpType": "[out]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 2025, + "end": 2090, + "name": "tag", + "source": 0, + "value": "585" + }, + { + "begin": 2025, + "end": 2090, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "0" + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "15" + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SLOAD", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "100" + }, + { + "begin": 5363, + "end": 5376, + "name": "EXP", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "DIV", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 5363, + "end": 5376, + "name": "AND", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "638" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPI", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 5355, + "end": 5424, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 5355, + "end": 5424, + "name": "DUP2", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "MSTORE", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "4" + }, + { + "begin": 5355, + "end": 5424, + "name": "ADD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "639" + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "528" + }, + { + "begin": 5355, + "end": 5424, + "jumpType": "[in]", + "name": "JUMP", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "tag", + "source": 2, + "value": "639" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 5355, + "end": 5424, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "DUP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP2", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SUB", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "REVERT", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "tag", + "source": 2, + "value": "638" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 2025, + "end": 2090, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7376, + "end": 7623, + "name": "tag", + "source": 0, + "value": "589" + }, + { + "begin": 7376, + "end": 7623, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7459, + "end": 7484, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7487, + "end": 7505, + "name": "PUSH [tag]", + "source": 0, + "value": "642" + }, + { + "begin": 7500, + "end": 7504, + "name": "DUP4", + "source": 0 + }, + { + "begin": 7487, + "end": 7499, + "name": "PUSH [tag]", + "source": 0, + "value": "105" + }, + { + "begin": 7487, + "end": 7505, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7487, + "end": 7505, + "name": "tag", + "source": 0, + "value": "642" + }, + { + "begin": 7487, + "end": 7505, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7459, + "end": 7505, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7459, + "end": 7505, + "name": "POP", + "source": 0 + }, + { + "begin": 7540, + "end": 7549, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7515, + "end": 7521, + "name": "PUSH", + "source": 0, + "value": "65" + }, + { + "begin": 7515, + "end": 7527, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7522, + "end": 7526, + "name": "DUP6", + "source": 0 + }, + { + "begin": 7515, + "end": 7527, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7515, + "end": 7527, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 7515, + "end": 7527, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 7515, + "end": 7527, + "name": "ADD", + "source": 0 + }, + { + "begin": 7515, + "end": 7527, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7515, + "end": 7527, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7515, + "end": 7527, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 7515, + "end": 7527, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 7515, + "end": 7527, + "name": "ADD", + "source": 0 + }, + { + "begin": 7515, + "end": 7527, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7515, + "end": 7527, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 7515, + "end": 7537, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 7515, + "end": 7537, + "name": "ADD", + "source": 0 + }, + { + "begin": 7515, + "end": 7549, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7515, + "end": 7549, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7515, + "end": 7549, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 7515, + "end": 7549, + "name": "POP", + "source": 0 + }, + { + "begin": 7606, + "end": 7615, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7587, + "end": 7604, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7581, + "end": 7585, + "name": "DUP5", + "source": 0 + }, + { + "begin": 7564, + "end": 7616, + "name": "PUSH", + "source": 0, + "value": "BD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF" + }, + { + "begin": 7564, + "end": 7616, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 7564, + "end": 7616, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 7564, + "end": 7616, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 7564, + "end": 7616, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 7564, + "end": 7616, + "name": "DUP1", + "source": 0 + }, + { + "begin": 7564, + "end": 7616, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 7564, + "end": 7616, + "name": "SUB", + "source": 0 + }, + { + "begin": 7564, + "end": 7616, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7564, + "end": 7616, + "name": "LOG4", + "source": 0 + }, + { + "begin": 7449, + "end": 7623, + "name": "POP", + "source": 0 + }, + { + "begin": 7376, + "end": 7623, + "name": "POP", + "source": 0 + }, + { + "begin": 7376, + "end": 7623, + "name": "POP", + "source": 0 + }, + { + "begin": 7376, + "end": 7623, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 1985, + "end": 2094, + "name": "tag", + "source": 3, + "value": "602" + }, + { + "begin": 1985, + "end": 2094, + "name": "JUMPDEST", + "source": 3 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "0" + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "15" + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SLOAD", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "100" + }, + { + "begin": 5363, + "end": 5376, + "name": "EXP", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "DIV", + "source": 2 + }, + { + "begin": 5363, + "end": 5376, + "name": "PUSH", + "source": 2, + "value": "FF" + }, + { + "begin": 5363, + "end": 5376, + "name": "AND", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "644" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPI", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 5355, + "end": 5424, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 5355, + "end": 5424, + "name": "DUP2", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "MSTORE", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "4" + }, + { + "begin": 5355, + "end": 5424, + "name": "ADD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "645" + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH [tag]", + "source": 2, + "value": "528" + }, + { + "begin": 5355, + "end": 5424, + "jumpType": "[in]", + "name": "JUMP", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "tag", + "source": 2, + "value": "645" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "PUSH", + "source": 2, + "value": "40" + }, + { + "begin": 5355, + "end": 5424, + "name": "MLOAD", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "DUP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP2", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SUB", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "SWAP1", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "REVERT", + "source": 2 + }, + { + "begin": 5355, + "end": 5424, + "name": "tag", + "source": 2, + "value": "644" + }, + { + "begin": 5355, + "end": 5424, + "name": "JUMPDEST", + "source": 2 + }, + { + "begin": 1787, + "end": 1788, + "modifierDepth": 1, + "name": "PUSH", + "source": 3, + "value": "1" + }, + { + "begin": 2065, + "end": 2072, + "modifierDepth": 1, + "name": "PUSH", + "source": 3, + "value": "97" + }, + { + "begin": 2065, + "end": 2087, + "modifierDepth": 1, + "name": "DUP2", + "source": 3 + }, + { + "begin": 2065, + "end": 2087, + "modifierDepth": 1, + "name": "SWAP1", + "source": 3 + }, + { + "begin": 2065, + "end": 2087, + "modifierDepth": 1, + "name": "SSTORE", + "source": 3 + }, + { + "begin": 2065, + "end": 2087, + "modifierDepth": 1, + "name": "POP", + "source": 3 + }, + { + "begin": 1985, + "end": 2094, + "jumpType": "[out]", + "name": "JUMP", + "source": 3 + }, + { + "begin": 3868, + "end": 4585, + "name": "tag", + "source": 6, + "value": "606" + }, + { + "begin": 3868, + "end": 4585, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 4298, + "end": 4321, + "name": "PUSH", + "source": 6, + "value": "0" + }, + { + "begin": 4324, + "end": 4393, + "name": "PUSH [tag]", + "source": 6, + "value": "648" + }, + { + "begin": 4352, + "end": 4356, + "name": "DUP3", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 4324, + "end": 4393, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "DUP1", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 4324, + "end": 4393, + "name": "ADD", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 4324, + "end": 4393, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "DUP1", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "PUSH", + "source": 6, + "value": "20" + }, + { + "begin": 4324, + "end": 4393, + "name": "DUP2", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "PUSH", + "source": 6, + "value": "20" + }, + { + "begin": 4324, + "end": 4393, + "name": "ADD", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "PUSH", + "source": 6, + "value": "5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564" + }, + { + "begin": 4324, + "end": 4393, + "name": "DUP2", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "POP", + "source": 6 + }, + { + "begin": 4332, + "end": 4337, + "name": "DUP6", + "source": 6 + }, + { + "begin": 4324, + "end": 4351, + "name": "PUSH", + "source": 6, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4324, + "end": 4351, + "name": "AND", + "source": 6 + }, + { + "begin": 4324, + "end": 4351, + "name": "PUSH [tag]", + "source": 6, + "value": "649" + }, + { + "begin": 4324, + "end": 4351, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "SWAP3", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "SWAP2", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "PUSH", + "source": 6, + "value": "FFFFFFFF" + }, + { + "begin": 4324, + "end": 4393, + "name": "AND", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "jumpType": "[in]", + "name": "JUMP", + "source": 6 + }, + { + "begin": 4324, + "end": 4393, + "name": "tag", + "source": 6, + "value": "648" + }, + { + "begin": 4324, + "end": 4393, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 4298, + "end": 4393, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 4298, + "end": 4393, + "name": "POP", + "source": 6 + }, + { + "begin": 4427, + "end": 4428, + "name": "PUSH", + "source": 6, + "value": "0" + }, + { + "begin": 4407, + "end": 4417, + "name": "DUP2", + "source": 6 + }, + { + "begin": 4407, + "end": 4424, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 4407, + "end": 4428, + "name": "GT", + "source": 6 + }, + { + "begin": 4403, + "end": 4579, + "name": "ISZERO", + "source": 6 + }, + { + "begin": 4403, + "end": 4579, + "name": "PUSH [tag]", + "source": 6, + "value": "650" + }, + { + "begin": 4403, + "end": 4579, + "name": "JUMPI", + "source": 6 + }, + { + "begin": 4502, + "end": 4512, + "name": "DUP1", + "source": 6 + }, + { + "begin": 4491, + "end": 4521, + "name": "DUP1", + "source": 6 + }, + { + "begin": 4491, + "end": 4521, + "name": "PUSH", + "source": 6, + "value": "20" + }, + { + "begin": 4491, + "end": 4521, + "name": "ADD", + "source": 6 + }, + { + "begin": 4491, + "end": 4521, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 4491, + "end": 4521, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 4491, + "end": 4521, + "name": "DUP2", + "source": 6 + }, + { + "begin": 4491, + "end": 4521, + "name": "ADD", + "source": 6 + }, + { + "begin": 4491, + "end": 4521, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 4491, + "end": 4521, + "name": "PUSH [tag]", + "source": 6, + "value": "651" + }, + { + "begin": 4491, + "end": 4521, + "name": "SWAP2", + "source": 6 + }, + { + "begin": 4491, + "end": 4521, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 4491, + "end": 4521, + "name": "PUSH [tag]", + "source": 6, + "value": "652" + }, + { + "begin": 4491, + "end": 4521, + "jumpType": "[in]", + "name": "JUMP", + "source": 6 + }, + { + "begin": 4491, + "end": 4521, + "name": "tag", + "source": 6, + "value": "651" + }, + { + "begin": 4491, + "end": 4521, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "PUSH [tag]", + "source": 6, + "value": "653" + }, + { + "begin": 4483, + "end": 4568, + "name": "JUMPI", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 4483, + "end": 4568, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "PUSH", + "source": 6, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 4483, + "end": 4568, + "name": "DUP2", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "MSTORE", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "PUSH", + "source": 6, + "value": "4" + }, + { + "begin": 4483, + "end": 4568, + "name": "ADD", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "PUSH [tag]", + "source": 6, + "value": "654" + }, + { + "begin": 4483, + "end": 4568, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "PUSH [tag]", + "source": 6, + "value": "655" + }, + { + "begin": 4483, + "end": 4568, + "jumpType": "[in]", + "name": "JUMP", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "tag", + "source": 6, + "value": "654" + }, + { + "begin": 4483, + "end": 4568, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "PUSH", + "source": 6, + "value": "40" + }, + { + "begin": 4483, + "end": 4568, + "name": "MLOAD", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "DUP1", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "SWAP2", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "SUB", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "SWAP1", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "REVERT", + "source": 6 + }, + { + "begin": 4483, + "end": 4568, + "name": "tag", + "source": 6, + "value": "653" + }, + { + "begin": 4483, + "end": 4568, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 4403, + "end": 4579, + "name": "tag", + "source": 6, + "value": "650" + }, + { + "begin": 4403, + "end": 4579, + "name": "JUMPDEST", + "source": 6 + }, + { + "begin": 3949, + "end": 4585, + "name": "POP", + "source": 6 + }, + { + "begin": 3868, + "end": 4585, + "name": "POP", + "source": 6 + }, + { + "begin": 3868, + "end": 4585, + "name": "POP", + "source": 6 + }, + { + "begin": 3868, + "end": 4585, + "jumpType": "[out]", + "name": "JUMP", + "source": 6 + }, + { + "begin": 3884, + "end": 4107, + "name": "tag", + "source": 7, + "value": "649" + }, + { + "begin": 3884, + "end": 4107, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 4017, + "end": 4029, + "name": "PUSH", + "source": 7, + "value": "60" + }, + { + "begin": 4048, + "end": 4100, + "name": "PUSH [tag]", + "source": 7, + "value": "657" + }, + { + "begin": 4070, + "end": 4076, + "name": "DUP5", + "source": 7 + }, + { + "begin": 4078, + "end": 4082, + "name": "DUP5", + "source": 7 + }, + { + "begin": 4084, + "end": 4085, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 4087, + "end": 4099, + "name": "DUP6", + "source": 7 + }, + { + "begin": 4048, + "end": 4069, + "name": "PUSH [tag]", + "source": 7, + "value": "658" + }, + { + "begin": 4048, + "end": 4100, + "jumpType": "[in]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 4048, + "end": 4100, + "name": "tag", + "source": 7, + "value": "657" + }, + { + "begin": 4048, + "end": 4100, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 4041, + "end": 4100, + "name": "SWAP1", + "source": 7 + }, + { + "begin": 4041, + "end": 4100, + "name": "POP", + "source": 7 + }, + { + "begin": 3884, + "end": 4107, + "name": "SWAP4", + "source": 7 + }, + { + "begin": 3884, + "end": 4107, + "name": "SWAP3", + "source": 7 + }, + { + "begin": 3884, + "end": 4107, + "name": "POP", + "source": 7 + }, + { + "begin": 3884, + "end": 4107, + "name": "POP", + "source": 7 + }, + { + "begin": 3884, + "end": 4107, + "name": "POP", + "source": 7 + }, + { + "begin": 3884, + "end": 4107, + "jumpType": "[out]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 4971, + "end": 5417, + "name": "tag", + "source": 7, + "value": "658" + }, + { + "begin": 4971, + "end": 5417, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 5136, + "end": 5148, + "name": "PUSH", + "source": 7, + "value": "60" + }, + { + "begin": 5193, + "end": 5198, + "name": "DUP3", + "source": 7 + }, + { + "begin": 5168, + "end": 5189, + "name": "SELFBALANCE", + "source": 7 + }, + { + "begin": 5168, + "end": 5198, + "name": "LT", + "source": 7 + }, + { + "begin": 5168, + "end": 5198, + "name": "ISZERO", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "PUSH [tag]", + "source": 7, + "value": "660" + }, + { + "begin": 5160, + "end": 5241, + "name": "JUMPI", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "PUSH", + "source": 7, + "value": "40" + }, + { + "begin": 5160, + "end": 5241, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "PUSH", + "source": 7, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 5160, + "end": 5241, + "name": "DUP2", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "MSTORE", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "PUSH", + "source": 7, + "value": "4" + }, + { + "begin": 5160, + "end": 5241, + "name": "ADD", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "PUSH [tag]", + "source": 7, + "value": "661" + }, + { + "begin": 5160, + "end": 5241, + "name": "SWAP1", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "PUSH [tag]", + "source": 7, + "value": "662" + }, + { + "begin": 5160, + "end": 5241, + "jumpType": "[in]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "tag", + "source": 7, + "value": "661" + }, + { + "begin": 5160, + "end": 5241, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "PUSH", + "source": 7, + "value": "40" + }, + { + "begin": 5160, + "end": 5241, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "DUP1", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "SWAP2", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "SUB", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "SWAP1", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "REVERT", + "source": 7 + }, + { + "begin": 5160, + "end": 5241, + "name": "tag", + "source": 7, + "value": "660" + }, + { + "begin": 5160, + "end": 5241, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 5252, + "end": 5264, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 5266, + "end": 5289, + "name": "DUP1", + "source": 7 + }, + { + "begin": 5293, + "end": 5299, + "name": "DUP7", + "source": 7 + }, + { + "begin": 5293, + "end": 5304, + "name": "PUSH", + "source": 7, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 5293, + "end": 5304, + "name": "AND", + "source": 7 + }, + { + "begin": 5312, + "end": 5317, + "name": "DUP6", + "source": 7 + }, + { + "begin": 5319, + "end": 5323, + "name": "DUP8", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH", + "source": 7, + "value": "40" + }, + { + "begin": 5293, + "end": 5324, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH [tag]", + "source": 7, + "value": "663" + }, + { + "begin": 5293, + "end": 5324, + "name": "SWAP2", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "SWAP1", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH [tag]", + "source": 7, + "value": "664" + }, + { + "begin": 5293, + "end": 5324, + "jumpType": "[in]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "tag", + "source": 7, + "value": "663" + }, + { + "begin": 5293, + "end": 5324, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH", + "source": 7, + "value": "40" + }, + { + "begin": 5293, + "end": 5324, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "DUP1", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "DUP4", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "SUB", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "DUP2", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "DUP6", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "DUP8", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "GAS", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "CALL", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "SWAP3", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "POP", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "POP", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "POP", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "RETURNDATASIZE", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "DUP1", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 5293, + "end": 5324, + "name": "DUP2", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "EQ", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH [tag]", + "source": 7, + "value": "667" + }, + { + "begin": 5293, + "end": 5324, + "name": "JUMPI", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH", + "source": 7, + "value": "40" + }, + { + "begin": 5293, + "end": 5324, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "SWAP2", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "POP", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH", + "source": 7, + "value": "1F" + }, + { + "begin": 5293, + "end": 5324, + "name": "NOT", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH", + "source": 7, + "value": "3F" + }, + { + "begin": 5293, + "end": 5324, + "name": "RETURNDATASIZE", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "ADD", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "AND", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "DUP3", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "ADD", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH", + "source": 7, + "value": "40" + }, + { + "begin": 5293, + "end": 5324, + "name": "MSTORE", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "RETURNDATASIZE", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "DUP3", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "MSTORE", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "RETURNDATASIZE", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH", + "source": 7, + "value": "20" + }, + { + "begin": 5293, + "end": 5324, + "name": "DUP5", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "ADD", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "RETURNDATACOPY", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH [tag]", + "source": 7, + "value": "666" + }, + { + "begin": 5293, + "end": 5324, + "name": "JUMP", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "tag", + "source": 7, + "value": "667" + }, + { + "begin": 5293, + "end": 5324, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "PUSH", + "source": 7, + "value": "60" + }, + { + "begin": 5293, + "end": 5324, + "name": "SWAP2", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "POP", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "tag", + "source": 7, + "value": "666" + }, + { + "begin": 5293, + "end": 5324, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 5293, + "end": 5324, + "name": "POP", + "source": 7 + }, + { + "begin": 5251, + "end": 5324, + "name": "SWAP2", + "source": 7 + }, + { + "begin": 5251, + "end": 5324, + "name": "POP", + "source": 7 + }, + { + "begin": 5251, + "end": 5324, + "name": "SWAP2", + "source": 7 + }, + { + "begin": 5251, + "end": 5324, + "name": "POP", + "source": 7 + }, + { + "begin": 5341, + "end": 5410, + "name": "PUSH [tag]", + "source": 7, + "value": "668" + }, + { + "begin": 5368, + "end": 5374, + "name": "DUP8", + "source": 7 + }, + { + "begin": 5376, + "end": 5383, + "name": "DUP4", + "source": 7 + }, + { + "begin": 5385, + "end": 5395, + "name": "DUP4", + "source": 7 + }, + { + "begin": 5397, + "end": 5409, + "name": "DUP8", + "source": 7 + }, + { + "begin": 5341, + "end": 5367, + "name": "PUSH [tag]", + "source": 7, + "value": "669" + }, + { + "begin": 5341, + "end": 5410, + "jumpType": "[in]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 5341, + "end": 5410, + "name": "tag", + "source": 7, + "value": "668" + }, + { + "begin": 5341, + "end": 5410, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 5334, + "end": 5410, + "name": "SWAP3", + "source": 7 + }, + { + "begin": 5334, + "end": 5410, + "name": "POP", + "source": 7 + }, + { + "begin": 5334, + "end": 5410, + "name": "POP", + "source": 7 + }, + { + "begin": 5334, + "end": 5410, + "name": "POP", + "source": 7 + }, + { + "begin": 4971, + "end": 5417, + "name": "SWAP5", + "source": 7 + }, + { + "begin": 4971, + "end": 5417, + "name": "SWAP4", + "source": 7 + }, + { + "begin": 4971, + "end": 5417, + "name": "POP", + "source": 7 + }, + { + "begin": 4971, + "end": 5417, + "name": "POP", + "source": 7 + }, + { + "begin": 4971, + "end": 5417, + "name": "POP", + "source": 7 + }, + { + "begin": 4971, + "end": 5417, + "name": "POP", + "source": 7 + }, + { + "begin": 4971, + "end": 5417, + "jumpType": "[out]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 6589, + "end": 7217, + "name": "tag", + "source": 7, + "value": "669" + }, + { + "begin": 6589, + "end": 7217, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 6769, + "end": 6781, + "name": "PUSH", + "source": 7, + "value": "60" + }, + { + "begin": 6797, + "end": 6804, + "name": "DUP4", + "source": 7 + }, + { + "begin": 6793, + "end": 7211, + "name": "ISZERO", + "source": 7 + }, + { + "begin": 6793, + "end": 7211, + "name": "PUSH [tag]", + "source": 7, + "value": "671" + }, + { + "begin": 6793, + "end": 7211, + "name": "JUMPI", + "source": 7 + }, + { + "begin": 6845, + "end": 6846, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 6824, + "end": 6834, + "name": "DUP4", + "source": 7 + }, + { + "begin": 6824, + "end": 6841, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 6824, + "end": 6846, + "name": "SUB", + "source": 7 + }, + { + "begin": 6820, + "end": 7106, + "name": "PUSH [tag]", + "source": 7, + "value": "672" + }, + { + "begin": 6820, + "end": 7106, + "name": "JUMPI", + "source": 7 + }, + { + "begin": 7039, + "end": 7057, + "name": "PUSH [tag]", + "source": 7, + "value": "673" + }, + { + "begin": 7050, + "end": 7056, + "name": "DUP6", + "source": 7 + }, + { + "begin": 7039, + "end": 7049, + "name": "PUSH [tag]", + "source": 7, + "value": "387" + }, + { + "begin": 7039, + "end": 7057, + "jumpType": "[in]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 7039, + "end": 7057, + "name": "tag", + "source": 7, + "value": "673" + }, + { + "begin": 7039, + "end": 7057, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "PUSH [tag]", + "source": 7, + "value": "674" + }, + { + "begin": 7031, + "end": 7091, + "name": "JUMPI", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "PUSH", + "source": 7, + "value": "40" + }, + { + "begin": 7031, + "end": 7091, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "PUSH", + "source": 7, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 7031, + "end": 7091, + "name": "DUP2", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "MSTORE", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "PUSH", + "source": 7, + "value": "4" + }, + { + "begin": 7031, + "end": 7091, + "name": "ADD", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "PUSH [tag]", + "source": 7, + "value": "675" + }, + { + "begin": 7031, + "end": 7091, + "name": "SWAP1", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "PUSH [tag]", + "source": 7, + "value": "676" + }, + { + "begin": 7031, + "end": 7091, + "jumpType": "[in]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "tag", + "source": 7, + "value": "675" + }, + { + "begin": 7031, + "end": 7091, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "PUSH", + "source": 7, + "value": "40" + }, + { + "begin": 7031, + "end": 7091, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "DUP1", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "SWAP2", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "SUB", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "SWAP1", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "REVERT", + "source": 7 + }, + { + "begin": 7031, + "end": 7091, + "name": "tag", + "source": 7, + "value": "674" + }, + { + "begin": 7031, + "end": 7091, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 6820, + "end": 7106, + "name": "tag", + "source": 7, + "value": "672" + }, + { + "begin": 6820, + "end": 7106, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 7126, + "end": 7136, + "name": "DUP3", + "source": 7 + }, + { + "begin": 7119, + "end": 7136, + "name": "SWAP1", + "source": 7 + }, + { + "begin": 7119, + "end": 7136, + "name": "POP", + "source": 7 + }, + { + "begin": 7119, + "end": 7136, + "name": "PUSH [tag]", + "source": 7, + "value": "670" + }, + { + "begin": 7119, + "end": 7136, + "name": "JUMP", + "source": 7 + }, + { + "begin": 6793, + "end": 7211, + "name": "tag", + "source": 7, + "value": "671" + }, + { + "begin": 6793, + "end": 7211, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 7167, + "end": 7200, + "name": "PUSH [tag]", + "source": 7, + "value": "678" + }, + { + "begin": 7175, + "end": 7185, + "name": "DUP4", + "source": 7 + }, + { + "begin": 7187, + "end": 7199, + "name": "DUP4", + "source": 7 + }, + { + "begin": 7167, + "end": 7174, + "name": "PUSH [tag]", + "source": 7, + "value": "679" + }, + { + "begin": 7167, + "end": 7200, + "jumpType": "[in]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 7167, + "end": 7200, + "name": "tag", + "source": 7, + "value": "678" + }, + { + "begin": 7167, + "end": 7200, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 6589, + "end": 7217, + "name": "tag", + "source": 7, + "value": "670" + }, + { + "begin": 6589, + "end": 7217, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 6589, + "end": 7217, + "name": "SWAP5", + "source": 7 + }, + { + "begin": 6589, + "end": 7217, + "name": "SWAP4", + "source": 7 + }, + { + "begin": 6589, + "end": 7217, + "name": "POP", + "source": 7 + }, + { + "begin": 6589, + "end": 7217, + "name": "POP", + "source": 7 + }, + { + "begin": 6589, + "end": 7217, + "name": "POP", + "source": 7 + }, + { + "begin": 6589, + "end": 7217, + "name": "POP", + "source": 7 + }, + { + "begin": 6589, + "end": 7217, + "jumpType": "[out]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 7739, + "end": 8279, + "name": "tag", + "source": 7, + "value": "679" + }, + { + "begin": 7739, + "end": 8279, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 7918, + "end": 7919, + "name": "PUSH", + "source": 7, + "value": "0" + }, + { + "begin": 7898, + "end": 7908, + "name": "DUP3", + "source": 7 + }, + { + "begin": 7898, + "end": 7915, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 7898, + "end": 7919, + "name": "GT", + "source": 7 + }, + { + "begin": 7894, + "end": 8273, + "name": "ISZERO", + "source": 7 + }, + { + "begin": 7894, + "end": 8273, + "name": "PUSH [tag]", + "source": 7, + "value": "681" + }, + { + "begin": 7894, + "end": 8273, + "name": "JUMPI", + "source": 7 + }, + { + "begin": 8126, + "end": 8136, + "name": "DUP2", + "source": 7 + }, + { + "begin": 8120, + "end": 8137, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 8182, + "end": 8197, + "name": "DUP1", + "source": 7 + }, + { + "begin": 8169, + "end": 8179, + "name": "DUP4", + "source": 7 + }, + { + "begin": 8165, + "end": 8167, + "name": "PUSH", + "source": 7, + "value": "20" + }, + { + "begin": 8161, + "end": 8180, + "name": "ADD", + "source": 7 + }, + { + "begin": 8154, + "end": 8198, + "name": "REVERT", + "source": 7 + }, + { + "begin": 7894, + "end": 8273, + "name": "tag", + "source": 7, + "value": "681" + }, + { + "begin": 7894, + "end": 8273, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 8249, + "end": 8261, + "name": "DUP1", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "PUSH", + "source": 7, + "value": "40" + }, + { + "begin": 8242, + "end": 8262, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "PUSH", + "source": 7, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 8242, + "end": 8262, + "name": "DUP2", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "MSTORE", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "PUSH", + "source": 7, + "value": "4" + }, + { + "begin": 8242, + "end": 8262, + "name": "ADD", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "PUSH [tag]", + "source": 7, + "value": "683" + }, + { + "begin": 8242, + "end": 8262, + "name": "SWAP2", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "SWAP1", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "PUSH [tag]", + "source": 7, + "value": "579" + }, + { + "begin": 8242, + "end": 8262, + "jumpType": "[in]", + "name": "JUMP", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "tag", + "source": 7, + "value": "683" + }, + { + "begin": 8242, + "end": 8262, + "name": "JUMPDEST", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "PUSH", + "source": 7, + "value": "40" + }, + { + "begin": 8242, + "end": 8262, + "name": "MLOAD", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "DUP1", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "SWAP2", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "SUB", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "SWAP1", + "source": 7 + }, + { + "begin": 8242, + "end": 8262, + "name": "REVERT", + "source": 7 + }, + { + "begin": 88, + "end": 205, + "name": "tag", + "source": 16, + "value": "685" + }, + { + "begin": 88, + "end": 205, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 197, + "end": 198, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 194, + "end": 195, + "name": "DUP1", + "source": 16 + }, + { + "begin": 187, + "end": 199, + "name": "REVERT", + "source": 16 + }, + { + "begin": 211, + "end": 328, + "name": "tag", + "source": 16, + "value": "686" + }, + { + "begin": 211, + "end": 328, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 320, + "end": 321, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 317, + "end": 318, + "name": "DUP1", + "source": 16 + }, + { + "begin": 310, + "end": 322, + "name": "REVERT", + "source": 16 + }, + { + "begin": 334, + "end": 483, + "name": "tag", + "source": 16, + "value": "687" + }, + { + "begin": 334, + "end": 483, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 370, + "end": 377, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 410, + "end": 476, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFF00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 403, + "end": 408, + "name": "DUP3", + "source": 16 + }, + { + "begin": 399, + "end": 477, + "name": "AND", + "source": 16 + }, + { + "begin": 388, + "end": 477, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 388, + "end": 477, + "name": "POP", + "source": 16 + }, + { + "begin": 334, + "end": 483, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 334, + "end": 483, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 334, + "end": 483, + "name": "POP", + "source": 16 + }, + { + "begin": 334, + "end": 483, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 489, + "end": 609, + "name": "tag", + "source": 16, + "value": "688" + }, + { + "begin": 489, + "end": 609, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 561, + "end": 584, + "name": "PUSH [tag]", + "source": 16, + "value": "777" + }, + { + "begin": 578, + "end": 583, + "name": "DUP2", + "source": 16 + }, + { + "begin": 561, + "end": 584, + "name": "PUSH [tag]", + "source": 16, + "value": "687" + }, + { + "begin": 561, + "end": 584, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 561, + "end": 584, + "name": "tag", + "source": 16, + "value": "777" + }, + { + "begin": 561, + "end": 584, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 554, + "end": 559, + "name": "DUP2", + "source": 16 + }, + { + "begin": 551, + "end": 585, + "name": "EQ", + "source": 16 + }, + { + "begin": 541, + "end": 603, + "name": "PUSH [tag]", + "source": 16, + "value": "778" + }, + { + "begin": 541, + "end": 603, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 599, + "end": 600, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 596, + "end": 597, + "name": "DUP1", + "source": 16 + }, + { + "begin": 589, + "end": 601, + "name": "REVERT", + "source": 16 + }, + { + "begin": 541, + "end": 603, + "name": "tag", + "source": 16, + "value": "778" + }, + { + "begin": 541, + "end": 603, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 489, + "end": 609, + "name": "POP", + "source": 16 + }, + { + "begin": 489, + "end": 609, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "name": "tag", + "source": 16, + "value": "689" + }, + { + "begin": 615, + "end": 752, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 660, + "end": 665, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 698, + "end": 704, + "name": "DUP2", + "source": 16 + }, + { + "begin": 685, + "end": 705, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 676, + "end": 705, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 676, + "end": 705, + "name": "POP", + "source": 16 + }, + { + "begin": 714, + "end": 746, + "name": "PUSH [tag]", + "source": 16, + "value": "780" + }, + { + "begin": 740, + "end": 745, + "name": "DUP2", + "source": 16 + }, + { + "begin": 714, + "end": 746, + "name": "PUSH [tag]", + "source": 16, + "value": "688" + }, + { + "begin": 714, + "end": 746, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 714, + "end": 746, + "name": "tag", + "source": 16, + "value": "780" + }, + { + "begin": 714, + "end": 746, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "name": "POP", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "name": "POP", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "name": "tag", + "source": 16, + "value": "57" + }, + { + "begin": 758, + "end": 1085, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 816, + "end": 822, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 865, + "end": 867, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 853, + "end": 862, + "name": "DUP3", + "source": 16 + }, + { + "begin": 844, + "end": 851, + "name": "DUP5", + "source": 16 + }, + { + "begin": 840, + "end": 863, + "name": "SUB", + "source": 16 + }, + { + "begin": 836, + "end": 868, + "name": "SLT", + "source": 16 + }, + { + "begin": 833, + "end": 952, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 833, + "end": 952, + "name": "PUSH [tag]", + "source": 16, + "value": "782" + }, + { + "begin": 833, + "end": 952, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 871, + "end": 950, + "name": "PUSH [tag]", + "source": 16, + "value": "783" + }, + { + "begin": 871, + "end": 950, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 871, + "end": 950, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 871, + "end": 950, + "name": "tag", + "source": 16, + "value": "783" + }, + { + "begin": 871, + "end": 950, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 833, + "end": 952, + "name": "tag", + "source": 16, + "value": "782" + }, + { + "begin": 833, + "end": 952, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 991, + "end": 992, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1016, + "end": 1068, + "name": "PUSH [tag]", + "source": 16, + "value": "784" + }, + { + "begin": 1060, + "end": 1067, + "name": "DUP5", + "source": 16 + }, + { + "begin": 1051, + "end": 1057, + "name": "DUP3", + "source": 16 + }, + { + "begin": 1040, + "end": 1049, + "name": "DUP6", + "source": 16 + }, + { + "begin": 1036, + "end": 1058, + "name": "ADD", + "source": 16 + }, + { + "begin": 1016, + "end": 1068, + "name": "PUSH [tag]", + "source": 16, + "value": "689" + }, + { + "begin": 1016, + "end": 1068, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1016, + "end": 1068, + "name": "tag", + "source": 16, + "value": "784" + }, + { + "begin": 1016, + "end": 1068, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1006, + "end": 1068, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 1006, + "end": 1068, + "name": "POP", + "source": 16 + }, + { + "begin": 962, + "end": 1078, + "name": "POP", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "name": "POP", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "name": "POP", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1091, + "end": 1181, + "name": "tag", + "source": 16, + "value": "690" + }, + { + "begin": 1091, + "end": 1181, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1125, + "end": 1132, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1168, + "end": 1173, + "name": "DUP2", + "source": 16 + }, + { + "begin": 1161, + "end": 1174, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 1154, + "end": 1175, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 1143, + "end": 1175, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1143, + "end": 1175, + "name": "POP", + "source": 16 + }, + { + "begin": 1091, + "end": 1181, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 1091, + "end": 1181, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1091, + "end": 1181, + "name": "POP", + "source": 16 + }, + { + "begin": 1091, + "end": 1181, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1187, + "end": 1296, + "name": "tag", + "source": 16, + "value": "691" + }, + { + "begin": 1187, + "end": 1296, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1268, + "end": 1289, + "name": "PUSH [tag]", + "source": 16, + "value": "787" + }, + { + "begin": 1283, + "end": 1288, + "name": "DUP2", + "source": 16 + }, + { + "begin": 1268, + "end": 1289, + "name": "PUSH [tag]", + "source": 16, + "value": "690" + }, + { + "begin": 1268, + "end": 1289, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1268, + "end": 1289, + "name": "tag", + "source": 16, + "value": "787" + }, + { + "begin": 1268, + "end": 1289, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1263, + "end": 1266, + "name": "DUP3", + "source": 16 + }, + { + "begin": 1256, + "end": 1290, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 1187, + "end": 1296, + "name": "POP", + "source": 16 + }, + { + "begin": 1187, + "end": 1296, + "name": "POP", + "source": 16 + }, + { + "begin": 1187, + "end": 1296, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "name": "tag", + "source": 16, + "value": "60" + }, + { + "begin": 1302, + "end": 1512, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1389, + "end": 1393, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1427, + "end": 1429, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 1416, + "end": 1425, + "name": "DUP3", + "source": 16 + }, + { + "begin": 1412, + "end": 1430, + "name": "ADD", + "source": 16 + }, + { + "begin": 1404, + "end": 1430, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1404, + "end": 1430, + "name": "POP", + "source": 16 + }, + { + "begin": 1440, + "end": 1505, + "name": "PUSH [tag]", + "source": 16, + "value": "789" + }, + { + "begin": 1502, + "end": 1503, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1491, + "end": 1500, + "name": "DUP4", + "source": 16 + }, + { + "begin": 1487, + "end": 1504, + "name": "ADD", + "source": 16 + }, + { + "begin": 1478, + "end": 1484, + "name": "DUP5", + "source": 16 + }, + { + "begin": 1440, + "end": 1505, + "name": "PUSH [tag]", + "source": 16, + "value": "691" + }, + { + "begin": 1440, + "end": 1505, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1440, + "end": 1505, + "name": "tag", + "source": 16, + "value": "789" + }, + { + "begin": 1440, + "end": 1505, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "name": "POP", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "name": "POP", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1518, + "end": 1635, + "name": "tag", + "source": 16, + "value": "692" + }, + { + "begin": 1518, + "end": 1635, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1627, + "end": 1628, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1624, + "end": 1625, + "name": "DUP1", + "source": 16 + }, + { + "begin": 1617, + "end": 1629, + "name": "REVERT", + "source": 16 + }, + { + "begin": 1641, + "end": 1758, + "name": "tag", + "source": 16, + "value": "693" + }, + { + "begin": 1641, + "end": 1758, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1750, + "end": 1751, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1747, + "end": 1748, + "name": "DUP1", + "source": 16 + }, + { + "begin": 1740, + "end": 1752, + "name": "REVERT", + "source": 16 + }, + { + "begin": 1764, + "end": 1881, + "name": "tag", + "source": 16, + "value": "694" + }, + { + "begin": 1764, + "end": 1881, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1873, + "end": 1874, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1870, + "end": 1871, + "name": "DUP1", + "source": 16 + }, + { + "begin": 1863, + "end": 1875, + "name": "REVERT", + "source": 16 + }, + { + "begin": 1904, + "end": 2472, + "name": "tag", + "source": 16, + "value": "695" + }, + { + "begin": 1904, + "end": 2472, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1977, + "end": 1985, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1987, + "end": 1993, + "name": "DUP1", + "source": 16 + }, + { + "begin": 2037, + "end": 2040, + "name": "DUP4", + "source": 16 + }, + { + "begin": 2030, + "end": 2034, + "name": "PUSH", + "source": 16, + "value": "1F" + }, + { + "begin": 2022, + "end": 2028, + "name": "DUP5", + "source": 16 + }, + { + "begin": 2018, + "end": 2035, + "name": "ADD", + "source": 16 + }, + { + "begin": 2014, + "end": 2041, + "name": "SLT", + "source": 16 + }, + { + "begin": 2004, + "end": 2126, + "name": "PUSH [tag]", + "source": 16, + "value": "794" + }, + { + "begin": 2004, + "end": 2126, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 2045, + "end": 2124, + "name": "PUSH [tag]", + "source": 16, + "value": "795" + }, + { + "begin": 2045, + "end": 2124, + "name": "PUSH [tag]", + "source": 16, + "value": "692" + }, + { + "begin": 2045, + "end": 2124, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2045, + "end": 2124, + "name": "tag", + "source": 16, + "value": "795" + }, + { + "begin": 2045, + "end": 2124, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2004, + "end": 2126, + "name": "tag", + "source": 16, + "value": "794" + }, + { + "begin": 2004, + "end": 2126, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2158, + "end": 2164, + "name": "DUP3", + "source": 16 + }, + { + "begin": 2145, + "end": 2165, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 2135, + "end": 2165, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 2135, + "end": 2165, + "name": "POP", + "source": 16 + }, + { + "begin": 2188, + "end": 2206, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 2180, + "end": 2186, + "name": "DUP2", + "source": 16 + }, + { + "begin": 2177, + "end": 2207, + "name": "GT", + "source": 16 + }, + { + "begin": 2174, + "end": 2291, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 2174, + "end": 2291, + "name": "PUSH [tag]", + "source": 16, + "value": "796" + }, + { + "begin": 2174, + "end": 2291, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 2210, + "end": 2289, + "name": "PUSH [tag]", + "source": 16, + "value": "797" + }, + { + "begin": 2210, + "end": 2289, + "name": "PUSH [tag]", + "source": 16, + "value": "693" + }, + { + "begin": 2210, + "end": 2289, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2210, + "end": 2289, + "name": "tag", + "source": 16, + "value": "797" + }, + { + "begin": 2210, + "end": 2289, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2174, + "end": 2291, + "name": "tag", + "source": 16, + "value": "796" + }, + { + "begin": 2174, + "end": 2291, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2324, + "end": 2328, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 2316, + "end": 2322, + "name": "DUP4", + "source": 16 + }, + { + "begin": 2312, + "end": 2329, + "name": "ADD", + "source": 16 + }, + { + "begin": 2300, + "end": 2329, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 2300, + "end": 2329, + "name": "POP", + "source": 16 + }, + { + "begin": 2378, + "end": 2381, + "name": "DUP4", + "source": 16 + }, + { + "begin": 2370, + "end": 2374, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 2362, + "end": 2368, + "name": "DUP3", + "source": 16 + }, + { + "begin": 2358, + "end": 2375, + "name": "MUL", + "source": 16 + }, + { + "begin": 2348, + "end": 2356, + "name": "DUP4", + "source": 16 + }, + { + "begin": 2344, + "end": 2376, + "name": "ADD", + "source": 16 + }, + { + "begin": 2341, + "end": 2382, + "name": "GT", + "source": 16 + }, + { + "begin": 2338, + "end": 2466, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 2338, + "end": 2466, + "name": "PUSH [tag]", + "source": 16, + "value": "798" + }, + { + "begin": 2338, + "end": 2466, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 2385, + "end": 2464, + "name": "PUSH [tag]", + "source": 16, + "value": "799" + }, + { + "begin": 2385, + "end": 2464, + "name": "PUSH [tag]", + "source": 16, + "value": "694" + }, + { + "begin": 2385, + "end": 2464, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2385, + "end": 2464, + "name": "tag", + "source": 16, + "value": "799" + }, + { + "begin": 2385, + "end": 2464, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2338, + "end": 2466, + "name": "tag", + "source": 16, + "value": "798" + }, + { + "begin": 2338, + "end": 2466, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1904, + "end": 2472, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 1904, + "end": 2472, + "name": "POP", + "source": 16 + }, + { + "begin": 1904, + "end": 2472, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 1904, + "end": 2472, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1904, + "end": 2472, + "name": "POP", + "source": 16 + }, + { + "begin": 1904, + "end": 2472, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2478, + "end": 3037, + "name": "tag", + "source": 16, + "value": "64" + }, + { + "begin": 2478, + "end": 3037, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2564, + "end": 2570, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 2572, + "end": 2578, + "name": "DUP1", + "source": 16 + }, + { + "begin": 2621, + "end": 2623, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 2609, + "end": 2618, + "name": "DUP4", + "source": 16 + }, + { + "begin": 2600, + "end": 2607, + "name": "DUP6", + "source": 16 + }, + { + "begin": 2596, + "end": 2619, + "name": "SUB", + "source": 16 + }, + { + "begin": 2592, + "end": 2624, + "name": "SLT", + "source": 16 + }, + { + "begin": 2589, + "end": 2708, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 2589, + "end": 2708, + "name": "PUSH [tag]", + "source": 16, + "value": "801" + }, + { + "begin": 2589, + "end": 2708, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 2627, + "end": 2706, + "name": "PUSH [tag]", + "source": 16, + "value": "802" + }, + { + "begin": 2627, + "end": 2706, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 2627, + "end": 2706, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2627, + "end": 2706, + "name": "tag", + "source": 16, + "value": "802" + }, + { + "begin": 2627, + "end": 2706, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2589, + "end": 2708, + "name": "tag", + "source": 16, + "value": "801" + }, + { + "begin": 2589, + "end": 2708, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2775, + "end": 2776, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 2764, + "end": 2773, + "name": "DUP4", + "source": 16 + }, + { + "begin": 2760, + "end": 2777, + "name": "ADD", + "source": 16 + }, + { + "begin": 2747, + "end": 2778, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 2805, + "end": 2823, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 2797, + "end": 2803, + "name": "DUP2", + "source": 16 + }, + { + "begin": 2794, + "end": 2824, + "name": "GT", + "source": 16 + }, + { + "begin": 2791, + "end": 2908, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 2791, + "end": 2908, + "name": "PUSH [tag]", + "source": 16, + "value": "803" + }, + { + "begin": 2791, + "end": 2908, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 2827, + "end": 2906, + "name": "PUSH [tag]", + "source": 16, + "value": "804" + }, + { + "begin": 2827, + "end": 2906, + "name": "PUSH [tag]", + "source": 16, + "value": "686" + }, + { + "begin": 2827, + "end": 2906, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2827, + "end": 2906, + "name": "tag", + "source": 16, + "value": "804" + }, + { + "begin": 2827, + "end": 2906, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2791, + "end": 2908, + "name": "tag", + "source": 16, + "value": "803" + }, + { + "begin": 2791, + "end": 2908, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2940, + "end": 3020, + "name": "PUSH [tag]", + "source": 16, + "value": "805" + }, + { + "begin": 3012, + "end": 3019, + "name": "DUP6", + "source": 16 + }, + { + "begin": 3003, + "end": 3009, + "name": "DUP3", + "source": 16 + }, + { + "begin": 2992, + "end": 3001, + "name": "DUP7", + "source": 16 + }, + { + "begin": 2988, + "end": 3010, + "name": "ADD", + "source": 16 + }, + { + "begin": 2940, + "end": 3020, + "name": "PUSH [tag]", + "source": 16, + "value": "695" + }, + { + "begin": 2940, + "end": 3020, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2940, + "end": 3020, + "name": "tag", + "source": 16, + "value": "805" + }, + { + "begin": 2940, + "end": 3020, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2922, + "end": 3020, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 2922, + "end": 3020, + "name": "POP", + "source": 16 + }, + { + "begin": 2922, + "end": 3020, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 2922, + "end": 3020, + "name": "POP", + "source": 16 + }, + { + "begin": 2718, + "end": 3030, + "name": "POP", + "source": 16 + }, + { + "begin": 2478, + "end": 3037, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 2478, + "end": 3037, + "name": "POP", + "source": 16 + }, + { + "begin": 2478, + "end": 3037, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 2478, + "end": 3037, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 2478, + "end": 3037, + "name": "POP", + "source": 16 + }, + { + "begin": 2478, + "end": 3037, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3043, + "end": 3169, + "name": "tag", + "source": 16, + "value": "696" + }, + { + "begin": 3043, + "end": 3169, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3080, + "end": 3087, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 3120, + "end": 3162, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3113, + "end": 3118, + "name": "DUP3", + "source": 16 + }, + { + "begin": 3109, + "end": 3163, + "name": "AND", + "source": 16 + }, + { + "begin": 3098, + "end": 3163, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 3098, + "end": 3163, + "name": "POP", + "source": 16 + }, + { + "begin": 3043, + "end": 3169, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 3043, + "end": 3169, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 3043, + "end": 3169, + "name": "POP", + "source": 16 + }, + { + "begin": 3043, + "end": 3169, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3175, + "end": 3271, + "name": "tag", + "source": 16, + "value": "697" + }, + { + "begin": 3175, + "end": 3271, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3212, + "end": 3219, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 3241, + "end": 3265, + "name": "PUSH [tag]", + "source": 16, + "value": "808" + }, + { + "begin": 3259, + "end": 3264, + "name": "DUP3", + "source": 16 + }, + { + "begin": 3241, + "end": 3265, + "name": "PUSH [tag]", + "source": 16, + "value": "696" + }, + { + "begin": 3241, + "end": 3265, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3241, + "end": 3265, + "name": "tag", + "source": 16, + "value": "808" + }, + { + "begin": 3241, + "end": 3265, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3230, + "end": 3265, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 3230, + "end": 3265, + "name": "POP", + "source": 16 + }, + { + "begin": 3175, + "end": 3271, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 3175, + "end": 3271, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 3175, + "end": 3271, + "name": "POP", + "source": 16 + }, + { + "begin": 3175, + "end": 3271, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3277, + "end": 3399, + "name": "tag", + "source": 16, + "value": "698" + }, + { + "begin": 3277, + "end": 3399, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3350, + "end": 3374, + "name": "PUSH [tag]", + "source": 16, + "value": "810" + }, + { + "begin": 3368, + "end": 3373, + "name": "DUP2", + "source": 16 + }, + { + "begin": 3350, + "end": 3374, + "name": "PUSH [tag]", + "source": 16, + "value": "697" + }, + { + "begin": 3350, + "end": 3374, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3350, + "end": 3374, + "name": "tag", + "source": 16, + "value": "810" + }, + { + "begin": 3350, + "end": 3374, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3343, + "end": 3348, + "name": "DUP2", + "source": 16 + }, + { + "begin": 3340, + "end": 3375, + "name": "EQ", + "source": 16 + }, + { + "begin": 3330, + "end": 3393, + "name": "PUSH [tag]", + "source": 16, + "value": "811" + }, + { + "begin": 3330, + "end": 3393, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 3389, + "end": 3390, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 3386, + "end": 3387, + "name": "DUP1", + "source": 16 + }, + { + "begin": 3379, + "end": 3391, + "name": "REVERT", + "source": 16 + }, + { + "begin": 3330, + "end": 3393, + "name": "tag", + "source": 16, + "value": "811" + }, + { + "begin": 3330, + "end": 3393, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3277, + "end": 3399, + "name": "POP", + "source": 16 + }, + { + "begin": 3277, + "end": 3399, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3405, + "end": 3544, + "name": "tag", + "source": 16, + "value": "699" + }, + { + "begin": 3405, + "end": 3544, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3451, + "end": 3456, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 3489, + "end": 3495, + "name": "DUP2", + "source": 16 + }, + { + "begin": 3476, + "end": 3496, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 3467, + "end": 3496, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 3467, + "end": 3496, + "name": "POP", + "source": 16 + }, + { + "begin": 3505, + "end": 3538, + "name": "PUSH [tag]", + "source": 16, + "value": "813" + }, + { + "begin": 3532, + "end": 3537, + "name": "DUP2", + "source": 16 + }, + { + "begin": 3505, + "end": 3538, + "name": "PUSH [tag]", + "source": 16, + "value": "698" + }, + { + "begin": 3505, + "end": 3538, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3505, + "end": 3538, + "name": "tag", + "source": 16, + "value": "813" + }, + { + "begin": 3505, + "end": 3538, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3405, + "end": 3544, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 3405, + "end": 3544, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 3405, + "end": 3544, + "name": "POP", + "source": 16 + }, + { + "begin": 3405, + "end": 3544, + "name": "POP", + "source": 16 + }, + { + "begin": 3405, + "end": 3544, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3550, + "end": 3879, + "name": "tag", + "source": 16, + "value": "69" + }, + { + "begin": 3550, + "end": 3879, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3609, + "end": 3615, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 3658, + "end": 3660, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 3646, + "end": 3655, + "name": "DUP3", + "source": 16 + }, + { + "begin": 3637, + "end": 3644, + "name": "DUP5", + "source": 16 + }, + { + "begin": 3633, + "end": 3656, + "name": "SUB", + "source": 16 + }, + { + "begin": 3629, + "end": 3661, + "name": "SLT", + "source": 16 + }, + { + "begin": 3626, + "end": 3745, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 3626, + "end": 3745, + "name": "PUSH [tag]", + "source": 16, + "value": "815" + }, + { + "begin": 3626, + "end": 3745, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 3664, + "end": 3743, + "name": "PUSH [tag]", + "source": 16, + "value": "816" + }, + { + "begin": 3664, + "end": 3743, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 3664, + "end": 3743, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3664, + "end": 3743, + "name": "tag", + "source": 16, + "value": "816" + }, + { + "begin": 3664, + "end": 3743, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3626, + "end": 3745, + "name": "tag", + "source": 16, + "value": "815" + }, + { + "begin": 3626, + "end": 3745, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3784, + "end": 3785, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 3809, + "end": 3862, + "name": "PUSH [tag]", + "source": 16, + "value": "817" + }, + { + "begin": 3854, + "end": 3861, + "name": "DUP5", + "source": 16 + }, + { + "begin": 3845, + "end": 3851, + "name": "DUP3", + "source": 16 + }, + { + "begin": 3834, + "end": 3843, + "name": "DUP6", + "source": 16 + }, + { + "begin": 3830, + "end": 3852, + "name": "ADD", + "source": 16 + }, + { + "begin": 3809, + "end": 3862, + "name": "PUSH [tag]", + "source": 16, + "value": "699" + }, + { + "begin": 3809, + "end": 3862, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3809, + "end": 3862, + "name": "tag", + "source": 16, + "value": "817" + }, + { + "begin": 3809, + "end": 3862, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3799, + "end": 3862, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 3799, + "end": 3862, + "name": "POP", + "source": 16 + }, + { + "begin": 3755, + "end": 3872, + "name": "POP", + "source": 16 + }, + { + "begin": 3550, + "end": 3879, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 3550, + "end": 3879, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 3550, + "end": 3879, + "name": "POP", + "source": 16 + }, + { + "begin": 3550, + "end": 3879, + "name": "POP", + "source": 16 + }, + { + "begin": 3550, + "end": 3879, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3885, + "end": 4003, + "name": "tag", + "source": 16, + "value": "700" + }, + { + "begin": 3885, + "end": 4003, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3972, + "end": 3996, + "name": "PUSH [tag]", + "source": 16, + "value": "819" + }, + { + "begin": 3990, + "end": 3995, + "name": "DUP2", + "source": 16 + }, + { + "begin": 3972, + "end": 3996, + "name": "PUSH [tag]", + "source": 16, + "value": "697" + }, + { + "begin": 3972, + "end": 3996, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3972, + "end": 3996, + "name": "tag", + "source": 16, + "value": "819" + }, + { + "begin": 3972, + "end": 3996, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3967, + "end": 3970, + "name": "DUP3", + "source": 16 + }, + { + "begin": 3960, + "end": 3997, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 3885, + "end": 4003, + "name": "POP", + "source": 16 + }, + { + "begin": 3885, + "end": 4003, + "name": "POP", + "source": 16 + }, + { + "begin": 3885, + "end": 4003, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4009, + "end": 4231, + "name": "tag", + "source": 16, + "value": "76" + }, + { + "begin": 4009, + "end": 4231, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4102, + "end": 4106, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4140, + "end": 4142, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 4129, + "end": 4138, + "name": "DUP3", + "source": 16 + }, + { + "begin": 4125, + "end": 4143, + "name": "ADD", + "source": 16 + }, + { + "begin": 4117, + "end": 4143, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 4117, + "end": 4143, + "name": "POP", + "source": 16 + }, + { + "begin": 4153, + "end": 4224, + "name": "PUSH [tag]", + "source": 16, + "value": "821" + }, + { + "begin": 4221, + "end": 4222, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4210, + "end": 4219, + "name": "DUP4", + "source": 16 + }, + { + "begin": 4206, + "end": 4223, + "name": "ADD", + "source": 16 + }, + { + "begin": 4197, + "end": 4203, + "name": "DUP5", + "source": 16 + }, + { + "begin": 4153, + "end": 4224, + "name": "PUSH [tag]", + "source": 16, + "value": "700" + }, + { + "begin": 4153, + "end": 4224, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4153, + "end": 4224, + "name": "tag", + "source": 16, + "value": "821" + }, + { + "begin": 4153, + "end": 4224, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4009, + "end": 4231, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 4009, + "end": 4231, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 4009, + "end": 4231, + "name": "POP", + "source": 16 + }, + { + "begin": 4009, + "end": 4231, + "name": "POP", + "source": 16 + }, + { + "begin": 4009, + "end": 4231, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4237, + "end": 4353, + "name": "tag", + "source": 16, + "value": "701" + }, + { + "begin": 4237, + "end": 4353, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4307, + "end": 4328, + "name": "PUSH [tag]", + "source": 16, + "value": "823" + }, + { + "begin": 4322, + "end": 4327, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4307, + "end": 4328, + "name": "PUSH [tag]", + "source": 16, + "value": "690" + }, + { + "begin": 4307, + "end": 4328, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4307, + "end": 4328, + "name": "tag", + "source": 16, + "value": "823" + }, + { + "begin": 4307, + "end": 4328, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4300, + "end": 4305, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4297, + "end": 4329, + "name": "EQ", + "source": 16 + }, + { + "begin": 4287, + "end": 4347, + "name": "PUSH [tag]", + "source": 16, + "value": "824" + }, + { + "begin": 4287, + "end": 4347, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 4343, + "end": 4344, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4340, + "end": 4341, + "name": "DUP1", + "source": 16 + }, + { + "begin": 4333, + "end": 4345, + "name": "REVERT", + "source": 16 + }, + { + "begin": 4287, + "end": 4347, + "name": "tag", + "source": 16, + "value": "824" + }, + { + "begin": 4287, + "end": 4347, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4237, + "end": 4353, + "name": "POP", + "source": 16 + }, + { + "begin": 4237, + "end": 4353, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4359, + "end": 4492, + "name": "tag", + "source": 16, + "value": "702" + }, + { + "begin": 4359, + "end": 4492, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4402, + "end": 4407, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4440, + "end": 4446, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4427, + "end": 4447, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 4418, + "end": 4447, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 4418, + "end": 4447, + "name": "POP", + "source": 16 + }, + { + "begin": 4456, + "end": 4486, + "name": "PUSH [tag]", + "source": 16, + "value": "826" + }, + { + "begin": 4480, + "end": 4485, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4456, + "end": 4486, + "name": "PUSH [tag]", + "source": 16, + "value": "701" + }, + { + "begin": 4456, + "end": 4486, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4456, + "end": 4486, + "name": "tag", + "source": 16, + "value": "826" + }, + { + "begin": 4456, + "end": 4486, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4359, + "end": 4492, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 4359, + "end": 4492, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 4359, + "end": 4492, + "name": "POP", + "source": 16 + }, + { + "begin": 4359, + "end": 4492, + "name": "POP", + "source": 16 + }, + { + "begin": 4359, + "end": 4492, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4498, + "end": 4821, + "name": "tag", + "source": 16, + "value": "95" + }, + { + "begin": 4498, + "end": 4821, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4554, + "end": 4560, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4603, + "end": 4605, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 4591, + "end": 4600, + "name": "DUP3", + "source": 16 + }, + { + "begin": 4582, + "end": 4589, + "name": "DUP5", + "source": 16 + }, + { + "begin": 4578, + "end": 4601, + "name": "SUB", + "source": 16 + }, + { + "begin": 4574, + "end": 4606, + "name": "SLT", + "source": 16 + }, + { + "begin": 4571, + "end": 4690, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 4571, + "end": 4690, + "name": "PUSH [tag]", + "source": 16, + "value": "828" + }, + { + "begin": 4571, + "end": 4690, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 4609, + "end": 4688, + "name": "PUSH [tag]", + "source": 16, + "value": "829" + }, + { + "begin": 4609, + "end": 4688, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 4609, + "end": 4688, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4609, + "end": 4688, + "name": "tag", + "source": 16, + "value": "829" + }, + { + "begin": 4609, + "end": 4688, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4571, + "end": 4690, + "name": "tag", + "source": 16, + "value": "828" + }, + { + "begin": 4571, + "end": 4690, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4729, + "end": 4730, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4754, + "end": 4804, + "name": "PUSH [tag]", + "source": 16, + "value": "830" + }, + { + "begin": 4796, + "end": 4803, + "name": "DUP5", + "source": 16 + }, + { + "begin": 4787, + "end": 4793, + "name": "DUP3", + "source": 16 + }, + { + "begin": 4776, + "end": 4785, + "name": "DUP6", + "source": 16 + }, + { + "begin": 4772, + "end": 4794, + "name": "ADD", + "source": 16 + }, + { + "begin": 4754, + "end": 4804, + "name": "PUSH [tag]", + "source": 16, + "value": "702" + }, + { + "begin": 4754, + "end": 4804, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4754, + "end": 4804, + "name": "tag", + "source": 16, + "value": "830" + }, + { + "begin": 4754, + "end": 4804, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4744, + "end": 4804, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 4744, + "end": 4804, + "name": "POP", + "source": 16 + }, + { + "begin": 4700, + "end": 4814, + "name": "POP", + "source": 16 + }, + { + "begin": 4498, + "end": 4821, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 4498, + "end": 4821, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 4498, + "end": 4821, + "name": "POP", + "source": 16 + }, + { + "begin": 4498, + "end": 4821, + "name": "POP", + "source": 16 + }, + { + "begin": 4498, + "end": 4821, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4827, + "end": 4904, + "name": "tag", + "source": 16, + "value": "703" + }, + { + "begin": 4827, + "end": 4904, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4864, + "end": 4871, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4893, + "end": 4898, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4882, + "end": 4898, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 4882, + "end": 4898, + "name": "POP", + "source": 16 + }, + { + "begin": 4827, + "end": 4904, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 4827, + "end": 4904, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 4827, + "end": 4904, + "name": "POP", + "source": 16 + }, + { + "begin": 4827, + "end": 4904, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4910, + "end": 5032, + "name": "tag", + "source": 16, + "value": "704" + }, + { + "begin": 4910, + "end": 5032, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4983, + "end": 5007, + "name": "PUSH [tag]", + "source": 16, + "value": "833" + }, + { + "begin": 5001, + "end": 5006, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4983, + "end": 5007, + "name": "PUSH [tag]", + "source": 16, + "value": "703" + }, + { + "begin": 4983, + "end": 5007, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4983, + "end": 5007, + "name": "tag", + "source": 16, + "value": "833" + }, + { + "begin": 4983, + "end": 5007, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4976, + "end": 4981, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4973, + "end": 5008, + "name": "EQ", + "source": 16 + }, + { + "begin": 4963, + "end": 5026, + "name": "PUSH [tag]", + "source": 16, + "value": "834" + }, + { + "begin": 4963, + "end": 5026, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 5022, + "end": 5023, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5019, + "end": 5020, + "name": "DUP1", + "source": 16 + }, + { + "begin": 5012, + "end": 5024, + "name": "REVERT", + "source": 16 + }, + { + "begin": 4963, + "end": 5026, + "name": "tag", + "source": 16, + "value": "834" + }, + { + "begin": 4963, + "end": 5026, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4910, + "end": 5032, + "name": "POP", + "source": 16 + }, + { + "begin": 4910, + "end": 5032, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5038, + "end": 5177, + "name": "tag", + "source": 16, + "value": "705" + }, + { + "begin": 5038, + "end": 5177, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5084, + "end": 5089, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5122, + "end": 5128, + "name": "DUP2", + "source": 16 + }, + { + "begin": 5109, + "end": 5129, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 5100, + "end": 5129, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 5100, + "end": 5129, + "name": "POP", + "source": 16 + }, + { + "begin": 5138, + "end": 5171, + "name": "PUSH [tag]", + "source": 16, + "value": "836" + }, + { + "begin": 5165, + "end": 5170, + "name": "DUP2", + "source": 16 + }, + { + "begin": 5138, + "end": 5171, + "name": "PUSH [tag]", + "source": 16, + "value": "704" + }, + { + "begin": 5138, + "end": 5171, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5138, + "end": 5171, + "name": "tag", + "source": 16, + "value": "836" + }, + { + "begin": 5138, + "end": 5171, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5038, + "end": 5177, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 5038, + "end": 5177, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 5038, + "end": 5177, + "name": "POP", + "source": 16 + }, + { + "begin": 5038, + "end": 5177, + "name": "POP", + "source": 16 + }, + { + "begin": 5038, + "end": 5177, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5183, + "end": 5512, + "name": "tag", + "source": 16, + "value": "104" + }, + { + "begin": 5183, + "end": 5512, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5242, + "end": 5248, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5291, + "end": 5293, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 5279, + "end": 5288, + "name": "DUP3", + "source": 16 + }, + { + "begin": 5270, + "end": 5277, + "name": "DUP5", + "source": 16 + }, + { + "begin": 5266, + "end": 5289, + "name": "SUB", + "source": 16 + }, + { + "begin": 5262, + "end": 5294, + "name": "SLT", + "source": 16 + }, + { + "begin": 5259, + "end": 5378, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 5259, + "end": 5378, + "name": "PUSH [tag]", + "source": 16, + "value": "838" + }, + { + "begin": 5259, + "end": 5378, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 5297, + "end": 5376, + "name": "PUSH [tag]", + "source": 16, + "value": "839" + }, + { + "begin": 5297, + "end": 5376, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 5297, + "end": 5376, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5297, + "end": 5376, + "name": "tag", + "source": 16, + "value": "839" + }, + { + "begin": 5297, + "end": 5376, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5259, + "end": 5378, + "name": "tag", + "source": 16, + "value": "838" + }, + { + "begin": 5259, + "end": 5378, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5417, + "end": 5418, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5442, + "end": 5495, + "name": "PUSH [tag]", + "source": 16, + "value": "840" + }, + { + "begin": 5487, + "end": 5494, + "name": "DUP5", + "source": 16 + }, + { + "begin": 5478, + "end": 5484, + "name": "DUP3", + "source": 16 + }, + { + "begin": 5467, + "end": 5476, + "name": "DUP6", + "source": 16 + }, + { + "begin": 5463, + "end": 5485, + "name": "ADD", + "source": 16 + }, + { + "begin": 5442, + "end": 5495, + "name": "PUSH [tag]", + "source": 16, + "value": "705" + }, + { + "begin": 5442, + "end": 5495, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5442, + "end": 5495, + "name": "tag", + "source": 16, + "value": "840" + }, + { + "begin": 5442, + "end": 5495, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5432, + "end": 5495, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 5432, + "end": 5495, + "name": "POP", + "source": 16 + }, + { + "begin": 5388, + "end": 5505, + "name": "POP", + "source": 16 + }, + { + "begin": 5183, + "end": 5512, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 5183, + "end": 5512, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 5183, + "end": 5512, + "name": "POP", + "source": 16 + }, + { + "begin": 5183, + "end": 5512, + "name": "POP", + "source": 16 + }, + { + "begin": 5183, + "end": 5512, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5518, + "end": 5636, + "name": "tag", + "source": 16, + "value": "706" + }, + { + "begin": 5518, + "end": 5636, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5605, + "end": 5629, + "name": "PUSH [tag]", + "source": 16, + "value": "842" + }, + { + "begin": 5623, + "end": 5628, + "name": "DUP2", + "source": 16 + }, + { + "begin": 5605, + "end": 5629, + "name": "PUSH [tag]", + "source": 16, + "value": "703" + }, + { + "begin": 5605, + "end": 5629, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5605, + "end": 5629, + "name": "tag", + "source": 16, + "value": "842" + }, + { + "begin": 5605, + "end": 5629, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5600, + "end": 5603, + "name": "DUP3", + "source": 16 + }, + { + "begin": 5593, + "end": 5630, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 5518, + "end": 5636, + "name": "POP", + "source": 16 + }, + { + "begin": 5518, + "end": 5636, + "name": "POP", + "source": 16 + }, + { + "begin": 5518, + "end": 5636, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5642, + "end": 5864, + "name": "tag", + "source": 16, + "value": "107" + }, + { + "begin": 5642, + "end": 5864, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5735, + "end": 5739, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5773, + "end": 5775, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 5762, + "end": 5771, + "name": "DUP3", + "source": 16 + }, + { + "begin": 5758, + "end": 5776, + "name": "ADD", + "source": 16 + }, + { + "begin": 5750, + "end": 5776, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 5750, + "end": 5776, + "name": "POP", + "source": 16 + }, + { + "begin": 5786, + "end": 5857, + "name": "PUSH [tag]", + "source": 16, + "value": "844" + }, + { + "begin": 5854, + "end": 5855, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5843, + "end": 5852, + "name": "DUP4", + "source": 16 + }, + { + "begin": 5839, + "end": 5856, + "name": "ADD", + "source": 16 + }, + { + "begin": 5830, + "end": 5836, + "name": "DUP5", + "source": 16 + }, + { + "begin": 5786, + "end": 5857, + "name": "PUSH [tag]", + "source": 16, + "value": "706" + }, + { + "begin": 5786, + "end": 5857, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5786, + "end": 5857, + "name": "tag", + "source": 16, + "value": "844" + }, + { + "begin": 5786, + "end": 5857, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5642, + "end": 5864, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 5642, + "end": 5864, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 5642, + "end": 5864, + "name": "POP", + "source": 16 + }, + { + "begin": 5642, + "end": 5864, + "name": "POP", + "source": 16 + }, + { + "begin": 5642, + "end": 5864, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5870, + "end": 5947, + "name": "tag", + "source": 16, + "value": "707" + }, + { + "begin": 5870, + "end": 5947, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5907, + "end": 5914, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5936, + "end": 5941, + "name": "DUP2", + "source": 16 + }, + { + "begin": 5925, + "end": 5941, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 5925, + "end": 5941, + "name": "POP", + "source": 16 + }, + { + "begin": 5870, + "end": 5947, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 5870, + "end": 5947, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 5870, + "end": 5947, + "name": "POP", + "source": 16 + }, + { + "begin": 5870, + "end": 5947, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5953, + "end": 6071, + "name": "tag", + "source": 16, + "value": "708" + }, + { + "begin": 5953, + "end": 6071, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6040, + "end": 6064, + "name": "PUSH [tag]", + "source": 16, + "value": "847" + }, + { + "begin": 6058, + "end": 6063, + "name": "DUP2", + "source": 16 + }, + { + "begin": 6040, + "end": 6064, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 6040, + "end": 6064, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6040, + "end": 6064, + "name": "tag", + "source": 16, + "value": "847" + }, + { + "begin": 6040, + "end": 6064, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6035, + "end": 6038, + "name": "DUP3", + "source": 16 + }, + { + "begin": 6028, + "end": 6065, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 5953, + "end": 6071, + "name": "POP", + "source": 16 + }, + { + "begin": 5953, + "end": 6071, + "name": "POP", + "source": 16 + }, + { + "begin": 5953, + "end": 6071, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6077, + "end": 6299, + "name": "tag", + "source": 16, + "value": "117" + }, + { + "begin": 6077, + "end": 6299, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6170, + "end": 6174, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 6208, + "end": 6210, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 6197, + "end": 6206, + "name": "DUP3", + "source": 16 + }, + { + "begin": 6193, + "end": 6211, + "name": "ADD", + "source": 16 + }, + { + "begin": 6185, + "end": 6211, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 6185, + "end": 6211, + "name": "POP", + "source": 16 + }, + { + "begin": 6221, + "end": 6292, + "name": "PUSH [tag]", + "source": 16, + "value": "849" + }, + { + "begin": 6289, + "end": 6290, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 6278, + "end": 6287, + "name": "DUP4", + "source": 16 + }, + { + "begin": 6274, + "end": 6291, + "name": "ADD", + "source": 16 + }, + { + "begin": 6265, + "end": 6271, + "name": "DUP5", + "source": 16 + }, + { + "begin": 6221, + "end": 6292, + "name": "PUSH [tag]", + "source": 16, + "value": "708" + }, + { + "begin": 6221, + "end": 6292, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6221, + "end": 6292, + "name": "tag", + "source": 16, + "value": "849" + }, + { + "begin": 6221, + "end": 6292, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6077, + "end": 6299, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 6077, + "end": 6299, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 6077, + "end": 6299, + "name": "POP", + "source": 16 + }, + { + "begin": 6077, + "end": 6299, + "name": "POP", + "source": 16 + }, + { + "begin": 6077, + "end": 6299, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6305, + "end": 6779, + "name": "tag", + "source": 16, + "value": "129" + }, + { + "begin": 6305, + "end": 6779, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6373, + "end": 6379, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 6381, + "end": 6387, + "name": "DUP1", + "source": 16 + }, + { + "begin": 6430, + "end": 6432, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 6418, + "end": 6427, + "name": "DUP4", + "source": 16 + }, + { + "begin": 6409, + "end": 6416, + "name": "DUP6", + "source": 16 + }, + { + "begin": 6405, + "end": 6428, + "name": "SUB", + "source": 16 + }, + { + "begin": 6401, + "end": 6433, + "name": "SLT", + "source": 16 + }, + { + "begin": 6398, + "end": 6517, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 6398, + "end": 6517, + "name": "PUSH [tag]", + "source": 16, + "value": "851" + }, + { + "begin": 6398, + "end": 6517, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 6436, + "end": 6515, + "name": "PUSH [tag]", + "source": 16, + "value": "852" + }, + { + "begin": 6436, + "end": 6515, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 6436, + "end": 6515, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6436, + "end": 6515, + "name": "tag", + "source": 16, + "value": "852" + }, + { + "begin": 6436, + "end": 6515, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6398, + "end": 6517, + "name": "tag", + "source": 16, + "value": "851" + }, + { + "begin": 6398, + "end": 6517, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6556, + "end": 6557, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 6581, + "end": 6634, + "name": "PUSH [tag]", + "source": 16, + "value": "853" + }, + { + "begin": 6626, + "end": 6633, + "name": "DUP6", + "source": 16 + }, + { + "begin": 6617, + "end": 6623, + "name": "DUP3", + "source": 16 + }, + { + "begin": 6606, + "end": 6615, + "name": "DUP7", + "source": 16 + }, + { + "begin": 6602, + "end": 6624, + "name": "ADD", + "source": 16 + }, + { + "begin": 6581, + "end": 6634, + "name": "PUSH [tag]", + "source": 16, + "value": "705" + }, + { + "begin": 6581, + "end": 6634, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6581, + "end": 6634, + "name": "tag", + "source": 16, + "value": "853" + }, + { + "begin": 6581, + "end": 6634, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6571, + "end": 6634, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 6571, + "end": 6634, + "name": "POP", + "source": 16 + }, + { + "begin": 6527, + "end": 6644, + "name": "POP", + "source": 16 + }, + { + "begin": 6683, + "end": 6685, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 6709, + "end": 6762, + "name": "PUSH [tag]", + "source": 16, + "value": "854" + }, + { + "begin": 6754, + "end": 6761, + "name": "DUP6", + "source": 16 + }, + { + "begin": 6745, + "end": 6751, + "name": "DUP3", + "source": 16 + }, + { + "begin": 6734, + "end": 6743, + "name": "DUP7", + "source": 16 + }, + { + "begin": 6730, + "end": 6752, + "name": "ADD", + "source": 16 + }, + { + "begin": 6709, + "end": 6762, + "name": "PUSH [tag]", + "source": 16, + "value": "699" + }, + { + "begin": 6709, + "end": 6762, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6709, + "end": 6762, + "name": "tag", + "source": 16, + "value": "854" + }, + { + "begin": 6709, + "end": 6762, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6699, + "end": 6762, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 6699, + "end": 6762, + "name": "POP", + "source": 16 + }, + { + "begin": 6654, + "end": 6772, + "name": "POP", + "source": 16 + }, + { + "begin": 6305, + "end": 6779, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 6305, + "end": 6779, + "name": "POP", + "source": 16 + }, + { + "begin": 6305, + "end": 6779, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 6305, + "end": 6779, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 6305, + "end": 6779, + "name": "POP", + "source": 16 + }, + { + "begin": 6305, + "end": 6779, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6785, + "end": 6907, + "name": "tag", + "source": 16, + "value": "709" + }, + { + "begin": 6785, + "end": 6907, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6858, + "end": 6882, + "name": "PUSH [tag]", + "source": 16, + "value": "856" + }, + { + "begin": 6876, + "end": 6881, + "name": "DUP2", + "source": 16 + }, + { + "begin": 6858, + "end": 6882, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 6858, + "end": 6882, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6858, + "end": 6882, + "name": "tag", + "source": 16, + "value": "856" + }, + { + "begin": 6858, + "end": 6882, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6851, + "end": 6856, + "name": "DUP2", + "source": 16 + }, + { + "begin": 6848, + "end": 6883, + "name": "EQ", + "source": 16 + }, + { + "begin": 6838, + "end": 6901, + "name": "PUSH [tag]", + "source": 16, + "value": "857" + }, + { + "begin": 6838, + "end": 6901, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 6897, + "end": 6898, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 6894, + "end": 6895, + "name": "DUP1", + "source": 16 + }, + { + "begin": 6887, + "end": 6899, + "name": "REVERT", + "source": 16 + }, + { + "begin": 6838, + "end": 6901, + "name": "tag", + "source": 16, + "value": "857" + }, + { + "begin": 6838, + "end": 6901, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6785, + "end": 6907, + "name": "POP", + "source": 16 + }, + { + "begin": 6785, + "end": 6907, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6913, + "end": 7052, + "name": "tag", + "source": 16, + "value": "710" + }, + { + "begin": 6913, + "end": 7052, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6959, + "end": 6964, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 6997, + "end": 7003, + "name": "DUP2", + "source": 16 + }, + { + "begin": 6984, + "end": 7004, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 6975, + "end": 7004, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 6975, + "end": 7004, + "name": "POP", + "source": 16 + }, + { + "begin": 7013, + "end": 7046, + "name": "PUSH [tag]", + "source": 16, + "value": "859" + }, + { + "begin": 7040, + "end": 7045, + "name": "DUP2", + "source": 16 + }, + { + "begin": 7013, + "end": 7046, + "name": "PUSH [tag]", + "source": 16, + "value": "709" + }, + { + "begin": 7013, + "end": 7046, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7013, + "end": 7046, + "name": "tag", + "source": 16, + "value": "859" + }, + { + "begin": 7013, + "end": 7046, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6913, + "end": 7052, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 6913, + "end": 7052, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 6913, + "end": 7052, + "name": "POP", + "source": 16 + }, + { + "begin": 6913, + "end": 7052, + "name": "POP", + "source": 16 + }, + { + "begin": 6913, + "end": 7052, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7058, + "end": 7387, + "name": "tag", + "source": 16, + "value": "134" + }, + { + "begin": 7058, + "end": 7387, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7117, + "end": 7123, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 7166, + "end": 7168, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 7154, + "end": 7163, + "name": "DUP3", + "source": 16 + }, + { + "begin": 7145, + "end": 7152, + "name": "DUP5", + "source": 16 + }, + { + "begin": 7141, + "end": 7164, + "name": "SUB", + "source": 16 + }, + { + "begin": 7137, + "end": 7169, + "name": "SLT", + "source": 16 + }, + { + "begin": 7134, + "end": 7253, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 7134, + "end": 7253, + "name": "PUSH [tag]", + "source": 16, + "value": "861" + }, + { + "begin": 7134, + "end": 7253, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 7172, + "end": 7251, + "name": "PUSH [tag]", + "source": 16, + "value": "862" + }, + { + "begin": 7172, + "end": 7251, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 7172, + "end": 7251, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7172, + "end": 7251, + "name": "tag", + "source": 16, + "value": "862" + }, + { + "begin": 7172, + "end": 7251, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7134, + "end": 7253, + "name": "tag", + "source": 16, + "value": "861" + }, + { + "begin": 7134, + "end": 7253, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7292, + "end": 7293, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 7317, + "end": 7370, + "name": "PUSH [tag]", + "source": 16, + "value": "863" + }, + { + "begin": 7362, + "end": 7369, + "name": "DUP5", + "source": 16 + }, + { + "begin": 7353, + "end": 7359, + "name": "DUP3", + "source": 16 + }, + { + "begin": 7342, + "end": 7351, + "name": "DUP6", + "source": 16 + }, + { + "begin": 7338, + "end": 7360, + "name": "ADD", + "source": 16 + }, + { + "begin": 7317, + "end": 7370, + "name": "PUSH [tag]", + "source": 16, + "value": "710" + }, + { + "begin": 7317, + "end": 7370, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7317, + "end": 7370, + "name": "tag", + "source": 16, + "value": "863" + }, + { + "begin": 7317, + "end": 7370, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7307, + "end": 7370, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 7307, + "end": 7370, + "name": "POP", + "source": 16 + }, + { + "begin": 7263, + "end": 7380, + "name": "POP", + "source": 16 + }, + { + "begin": 7058, + "end": 7387, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 7058, + "end": 7387, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 7058, + "end": 7387, + "name": "POP", + "source": 16 + }, + { + "begin": 7058, + "end": 7387, + "name": "POP", + "source": 16 + }, + { + "begin": 7058, + "end": 7387, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7393, + "end": 8327, + "name": "tag", + "source": 16, + "value": "143" + }, + { + "begin": 7393, + "end": 8327, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7515, + "end": 7521, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 7523, + "end": 7529, + "name": "DUP1", + "source": 16 + }, + { + "begin": 7531, + "end": 7537, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 7539, + "end": 7545, + "name": "DUP1", + "source": 16 + }, + { + "begin": 7588, + "end": 7590, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 7576, + "end": 7585, + "name": "DUP6", + "source": 16 + }, + { + "begin": 7567, + "end": 7574, + "name": "DUP8", + "source": 16 + }, + { + "begin": 7563, + "end": 7586, + "name": "SUB", + "source": 16 + }, + { + "begin": 7559, + "end": 7591, + "name": "SLT", + "source": 16 + }, + { + "begin": 7556, + "end": 7675, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 7556, + "end": 7675, + "name": "PUSH [tag]", + "source": 16, + "value": "865" + }, + { + "begin": 7556, + "end": 7675, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 7594, + "end": 7673, + "name": "PUSH [tag]", + "source": 16, + "value": "866" + }, + { + "begin": 7594, + "end": 7673, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 7594, + "end": 7673, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7594, + "end": 7673, + "name": "tag", + "source": 16, + "value": "866" + }, + { + "begin": 7594, + "end": 7673, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7556, + "end": 7675, + "name": "tag", + "source": 16, + "value": "865" + }, + { + "begin": 7556, + "end": 7675, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7742, + "end": 7743, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 7731, + "end": 7740, + "name": "DUP6", + "source": 16 + }, + { + "begin": 7727, + "end": 7744, + "name": "ADD", + "source": 16 + }, + { + "begin": 7714, + "end": 7745, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 7772, + "end": 7790, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 7764, + "end": 7770, + "name": "DUP2", + "source": 16 + }, + { + "begin": 7761, + "end": 7791, + "name": "GT", + "source": 16 + }, + { + "begin": 7758, + "end": 7875, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 7758, + "end": 7875, + "name": "PUSH [tag]", + "source": 16, + "value": "867" + }, + { + "begin": 7758, + "end": 7875, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 7794, + "end": 7873, + "name": "PUSH [tag]", + "source": 16, + "value": "868" + }, + { + "begin": 7794, + "end": 7873, + "name": "PUSH [tag]", + "source": 16, + "value": "686" + }, + { + "begin": 7794, + "end": 7873, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7794, + "end": 7873, + "name": "tag", + "source": 16, + "value": "868" + }, + { + "begin": 7794, + "end": 7873, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7758, + "end": 7875, + "name": "tag", + "source": 16, + "value": "867" + }, + { + "begin": 7758, + "end": 7875, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7907, + "end": 7987, + "name": "PUSH [tag]", + "source": 16, + "value": "869" + }, + { + "begin": 7979, + "end": 7986, + "name": "DUP8", + "source": 16 + }, + { + "begin": 7970, + "end": 7976, + "name": "DUP3", + "source": 16 + }, + { + "begin": 7959, + "end": 7968, + "name": "DUP9", + "source": 16 + }, + { + "begin": 7955, + "end": 7977, + "name": "ADD", + "source": 16 + }, + { + "begin": 7907, + "end": 7987, + "name": "PUSH [tag]", + "source": 16, + "value": "695" + }, + { + "begin": 7907, + "end": 7987, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7907, + "end": 7987, + "name": "tag", + "source": 16, + "value": "869" + }, + { + "begin": 7907, + "end": 7987, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7889, + "end": 7987, + "name": "SWAP5", + "source": 16 + }, + { + "begin": 7889, + "end": 7987, + "name": "POP", + "source": 16 + }, + { + "begin": 7889, + "end": 7987, + "name": "SWAP5", + "source": 16 + }, + { + "begin": 7889, + "end": 7987, + "name": "POP", + "source": 16 + }, + { + "begin": 7685, + "end": 7997, + "name": "POP", + "source": 16 + }, + { + "begin": 8064, + "end": 8066, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 8053, + "end": 8062, + "name": "DUP6", + "source": 16 + }, + { + "begin": 8049, + "end": 8067, + "name": "ADD", + "source": 16 + }, + { + "begin": 8036, + "end": 8068, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 8095, + "end": 8113, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 8087, + "end": 8093, + "name": "DUP2", + "source": 16 + }, + { + "begin": 8084, + "end": 8114, + "name": "GT", + "source": 16 + }, + { + "begin": 8081, + "end": 8198, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 8081, + "end": 8198, + "name": "PUSH [tag]", + "source": 16, + "value": "870" + }, + { + "begin": 8081, + "end": 8198, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 8117, + "end": 8196, + "name": "PUSH [tag]", + "source": 16, + "value": "871" + }, + { + "begin": 8117, + "end": 8196, + "name": "PUSH [tag]", + "source": 16, + "value": "686" + }, + { + "begin": 8117, + "end": 8196, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8117, + "end": 8196, + "name": "tag", + "source": 16, + "value": "871" + }, + { + "begin": 8117, + "end": 8196, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8081, + "end": 8198, + "name": "tag", + "source": 16, + "value": "870" + }, + { + "begin": 8081, + "end": 8198, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8230, + "end": 8310, + "name": "PUSH [tag]", + "source": 16, + "value": "872" + }, + { + "begin": 8302, + "end": 8309, + "name": "DUP8", + "source": 16 + }, + { + "begin": 8293, + "end": 8299, + "name": "DUP3", + "source": 16 + }, + { + "begin": 8282, + "end": 8291, + "name": "DUP9", + "source": 16 + }, + { + "begin": 8278, + "end": 8300, + "name": "ADD", + "source": 16 + }, + { + "begin": 8230, + "end": 8310, + "name": "PUSH [tag]", + "source": 16, + "value": "695" + }, + { + "begin": 8230, + "end": 8310, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8230, + "end": 8310, + "name": "tag", + "source": 16, + "value": "872" + }, + { + "begin": 8230, + "end": 8310, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8212, + "end": 8310, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 8212, + "end": 8310, + "name": "POP", + "source": 16 + }, + { + "begin": 8212, + "end": 8310, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 8212, + "end": 8310, + "name": "POP", + "source": 16 + }, + { + "begin": 8007, + "end": 8320, + "name": "POP", + "source": 16 + }, + { + "begin": 7393, + "end": 8327, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 7393, + "end": 8327, + "name": "SWAP6", + "source": 16 + }, + { + "begin": 7393, + "end": 8327, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 7393, + "end": 8327, + "name": "SWAP5", + "source": 16 + }, + { + "begin": 7393, + "end": 8327, + "name": "POP", + "source": 16 + }, + { + "begin": 7393, + "end": 8327, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 7393, + "end": 8327, + "name": "POP", + "source": 16 + }, + { + "begin": 7393, + "end": 8327, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8333, + "end": 9037, + "name": "tag", + "source": 16, + "value": "152" + }, + { + "begin": 8333, + "end": 9037, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8428, + "end": 8434, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 8436, + "end": 8442, + "name": "DUP1", + "source": 16 + }, + { + "begin": 8444, + "end": 8450, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 8493, + "end": 8495, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 8481, + "end": 8490, + "name": "DUP5", + "source": 16 + }, + { + "begin": 8472, + "end": 8479, + "name": "DUP7", + "source": 16 + }, + { + "begin": 8468, + "end": 8491, + "name": "SUB", + "source": 16 + }, + { + "begin": 8464, + "end": 8496, + "name": "SLT", + "source": 16 + }, + { + "begin": 8461, + "end": 8580, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 8461, + "end": 8580, + "name": "PUSH [tag]", + "source": 16, + "value": "874" + }, + { + "begin": 8461, + "end": 8580, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 8499, + "end": 8578, + "name": "PUSH [tag]", + "source": 16, + "value": "875" + }, + { + "begin": 8499, + "end": 8578, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 8499, + "end": 8578, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8499, + "end": 8578, + "name": "tag", + "source": 16, + "value": "875" + }, + { + "begin": 8499, + "end": 8578, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8461, + "end": 8580, + "name": "tag", + "source": 16, + "value": "874" + }, + { + "begin": 8461, + "end": 8580, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8647, + "end": 8648, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 8636, + "end": 8645, + "name": "DUP5", + "source": 16 + }, + { + "begin": 8632, + "end": 8649, + "name": "ADD", + "source": 16 + }, + { + "begin": 8619, + "end": 8650, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 8677, + "end": 8695, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 8669, + "end": 8675, + "name": "DUP2", + "source": 16 + }, + { + "begin": 8666, + "end": 8696, + "name": "GT", + "source": 16 + }, + { + "begin": 8663, + "end": 8780, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 8663, + "end": 8780, + "name": "PUSH [tag]", + "source": 16, + "value": "876" + }, + { + "begin": 8663, + "end": 8780, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 8699, + "end": 8778, + "name": "PUSH [tag]", + "source": 16, + "value": "877" + }, + { + "begin": 8699, + "end": 8778, + "name": "PUSH [tag]", + "source": 16, + "value": "686" + }, + { + "begin": 8699, + "end": 8778, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8699, + "end": 8778, + "name": "tag", + "source": 16, + "value": "877" + }, + { + "begin": 8699, + "end": 8778, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8663, + "end": 8780, + "name": "tag", + "source": 16, + "value": "876" + }, + { + "begin": 8663, + "end": 8780, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8812, + "end": 8892, + "name": "PUSH [tag]", + "source": 16, + "value": "878" + }, + { + "begin": 8884, + "end": 8891, + "name": "DUP7", + "source": 16 + }, + { + "begin": 8875, + "end": 8881, + "name": "DUP3", + "source": 16 + }, + { + "begin": 8864, + "end": 8873, + "name": "DUP8", + "source": 16 + }, + { + "begin": 8860, + "end": 8882, + "name": "ADD", + "source": 16 + }, + { + "begin": 8812, + "end": 8892, + "name": "PUSH [tag]", + "source": 16, + "value": "695" + }, + { + "begin": 8812, + "end": 8892, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8812, + "end": 8892, + "name": "tag", + "source": 16, + "value": "878" + }, + { + "begin": 8812, + "end": 8892, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8794, + "end": 8892, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 8794, + "end": 8892, + "name": "POP", + "source": 16 + }, + { + "begin": 8794, + "end": 8892, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 8794, + "end": 8892, + "name": "POP", + "source": 16 + }, + { + "begin": 8590, + "end": 8902, + "name": "POP", + "source": 16 + }, + { + "begin": 8941, + "end": 8943, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 8967, + "end": 9020, + "name": "PUSH [tag]", + "source": 16, + "value": "879" + }, + { + "begin": 9012, + "end": 9019, + "name": "DUP7", + "source": 16 + }, + { + "begin": 9003, + "end": 9009, + "name": "DUP3", + "source": 16 + }, + { + "begin": 8992, + "end": 9001, + "name": "DUP8", + "source": 16 + }, + { + "begin": 8988, + "end": 9010, + "name": "ADD", + "source": 16 + }, + { + "begin": 8967, + "end": 9020, + "name": "PUSH [tag]", + "source": 16, + "value": "699" + }, + { + "begin": 8967, + "end": 9020, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8967, + "end": 9020, + "name": "tag", + "source": 16, + "value": "879" + }, + { + "begin": 8967, + "end": 9020, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8957, + "end": 9020, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 8957, + "end": 9020, + "name": "POP", + "source": 16 + }, + { + "begin": 8912, + "end": 9030, + "name": "POP", + "source": 16 + }, + { + "begin": 8333, + "end": 9037, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 8333, + "end": 9037, + "name": "POP", + "source": 16 + }, + { + "begin": 8333, + "end": 9037, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 8333, + "end": 9037, + "name": "POP", + "source": 16 + }, + { + "begin": 8333, + "end": 9037, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 8333, + "end": 9037, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9043, + "end": 9517, + "name": "tag", + "source": 16, + "value": "203" + }, + { + "begin": 9043, + "end": 9517, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9111, + "end": 9117, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 9119, + "end": 9125, + "name": "DUP1", + "source": 16 + }, + { + "begin": 9168, + "end": 9170, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 9156, + "end": 9165, + "name": "DUP4", + "source": 16 + }, + { + "begin": 9147, + "end": 9154, + "name": "DUP6", + "source": 16 + }, + { + "begin": 9143, + "end": 9166, + "name": "SUB", + "source": 16 + }, + { + "begin": 9139, + "end": 9171, + "name": "SLT", + "source": 16 + }, + { + "begin": 9136, + "end": 9255, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 9136, + "end": 9255, + "name": "PUSH [tag]", + "source": 16, + "value": "881" + }, + { + "begin": 9136, + "end": 9255, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 9174, + "end": 9253, + "name": "PUSH [tag]", + "source": 16, + "value": "882" + }, + { + "begin": 9174, + "end": 9253, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 9174, + "end": 9253, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9174, + "end": 9253, + "name": "tag", + "source": 16, + "value": "882" + }, + { + "begin": 9174, + "end": 9253, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9136, + "end": 9255, + "name": "tag", + "source": 16, + "value": "881" + }, + { + "begin": 9136, + "end": 9255, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9294, + "end": 9295, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 9319, + "end": 9372, + "name": "PUSH [tag]", + "source": 16, + "value": "883" + }, + { + "begin": 9364, + "end": 9371, + "name": "DUP6", + "source": 16 + }, + { + "begin": 9355, + "end": 9361, + "name": "DUP3", + "source": 16 + }, + { + "begin": 9344, + "end": 9353, + "name": "DUP7", + "source": 16 + }, + { + "begin": 9340, + "end": 9362, + "name": "ADD", + "source": 16 + }, + { + "begin": 9319, + "end": 9372, + "name": "PUSH [tag]", + "source": 16, + "value": "699" + }, + { + "begin": 9319, + "end": 9372, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9319, + "end": 9372, + "name": "tag", + "source": 16, + "value": "883" + }, + { + "begin": 9319, + "end": 9372, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9309, + "end": 9372, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 9309, + "end": 9372, + "name": "POP", + "source": 16 + }, + { + "begin": 9265, + "end": 9382, + "name": "POP", + "source": 16 + }, + { + "begin": 9421, + "end": 9423, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 9447, + "end": 9500, + "name": "PUSH [tag]", + "source": 16, + "value": "884" + }, + { + "begin": 9492, + "end": 9499, + "name": "DUP6", + "source": 16 + }, + { + "begin": 9483, + "end": 9489, + "name": "DUP3", + "source": 16 + }, + { + "begin": 9472, + "end": 9481, + "name": "DUP7", + "source": 16 + }, + { + "begin": 9468, + "end": 9490, + "name": "ADD", + "source": 16 + }, + { + "begin": 9447, + "end": 9500, + "name": "PUSH [tag]", + "source": 16, + "value": "699" + }, + { + "begin": 9447, + "end": 9500, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9447, + "end": 9500, + "name": "tag", + "source": 16, + "value": "884" + }, + { + "begin": 9447, + "end": 9500, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9437, + "end": 9500, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 9437, + "end": 9500, + "name": "POP", + "source": 16 + }, + { + "begin": 9392, + "end": 9510, + "name": "POP", + "source": 16 + }, + { + "begin": 9043, + "end": 9517, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 9043, + "end": 9517, + "name": "POP", + "source": 16 + }, + { + "begin": 9043, + "end": 9517, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 9043, + "end": 9517, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 9043, + "end": 9517, + "name": "POP", + "source": 16 + }, + { + "begin": 9043, + "end": 9517, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "tag", + "source": 16, + "value": "224" + }, + { + "begin": 9523, + "end": 11354, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9726, + "end": 9732, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 9734, + "end": 9740, + "name": "DUP1", + "source": 16 + }, + { + "begin": 9742, + "end": 9748, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 9750, + "end": 9756, + "name": "DUP1", + "source": 16 + }, + { + "begin": 9758, + "end": 9764, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 9766, + "end": 9772, + "name": "DUP1", + "source": 16 + }, + { + "begin": 9774, + "end": 9780, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 9782, + "end": 9788, + "name": "DUP1", + "source": 16 + }, + { + "begin": 9790, + "end": 9796, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 9839, + "end": 9842, + "name": "PUSH", + "source": 16, + "value": "A0" + }, + { + "begin": 9827, + "end": 9836, + "name": "DUP11", + "source": 16 + }, + { + "begin": 9818, + "end": 9825, + "name": "DUP13", + "source": 16 + }, + { + "begin": 9814, + "end": 9837, + "name": "SUB", + "source": 16 + }, + { + "begin": 9810, + "end": 9843, + "name": "SLT", + "source": 16 + }, + { + "begin": 9807, + "end": 9927, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 9807, + "end": 9927, + "name": "PUSH [tag]", + "source": 16, + "value": "886" + }, + { + "begin": 9807, + "end": 9927, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 9846, + "end": 9925, + "name": "PUSH [tag]", + "source": 16, + "value": "887" + }, + { + "begin": 9846, + "end": 9925, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 9846, + "end": 9925, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9846, + "end": 9925, + "name": "tag", + "source": 16, + "value": "887" + }, + { + "begin": 9846, + "end": 9925, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9807, + "end": 9927, + "name": "tag", + "source": 16, + "value": "886" + }, + { + "begin": 9807, + "end": 9927, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9994, + "end": 9995, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 9983, + "end": 9992, + "name": "DUP11", + "source": 16 + }, + { + "begin": 9979, + "end": 9996, + "name": "ADD", + "source": 16 + }, + { + "begin": 9966, + "end": 9997, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 10024, + "end": 10042, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 10016, + "end": 10022, + "name": "DUP2", + "source": 16 + }, + { + "begin": 10013, + "end": 10043, + "name": "GT", + "source": 16 + }, + { + "begin": 10010, + "end": 10127, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 10010, + "end": 10127, + "name": "PUSH [tag]", + "source": 16, + "value": "888" + }, + { + "begin": 10010, + "end": 10127, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 10046, + "end": 10125, + "name": "PUSH [tag]", + "source": 16, + "value": "889" + }, + { + "begin": 10046, + "end": 10125, + "name": "PUSH [tag]", + "source": 16, + "value": "686" + }, + { + "begin": 10046, + "end": 10125, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10046, + "end": 10125, + "name": "tag", + "source": 16, + "value": "889" + }, + { + "begin": 10046, + "end": 10125, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10010, + "end": 10127, + "name": "tag", + "source": 16, + "value": "888" + }, + { + "begin": 10010, + "end": 10127, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10159, + "end": 10239, + "name": "PUSH [tag]", + "source": 16, + "value": "890" + }, + { + "begin": 10231, + "end": 10238, + "name": "DUP13", + "source": 16 + }, + { + "begin": 10222, + "end": 10228, + "name": "DUP3", + "source": 16 + }, + { + "begin": 10211, + "end": 10220, + "name": "DUP14", + "source": 16 + }, + { + "begin": 10207, + "end": 10229, + "name": "ADD", + "source": 16 + }, + { + "begin": 10159, + "end": 10239, + "name": "PUSH [tag]", + "source": 16, + "value": "695" + }, + { + "begin": 10159, + "end": 10239, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10159, + "end": 10239, + "name": "tag", + "source": 16, + "value": "890" + }, + { + "begin": 10159, + "end": 10239, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10141, + "end": 10239, + "name": "SWAP10", + "source": 16 + }, + { + "begin": 10141, + "end": 10239, + "name": "POP", + "source": 16 + }, + { + "begin": 10141, + "end": 10239, + "name": "SWAP10", + "source": 16 + }, + { + "begin": 10141, + "end": 10239, + "name": "POP", + "source": 16 + }, + { + "begin": 9937, + "end": 10249, + "name": "POP", + "source": 16 + }, + { + "begin": 10316, + "end": 10318, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 10305, + "end": 10314, + "name": "DUP11", + "source": 16 + }, + { + "begin": 10301, + "end": 10319, + "name": "ADD", + "source": 16 + }, + { + "begin": 10288, + "end": 10320, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 10347, + "end": 10365, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 10339, + "end": 10345, + "name": "DUP2", + "source": 16 + }, + { + "begin": 10336, + "end": 10366, + "name": "GT", + "source": 16 + }, + { + "begin": 10333, + "end": 10450, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 10333, + "end": 10450, + "name": "PUSH [tag]", + "source": 16, + "value": "891" + }, + { + "begin": 10333, + "end": 10450, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 10369, + "end": 10448, + "name": "PUSH [tag]", + "source": 16, + "value": "892" + }, + { + "begin": 10369, + "end": 10448, + "name": "PUSH [tag]", + "source": 16, + "value": "686" + }, + { + "begin": 10369, + "end": 10448, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10369, + "end": 10448, + "name": "tag", + "source": 16, + "value": "892" + }, + { + "begin": 10369, + "end": 10448, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10333, + "end": 10450, + "name": "tag", + "source": 16, + "value": "891" + }, + { + "begin": 10333, + "end": 10450, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10482, + "end": 10562, + "name": "PUSH [tag]", + "source": 16, + "value": "893" + }, + { + "begin": 10554, + "end": 10561, + "name": "DUP13", + "source": 16 + }, + { + "begin": 10545, + "end": 10551, + "name": "DUP3", + "source": 16 + }, + { + "begin": 10534, + "end": 10543, + "name": "DUP14", + "source": 16 + }, + { + "begin": 10530, + "end": 10552, + "name": "ADD", + "source": 16 + }, + { + "begin": 10482, + "end": 10562, + "name": "PUSH [tag]", + "source": 16, + "value": "695" + }, + { + "begin": 10482, + "end": 10562, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10482, + "end": 10562, + "name": "tag", + "source": 16, + "value": "893" + }, + { + "begin": 10482, + "end": 10562, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10464, + "end": 10562, + "name": "SWAP8", + "source": 16 + }, + { + "begin": 10464, + "end": 10562, + "name": "POP", + "source": 16 + }, + { + "begin": 10464, + "end": 10562, + "name": "SWAP8", + "source": 16 + }, + { + "begin": 10464, + "end": 10562, + "name": "POP", + "source": 16 + }, + { + "begin": 10259, + "end": 10572, + "name": "POP", + "source": 16 + }, + { + "begin": 10639, + "end": 10641, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 10628, + "end": 10637, + "name": "DUP11", + "source": 16 + }, + { + "begin": 10624, + "end": 10642, + "name": "ADD", + "source": 16 + }, + { + "begin": 10611, + "end": 10643, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 10670, + "end": 10688, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 10662, + "end": 10668, + "name": "DUP2", + "source": 16 + }, + { + "begin": 10659, + "end": 10689, + "name": "GT", + "source": 16 + }, + { + "begin": 10656, + "end": 10773, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 10656, + "end": 10773, + "name": "PUSH [tag]", + "source": 16, + "value": "894" + }, + { + "begin": 10656, + "end": 10773, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 10692, + "end": 10771, + "name": "PUSH [tag]", + "source": 16, + "value": "895" + }, + { + "begin": 10692, + "end": 10771, + "name": "PUSH [tag]", + "source": 16, + "value": "686" + }, + { + "begin": 10692, + "end": 10771, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10692, + "end": 10771, + "name": "tag", + "source": 16, + "value": "895" + }, + { + "begin": 10692, + "end": 10771, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10656, + "end": 10773, + "name": "tag", + "source": 16, + "value": "894" + }, + { + "begin": 10656, + "end": 10773, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10805, + "end": 10885, + "name": "PUSH [tag]", + "source": 16, + "value": "896" + }, + { + "begin": 10877, + "end": 10884, + "name": "DUP13", + "source": 16 + }, + { + "begin": 10868, + "end": 10874, + "name": "DUP3", + "source": 16 + }, + { + "begin": 10857, + "end": 10866, + "name": "DUP14", + "source": 16 + }, + { + "begin": 10853, + "end": 10875, + "name": "ADD", + "source": 16 + }, + { + "begin": 10805, + "end": 10885, + "name": "PUSH [tag]", + "source": 16, + "value": "695" + }, + { + "begin": 10805, + "end": 10885, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10805, + "end": 10885, + "name": "tag", + "source": 16, + "value": "896" + }, + { + "begin": 10805, + "end": 10885, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10787, + "end": 10885, + "name": "SWAP6", + "source": 16 + }, + { + "begin": 10787, + "end": 10885, + "name": "POP", + "source": 16 + }, + { + "begin": 10787, + "end": 10885, + "name": "SWAP6", + "source": 16 + }, + { + "begin": 10787, + "end": 10885, + "name": "POP", + "source": 16 + }, + { + "begin": 10582, + "end": 10895, + "name": "POP", + "source": 16 + }, + { + "begin": 10962, + "end": 10964, + "name": "PUSH", + "source": 16, + "value": "60" + }, + { + "begin": 10951, + "end": 10960, + "name": "DUP11", + "source": 16 + }, + { + "begin": 10947, + "end": 10965, + "name": "ADD", + "source": 16 + }, + { + "begin": 10934, + "end": 10966, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 10993, + "end": 11011, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 10985, + "end": 10991, + "name": "DUP2", + "source": 16 + }, + { + "begin": 10982, + "end": 11012, + "name": "GT", + "source": 16 + }, + { + "begin": 10979, + "end": 11096, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 10979, + "end": 11096, + "name": "PUSH [tag]", + "source": 16, + "value": "897" + }, + { + "begin": 10979, + "end": 11096, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 11015, + "end": 11094, + "name": "PUSH [tag]", + "source": 16, + "value": "898" + }, + { + "begin": 11015, + "end": 11094, + "name": "PUSH [tag]", + "source": 16, + "value": "686" + }, + { + "begin": 11015, + "end": 11094, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11015, + "end": 11094, + "name": "tag", + "source": 16, + "value": "898" + }, + { + "begin": 11015, + "end": 11094, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10979, + "end": 11096, + "name": "tag", + "source": 16, + "value": "897" + }, + { + "begin": 10979, + "end": 11096, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11128, + "end": 11208, + "name": "PUSH [tag]", + "source": 16, + "value": "899" + }, + { + "begin": 11200, + "end": 11207, + "name": "DUP13", + "source": 16 + }, + { + "begin": 11191, + "end": 11197, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11180, + "end": 11189, + "name": "DUP14", + "source": 16 + }, + { + "begin": 11176, + "end": 11198, + "name": "ADD", + "source": 16 + }, + { + "begin": 11128, + "end": 11208, + "name": "PUSH [tag]", + "source": 16, + "value": "695" + }, + { + "begin": 11128, + "end": 11208, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11128, + "end": 11208, + "name": "tag", + "source": 16, + "value": "899" + }, + { + "begin": 11128, + "end": 11208, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11110, + "end": 11208, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 11110, + "end": 11208, + "name": "POP", + "source": 16 + }, + { + "begin": 11110, + "end": 11208, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 11110, + "end": 11208, + "name": "POP", + "source": 16 + }, + { + "begin": 10905, + "end": 11218, + "name": "POP", + "source": 16 + }, + { + "begin": 11257, + "end": 11260, + "name": "PUSH", + "source": 16, + "value": "80" + }, + { + "begin": 11284, + "end": 11337, + "name": "PUSH [tag]", + "source": 16, + "value": "900" + }, + { + "begin": 11329, + "end": 11336, + "name": "DUP13", + "source": 16 + }, + { + "begin": 11320, + "end": 11326, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11309, + "end": 11318, + "name": "DUP14", + "source": 16 + }, + { + "begin": 11305, + "end": 11327, + "name": "ADD", + "source": 16 + }, + { + "begin": 11284, + "end": 11337, + "name": "PUSH [tag]", + "source": 16, + "value": "710" + }, + { + "begin": 11284, + "end": 11337, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11284, + "end": 11337, + "name": "tag", + "source": 16, + "value": "900" + }, + { + "begin": 11284, + "end": 11337, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11274, + "end": 11337, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 11274, + "end": 11337, + "name": "POP", + "source": 16 + }, + { + "begin": 11228, + "end": 11347, + "name": "POP", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "SWAP6", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "SWAP9", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "POP", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "SWAP6", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "SWAP9", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "POP", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "SWAP6", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "name": "SWAP9", + "source": 16 + }, + { + "begin": 9523, + "end": 11354, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11360, + "end": 11834, + "name": "tag", + "source": 16, + "value": "229" + }, + { + "begin": 11360, + "end": 11834, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11428, + "end": 11434, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 11436, + "end": 11442, + "name": "DUP1", + "source": 16 + }, + { + "begin": 11485, + "end": 11487, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 11473, + "end": 11482, + "name": "DUP4", + "source": 16 + }, + { + "begin": 11464, + "end": 11471, + "name": "DUP6", + "source": 16 + }, + { + "begin": 11460, + "end": 11483, + "name": "SUB", + "source": 16 + }, + { + "begin": 11456, + "end": 11488, + "name": "SLT", + "source": 16 + }, + { + "begin": 11453, + "end": 11572, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 11453, + "end": 11572, + "name": "PUSH [tag]", + "source": 16, + "value": "902" + }, + { + "begin": 11453, + "end": 11572, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 11491, + "end": 11570, + "name": "PUSH [tag]", + "source": 16, + "value": "903" + }, + { + "begin": 11491, + "end": 11570, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 11491, + "end": 11570, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11491, + "end": 11570, + "name": "tag", + "source": 16, + "value": "903" + }, + { + "begin": 11491, + "end": 11570, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11453, + "end": 11572, + "name": "tag", + "source": 16, + "value": "902" + }, + { + "begin": 11453, + "end": 11572, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11611, + "end": 11612, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 11636, + "end": 11689, + "name": "PUSH [tag]", + "source": 16, + "value": "904" + }, + { + "begin": 11681, + "end": 11688, + "name": "DUP6", + "source": 16 + }, + { + "begin": 11672, + "end": 11678, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11661, + "end": 11670, + "name": "DUP7", + "source": 16 + }, + { + "begin": 11657, + "end": 11679, + "name": "ADD", + "source": 16 + }, + { + "begin": 11636, + "end": 11689, + "name": "PUSH [tag]", + "source": 16, + "value": "699" + }, + { + "begin": 11636, + "end": 11689, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11636, + "end": 11689, + "name": "tag", + "source": 16, + "value": "904" + }, + { + "begin": 11636, + "end": 11689, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11626, + "end": 11689, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 11626, + "end": 11689, + "name": "POP", + "source": 16 + }, + { + "begin": 11582, + "end": 11699, + "name": "POP", + "source": 16 + }, + { + "begin": 11738, + "end": 11740, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 11764, + "end": 11817, + "name": "PUSH [tag]", + "source": 16, + "value": "905" + }, + { + "begin": 11809, + "end": 11816, + "name": "DUP6", + "source": 16 + }, + { + "begin": 11800, + "end": 11806, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11789, + "end": 11798, + "name": "DUP7", + "source": 16 + }, + { + "begin": 11785, + "end": 11807, + "name": "ADD", + "source": 16 + }, + { + "begin": 11764, + "end": 11817, + "name": "PUSH [tag]", + "source": 16, + "value": "710" + }, + { + "begin": 11764, + "end": 11817, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11764, + "end": 11817, + "name": "tag", + "source": 16, + "value": "905" + }, + { + "begin": 11764, + "end": 11817, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11754, + "end": 11817, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 11754, + "end": 11817, + "name": "POP", + "source": 16 + }, + { + "begin": 11709, + "end": 11827, + "name": "POP", + "source": 16 + }, + { + "begin": 11360, + "end": 11834, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 11360, + "end": 11834, + "name": "POP", + "source": 16 + }, + { + "begin": 11360, + "end": 11834, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 11360, + "end": 11834, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 11360, + "end": 11834, + "name": "POP", + "source": 16 + }, + { + "begin": 11360, + "end": 11834, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11840, + "end": 11954, + "name": "tag", + "source": 16, + "value": "711" + }, + { + "begin": 11840, + "end": 11954, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11907, + "end": 11913, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 11941, + "end": 11946, + "name": "DUP2", + "source": 16 + }, + { + "begin": 11935, + "end": 11947, + "name": "MLOAD", + "source": 16 + }, + { + "begin": 11925, + "end": 11947, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 11925, + "end": 11947, + "name": "POP", + "source": 16 + }, + { + "begin": 11840, + "end": 11954, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 11840, + "end": 11954, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 11840, + "end": 11954, + "name": "POP", + "source": 16 + }, + { + "begin": 11840, + "end": 11954, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11960, + "end": 12144, + "name": "tag", + "source": 16, + "value": "712" + }, + { + "begin": 11960, + "end": 12144, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12059, + "end": 12070, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12093, + "end": 12099, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12088, + "end": 12091, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12081, + "end": 12100, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 12133, + "end": 12137, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 12128, + "end": 12131, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12124, + "end": 12138, + "name": "ADD", + "source": 16 + }, + { + "begin": 12109, + "end": 12138, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12109, + "end": 12138, + "name": "POP", + "source": 16 + }, + { + "begin": 11960, + "end": 12144, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 11960, + "end": 12144, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 11960, + "end": 12144, + "name": "POP", + "source": 16 + }, + { + "begin": 11960, + "end": 12144, + "name": "POP", + "source": 16 + }, + { + "begin": 11960, + "end": 12144, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12150, + "end": 12282, + "name": "tag", + "source": 16, + "value": "713" + }, + { + "begin": 12150, + "end": 12282, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12217, + "end": 12221, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12240, + "end": 12243, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12232, + "end": 12243, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12232, + "end": 12243, + "name": "POP", + "source": 16 + }, + { + "begin": 12270, + "end": 12274, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 12265, + "end": 12268, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12261, + "end": 12275, + "name": "ADD", + "source": 16 + }, + { + "begin": 12253, + "end": 12275, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12253, + "end": 12275, + "name": "POP", + "source": 16 + }, + { + "begin": 12150, + "end": 12282, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 12150, + "end": 12282, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12150, + "end": 12282, + "name": "POP", + "source": 16 + }, + { + "begin": 12150, + "end": 12282, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12288, + "end": 12396, + "name": "tag", + "source": 16, + "value": "714" + }, + { + "begin": 12288, + "end": 12396, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12365, + "end": 12389, + "name": "PUSH [tag]", + "source": 16, + "value": "910" + }, + { + "begin": 12383, + "end": 12388, + "name": "DUP2", + "source": 16 + }, + { + "begin": 12365, + "end": 12389, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 12365, + "end": 12389, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12365, + "end": 12389, + "name": "tag", + "source": 16, + "value": "910" + }, + { + "begin": 12365, + "end": 12389, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12360, + "end": 12363, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12353, + "end": 12390, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 12288, + "end": 12396, + "name": "POP", + "source": 16 + }, + { + "begin": 12288, + "end": 12396, + "name": "POP", + "source": 16 + }, + { + "begin": 12288, + "end": 12396, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12402, + "end": 12581, + "name": "tag", + "source": 16, + "value": "715" + }, + { + "begin": 12402, + "end": 12581, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12471, + "end": 12481, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12492, + "end": 12538, + "name": "PUSH [tag]", + "source": 16, + "value": "912" + }, + { + "begin": 12534, + "end": 12537, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12526, + "end": 12532, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12492, + "end": 12538, + "name": "PUSH [tag]", + "source": 16, + "value": "714" + }, + { + "begin": 12492, + "end": 12538, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12492, + "end": 12538, + "name": "tag", + "source": 16, + "value": "912" + }, + { + "begin": 12492, + "end": 12538, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12570, + "end": 12574, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 12565, + "end": 12568, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12561, + "end": 12575, + "name": "ADD", + "source": 16 + }, + { + "begin": 12547, + "end": 12575, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12547, + "end": 12575, + "name": "POP", + "source": 16 + }, + { + "begin": 12402, + "end": 12581, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 12402, + "end": 12581, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 12402, + "end": 12581, + "name": "POP", + "source": 16 + }, + { + "begin": 12402, + "end": 12581, + "name": "POP", + "source": 16 + }, + { + "begin": 12402, + "end": 12581, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12587, + "end": 12700, + "name": "tag", + "source": 16, + "value": "716" + }, + { + "begin": 12587, + "end": 12700, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12657, + "end": 12661, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12689, + "end": 12693, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 12684, + "end": 12687, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12680, + "end": 12694, + "name": "ADD", + "source": 16 + }, + { + "begin": 12672, + "end": 12694, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12672, + "end": 12694, + "name": "POP", + "source": 16 + }, + { + "begin": 12587, + "end": 12700, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 12587, + "end": 12700, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12587, + "end": 12700, + "name": "POP", + "source": 16 + }, + { + "begin": 12587, + "end": 12700, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12736, + "end": 13468, + "name": "tag", + "source": 16, + "value": "717" + }, + { + "begin": 12736, + "end": 13468, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12855, + "end": 12858, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12884, + "end": 12938, + "name": "PUSH [tag]", + "source": 16, + "value": "915" + }, + { + "begin": 12932, + "end": 12937, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12884, + "end": 12938, + "name": "PUSH [tag]", + "source": 16, + "value": "711" + }, + { + "begin": 12884, + "end": 12938, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12884, + "end": 12938, + "name": "tag", + "source": 16, + "value": "915" + }, + { + "begin": 12884, + "end": 12938, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12954, + "end": 13040, + "name": "PUSH [tag]", + "source": 16, + "value": "916" + }, + { + "begin": 13033, + "end": 13039, + "name": "DUP2", + "source": 16 + }, + { + "begin": 13028, + "end": 13031, + "name": "DUP6", + "source": 16 + }, + { + "begin": 12954, + "end": 13040, + "name": "PUSH [tag]", + "source": 16, + "value": "712" + }, + { + "begin": 12954, + "end": 13040, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12954, + "end": 13040, + "name": "tag", + "source": 16, + "value": "916" + }, + { + "begin": 12954, + "end": 13040, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12947, + "end": 13040, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 12947, + "end": 13040, + "name": "POP", + "source": 16 + }, + { + "begin": 13064, + "end": 13120, + "name": "PUSH [tag]", + "source": 16, + "value": "917" + }, + { + "begin": 13114, + "end": 13119, + "name": "DUP4", + "source": 16 + }, + { + "begin": 13064, + "end": 13120, + "name": "PUSH [tag]", + "source": 16, + "value": "713" + }, + { + "begin": 13064, + "end": 13120, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 13064, + "end": 13120, + "name": "tag", + "source": 16, + "value": "917" + }, + { + "begin": 13064, + "end": 13120, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13143, + "end": 13150, + "name": "DUP1", + "source": 16 + }, + { + "begin": 13174, + "end": 13175, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 13159, + "end": 13443, + "name": "tag", + "source": 16, + "value": "918" + }, + { + "begin": 13159, + "end": 13443, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13184, + "end": 13190, + "name": "DUP4", + "source": 16 + }, + { + "begin": 13181, + "end": 13182, + "name": "DUP2", + "source": 16 + }, + { + "begin": 13178, + "end": 13191, + "name": "LT", + "source": 16 + }, + { + "begin": 13159, + "end": 13443, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 13159, + "end": 13443, + "name": "PUSH [tag]", + "source": 16, + "value": "920" + }, + { + "begin": 13159, + "end": 13443, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 13260, + "end": 13266, + "name": "DUP2", + "source": 16 + }, + { + "begin": 13254, + "end": 13267, + "name": "MLOAD", + "source": 16 + }, + { + "begin": 13287, + "end": 13350, + "name": "PUSH [tag]", + "source": 16, + "value": "921" + }, + { + "begin": 13346, + "end": 13349, + "name": "DUP9", + "source": 16 + }, + { + "begin": 13331, + "end": 13344, + "name": "DUP3", + "source": 16 + }, + { + "begin": 13287, + "end": 13350, + "name": "PUSH [tag]", + "source": 16, + "value": "715" + }, + { + "begin": 13287, + "end": 13350, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 13287, + "end": 13350, + "name": "tag", + "source": 16, + "value": "921" + }, + { + "begin": 13287, + "end": 13350, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13280, + "end": 13350, + "name": "SWAP8", + "source": 16 + }, + { + "begin": 13280, + "end": 13350, + "name": "POP", + "source": 16 + }, + { + "begin": 13373, + "end": 13433, + "name": "PUSH [tag]", + "source": 16, + "value": "922" + }, + { + "begin": 13426, + "end": 13432, + "name": "DUP4", + "source": 16 + }, + { + "begin": 13373, + "end": 13433, + "name": "PUSH [tag]", + "source": 16, + "value": "716" + }, + { + "begin": 13373, + "end": 13433, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 13373, + "end": 13433, + "name": "tag", + "source": 16, + "value": "922" + }, + { + "begin": 13373, + "end": 13433, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13363, + "end": 13433, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 13363, + "end": 13433, + "name": "POP", + "source": 16 + }, + { + "begin": 13219, + "end": 13443, + "name": "POP", + "source": 16 + }, + { + "begin": 13206, + "end": 13207, + "name": "PUSH", + "source": 16, + "value": "1" + }, + { + "begin": 13203, + "end": 13204, + "name": "DUP2", + "source": 16 + }, + { + "begin": 13199, + "end": 13208, + "name": "ADD", + "source": 16 + }, + { + "begin": 13194, + "end": 13208, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 13194, + "end": 13208, + "name": "POP", + "source": 16 + }, + { + "begin": 13159, + "end": 13443, + "name": "PUSH [tag]", + "source": 16, + "value": "918" + }, + { + "begin": 13159, + "end": 13443, + "name": "JUMP", + "source": 16 + }, + { + "begin": 13159, + "end": 13443, + "name": "tag", + "source": 16, + "value": "920" + }, + { + "begin": 13159, + "end": 13443, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13163, + "end": 13177, + "name": "POP", + "source": 16 + }, + { + "begin": 13459, + "end": 13462, + "name": "DUP6", + "source": 16 + }, + { + "begin": 13452, + "end": 13462, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 13452, + "end": 13462, + "name": "POP", + "source": 16 + }, + { + "begin": 12860, + "end": 13468, + "name": "POP", + "source": 16 + }, + { + "begin": 12860, + "end": 13468, + "name": "POP", + "source": 16 + }, + { + "begin": 12860, + "end": 13468, + "name": "POP", + "source": 16 + }, + { + "begin": 12736, + "end": 13468, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 12736, + "end": 13468, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 12736, + "end": 13468, + "name": "POP", + "source": 16 + }, + { + "begin": 12736, + "end": 13468, + "name": "POP", + "source": 16 + }, + { + "begin": 12736, + "end": 13468, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 13474, + "end": 13847, + "name": "tag", + "source": 16, + "value": "236" + }, + { + "begin": 13474, + "end": 13847, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13617, + "end": 13621, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 13655, + "end": 13657, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 13644, + "end": 13653, + "name": "DUP3", + "source": 16 + }, + { + "begin": 13640, + "end": 13658, + "name": "ADD", + "source": 16 + }, + { + "begin": 13632, + "end": 13658, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 13632, + "end": 13658, + "name": "POP", + "source": 16 + }, + { + "begin": 13704, + "end": 13713, + "name": "DUP2", + "source": 16 + }, + { + "begin": 13698, + "end": 13702, + "name": "DUP2", + "source": 16 + }, + { + "begin": 13694, + "end": 13714, + "name": "SUB", + "source": 16 + }, + { + "begin": 13690, + "end": 13691, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 13679, + "end": 13688, + "name": "DUP4", + "source": 16 + }, + { + "begin": 13675, + "end": 13692, + "name": "ADD", + "source": 16 + }, + { + "begin": 13668, + "end": 13715, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 13732, + "end": 13840, + "name": "PUSH [tag]", + "source": 16, + "value": "924" + }, + { + "begin": 13835, + "end": 13839, + "name": "DUP2", + "source": 16 + }, + { + "begin": 13826, + "end": 13832, + "name": "DUP5", + "source": 16 + }, + { + "begin": 13732, + "end": 13840, + "name": "PUSH [tag]", + "source": 16, + "value": "717" + }, + { + "begin": 13732, + "end": 13840, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 13732, + "end": 13840, + "name": "tag", + "source": 16, + "value": "924" + }, + { + "begin": 13732, + "end": 13840, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13724, + "end": 13840, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 13724, + "end": 13840, + "name": "POP", + "source": 16 + }, + { + "begin": 13474, + "end": 13847, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 13474, + "end": 13847, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 13474, + "end": 13847, + "name": "POP", + "source": 16 + }, + { + "begin": 13474, + "end": 13847, + "name": "POP", + "source": 16 + }, + { + "begin": 13474, + "end": 13847, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 13868, + "end": 14447, + "name": "tag", + "source": 16, + "value": "718" + }, + { + "begin": 13868, + "end": 14447, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13952, + "end": 13960, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 13962, + "end": 13968, + "name": "DUP1", + "source": 16 + }, + { + "begin": 14012, + "end": 14015, + "name": "DUP4", + "source": 16 + }, + { + "begin": 14005, + "end": 14009, + "name": "PUSH", + "source": 16, + "value": "1F" + }, + { + "begin": 13997, + "end": 14003, + "name": "DUP5", + "source": 16 + }, + { + "begin": 13993, + "end": 14010, + "name": "ADD", + "source": 16 + }, + { + "begin": 13989, + "end": 14016, + "name": "SLT", + "source": 16 + }, + { + "begin": 13979, + "end": 14101, + "name": "PUSH [tag]", + "source": 16, + "value": "926" + }, + { + "begin": 13979, + "end": 14101, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 14020, + "end": 14099, + "name": "PUSH [tag]", + "source": 16, + "value": "927" + }, + { + "begin": 14020, + "end": 14099, + "name": "PUSH [tag]", + "source": 16, + "value": "692" + }, + { + "begin": 14020, + "end": 14099, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 14020, + "end": 14099, + "name": "tag", + "source": 16, + "value": "927" + }, + { + "begin": 14020, + "end": 14099, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13979, + "end": 14101, + "name": "tag", + "source": 16, + "value": "926" + }, + { + "begin": 13979, + "end": 14101, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 14133, + "end": 14139, + "name": "DUP3", + "source": 16 + }, + { + "begin": 14120, + "end": 14140, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 14110, + "end": 14140, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 14110, + "end": 14140, + "name": "POP", + "source": 16 + }, + { + "begin": 14163, + "end": 14181, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 14155, + "end": 14161, + "name": "DUP2", + "source": 16 + }, + { + "begin": 14152, + "end": 14182, + "name": "GT", + "source": 16 + }, + { + "begin": 14149, + "end": 14266, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 14149, + "end": 14266, + "name": "PUSH [tag]", + "source": 16, + "value": "928" + }, + { + "begin": 14149, + "end": 14266, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 14185, + "end": 14264, + "name": "PUSH [tag]", + "source": 16, + "value": "929" + }, + { + "begin": 14185, + "end": 14264, + "name": "PUSH [tag]", + "source": 16, + "value": "693" + }, + { + "begin": 14185, + "end": 14264, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 14185, + "end": 14264, + "name": "tag", + "source": 16, + "value": "929" + }, + { + "begin": 14185, + "end": 14264, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 14149, + "end": 14266, + "name": "tag", + "source": 16, + "value": "928" + }, + { + "begin": 14149, + "end": 14266, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 14299, + "end": 14303, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 14291, + "end": 14297, + "name": "DUP4", + "source": 16 + }, + { + "begin": 14287, + "end": 14304, + "name": "ADD", + "source": 16 + }, + { + "begin": 14275, + "end": 14304, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 14275, + "end": 14304, + "name": "POP", + "source": 16 + }, + { + "begin": 14353, + "end": 14356, + "name": "DUP4", + "source": 16 + }, + { + "begin": 14345, + "end": 14349, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 14337, + "end": 14343, + "name": "DUP3", + "source": 16 + }, + { + "begin": 14333, + "end": 14350, + "name": "MUL", + "source": 16 + }, + { + "begin": 14323, + "end": 14331, + "name": "DUP4", + "source": 16 + }, + { + "begin": 14319, + "end": 14351, + "name": "ADD", + "source": 16 + }, + { + "begin": 14316, + "end": 14357, + "name": "GT", + "source": 16 + }, + { + "begin": 14313, + "end": 14441, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 14313, + "end": 14441, + "name": "PUSH [tag]", + "source": 16, + "value": "930" + }, + { + "begin": 14313, + "end": 14441, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 14360, + "end": 14439, + "name": "PUSH [tag]", + "source": 16, + "value": "931" + }, + { + "begin": 14360, + "end": 14439, + "name": "PUSH [tag]", + "source": 16, + "value": "694" + }, + { + "begin": 14360, + "end": 14439, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 14360, + "end": 14439, + "name": "tag", + "source": 16, + "value": "931" + }, + { + "begin": 14360, + "end": 14439, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 14313, + "end": 14441, + "name": "tag", + "source": 16, + "value": "930" + }, + { + "begin": 14313, + "end": 14441, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13868, + "end": 14447, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 13868, + "end": 14447, + "name": "POP", + "source": 16 + }, + { + "begin": 13868, + "end": 14447, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 13868, + "end": 14447, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 13868, + "end": 14447, + "name": "POP", + "source": 16 + }, + { + "begin": 13868, + "end": 14447, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 14453, + "end": 15179, + "name": "tag", + "source": 16, + "value": "253" + }, + { + "begin": 14453, + "end": 15179, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 14559, + "end": 14565, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 14567, + "end": 14573, + "name": "DUP1", + "source": 16 + }, + { + "begin": 14575, + "end": 14581, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 14624, + "end": 14626, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 14612, + "end": 14621, + "name": "DUP5", + "source": 16 + }, + { + "begin": 14603, + "end": 14610, + "name": "DUP7", + "source": 16 + }, + { + "begin": 14599, + "end": 14622, + "name": "SUB", + "source": 16 + }, + { + "begin": 14595, + "end": 14627, + "name": "SLT", + "source": 16 + }, + { + "begin": 14592, + "end": 14711, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 14592, + "end": 14711, + "name": "PUSH [tag]", + "source": 16, + "value": "933" + }, + { + "begin": 14592, + "end": 14711, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 14630, + "end": 14709, + "name": "PUSH [tag]", + "source": 16, + "value": "934" + }, + { + "begin": 14630, + "end": 14709, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 14630, + "end": 14709, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 14630, + "end": 14709, + "name": "tag", + "source": 16, + "value": "934" + }, + { + "begin": 14630, + "end": 14709, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 14592, + "end": 14711, + "name": "tag", + "source": 16, + "value": "933" + }, + { + "begin": 14592, + "end": 14711, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 14778, + "end": 14779, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 14767, + "end": 14776, + "name": "DUP5", + "source": 16 + }, + { + "begin": 14763, + "end": 14780, + "name": "ADD", + "source": 16 + }, + { + "begin": 14750, + "end": 14781, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 14808, + "end": 14826, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 14800, + "end": 14806, + "name": "DUP2", + "source": 16 + }, + { + "begin": 14797, + "end": 14827, + "name": "GT", + "source": 16 + }, + { + "begin": 14794, + "end": 14911, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 14794, + "end": 14911, + "name": "PUSH [tag]", + "source": 16, + "value": "935" + }, + { + "begin": 14794, + "end": 14911, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 14830, + "end": 14909, + "name": "PUSH [tag]", + "source": 16, + "value": "936" + }, + { + "begin": 14830, + "end": 14909, + "name": "PUSH [tag]", + "source": 16, + "value": "686" + }, + { + "begin": 14830, + "end": 14909, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 14830, + "end": 14909, + "name": "tag", + "source": 16, + "value": "936" + }, + { + "begin": 14830, + "end": 14909, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 14794, + "end": 14911, + "name": "tag", + "source": 16, + "value": "935" + }, + { + "begin": 14794, + "end": 14911, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 14943, + "end": 15034, + "name": "PUSH [tag]", + "source": 16, + "value": "937" + }, + { + "begin": 15026, + "end": 15033, + "name": "DUP7", + "source": 16 + }, + { + "begin": 15017, + "end": 15023, + "name": "DUP3", + "source": 16 + }, + { + "begin": 15006, + "end": 15015, + "name": "DUP8", + "source": 16 + }, + { + "begin": 15002, + "end": 15024, + "name": "ADD", + "source": 16 + }, + { + "begin": 14943, + "end": 15034, + "name": "PUSH [tag]", + "source": 16, + "value": "718" + }, + { + "begin": 14943, + "end": 15034, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 14943, + "end": 15034, + "name": "tag", + "source": 16, + "value": "937" + }, + { + "begin": 14943, + "end": 15034, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 14925, + "end": 15034, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 14925, + "end": 15034, + "name": "POP", + "source": 16 + }, + { + "begin": 14925, + "end": 15034, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 14925, + "end": 15034, + "name": "POP", + "source": 16 + }, + { + "begin": 14721, + "end": 15044, + "name": "POP", + "source": 16 + }, + { + "begin": 15083, + "end": 15085, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 15109, + "end": 15162, + "name": "PUSH [tag]", + "source": 16, + "value": "938" + }, + { + "begin": 15154, + "end": 15161, + "name": "DUP7", + "source": 16 + }, + { + "begin": 15145, + "end": 15151, + "name": "DUP3", + "source": 16 + }, + { + "begin": 15134, + "end": 15143, + "name": "DUP8", + "source": 16 + }, + { + "begin": 15130, + "end": 15152, + "name": "ADD", + "source": 16 + }, + { + "begin": 15109, + "end": 15162, + "name": "PUSH [tag]", + "source": 16, + "value": "699" + }, + { + "begin": 15109, + "end": 15162, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 15109, + "end": 15162, + "name": "tag", + "source": 16, + "value": "938" + }, + { + "begin": 15109, + "end": 15162, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 15099, + "end": 15162, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 15099, + "end": 15162, + "name": "POP", + "source": 16 + }, + { + "begin": 15054, + "end": 15172, + "name": "POP", + "source": 16 + }, + { + "begin": 14453, + "end": 15179, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 14453, + "end": 15179, + "name": "POP", + "source": 16 + }, + { + "begin": 14453, + "end": 15179, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 14453, + "end": 15179, + "name": "POP", + "source": 16 + }, + { + "begin": 14453, + "end": 15179, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 14453, + "end": 15179, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 15185, + "end": 15365, + "name": "tag", + "source": 16, + "value": "296" + }, + { + "begin": 15185, + "end": 15365, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 15233, + "end": 15310, + "name": "PUSH", + "source": 16, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 15230, + "end": 15231, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 15223, + "end": 15311, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 15330, + "end": 15334, + "name": "PUSH", + "source": 16, + "value": "41" + }, + { + "begin": 15327, + "end": 15328, + "name": "PUSH", + "source": 16, + "value": "4" + }, + { + "begin": 15320, + "end": 15335, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 15354, + "end": 15358, + "name": "PUSH", + "source": 16, + "value": "24" + }, + { + "begin": 15351, + "end": 15352, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 15344, + "end": 15359, + "name": "REVERT", + "source": 16 + }, + { + "begin": 15371, + "end": 15551, + "name": "tag", + "source": 16, + "value": "300" + }, + { + "begin": 15371, + "end": 15551, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 15419, + "end": 15496, + "name": "PUSH", + "source": 16, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 15416, + "end": 15417, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 15409, + "end": 15497, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 15516, + "end": 15520, + "name": "PUSH", + "source": 16, + "value": "32" + }, + { + "begin": 15513, + "end": 15514, + "name": "PUSH", + "source": 16, + "value": "4" + }, + { + "begin": 15506, + "end": 15521, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 15540, + "end": 15544, + "name": "PUSH", + "source": 16, + "value": "24" + }, + { + "begin": 15537, + "end": 15538, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 15530, + "end": 15545, + "name": "REVERT", + "source": 16 + }, + { + "begin": 15557, + "end": 15726, + "name": "tag", + "source": 16, + "value": "719" + }, + { + "begin": 15557, + "end": 15726, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 15641, + "end": 15652, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 15675, + "end": 15681, + "name": "DUP3", + "source": 16 + }, + { + "begin": 15670, + "end": 15673, + "name": "DUP3", + "source": 16 + }, + { + "begin": 15663, + "end": 15682, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 15715, + "end": 15719, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 15710, + "end": 15713, + "name": "DUP3", + "source": 16 + }, + { + "begin": 15706, + "end": 15720, + "name": "ADD", + "source": 16 + }, + { + "begin": 15691, + "end": 15720, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 15691, + "end": 15720, + "name": "POP", + "source": 16 + }, + { + "begin": 15557, + "end": 15726, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 15557, + "end": 15726, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 15557, + "end": 15726, + "name": "POP", + "source": 16 + }, + { + "begin": 15557, + "end": 15726, + "name": "POP", + "source": 16 + }, + { + "begin": 15557, + "end": 15726, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 15732, + "end": 15966, + "name": "tag", + "source": 16, + "value": "720" + }, + { + "begin": 15732, + "end": 15966, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 15872, + "end": 15906, + "name": "PUSH", + "source": 16, + "value": "416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365" + }, + { + "begin": 15868, + "end": 15869, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 15860, + "end": 15866, + "name": "DUP3", + "source": 16 + }, + { + "begin": 15856, + "end": 15870, + "name": "ADD", + "source": 16 + }, + { + "begin": 15849, + "end": 15907, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 15941, + "end": 15958, + "name": "PUSH", + "source": 16, + "value": "20726F6C657320666F722073656C660000000000000000000000000000000000" + }, + { + "begin": 15936, + "end": 15938, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 15928, + "end": 15934, + "name": "DUP3", + "source": 16 + }, + { + "begin": 15924, + "end": 15939, + "name": "ADD", + "source": 16 + }, + { + "begin": 15917, + "end": 15959, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 15732, + "end": 15966, + "name": "POP", + "source": 16 + }, + { + "begin": 15732, + "end": 15966, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 15972, + "end": 16338, + "name": "tag", + "source": 16, + "value": "721" + }, + { + "begin": 15972, + "end": 16338, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 16114, + "end": 16117, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 16135, + "end": 16202, + "name": "PUSH [tag]", + "source": 16, + "value": "944" + }, + { + "begin": 16199, + "end": 16201, + "name": "PUSH", + "source": 16, + "value": "2F" + }, + { + "begin": 16194, + "end": 16197, + "name": "DUP4", + "source": 16 + }, + { + "begin": 16135, + "end": 16202, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 16135, + "end": 16202, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 16135, + "end": 16202, + "name": "tag", + "source": 16, + "value": "944" + }, + { + "begin": 16135, + "end": 16202, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 16128, + "end": 16202, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 16128, + "end": 16202, + "name": "POP", + "source": 16 + }, + { + "begin": 16211, + "end": 16304, + "name": "PUSH [tag]", + "source": 16, + "value": "945" + }, + { + "begin": 16300, + "end": 16303, + "name": "DUP3", + "source": 16 + }, + { + "begin": 16211, + "end": 16304, + "name": "PUSH [tag]", + "source": 16, + "value": "720" + }, + { + "begin": 16211, + "end": 16304, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 16211, + "end": 16304, + "name": "tag", + "source": 16, + "value": "945" + }, + { + "begin": 16211, + "end": 16304, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 16329, + "end": 16331, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 16324, + "end": 16327, + "name": "DUP3", + "source": 16 + }, + { + "begin": 16320, + "end": 16332, + "name": "ADD", + "source": 16 + }, + { + "begin": 16313, + "end": 16332, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 16313, + "end": 16332, + "name": "POP", + "source": 16 + }, + { + "begin": 15972, + "end": 16338, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 15972, + "end": 16338, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 15972, + "end": 16338, + "name": "POP", + "source": 16 + }, + { + "begin": 15972, + "end": 16338, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 16344, + "end": 16763, + "name": "tag", + "source": 16, + "value": "326" + }, + { + "begin": 16344, + "end": 16763, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 16510, + "end": 16514, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 16548, + "end": 16550, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 16537, + "end": 16546, + "name": "DUP3", + "source": 16 + }, + { + "begin": 16533, + "end": 16551, + "name": "ADD", + "source": 16 + }, + { + "begin": 16525, + "end": 16551, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 16525, + "end": 16551, + "name": "POP", + "source": 16 + }, + { + "begin": 16597, + "end": 16606, + "name": "DUP2", + "source": 16 + }, + { + "begin": 16591, + "end": 16595, + "name": "DUP2", + "source": 16 + }, + { + "begin": 16587, + "end": 16607, + "name": "SUB", + "source": 16 + }, + { + "begin": 16583, + "end": 16584, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 16572, + "end": 16581, + "name": "DUP4", + "source": 16 + }, + { + "begin": 16568, + "end": 16585, + "name": "ADD", + "source": 16 + }, + { + "begin": 16561, + "end": 16608, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 16625, + "end": 16756, + "name": "PUSH [tag]", + "source": 16, + "value": "947" + }, + { + "begin": 16751, + "end": 16755, + "name": "DUP2", + "source": 16 + }, + { + "begin": 16625, + "end": 16756, + "name": "PUSH [tag]", + "source": 16, + "value": "721" + }, + { + "begin": 16625, + "end": 16756, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 16625, + "end": 16756, + "name": "tag", + "source": 16, + "value": "947" + }, + { + "begin": 16625, + "end": 16756, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 16617, + "end": 16756, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 16617, + "end": 16756, + "name": "POP", + "source": 16 + }, + { + "begin": 16344, + "end": 16763, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 16344, + "end": 16763, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 16344, + "end": 16763, + "name": "POP", + "source": 16 + }, + { + "begin": 16344, + "end": 16763, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 16769, + "end": 16949, + "name": "tag", + "source": 16, + "value": "722" + }, + { + "begin": 16769, + "end": 16949, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 16909, + "end": 16941, + "name": "PUSH", + "source": 16, + "value": "696E69743A20726F756E644164647265737320616C7265616479207365740000" + }, + { + "begin": 16905, + "end": 16906, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 16897, + "end": 16903, + "name": "DUP3", + "source": 16 + }, + { + "begin": 16893, + "end": 16907, + "name": "ADD", + "source": 16 + }, + { + "begin": 16886, + "end": 16942, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 16769, + "end": 16949, + "name": "POP", + "source": 16 + }, + { + "begin": 16769, + "end": 16949, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 16955, + "end": 17321, + "name": "tag", + "source": 16, + "value": "723" + }, + { + "begin": 16955, + "end": 17321, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 17097, + "end": 17100, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 17118, + "end": 17185, + "name": "PUSH [tag]", + "source": 16, + "value": "950" + }, + { + "begin": 17182, + "end": 17184, + "name": "PUSH", + "source": 16, + "value": "1E" + }, + { + "begin": 17177, + "end": 17180, + "name": "DUP4", + "source": 16 + }, + { + "begin": 17118, + "end": 17185, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 17118, + "end": 17185, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 17118, + "end": 17185, + "name": "tag", + "source": 16, + "value": "950" + }, + { + "begin": 17118, + "end": 17185, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 17111, + "end": 17185, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 17111, + "end": 17185, + "name": "POP", + "source": 16 + }, + { + "begin": 17194, + "end": 17287, + "name": "PUSH [tag]", + "source": 16, + "value": "951" + }, + { + "begin": 17283, + "end": 17286, + "name": "DUP3", + "source": 16 + }, + { + "begin": 17194, + "end": 17287, + "name": "PUSH [tag]", + "source": 16, + "value": "722" + }, + { + "begin": 17194, + "end": 17287, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 17194, + "end": 17287, + "name": "tag", + "source": 16, + "value": "951" + }, + { + "begin": 17194, + "end": 17287, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 17312, + "end": 17314, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 17307, + "end": 17310, + "name": "DUP3", + "source": 16 + }, + { + "begin": 17303, + "end": 17315, + "name": "ADD", + "source": 16 + }, + { + "begin": 17296, + "end": 17315, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 17296, + "end": 17315, + "name": "POP", + "source": 16 + }, + { + "begin": 16955, + "end": 17321, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 16955, + "end": 17321, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 16955, + "end": 17321, + "name": "POP", + "source": 16 + }, + { + "begin": 16955, + "end": 17321, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 17327, + "end": 17746, + "name": "tag", + "source": 16, + "value": "382" + }, + { + "begin": 17327, + "end": 17746, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 17493, + "end": 17497, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 17531, + "end": 17533, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 17520, + "end": 17529, + "name": "DUP3", + "source": 16 + }, + { + "begin": 17516, + "end": 17534, + "name": "ADD", + "source": 16 + }, + { + "begin": 17508, + "end": 17534, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 17508, + "end": 17534, + "name": "POP", + "source": 16 + }, + { + "begin": 17580, + "end": 17589, + "name": "DUP2", + "source": 16 + }, + { + "begin": 17574, + "end": 17578, + "name": "DUP2", + "source": 16 + }, + { + "begin": 17570, + "end": 17590, + "name": "SUB", + "source": 16 + }, + { + "begin": 17566, + "end": 17567, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 17555, + "end": 17564, + "name": "DUP4", + "source": 16 + }, + { + "begin": 17551, + "end": 17568, + "name": "ADD", + "source": 16 + }, + { + "begin": 17544, + "end": 17591, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 17608, + "end": 17739, + "name": "PUSH [tag]", + "source": 16, + "value": "953" + }, + { + "begin": 17734, + "end": 17738, + "name": "DUP2", + "source": 16 + }, + { + "begin": 17608, + "end": 17739, + "name": "PUSH [tag]", + "source": 16, + "value": "723" + }, + { + "begin": 17608, + "end": 17739, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 17608, + "end": 17739, + "name": "tag", + "source": 16, + "value": "953" + }, + { + "begin": 17608, + "end": 17739, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 17600, + "end": 17739, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 17600, + "end": 17739, + "name": "POP", + "source": 16 + }, + { + "begin": 17327, + "end": 17746, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 17327, + "end": 17746, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 17327, + "end": 17746, + "name": "POP", + "source": 16 + }, + { + "begin": 17327, + "end": 17746, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 17752, + "end": 17985, + "name": "tag", + "source": 16, + "value": "724" + }, + { + "begin": 17752, + "end": 17985, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 17892, + "end": 17926, + "name": "PUSH", + "source": 16, + "value": "496E697469616C697A61626C653A20636F6E747261637420697320616C726561" + }, + { + "begin": 17888, + "end": 17889, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 17880, + "end": 17886, + "name": "DUP3", + "source": 16 + }, + { + "begin": 17876, + "end": 17890, + "name": "ADD", + "source": 16 + }, + { + "begin": 17869, + "end": 17927, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 17961, + "end": 17977, + "name": "PUSH", + "source": 16, + "value": "647920696E697469616C697A6564000000000000000000000000000000000000" + }, + { + "begin": 17956, + "end": 17958, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 17948, + "end": 17954, + "name": "DUP3", + "source": 16 + }, + { + "begin": 17944, + "end": 17959, + "name": "ADD", + "source": 16 + }, + { + "begin": 17937, + "end": 17978, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 17752, + "end": 17985, + "name": "POP", + "source": 16 + }, + { + "begin": 17752, + "end": 17985, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 17991, + "end": 18357, + "name": "tag", + "source": 16, + "value": "725" + }, + { + "begin": 17991, + "end": 18357, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 18133, + "end": 18136, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 18154, + "end": 18221, + "name": "PUSH [tag]", + "source": 16, + "value": "956" + }, + { + "begin": 18218, + "end": 18220, + "name": "PUSH", + "source": 16, + "value": "2E" + }, + { + "begin": 18213, + "end": 18216, + "name": "DUP4", + "source": 16 + }, + { + "begin": 18154, + "end": 18221, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 18154, + "end": 18221, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 18154, + "end": 18221, + "name": "tag", + "source": 16, + "value": "956" + }, + { + "begin": 18154, + "end": 18221, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 18147, + "end": 18221, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 18147, + "end": 18221, + "name": "POP", + "source": 16 + }, + { + "begin": 18230, + "end": 18323, + "name": "PUSH [tag]", + "source": 16, + "value": "957" + }, + { + "begin": 18319, + "end": 18322, + "name": "DUP3", + "source": 16 + }, + { + "begin": 18230, + "end": 18323, + "name": "PUSH [tag]", + "source": 16, + "value": "724" + }, + { + "begin": 18230, + "end": 18323, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 18230, + "end": 18323, + "name": "tag", + "source": 16, + "value": "957" + }, + { + "begin": 18230, + "end": 18323, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 18348, + "end": 18350, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 18343, + "end": 18346, + "name": "DUP3", + "source": 16 + }, + { + "begin": 18339, + "end": 18351, + "name": "ADD", + "source": 16 + }, + { + "begin": 18332, + "end": 18351, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 18332, + "end": 18351, + "name": "POP", + "source": 16 + }, + { + "begin": 17991, + "end": 18357, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 17991, + "end": 18357, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 17991, + "end": 18357, + "name": "POP", + "source": 16 + }, + { + "begin": 17991, + "end": 18357, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 18363, + "end": 18782, + "name": "tag", + "source": 16, + "value": "391" + }, + { + "begin": 18363, + "end": 18782, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 18529, + "end": 18533, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 18567, + "end": 18569, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 18556, + "end": 18565, + "name": "DUP3", + "source": 16 + }, + { + "begin": 18552, + "end": 18570, + "name": "ADD", + "source": 16 + }, + { + "begin": 18544, + "end": 18570, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 18544, + "end": 18570, + "name": "POP", + "source": 16 + }, + { + "begin": 18616, + "end": 18625, + "name": "DUP2", + "source": 16 + }, + { + "begin": 18610, + "end": 18614, + "name": "DUP2", + "source": 16 + }, + { + "begin": 18606, + "end": 18626, + "name": "SUB", + "source": 16 + }, + { + "begin": 18602, + "end": 18603, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 18591, + "end": 18600, + "name": "DUP4", + "source": 16 + }, + { + "begin": 18587, + "end": 18604, + "name": "ADD", + "source": 16 + }, + { + "begin": 18580, + "end": 18627, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 18644, + "end": 18775, + "name": "PUSH [tag]", + "source": 16, + "value": "959" + }, + { + "begin": 18770, + "end": 18774, + "name": "DUP2", + "source": 16 + }, + { + "begin": 18644, + "end": 18775, + "name": "PUSH [tag]", + "source": 16, + "value": "725" + }, + { + "begin": 18644, + "end": 18775, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 18644, + "end": 18775, + "name": "tag", + "source": 16, + "value": "959" + }, + { + "begin": 18644, + "end": 18775, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 18636, + "end": 18775, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 18636, + "end": 18775, + "name": "POP", + "source": 16 + }, + { + "begin": 18363, + "end": 18782, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 18363, + "end": 18782, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 18363, + "end": 18782, + "name": "POP", + "source": 16 + }, + { + "begin": 18363, + "end": 18782, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 18788, + "end": 18873, + "name": "tag", + "source": 16, + "value": "726" + }, + { + "begin": 18788, + "end": 18873, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 18833, + "end": 18840, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 18862, + "end": 18867, + "name": "DUP2", + "source": 16 + }, + { + "begin": 18851, + "end": 18867, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 18851, + "end": 18867, + "name": "POP", + "source": 16 + }, + { + "begin": 18788, + "end": 18873, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 18788, + "end": 18873, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 18788, + "end": 18873, + "name": "POP", + "source": 16 + }, + { + "begin": 18788, + "end": 18873, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 18879, + "end": 18965, + "name": "tag", + "source": 16, + "value": "727" + }, + { + "begin": 18879, + "end": 18965, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 18914, + "end": 18921, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 18954, + "end": 18958, + "name": "PUSH", + "source": 16, + "value": "FF" + }, + { + "begin": 18947, + "end": 18952, + "name": "DUP3", + "source": 16 + }, + { + "begin": 18943, + "end": 18959, + "name": "AND", + "source": 16 + }, + { + "begin": 18932, + "end": 18959, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 18932, + "end": 18959, + "name": "POP", + "source": 16 + }, + { + "begin": 18879, + "end": 18965, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 18879, + "end": 18965, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 18879, + "end": 18965, + "name": "POP", + "source": 16 + }, + { + "begin": 18879, + "end": 18965, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 18971, + "end": 19031, + "name": "tag", + "source": 16, + "value": "728" + }, + { + "begin": 18971, + "end": 19031, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 18999, + "end": 19002, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 19020, + "end": 19025, + "name": "DUP2", + "source": 16 + }, + { + "begin": 19013, + "end": 19025, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 19013, + "end": 19025, + "name": "POP", + "source": 16 + }, + { + "begin": 18971, + "end": 19031, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 18971, + "end": 19031, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 18971, + "end": 19031, + "name": "POP", + "source": 16 + }, + { + "begin": 18971, + "end": 19031, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 19037, + "end": 19191, + "name": "tag", + "source": 16, + "value": "729" + }, + { + "begin": 19037, + "end": 19191, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 19093, + "end": 19102, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 19126, + "end": 19185, + "name": "PUSH [tag]", + "source": 16, + "value": "964" + }, + { + "begin": 19142, + "end": 19184, + "name": "PUSH [tag]", + "source": 16, + "value": "965" + }, + { + "begin": 19151, + "end": 19183, + "name": "PUSH [tag]", + "source": 16, + "value": "966" + }, + { + "begin": 19177, + "end": 19182, + "name": "DUP5", + "source": 16 + }, + { + "begin": 19151, + "end": 19183, + "name": "PUSH [tag]", + "source": 16, + "value": "726" + }, + { + "begin": 19151, + "end": 19183, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 19151, + "end": 19183, + "name": "tag", + "source": 16, + "value": "966" + }, + { + "begin": 19151, + "end": 19183, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 19142, + "end": 19184, + "name": "PUSH [tag]", + "source": 16, + "value": "728" + }, + { + "begin": 19142, + "end": 19184, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 19142, + "end": 19184, + "name": "tag", + "source": 16, + "value": "965" + }, + { + "begin": 19142, + "end": 19184, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 19126, + "end": 19185, + "name": "PUSH [tag]", + "source": 16, + "value": "727" + }, + { + "begin": 19126, + "end": 19185, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 19126, + "end": 19185, + "name": "tag", + "source": 16, + "value": "964" + }, + { + "begin": 19126, + "end": 19185, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 19113, + "end": 19185, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 19113, + "end": 19185, + "name": "POP", + "source": 16 + }, + { + "begin": 19037, + "end": 19191, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 19037, + "end": 19191, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 19037, + "end": 19191, + "name": "POP", + "source": 16 + }, + { + "begin": 19037, + "end": 19191, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 19197, + "end": 19340, + "name": "tag", + "source": 16, + "value": "730" + }, + { + "begin": 19197, + "end": 19340, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 19290, + "end": 19333, + "name": "PUSH [tag]", + "source": 16, + "value": "968" + }, + { + "begin": 19327, + "end": 19332, + "name": "DUP2", + "source": 16 + }, + { + "begin": 19290, + "end": 19333, + "name": "PUSH [tag]", + "source": 16, + "value": "729" + }, + { + "begin": 19290, + "end": 19333, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 19290, + "end": 19333, + "name": "tag", + "source": 16, + "value": "968" + }, + { + "begin": 19290, + "end": 19333, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 19285, + "end": 19288, + "name": "DUP3", + "source": 16 + }, + { + "begin": 19278, + "end": 19334, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 19197, + "end": 19340, + "name": "POP", + "source": 16 + }, + { + "begin": 19197, + "end": 19340, + "name": "POP", + "source": 16 + }, + { + "begin": 19197, + "end": 19340, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 19346, + "end": 19580, + "name": "tag", + "source": 16, + "value": "398" + }, + { + "begin": 19346, + "end": 19580, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 19445, + "end": 19449, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 19483, + "end": 19485, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 19472, + "end": 19481, + "name": "DUP3", + "source": 16 + }, + { + "begin": 19468, + "end": 19486, + "name": "ADD", + "source": 16 + }, + { + "begin": 19460, + "end": 19486, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 19460, + "end": 19486, + "name": "POP", + "source": 16 + }, + { + "begin": 19496, + "end": 19573, + "name": "PUSH [tag]", + "source": 16, + "value": "970" + }, + { + "begin": 19570, + "end": 19571, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 19559, + "end": 19568, + "name": "DUP4", + "source": 16 + }, + { + "begin": 19555, + "end": 19572, + "name": "ADD", + "source": 16 + }, + { + "begin": 19546, + "end": 19552, + "name": "DUP5", + "source": 16 + }, + { + "begin": 19496, + "end": 19573, + "name": "PUSH [tag]", + "source": 16, + "value": "730" + }, + { + "begin": 19496, + "end": 19573, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 19496, + "end": 19573, + "name": "tag", + "source": 16, + "value": "970" + }, + { + "begin": 19496, + "end": 19573, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 19346, + "end": 19580, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 19346, + "end": 19580, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 19346, + "end": 19580, + "name": "POP", + "source": 16 + }, + { + "begin": 19346, + "end": 19580, + "name": "POP", + "source": 16 + }, + { + "begin": 19346, + "end": 19580, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 19586, + "end": 19817, + "name": "tag", + "source": 16, + "value": "731" + }, + { + "begin": 19586, + "end": 19817, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 19726, + "end": 19760, + "name": "PUSH", + "source": 16, + "value": "6572726F723A20766F74696E6720636F6E7472616374206E6F74206C696E6B65" + }, + { + "begin": 19722, + "end": 19723, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 19714, + "end": 19720, + "name": "DUP3", + "source": 16 + }, + { + "begin": 19710, + "end": 19724, + "name": "ADD", + "source": 16 + }, + { + "begin": 19703, + "end": 19761, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 19795, + "end": 19809, + "name": "PUSH", + "source": 16, + "value": "6420746F206120726F756E640000000000000000000000000000000000000000" + }, + { + "begin": 19790, + "end": 19792, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 19782, + "end": 19788, + "name": "DUP3", + "source": 16 + }, + { + "begin": 19778, + "end": 19793, + "name": "ADD", + "source": 16 + }, + { + "begin": 19771, + "end": 19810, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 19586, + "end": 19817, + "name": "POP", + "source": 16 + }, + { + "begin": 19586, + "end": 19817, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 19823, + "end": 20189, + "name": "tag", + "source": 16, + "value": "732" + }, + { + "begin": 19823, + "end": 20189, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 19965, + "end": 19968, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 19986, + "end": 20053, + "name": "PUSH [tag]", + "source": 16, + "value": "973" + }, + { + "begin": 20050, + "end": 20052, + "name": "PUSH", + "source": 16, + "value": "2C" + }, + { + "begin": 20045, + "end": 20048, + "name": "DUP4", + "source": 16 + }, + { + "begin": 19986, + "end": 20053, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 19986, + "end": 20053, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 19986, + "end": 20053, + "name": "tag", + "source": 16, + "value": "973" + }, + { + "begin": 19986, + "end": 20053, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 19979, + "end": 20053, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 19979, + "end": 20053, + "name": "POP", + "source": 16 + }, + { + "begin": 20062, + "end": 20155, + "name": "PUSH [tag]", + "source": 16, + "value": "974" + }, + { + "begin": 20151, + "end": 20154, + "name": "DUP3", + "source": 16 + }, + { + "begin": 20062, + "end": 20155, + "name": "PUSH [tag]", + "source": 16, + "value": "731" + }, + { + "begin": 20062, + "end": 20155, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 20062, + "end": 20155, + "name": "tag", + "source": 16, + "value": "974" + }, + { + "begin": 20062, + "end": 20155, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 20180, + "end": 20182, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 20175, + "end": 20178, + "name": "DUP3", + "source": 16 + }, + { + "begin": 20171, + "end": 20183, + "name": "ADD", + "source": 16 + }, + { + "begin": 20164, + "end": 20183, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 20164, + "end": 20183, + "name": "POP", + "source": 16 + }, + { + "begin": 19823, + "end": 20189, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 19823, + "end": 20189, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 19823, + "end": 20189, + "name": "POP", + "source": 16 + }, + { + "begin": 19823, + "end": 20189, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 20195, + "end": 20614, + "name": "tag", + "source": 16, + "value": "426" + }, + { + "begin": 20195, + "end": 20614, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 20361, + "end": 20365, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 20399, + "end": 20401, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 20388, + "end": 20397, + "name": "DUP3", + "source": 16 + }, + { + "begin": 20384, + "end": 20402, + "name": "ADD", + "source": 16 + }, + { + "begin": 20376, + "end": 20402, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 20376, + "end": 20402, + "name": "POP", + "source": 16 + }, + { + "begin": 20448, + "end": 20457, + "name": "DUP2", + "source": 16 + }, + { + "begin": 20442, + "end": 20446, + "name": "DUP2", + "source": 16 + }, + { + "begin": 20438, + "end": 20458, + "name": "SUB", + "source": 16 + }, + { + "begin": 20434, + "end": 20435, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 20423, + "end": 20432, + "name": "DUP4", + "source": 16 + }, + { + "begin": 20419, + "end": 20436, + "name": "ADD", + "source": 16 + }, + { + "begin": 20412, + "end": 20459, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 20476, + "end": 20607, + "name": "PUSH [tag]", + "source": 16, + "value": "976" + }, + { + "begin": 20602, + "end": 20606, + "name": "DUP2", + "source": 16 + }, + { + "begin": 20476, + "end": 20607, + "name": "PUSH [tag]", + "source": 16, + "value": "732" + }, + { + "begin": 20476, + "end": 20607, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 20476, + "end": 20607, + "name": "tag", + "source": 16, + "value": "976" + }, + { + "begin": 20476, + "end": 20607, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 20468, + "end": 20607, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 20468, + "end": 20607, + "name": "POP", + "source": 16 + }, + { + "begin": 20195, + "end": 20614, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 20195, + "end": 20614, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 20195, + "end": 20614, + "name": "POP", + "source": 16 + }, + { + "begin": 20195, + "end": 20614, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 20620, + "end": 20851, + "name": "tag", + "source": 16, + "value": "733" + }, + { + "begin": 20620, + "end": 20851, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 20760, + "end": 20794, + "name": "PUSH", + "source": 16, + "value": "6572726F723A2063616E20626520696E766F6B6564206F6E6C7920627920726F" + }, + { + "begin": 20756, + "end": 20757, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 20748, + "end": 20754, + "name": "DUP3", + "source": 16 + }, + { + "begin": 20744, + "end": 20758, + "name": "ADD", + "source": 16 + }, + { + "begin": 20737, + "end": 20795, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 20829, + "end": 20843, + "name": "PUSH", + "source": 16, + "value": "756E6420636F6E74726163740000000000000000000000000000000000000000" + }, + { + "begin": 20824, + "end": 20826, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 20816, + "end": 20822, + "name": "DUP3", + "source": 16 + }, + { + "begin": 20812, + "end": 20827, + "name": "ADD", + "source": 16 + }, + { + "begin": 20805, + "end": 20844, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 20620, + "end": 20851, + "name": "POP", + "source": 16 + }, + { + "begin": 20620, + "end": 20851, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 20857, + "end": 21223, + "name": "tag", + "source": 16, + "value": "734" + }, + { + "begin": 20857, + "end": 21223, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 20999, + "end": 21002, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 21020, + "end": 21087, + "name": "PUSH [tag]", + "source": 16, + "value": "979" + }, + { + "begin": 21084, + "end": 21086, + "name": "PUSH", + "source": 16, + "value": "2C" + }, + { + "begin": 21079, + "end": 21082, + "name": "DUP4", + "source": 16 + }, + { + "begin": 21020, + "end": 21087, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 21020, + "end": 21087, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 21020, + "end": 21087, + "name": "tag", + "source": 16, + "value": "979" + }, + { + "begin": 21020, + "end": 21087, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 21013, + "end": 21087, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 21013, + "end": 21087, + "name": "POP", + "source": 16 + }, + { + "begin": 21096, + "end": 21189, + "name": "PUSH [tag]", + "source": 16, + "value": "980" + }, + { + "begin": 21185, + "end": 21188, + "name": "DUP3", + "source": 16 + }, + { + "begin": 21096, + "end": 21189, + "name": "PUSH [tag]", + "source": 16, + "value": "733" + }, + { + "begin": 21096, + "end": 21189, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 21096, + "end": 21189, + "name": "tag", + "source": 16, + "value": "980" + }, + { + "begin": 21096, + "end": 21189, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 21214, + "end": 21216, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 21209, + "end": 21212, + "name": "DUP3", + "source": 16 + }, + { + "begin": 21205, + "end": 21217, + "name": "ADD", + "source": 16 + }, + { + "begin": 21198, + "end": 21217, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 21198, + "end": 21217, + "name": "POP", + "source": 16 + }, + { + "begin": 20857, + "end": 21223, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 20857, + "end": 21223, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 20857, + "end": 21223, + "name": "POP", + "source": 16 + }, + { + "begin": 20857, + "end": 21223, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 21229, + "end": 21648, + "name": "tag", + "source": 16, + "value": "429" + }, + { + "begin": 21229, + "end": 21648, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 21395, + "end": 21399, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 21433, + "end": 21435, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 21422, + "end": 21431, + "name": "DUP3", + "source": 16 + }, + { + "begin": 21418, + "end": 21436, + "name": "ADD", + "source": 16 + }, + { + "begin": 21410, + "end": 21436, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 21410, + "end": 21436, + "name": "POP", + "source": 16 + }, + { + "begin": 21482, + "end": 21491, + "name": "DUP2", + "source": 16 + }, + { + "begin": 21476, + "end": 21480, + "name": "DUP2", + "source": 16 + }, + { + "begin": 21472, + "end": 21492, + "name": "SUB", + "source": 16 + }, + { + "begin": 21468, + "end": 21469, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 21457, + "end": 21466, + "name": "DUP4", + "source": 16 + }, + { + "begin": 21453, + "end": 21470, + "name": "ADD", + "source": 16 + }, + { + "begin": 21446, + "end": 21493, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 21510, + "end": 21641, + "name": "PUSH [tag]", + "source": 16, + "value": "982" + }, + { + "begin": 21636, + "end": 21640, + "name": "DUP2", + "source": 16 + }, + { + "begin": 21510, + "end": 21641, + "name": "PUSH [tag]", + "source": 16, + "value": "734" + }, + { + "begin": 21510, + "end": 21641, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 21510, + "end": 21641, + "name": "tag", + "source": 16, + "value": "982" + }, + { + "begin": 21510, + "end": 21641, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 21502, + "end": 21641, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 21502, + "end": 21641, + "name": "POP", + "source": 16 + }, + { + "begin": 21229, + "end": 21648, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 21229, + "end": 21648, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 21229, + "end": 21648, + "name": "POP", + "source": 16 + }, + { + "begin": 21229, + "end": 21648, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 21654, + "end": 21771, + "name": "tag", + "source": 16, + "value": "735" + }, + { + "begin": 21654, + "end": 21771, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 21763, + "end": 21764, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 21760, + "end": 21761, + "name": "DUP1", + "source": 16 + }, + { + "begin": 21753, + "end": 21765, + "name": "REVERT", + "source": 16 + }, + { + "begin": 21777, + "end": 21894, + "name": "tag", + "source": 16, + "value": "736" + }, + { + "begin": 21777, + "end": 21894, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 21886, + "end": 21887, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 21883, + "end": 21884, + "name": "DUP1", + "source": 16 + }, + { + "begin": 21876, + "end": 21888, + "name": "REVERT", + "source": 16 + }, + { + "begin": 21900, + "end": 22017, + "name": "tag", + "source": 16, + "value": "737" + }, + { + "begin": 21900, + "end": 22017, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22009, + "end": 22010, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 22006, + "end": 22007, + "name": "DUP1", + "source": 16 + }, + { + "begin": 21999, + "end": 22011, + "name": "REVERT", + "source": 16 + }, + { + "begin": 22023, + "end": 22747, + "name": "tag", + "source": 16, + "value": "437" + }, + { + "begin": 22023, + "end": 22747, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22100, + "end": 22104, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 22106, + "end": 22112, + "name": "DUP1", + "source": 16 + }, + { + "begin": 22162, + "end": 22173, + "name": "DUP4", + "source": 16 + }, + { + "begin": 22149, + "end": 22174, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 22262, + "end": 22263, + "name": "PUSH", + "source": 16, + "value": "1" + }, + { + "begin": 22256, + "end": 22260, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 22252, + "end": 22264, + "name": "SUB", + "source": 16 + }, + { + "begin": 22241, + "end": 22249, + "name": "DUP5", + "source": 16 + }, + { + "begin": 22225, + "end": 22239, + "name": "CALLDATASIZE", + "source": 16 + }, + { + "begin": 22221, + "end": 22250, + "name": "SUB", + "source": 16 + }, + { + "begin": 22217, + "end": 22265, + "name": "SUB", + "source": 16 + }, + { + "begin": 22197, + "end": 22215, + "name": "DUP2", + "source": 16 + }, + { + "begin": 22193, + "end": 22266, + "name": "SLT", + "source": 16 + }, + { + "begin": 22183, + "end": 22351, + "name": "PUSH [tag]", + "source": 16, + "value": "987" + }, + { + "begin": 22183, + "end": 22351, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 22270, + "end": 22349, + "name": "PUSH [tag]", + "source": 16, + "value": "988" + }, + { + "begin": 22270, + "end": 22349, + "name": "PUSH [tag]", + "source": 16, + "value": "735" + }, + { + "begin": 22270, + "end": 22349, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 22270, + "end": 22349, + "name": "tag", + "source": 16, + "value": "988" + }, + { + "begin": 22270, + "end": 22349, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22183, + "end": 22351, + "name": "tag", + "source": 16, + "value": "987" + }, + { + "begin": 22183, + "end": 22351, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22382, + "end": 22400, + "name": "DUP1", + "source": 16 + }, + { + "begin": 22372, + "end": 22380, + "name": "DUP5", + "source": 16 + }, + { + "begin": 22368, + "end": 22401, + "name": "ADD", + "source": 16 + }, + { + "begin": 22360, + "end": 22401, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 22360, + "end": 22401, + "name": "POP", + "source": 16 + }, + { + "begin": 22434, + "end": 22438, + "name": "DUP3", + "source": 16 + }, + { + "begin": 22421, + "end": 22439, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 22411, + "end": 22439, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 22411, + "end": 22439, + "name": "POP", + "source": 16 + }, + { + "begin": 22462, + "end": 22480, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 22454, + "end": 22460, + "name": "DUP3", + "source": 16 + }, + { + "begin": 22451, + "end": 22481, + "name": "GT", + "source": 16 + }, + { + "begin": 22448, + "end": 22565, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 22448, + "end": 22565, + "name": "PUSH [tag]", + "source": 16, + "value": "989" + }, + { + "begin": 22448, + "end": 22565, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 22484, + "end": 22563, + "name": "PUSH [tag]", + "source": 16, + "value": "990" + }, + { + "begin": 22484, + "end": 22563, + "name": "PUSH [tag]", + "source": 16, + "value": "736" + }, + { + "begin": 22484, + "end": 22563, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 22484, + "end": 22563, + "name": "tag", + "source": 16, + "value": "990" + }, + { + "begin": 22484, + "end": 22563, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22448, + "end": 22565, + "name": "tag", + "source": 16, + "value": "989" + }, + { + "begin": 22448, + "end": 22565, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22592, + "end": 22594, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 22586, + "end": 22590, + "name": "DUP4", + "source": 16 + }, + { + "begin": 22582, + "end": 22595, + "name": "ADD", + "source": 16 + }, + { + "begin": 22574, + "end": 22595, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 22574, + "end": 22595, + "name": "POP", + "source": 16 + }, + { + "begin": 22649, + "end": 22653, + "name": "PUSH", + "source": 16, + "value": "1" + }, + { + "begin": 22641, + "end": 22647, + "name": "DUP3", + "source": 16 + }, + { + "begin": 22637, + "end": 22654, + "name": "MUL", + "source": 16 + }, + { + "begin": 22621, + "end": 22635, + "name": "CALLDATASIZE", + "source": 16 + }, + { + "begin": 22617, + "end": 22655, + "name": "SUB", + "source": 16 + }, + { + "begin": 22611, + "end": 22615, + "name": "DUP4", + "source": 16 + }, + { + "begin": 22607, + "end": 22656, + "name": "SGT", + "source": 16 + }, + { + "begin": 22604, + "end": 22740, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 22604, + "end": 22740, + "name": "PUSH [tag]", + "source": 16, + "value": "991" + }, + { + "begin": 22604, + "end": 22740, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 22659, + "end": 22738, + "name": "PUSH [tag]", + "source": 16, + "value": "992" + }, + { + "begin": 22659, + "end": 22738, + "name": "PUSH [tag]", + "source": 16, + "value": "737" + }, + { + "begin": 22659, + "end": 22738, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 22659, + "end": 22738, + "name": "tag", + "source": 16, + "value": "992" + }, + { + "begin": 22659, + "end": 22738, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22604, + "end": 22740, + "name": "tag", + "source": 16, + "value": "991" + }, + { + "begin": 22604, + "end": 22740, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22113, + "end": 22747, + "name": "POP", + "source": 16 + }, + { + "begin": 22023, + "end": 22747, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 22023, + "end": 22747, + "name": "POP", + "source": 16 + }, + { + "begin": 22023, + "end": 22747, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 22023, + "end": 22747, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 22023, + "end": 22747, + "name": "POP", + "source": 16 + }, + { + "begin": 22023, + "end": 22747, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 22753, + "end": 22857, + "name": "tag", + "source": 16, + "value": "738" + }, + { + "begin": 22753, + "end": 22857, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22798, + "end": 22805, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 22827, + "end": 22851, + "name": "PUSH [tag]", + "source": 16, + "value": "994" + }, + { + "begin": 22845, + "end": 22850, + "name": "DUP3", + "source": 16 + }, + { + "begin": 22827, + "end": 22851, + "name": "PUSH [tag]", + "source": 16, + "value": "696" + }, + { + "begin": 22827, + "end": 22851, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 22827, + "end": 22851, + "name": "tag", + "source": 16, + "value": "994" + }, + { + "begin": 22827, + "end": 22851, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22816, + "end": 22851, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 22816, + "end": 22851, + "name": "POP", + "source": 16 + }, + { + "begin": 22753, + "end": 22857, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 22753, + "end": 22857, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 22753, + "end": 22857, + "name": "POP", + "source": 16 + }, + { + "begin": 22753, + "end": 22857, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 22863, + "end": 23001, + "name": "tag", + "source": 16, + "value": "739" + }, + { + "begin": 22863, + "end": 23001, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22944, + "end": 22976, + "name": "PUSH [tag]", + "source": 16, + "value": "996" + }, + { + "begin": 22970, + "end": 22975, + "name": "DUP2", + "source": 16 + }, + { + "begin": 22944, + "end": 22976, + "name": "PUSH [tag]", + "source": 16, + "value": "738" + }, + { + "begin": 22944, + "end": 22976, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 22944, + "end": 22976, + "name": "tag", + "source": 16, + "value": "996" + }, + { + "begin": 22944, + "end": 22976, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22937, + "end": 22942, + "name": "DUP2", + "source": 16 + }, + { + "begin": 22934, + "end": 22977, + "name": "EQ", + "source": 16 + }, + { + "begin": 22924, + "end": 22995, + "name": "PUSH [tag]", + "source": 16, + "value": "997" + }, + { + "begin": 22924, + "end": 22995, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 22991, + "end": 22992, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 22988, + "end": 22989, + "name": "DUP1", + "source": 16 + }, + { + "begin": 22981, + "end": 22993, + "name": "REVERT", + "source": 16 + }, + { + "begin": 22924, + "end": 22995, + "name": "tag", + "source": 16, + "value": "997" + }, + { + "begin": 22924, + "end": 22995, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 22863, + "end": 23001, + "name": "POP", + "source": 16 + }, + { + "begin": 22863, + "end": 23001, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 23007, + "end": 23162, + "name": "tag", + "source": 16, + "value": "740" + }, + { + "begin": 23007, + "end": 23162, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 23061, + "end": 23066, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 23099, + "end": 23105, + "name": "DUP2", + "source": 16 + }, + { + "begin": 23086, + "end": 23106, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 23077, + "end": 23106, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 23077, + "end": 23106, + "name": "POP", + "source": 16 + }, + { + "begin": 23115, + "end": 23156, + "name": "PUSH [tag]", + "source": 16, + "value": "999" + }, + { + "begin": 23150, + "end": 23155, + "name": "DUP2", + "source": 16 + }, + { + "begin": 23115, + "end": 23156, + "name": "PUSH [tag]", + "source": 16, + "value": "739" + }, + { + "begin": 23115, + "end": 23156, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 23115, + "end": 23156, + "name": "tag", + "source": 16, + "value": "999" + }, + { + "begin": 23115, + "end": 23156, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 23007, + "end": 23162, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 23007, + "end": 23162, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 23007, + "end": 23162, + "name": "POP", + "source": 16 + }, + { + "begin": 23007, + "end": 23162, + "name": "POP", + "source": 16 + }, + { + "begin": 23007, + "end": 23162, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 23168, + "end": 23819, + "name": "tag", + "source": 16, + "value": "439" + }, + { + "begin": 23168, + "end": 23819, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 23261, + "end": 23267, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 23269, + "end": 23275, + "name": "DUP1", + "source": 16 + }, + { + "begin": 23277, + "end": 23283, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 23326, + "end": 23328, + "name": "PUSH", + "source": 16, + "value": "60" + }, + { + "begin": 23314, + "end": 23323, + "name": "DUP5", + "source": 16 + }, + { + "begin": 23305, + "end": 23312, + "name": "DUP7", + "source": 16 + }, + { + "begin": 23301, + "end": 23324, + "name": "SUB", + "source": 16 + }, + { + "begin": 23297, + "end": 23329, + "name": "SLT", + "source": 16 + }, + { + "begin": 23294, + "end": 23413, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 23294, + "end": 23413, + "name": "PUSH [tag]", + "source": 16, + "value": "1001" + }, + { + "begin": 23294, + "end": 23413, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 23332, + "end": 23411, + "name": "PUSH [tag]", + "source": 16, + "value": "1002" + }, + { + "begin": 23332, + "end": 23411, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 23332, + "end": 23411, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 23332, + "end": 23411, + "name": "tag", + "source": 16, + "value": "1002" + }, + { + "begin": 23332, + "end": 23411, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 23294, + "end": 23413, + "name": "tag", + "source": 16, + "value": "1001" + }, + { + "begin": 23294, + "end": 23413, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 23452, + "end": 23453, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 23477, + "end": 23538, + "name": "PUSH [tag]", + "source": 16, + "value": "1003" + }, + { + "begin": 23530, + "end": 23537, + "name": "DUP7", + "source": 16 + }, + { + "begin": 23521, + "end": 23527, + "name": "DUP3", + "source": 16 + }, + { + "begin": 23510, + "end": 23519, + "name": "DUP8", + "source": 16 + }, + { + "begin": 23506, + "end": 23528, + "name": "ADD", + "source": 16 + }, + { + "begin": 23477, + "end": 23538, + "name": "PUSH [tag]", + "source": 16, + "value": "740" + }, + { + "begin": 23477, + "end": 23538, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 23477, + "end": 23538, + "name": "tag", + "source": 16, + "value": "1003" + }, + { + "begin": 23477, + "end": 23538, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 23467, + "end": 23538, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 23467, + "end": 23538, + "name": "POP", + "source": 16 + }, + { + "begin": 23423, + "end": 23548, + "name": "POP", + "source": 16 + }, + { + "begin": 23587, + "end": 23589, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 23613, + "end": 23666, + "name": "PUSH [tag]", + "source": 16, + "value": "1004" + }, + { + "begin": 23658, + "end": 23665, + "name": "DUP7", + "source": 16 + }, + { + "begin": 23649, + "end": 23655, + "name": "DUP3", + "source": 16 + }, + { + "begin": 23638, + "end": 23647, + "name": "DUP8", + "source": 16 + }, + { + "begin": 23634, + "end": 23656, + "name": "ADD", + "source": 16 + }, + { + "begin": 23613, + "end": 23666, + "name": "PUSH [tag]", + "source": 16, + "value": "710" + }, + { + "begin": 23613, + "end": 23666, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 23613, + "end": 23666, + "name": "tag", + "source": 16, + "value": "1004" + }, + { + "begin": 23613, + "end": 23666, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 23603, + "end": 23666, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 23603, + "end": 23666, + "name": "POP", + "source": 16 + }, + { + "begin": 23558, + "end": 23676, + "name": "POP", + "source": 16 + }, + { + "begin": 23715, + "end": 23717, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 23741, + "end": 23802, + "name": "PUSH [tag]", + "source": 16, + "value": "1005" + }, + { + "begin": 23794, + "end": 23801, + "name": "DUP7", + "source": 16 + }, + { + "begin": 23785, + "end": 23791, + "name": "DUP3", + "source": 16 + }, + { + "begin": 23774, + "end": 23783, + "name": "DUP8", + "source": 16 + }, + { + "begin": 23770, + "end": 23792, + "name": "ADD", + "source": 16 + }, + { + "begin": 23741, + "end": 23802, + "name": "PUSH [tag]", + "source": 16, + "value": "740" + }, + { + "begin": 23741, + "end": 23802, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 23741, + "end": 23802, + "name": "tag", + "source": 16, + "value": "1005" + }, + { + "begin": 23741, + "end": 23802, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 23731, + "end": 23802, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 23731, + "end": 23802, + "name": "POP", + "source": 16 + }, + { + "begin": 23686, + "end": 23812, + "name": "POP", + "source": 16 + }, + { + "begin": 23168, + "end": 23819, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 23168, + "end": 23819, + "name": "POP", + "source": 16 + }, + { + "begin": 23168, + "end": 23819, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 23168, + "end": 23819, + "name": "POP", + "source": 16 + }, + { + "begin": 23168, + "end": 23819, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 23168, + "end": 23819, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 23825, + "end": 24005, + "name": "tag", + "source": 16, + "value": "741" + }, + { + "begin": 23825, + "end": 24005, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 23873, + "end": 23950, + "name": "PUSH", + "source": 16, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 23870, + "end": 23871, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 23863, + "end": 23951, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 23970, + "end": 23974, + "name": "PUSH", + "source": 16, + "value": "11" + }, + { + "begin": 23967, + "end": 23968, + "name": "PUSH", + "source": 16, + "value": "4" + }, + { + "begin": 23960, + "end": 23975, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 23994, + "end": 23998, + "name": "PUSH", + "source": 16, + "value": "24" + }, + { + "begin": 23991, + "end": 23992, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 23984, + "end": 23999, + "name": "REVERT", + "source": 16 + }, + { + "begin": 24011, + "end": 24202, + "name": "tag", + "source": 16, + "value": "451" + }, + { + "begin": 24011, + "end": 24202, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24051, + "end": 24054, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 24070, + "end": 24090, + "name": "PUSH [tag]", + "source": 16, + "value": "1008" + }, + { + "begin": 24088, + "end": 24089, + "name": "DUP3", + "source": 16 + }, + { + "begin": 24070, + "end": 24090, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 24070, + "end": 24090, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24070, + "end": 24090, + "name": "tag", + "source": 16, + "value": "1008" + }, + { + "begin": 24070, + "end": 24090, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24065, + "end": 24090, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 24065, + "end": 24090, + "name": "POP", + "source": 16 + }, + { + "begin": 24104, + "end": 24124, + "name": "PUSH [tag]", + "source": 16, + "value": "1009" + }, + { + "begin": 24122, + "end": 24123, + "name": "DUP4", + "source": 16 + }, + { + "begin": 24104, + "end": 24124, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 24104, + "end": 24124, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24104, + "end": 24124, + "name": "tag", + "source": 16, + "value": "1009" + }, + { + "begin": 24104, + "end": 24124, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24099, + "end": 24124, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 24099, + "end": 24124, + "name": "POP", + "source": 16 + }, + { + "begin": 24147, + "end": 24148, + "name": "DUP3", + "source": 16 + }, + { + "begin": 24144, + "end": 24145, + "name": "DUP3", + "source": 16 + }, + { + "begin": 24140, + "end": 24149, + "name": "ADD", + "source": 16 + }, + { + "begin": 24133, + "end": 24149, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 24133, + "end": 24149, + "name": "POP", + "source": 16 + }, + { + "begin": 24168, + "end": 24171, + "name": "DUP1", + "source": 16 + }, + { + "begin": 24165, + "end": 24166, + "name": "DUP3", + "source": 16 + }, + { + "begin": 24162, + "end": 24172, + "name": "GT", + "source": 16 + }, + { + "begin": 24159, + "end": 24195, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 24159, + "end": 24195, + "name": "PUSH [tag]", + "source": 16, + "value": "1010" + }, + { + "begin": 24159, + "end": 24195, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 24175, + "end": 24193, + "name": "PUSH [tag]", + "source": 16, + "value": "1011" + }, + { + "begin": 24175, + "end": 24193, + "name": "PUSH [tag]", + "source": 16, + "value": "741" + }, + { + "begin": 24175, + "end": 24193, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24175, + "end": 24193, + "name": "tag", + "source": 16, + "value": "1011" + }, + { + "begin": 24175, + "end": 24193, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24159, + "end": 24195, + "name": "tag", + "source": 16, + "value": "1010" + }, + { + "begin": 24159, + "end": 24195, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24011, + "end": 24202, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 24011, + "end": 24202, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 24011, + "end": 24202, + "name": "POP", + "source": 16 + }, + { + "begin": 24011, + "end": 24202, + "name": "POP", + "source": 16 + }, + { + "begin": 24011, + "end": 24202, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24208, + "end": 24540, + "name": "tag", + "source": 16, + "value": "453" + }, + { + "begin": 24208, + "end": 24540, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24329, + "end": 24333, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 24367, + "end": 24369, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 24356, + "end": 24365, + "name": "DUP3", + "source": 16 + }, + { + "begin": 24352, + "end": 24370, + "name": "ADD", + "source": 16 + }, + { + "begin": 24344, + "end": 24370, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 24344, + "end": 24370, + "name": "POP", + "source": 16 + }, + { + "begin": 24380, + "end": 24451, + "name": "PUSH [tag]", + "source": 16, + "value": "1013" + }, + { + "begin": 24448, + "end": 24449, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 24437, + "end": 24446, + "name": "DUP4", + "source": 16 + }, + { + "begin": 24433, + "end": 24450, + "name": "ADD", + "source": 16 + }, + { + "begin": 24424, + "end": 24430, + "name": "DUP6", + "source": 16 + }, + { + "begin": 24380, + "end": 24451, + "name": "PUSH [tag]", + "source": 16, + "value": "700" + }, + { + "begin": 24380, + "end": 24451, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24380, + "end": 24451, + "name": "tag", + "source": 16, + "value": "1013" + }, + { + "begin": 24380, + "end": 24451, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24461, + "end": 24533, + "name": "PUSH [tag]", + "source": 16, + "value": "1014" + }, + { + "begin": 24529, + "end": 24531, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 24518, + "end": 24527, + "name": "DUP4", + "source": 16 + }, + { + "begin": 24514, + "end": 24532, + "name": "ADD", + "source": 16 + }, + { + "begin": 24505, + "end": 24511, + "name": "DUP5", + "source": 16 + }, + { + "begin": 24461, + "end": 24533, + "name": "PUSH [tag]", + "source": 16, + "value": "708" + }, + { + "begin": 24461, + "end": 24533, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24461, + "end": 24533, + "name": "tag", + "source": 16, + "value": "1014" + }, + { + "begin": 24461, + "end": 24533, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24208, + "end": 24540, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 24208, + "end": 24540, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 24208, + "end": 24540, + "name": "POP", + "source": 16 + }, + { + "begin": 24208, + "end": 24540, + "name": "POP", + "source": 16 + }, + { + "begin": 24208, + "end": 24540, + "name": "POP", + "source": 16 + }, + { + "begin": 24208, + "end": 24540, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24546, + "end": 24956, + "name": "tag", + "source": 16, + "value": "456" + }, + { + "begin": 24546, + "end": 24956, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24586, + "end": 24593, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 24609, + "end": 24629, + "name": "PUSH [tag]", + "source": 16, + "value": "1016" + }, + { + "begin": 24627, + "end": 24628, + "name": "DUP3", + "source": 16 + }, + { + "begin": 24609, + "end": 24629, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 24609, + "end": 24629, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24609, + "end": 24629, + "name": "tag", + "source": 16, + "value": "1016" + }, + { + "begin": 24609, + "end": 24629, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24604, + "end": 24629, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 24604, + "end": 24629, + "name": "POP", + "source": 16 + }, + { + "begin": 24643, + "end": 24663, + "name": "PUSH [tag]", + "source": 16, + "value": "1017" + }, + { + "begin": 24661, + "end": 24662, + "name": "DUP4", + "source": 16 + }, + { + "begin": 24643, + "end": 24663, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 24643, + "end": 24663, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24643, + "end": 24663, + "name": "tag", + "source": 16, + "value": "1017" + }, + { + "begin": 24643, + "end": 24663, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24638, + "end": 24663, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 24638, + "end": 24663, + "name": "POP", + "source": 16 + }, + { + "begin": 24698, + "end": 24699, + "name": "DUP3", + "source": 16 + }, + { + "begin": 24695, + "end": 24696, + "name": "DUP3", + "source": 16 + }, + { + "begin": 24691, + "end": 24700, + "name": "MUL", + "source": 16 + }, + { + "begin": 24720, + "end": 24750, + "name": "PUSH [tag]", + "source": 16, + "value": "1018" + }, + { + "begin": 24738, + "end": 24749, + "name": "DUP2", + "source": 16 + }, + { + "begin": 24720, + "end": 24750, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 24720, + "end": 24750, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24720, + "end": 24750, + "name": "tag", + "source": 16, + "value": "1018" + }, + { + "begin": 24720, + "end": 24750, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24709, + "end": 24750, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 24709, + "end": 24750, + "name": "POP", + "source": 16 + }, + { + "begin": 24899, + "end": 24900, + "name": "DUP3", + "source": 16 + }, + { + "begin": 24890, + "end": 24897, + "name": "DUP3", + "source": 16 + }, + { + "begin": 24886, + "end": 24901, + "name": "DIV", + "source": 16 + }, + { + "begin": 24883, + "end": 24884, + "name": "DUP5", + "source": 16 + }, + { + "begin": 24880, + "end": 24902, + "name": "EQ", + "source": 16 + }, + { + "begin": 24860, + "end": 24861, + "name": "DUP4", + "source": 16 + }, + { + "begin": 24853, + "end": 24862, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 24833, + "end": 24916, + "name": "OR", + "source": 16 + }, + { + "begin": 24810, + "end": 24949, + "name": "PUSH [tag]", + "source": 16, + "value": "1019" + }, + { + "begin": 24810, + "end": 24949, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 24929, + "end": 24947, + "name": "PUSH [tag]", + "source": 16, + "value": "1020" + }, + { + "begin": 24929, + "end": 24947, + "name": "PUSH [tag]", + "source": 16, + "value": "741" + }, + { + "begin": 24929, + "end": 24947, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24929, + "end": 24947, + "name": "tag", + "source": 16, + "value": "1020" + }, + { + "begin": 24929, + "end": 24947, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24810, + "end": 24949, + "name": "tag", + "source": 16, + "value": "1019" + }, + { + "begin": 24810, + "end": 24949, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 24594, + "end": 24956, + "name": "POP", + "source": 16 + }, + { + "begin": 24546, + "end": 24956, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 24546, + "end": 24956, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 24546, + "end": 24956, + "name": "POP", + "source": 16 + }, + { + "begin": 24546, + "end": 24956, + "name": "POP", + "source": 16 + }, + { + "begin": 24546, + "end": 24956, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 24962, + "end": 25142, + "name": "tag", + "source": 16, + "value": "742" + }, + { + "begin": 24962, + "end": 25142, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25010, + "end": 25087, + "name": "PUSH", + "source": 16, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 25007, + "end": 25008, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 25000, + "end": 25088, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 25107, + "end": 25111, + "name": "PUSH", + "source": 16, + "value": "12" + }, + { + "begin": 25104, + "end": 25105, + "name": "PUSH", + "source": 16, + "value": "4" + }, + { + "begin": 25097, + "end": 25112, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 25131, + "end": 25135, + "name": "PUSH", + "source": 16, + "value": "24" + }, + { + "begin": 25128, + "end": 25129, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 25121, + "end": 25136, + "name": "REVERT", + "source": 16 + }, + { + "begin": 25148, + "end": 25333, + "name": "tag", + "source": 16, + "value": "458" + }, + { + "begin": 25148, + "end": 25333, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25188, + "end": 25189, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 25205, + "end": 25225, + "name": "PUSH [tag]", + "source": 16, + "value": "1023" + }, + { + "begin": 25223, + "end": 25224, + "name": "DUP3", + "source": 16 + }, + { + "begin": 25205, + "end": 25225, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 25205, + "end": 25225, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 25205, + "end": 25225, + "name": "tag", + "source": 16, + "value": "1023" + }, + { + "begin": 25205, + "end": 25225, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25200, + "end": 25225, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 25200, + "end": 25225, + "name": "POP", + "source": 16 + }, + { + "begin": 25239, + "end": 25259, + "name": "PUSH [tag]", + "source": 16, + "value": "1024" + }, + { + "begin": 25257, + "end": 25258, + "name": "DUP4", + "source": 16 + }, + { + "begin": 25239, + "end": 25259, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 25239, + "end": 25259, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 25239, + "end": 25259, + "name": "tag", + "source": 16, + "value": "1024" + }, + { + "begin": 25239, + "end": 25259, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25234, + "end": 25259, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 25234, + "end": 25259, + "name": "POP", + "source": 16 + }, + { + "begin": 25278, + "end": 25279, + "name": "DUP3", + "source": 16 + }, + { + "begin": 25268, + "end": 25303, + "name": "PUSH [tag]", + "source": 16, + "value": "1025" + }, + { + "begin": 25268, + "end": 25303, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 25283, + "end": 25301, + "name": "PUSH [tag]", + "source": 16, + "value": "1026" + }, + { + "begin": 25283, + "end": 25301, + "name": "PUSH [tag]", + "source": 16, + "value": "742" + }, + { + "begin": 25283, + "end": 25301, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 25283, + "end": 25301, + "name": "tag", + "source": 16, + "value": "1026" + }, + { + "begin": 25283, + "end": 25301, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25268, + "end": 25303, + "name": "tag", + "source": 16, + "value": "1025" + }, + { + "begin": 25268, + "end": 25303, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25325, + "end": 25326, + "name": "DUP3", + "source": 16 + }, + { + "begin": 25322, + "end": 25323, + "name": "DUP3", + "source": 16 + }, + { + "begin": 25318, + "end": 25327, + "name": "DIV", + "source": 16 + }, + { + "begin": 25313, + "end": 25327, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 25313, + "end": 25327, + "name": "POP", + "source": 16 + }, + { + "begin": 25148, + "end": 25333, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 25148, + "end": 25333, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 25148, + "end": 25333, + "name": "POP", + "source": 16 + }, + { + "begin": 25148, + "end": 25333, + "name": "POP", + "source": 16 + }, + { + "begin": 25148, + "end": 25333, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 25339, + "end": 25533, + "name": "tag", + "source": 16, + "value": "461" + }, + { + "begin": 25339, + "end": 25533, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25379, + "end": 25383, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 25399, + "end": 25419, + "name": "PUSH [tag]", + "source": 16, + "value": "1028" + }, + { + "begin": 25417, + "end": 25418, + "name": "DUP3", + "source": 16 + }, + { + "begin": 25399, + "end": 25419, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 25399, + "end": 25419, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 25399, + "end": 25419, + "name": "tag", + "source": 16, + "value": "1028" + }, + { + "begin": 25399, + "end": 25419, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25394, + "end": 25419, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 25394, + "end": 25419, + "name": "POP", + "source": 16 + }, + { + "begin": 25433, + "end": 25453, + "name": "PUSH [tag]", + "source": 16, + "value": "1029" + }, + { + "begin": 25451, + "end": 25452, + "name": "DUP4", + "source": 16 + }, + { + "begin": 25433, + "end": 25453, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 25433, + "end": 25453, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 25433, + "end": 25453, + "name": "tag", + "source": 16, + "value": "1029" + }, + { + "begin": 25433, + "end": 25453, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25428, + "end": 25453, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 25428, + "end": 25453, + "name": "POP", + "source": 16 + }, + { + "begin": 25477, + "end": 25478, + "name": "DUP3", + "source": 16 + }, + { + "begin": 25474, + "end": 25475, + "name": "DUP3", + "source": 16 + }, + { + "begin": 25470, + "end": 25479, + "name": "SUB", + "source": 16 + }, + { + "begin": 25462, + "end": 25479, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 25462, + "end": 25479, + "name": "POP", + "source": 16 + }, + { + "begin": 25501, + "end": 25502, + "name": "DUP2", + "source": 16 + }, + { + "begin": 25495, + "end": 25499, + "name": "DUP2", + "source": 16 + }, + { + "begin": 25492, + "end": 25503, + "name": "GT", + "source": 16 + }, + { + "begin": 25489, + "end": 25526, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 25489, + "end": 25526, + "name": "PUSH [tag]", + "source": 16, + "value": "1030" + }, + { + "begin": 25489, + "end": 25526, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 25506, + "end": 25524, + "name": "PUSH [tag]", + "source": 16, + "value": "1031" + }, + { + "begin": 25506, + "end": 25524, + "name": "PUSH [tag]", + "source": 16, + "value": "741" + }, + { + "begin": 25506, + "end": 25524, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 25506, + "end": 25524, + "name": "tag", + "source": 16, + "value": "1031" + }, + { + "begin": 25506, + "end": 25524, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25489, + "end": 25526, + "name": "tag", + "source": 16, + "value": "1030" + }, + { + "begin": 25489, + "end": 25526, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25339, + "end": 25533, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 25339, + "end": 25533, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 25339, + "end": 25533, + "name": "POP", + "source": 16 + }, + { + "begin": 25339, + "end": 25533, + "name": "POP", + "source": 16 + }, + { + "begin": 25339, + "end": 25533, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 25539, + "end": 25720, + "name": "tag", + "source": 16, + "value": "743" + }, + { + "begin": 25539, + "end": 25720, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25679, + "end": 25712, + "name": "PUSH", + "source": 16, + "value": "5265656E7472616E637947756172643A207265656E7472616E742063616C6C00" + }, + { + "begin": 25675, + "end": 25676, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 25667, + "end": 25673, + "name": "DUP3", + "source": 16 + }, + { + "begin": 25663, + "end": 25677, + "name": "ADD", + "source": 16 + }, + { + "begin": 25656, + "end": 25713, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 25539, + "end": 25720, + "name": "POP", + "source": 16 + }, + { + "begin": 25539, + "end": 25720, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 25726, + "end": 26092, + "name": "tag", + "source": 16, + "value": "744" + }, + { + "begin": 25726, + "end": 26092, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25868, + "end": 25871, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 25889, + "end": 25956, + "name": "PUSH [tag]", + "source": 16, + "value": "1034" + }, + { + "begin": 25953, + "end": 25955, + "name": "PUSH", + "source": 16, + "value": "1F" + }, + { + "begin": 25948, + "end": 25951, + "name": "DUP4", + "source": 16 + }, + { + "begin": 25889, + "end": 25956, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 25889, + "end": 25956, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 25889, + "end": 25956, + "name": "tag", + "source": 16, + "value": "1034" + }, + { + "begin": 25889, + "end": 25956, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 25882, + "end": 25956, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 25882, + "end": 25956, + "name": "POP", + "source": 16 + }, + { + "begin": 25965, + "end": 26058, + "name": "PUSH [tag]", + "source": 16, + "value": "1035" + }, + { + "begin": 26054, + "end": 26057, + "name": "DUP3", + "source": 16 + }, + { + "begin": 25965, + "end": 26058, + "name": "PUSH [tag]", + "source": 16, + "value": "743" + }, + { + "begin": 25965, + "end": 26058, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 25965, + "end": 26058, + "name": "tag", + "source": 16, + "value": "1035" + }, + { + "begin": 25965, + "end": 26058, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 26083, + "end": 26085, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 26078, + "end": 26081, + "name": "DUP3", + "source": 16 + }, + { + "begin": 26074, + "end": 26086, + "name": "ADD", + "source": 16 + }, + { + "begin": 26067, + "end": 26086, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 26067, + "end": 26086, + "name": "POP", + "source": 16 + }, + { + "begin": 25726, + "end": 26092, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 25726, + "end": 26092, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 25726, + "end": 26092, + "name": "POP", + "source": 16 + }, + { + "begin": 25726, + "end": 26092, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 26098, + "end": 26517, + "name": "tag", + "source": 16, + "value": "473" + }, + { + "begin": 26098, + "end": 26517, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 26264, + "end": 26268, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 26302, + "end": 26304, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 26291, + "end": 26300, + "name": "DUP3", + "source": 16 + }, + { + "begin": 26287, + "end": 26305, + "name": "ADD", + "source": 16 + }, + { + "begin": 26279, + "end": 26305, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 26279, + "end": 26305, + "name": "POP", + "source": 16 + }, + { + "begin": 26351, + "end": 26360, + "name": "DUP2", + "source": 16 + }, + { + "begin": 26345, + "end": 26349, + "name": "DUP2", + "source": 16 + }, + { + "begin": 26341, + "end": 26361, + "name": "SUB", + "source": 16 + }, + { + "begin": 26337, + "end": 26338, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 26326, + "end": 26335, + "name": "DUP4", + "source": 16 + }, + { + "begin": 26322, + "end": 26339, + "name": "ADD", + "source": 16 + }, + { + "begin": 26315, + "end": 26362, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 26379, + "end": 26510, + "name": "PUSH [tag]", + "source": 16, + "value": "1037" + }, + { + "begin": 26505, + "end": 26509, + "name": "DUP2", + "source": 16 + }, + { + "begin": 26379, + "end": 26510, + "name": "PUSH [tag]", + "source": 16, + "value": "744" + }, + { + "begin": 26379, + "end": 26510, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 26379, + "end": 26510, + "name": "tag", + "source": 16, + "value": "1037" + }, + { + "begin": 26379, + "end": 26510, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 26371, + "end": 26510, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 26371, + "end": 26510, + "name": "POP", + "source": 16 + }, + { + "begin": 26098, + "end": 26517, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 26098, + "end": 26517, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 26098, + "end": 26517, + "name": "POP", + "source": 16 + }, + { + "begin": 26098, + "end": 26517, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 26523, + "end": 26753, + "name": "tag", + "source": 16, + "value": "745" + }, + { + "begin": 26523, + "end": 26753, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 26663, + "end": 26697, + "name": "PUSH", + "source": 16, + "value": "496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069" + }, + { + "begin": 26659, + "end": 26660, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 26651, + "end": 26657, + "name": "DUP3", + "source": 16 + }, + { + "begin": 26647, + "end": 26661, + "name": "ADD", + "source": 16 + }, + { + "begin": 26640, + "end": 26698, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 26732, + "end": 26745, + "name": "PUSH", + "source": 16, + "value": "6E697469616C697A696E67000000000000000000000000000000000000000000" + }, + { + "begin": 26727, + "end": 26729, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 26719, + "end": 26725, + "name": "DUP3", + "source": 16 + }, + { + "begin": 26715, + "end": 26730, + "name": "ADD", + "source": 16 + }, + { + "begin": 26708, + "end": 26746, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 26523, + "end": 26753, + "name": "POP", + "source": 16 + }, + { + "begin": 26523, + "end": 26753, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 26759, + "end": 27125, + "name": "tag", + "source": 16, + "value": "746" + }, + { + "begin": 26759, + "end": 27125, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 26901, + "end": 26904, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 26922, + "end": 26989, + "name": "PUSH [tag]", + "source": 16, + "value": "1040" + }, + { + "begin": 26986, + "end": 26988, + "name": "PUSH", + "source": 16, + "value": "2B" + }, + { + "begin": 26981, + "end": 26984, + "name": "DUP4", + "source": 16 + }, + { + "begin": 26922, + "end": 26989, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 26922, + "end": 26989, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 26922, + "end": 26989, + "name": "tag", + "source": 16, + "value": "1040" + }, + { + "begin": 26922, + "end": 26989, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 26915, + "end": 26989, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 26915, + "end": 26989, + "name": "POP", + "source": 16 + }, + { + "begin": 26998, + "end": 27091, + "name": "PUSH [tag]", + "source": 16, + "value": "1041" + }, + { + "begin": 27087, + "end": 27090, + "name": "DUP3", + "source": 16 + }, + { + "begin": 26998, + "end": 27091, + "name": "PUSH [tag]", + "source": 16, + "value": "745" + }, + { + "begin": 26998, + "end": 27091, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 26998, + "end": 27091, + "name": "tag", + "source": 16, + "value": "1041" + }, + { + "begin": 26998, + "end": 27091, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 27116, + "end": 27118, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 27111, + "end": 27114, + "name": "DUP3", + "source": 16 + }, + { + "begin": 27107, + "end": 27119, + "name": "ADD", + "source": 16 + }, + { + "begin": 27100, + "end": 27119, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 27100, + "end": 27119, + "name": "POP", + "source": 16 + }, + { + "begin": 26759, + "end": 27125, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 26759, + "end": 27125, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 26759, + "end": 27125, + "name": "POP", + "source": 16 + }, + { + "begin": 26759, + "end": 27125, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 27131, + "end": 27550, + "name": "tag", + "source": 16, + "value": "528" + }, + { + "begin": 27131, + "end": 27550, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 27297, + "end": 27301, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 27335, + "end": 27337, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 27324, + "end": 27333, + "name": "DUP3", + "source": 16 + }, + { + "begin": 27320, + "end": 27338, + "name": "ADD", + "source": 16 + }, + { + "begin": 27312, + "end": 27338, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 27312, + "end": 27338, + "name": "POP", + "source": 16 + }, + { + "begin": 27384, + "end": 27393, + "name": "DUP2", + "source": 16 + }, + { + "begin": 27378, + "end": 27382, + "name": "DUP2", + "source": 16 + }, + { + "begin": 27374, + "end": 27394, + "name": "SUB", + "source": 16 + }, + { + "begin": 27370, + "end": 27371, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 27359, + "end": 27368, + "name": "DUP4", + "source": 16 + }, + { + "begin": 27355, + "end": 27372, + "name": "ADD", + "source": 16 + }, + { + "begin": 27348, + "end": 27395, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 27412, + "end": 27543, + "name": "PUSH [tag]", + "source": 16, + "value": "1043" + }, + { + "begin": 27538, + "end": 27542, + "name": "DUP2", + "source": 16 + }, + { + "begin": 27412, + "end": 27543, + "name": "PUSH [tag]", + "source": 16, + "value": "746" + }, + { + "begin": 27412, + "end": 27543, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 27412, + "end": 27543, + "name": "tag", + "source": 16, + "value": "1043" + }, + { + "begin": 27412, + "end": 27543, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 27404, + "end": 27543, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 27404, + "end": 27543, + "name": "POP", + "source": 16 + }, + { + "begin": 27131, + "end": 27550, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 27131, + "end": 27550, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 27131, + "end": 27550, + "name": "POP", + "source": 16 + }, + { + "begin": 27131, + "end": 27550, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 27556, + "end": 27703, + "name": "tag", + "source": 16, + "value": "747" + }, + { + "begin": 27556, + "end": 27703, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 27657, + "end": 27668, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 27694, + "end": 27697, + "name": "DUP2", + "source": 16 + }, + { + "begin": 27679, + "end": 27697, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 27679, + "end": 27697, + "name": "POP", + "source": 16 + }, + { + "begin": 27556, + "end": 27703, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 27556, + "end": 27703, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 27556, + "end": 27703, + "name": "POP", + "source": 16 + }, + { + "begin": 27556, + "end": 27703, + "name": "POP", + "source": 16 + }, + { + "begin": 27556, + "end": 27703, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 27709, + "end": 27823, + "name": "tag", + "source": 16, + "value": "748" + }, + { + "begin": 27709, + "end": 27823, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 27709, + "end": 27823, + "name": "POP", + "source": 16 + }, + { + "begin": 27709, + "end": 27823, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 27829, + "end": 28227, + "name": "tag", + "source": 16, + "value": "749" + }, + { + "begin": 27829, + "end": 28227, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 27988, + "end": 27991, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 28009, + "end": 28092, + "name": "PUSH [tag]", + "source": 16, + "value": "1047" + }, + { + "begin": 28090, + "end": 28091, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 28085, + "end": 28088, + "name": "DUP4", + "source": 16 + }, + { + "begin": 28009, + "end": 28092, + "name": "PUSH [tag]", + "source": 16, + "value": "747" + }, + { + "begin": 28009, + "end": 28092, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 28009, + "end": 28092, + "name": "tag", + "source": 16, + "value": "1047" + }, + { + "begin": 28009, + "end": 28092, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 28002, + "end": 28092, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 28002, + "end": 28092, + "name": "POP", + "source": 16 + }, + { + "begin": 28101, + "end": 28194, + "name": "PUSH [tag]", + "source": 16, + "value": "1048" + }, + { + "begin": 28190, + "end": 28193, + "name": "DUP3", + "source": 16 + }, + { + "begin": 28101, + "end": 28194, + "name": "PUSH [tag]", + "source": 16, + "value": "748" + }, + { + "begin": 28101, + "end": 28194, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 28101, + "end": 28194, + "name": "tag", + "source": 16, + "value": "1048" + }, + { + "begin": 28101, + "end": 28194, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 28219, + "end": 28220, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 28214, + "end": 28217, + "name": "DUP3", + "source": 16 + }, + { + "begin": 28210, + "end": 28221, + "name": "ADD", + "source": 16 + }, + { + "begin": 28203, + "end": 28221, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 28203, + "end": 28221, + "name": "POP", + "source": 16 + }, + { + "begin": 27829, + "end": 28227, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 27829, + "end": 28227, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 27829, + "end": 28227, + "name": "POP", + "source": 16 + }, + { + "begin": 27829, + "end": 28227, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 28233, + "end": 28612, + "name": "tag", + "source": 16, + "value": "543" + }, + { + "begin": 28233, + "end": 28612, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 28417, + "end": 28420, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 28439, + "end": 28586, + "name": "PUSH [tag]", + "source": 16, + "value": "1050" + }, + { + "begin": 28582, + "end": 28585, + "name": "DUP3", + "source": 16 + }, + { + "begin": 28439, + "end": 28586, + "name": "PUSH [tag]", + "source": 16, + "value": "749" + }, + { + "begin": 28439, + "end": 28586, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 28439, + "end": 28586, + "name": "tag", + "source": 16, + "value": "1050" + }, + { + "begin": 28439, + "end": 28586, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 28432, + "end": 28586, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 28432, + "end": 28586, + "name": "POP", + "source": 16 + }, + { + "begin": 28603, + "end": 28606, + "name": "DUP2", + "source": 16 + }, + { + "begin": 28596, + "end": 28606, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 28596, + "end": 28606, + "name": "POP", + "source": 16 + }, + { + "begin": 28233, + "end": 28612, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 28233, + "end": 28612, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 28233, + "end": 28612, + "name": "POP", + "source": 16 + }, + { + "begin": 28233, + "end": 28612, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 28618, + "end": 28766, + "name": "tag", + "source": 16, + "value": "750" + }, + { + "begin": 28618, + "end": 28766, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 28720, + "end": 28731, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 28757, + "end": 28760, + "name": "DUP2", + "source": 16 + }, + { + "begin": 28742, + "end": 28760, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 28742, + "end": 28760, + "name": "POP", + "source": 16 + }, + { + "begin": 28618, + "end": 28766, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 28618, + "end": 28766, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 28618, + "end": 28766, + "name": "POP", + "source": 16 + }, + { + "begin": 28618, + "end": 28766, + "name": "POP", + "source": 16 + }, + { + "begin": 28618, + "end": 28766, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 28772, + "end": 28945, + "name": "tag", + "source": 16, + "value": "751" + }, + { + "begin": 28772, + "end": 28945, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 28912, + "end": 28937, + "name": "PUSH", + "source": 16, + "value": "416363657373436F6E74726F6C3A206163636F756E7420000000000000000000" + }, + { + "begin": 28908, + "end": 28909, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 28900, + "end": 28906, + "name": "DUP3", + "source": 16 + }, + { + "begin": 28896, + "end": 28910, + "name": "ADD", + "source": 16 + }, + { + "begin": 28889, + "end": 28938, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 28772, + "end": 28945, + "name": "POP", + "source": 16 + }, + { + "begin": 28772, + "end": 28945, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 28951, + "end": 29353, + "name": "tag", + "source": 16, + "value": "752" + }, + { + "begin": 28951, + "end": 29353, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 29111, + "end": 29114, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 29132, + "end": 29217, + "name": "PUSH [tag]", + "source": 16, + "value": "1054" + }, + { + "begin": 29214, + "end": 29216, + "name": "PUSH", + "source": 16, + "value": "17" + }, + { + "begin": 29209, + "end": 29212, + "name": "DUP4", + "source": 16 + }, + { + "begin": 29132, + "end": 29217, + "name": "PUSH [tag]", + "source": 16, + "value": "750" + }, + { + "begin": 29132, + "end": 29217, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 29132, + "end": 29217, + "name": "tag", + "source": 16, + "value": "1054" + }, + { + "begin": 29132, + "end": 29217, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 29125, + "end": 29217, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 29125, + "end": 29217, + "name": "POP", + "source": 16 + }, + { + "begin": 29226, + "end": 29319, + "name": "PUSH [tag]", + "source": 16, + "value": "1055" + }, + { + "begin": 29315, + "end": 29318, + "name": "DUP3", + "source": 16 + }, + { + "begin": 29226, + "end": 29319, + "name": "PUSH [tag]", + "source": 16, + "value": "751" + }, + { + "begin": 29226, + "end": 29319, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 29226, + "end": 29319, + "name": "tag", + "source": 16, + "value": "1055" + }, + { + "begin": 29226, + "end": 29319, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 29344, + "end": 29346, + "name": "PUSH", + "source": 16, + "value": "17" + }, + { + "begin": 29339, + "end": 29342, + "name": "DUP3", + "source": 16 + }, + { + "begin": 29335, + "end": 29347, + "name": "ADD", + "source": 16 + }, + { + "begin": 29328, + "end": 29347, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 29328, + "end": 29347, + "name": "POP", + "source": 16 + }, + { + "begin": 28951, + "end": 29353, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 28951, + "end": 29353, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 28951, + "end": 29353, + "name": "POP", + "source": 16 + }, + { + "begin": 28951, + "end": 29353, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 29359, + "end": 29458, + "name": "tag", + "source": 16, + "value": "753" + }, + { + "begin": 29359, + "end": 29458, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 29411, + "end": 29417, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 29445, + "end": 29450, + "name": "DUP2", + "source": 16 + }, + { + "begin": 29439, + "end": 29451, + "name": "MLOAD", + "source": 16 + }, + { + "begin": 29429, + "end": 29451, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 29429, + "end": 29451, + "name": "POP", + "source": 16 + }, + { + "begin": 29359, + "end": 29458, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 29359, + "end": 29458, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 29359, + "end": 29458, + "name": "POP", + "source": 16 + }, + { + "begin": 29359, + "end": 29458, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 29464, + "end": 29710, + "name": "tag", + "source": 16, + "value": "754" + }, + { + "begin": 29464, + "end": 29710, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 29545, + "end": 29546, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 29555, + "end": 29668, + "name": "tag", + "source": 16, + "value": "1058" + }, + { + "begin": 29555, + "end": 29668, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 29569, + "end": 29575, + "name": "DUP4", + "source": 16 + }, + { + "begin": 29566, + "end": 29567, + "name": "DUP2", + "source": 16 + }, + { + "begin": 29563, + "end": 29576, + "name": "LT", + "source": 16 + }, + { + "begin": 29555, + "end": 29668, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 29555, + "end": 29668, + "name": "PUSH [tag]", + "source": 16, + "value": "1060" + }, + { + "begin": 29555, + "end": 29668, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 29654, + "end": 29655, + "name": "DUP1", + "source": 16 + }, + { + "begin": 29649, + "end": 29652, + "name": "DUP3", + "source": 16 + }, + { + "begin": 29645, + "end": 29656, + "name": "ADD", + "source": 16 + }, + { + "begin": 29639, + "end": 29657, + "name": "MLOAD", + "source": 16 + }, + { + "begin": 29635, + "end": 29636, + "name": "DUP2", + "source": 16 + }, + { + "begin": 29630, + "end": 29633, + "name": "DUP5", + "source": 16 + }, + { + "begin": 29626, + "end": 29637, + "name": "ADD", + "source": 16 + }, + { + "begin": 29619, + "end": 29658, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 29591, + "end": 29593, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 29588, + "end": 29589, + "name": "DUP2", + "source": 16 + }, + { + "begin": 29584, + "end": 29594, + "name": "ADD", + "source": 16 + }, + { + "begin": 29579, + "end": 29594, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 29579, + "end": 29594, + "name": "POP", + "source": 16 + }, + { + "begin": 29555, + "end": 29668, + "name": "PUSH [tag]", + "source": 16, + "value": "1058" + }, + { + "begin": 29555, + "end": 29668, + "name": "JUMP", + "source": 16 + }, + { + "begin": 29555, + "end": 29668, + "name": "tag", + "source": 16, + "value": "1060" + }, + { + "begin": 29555, + "end": 29668, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 29702, + "end": 29703, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 29693, + "end": 29699, + "name": "DUP5", + "source": 16 + }, + { + "begin": 29688, + "end": 29691, + "name": "DUP5", + "source": 16 + }, + { + "begin": 29684, + "end": 29700, + "name": "ADD", + "source": 16 + }, + { + "begin": 29677, + "end": 29704, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 29526, + "end": 29710, + "name": "POP", + "source": 16 + }, + { + "begin": 29464, + "end": 29710, + "name": "POP", + "source": 16 + }, + { + "begin": 29464, + "end": 29710, + "name": "POP", + "source": 16 + }, + { + "begin": 29464, + "end": 29710, + "name": "POP", + "source": 16 + }, + { + "begin": 29464, + "end": 29710, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 29716, + "end": 30106, + "name": "tag", + "source": 16, + "value": "755" + }, + { + "begin": 29716, + "end": 30106, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 29822, + "end": 29825, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 29850, + "end": 29889, + "name": "PUSH [tag]", + "source": 16, + "value": "1062" + }, + { + "begin": 29883, + "end": 29888, + "name": "DUP3", + "source": 16 + }, + { + "begin": 29850, + "end": 29889, + "name": "PUSH [tag]", + "source": 16, + "value": "753" + }, + { + "begin": 29850, + "end": 29889, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 29850, + "end": 29889, + "name": "tag", + "source": 16, + "value": "1062" + }, + { + "begin": 29850, + "end": 29889, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 29905, + "end": 29994, + "name": "PUSH [tag]", + "source": 16, + "value": "1063" + }, + { + "begin": 29987, + "end": 29993, + "name": "DUP2", + "source": 16 + }, + { + "begin": 29982, + "end": 29985, + "name": "DUP6", + "source": 16 + }, + { + "begin": 29905, + "end": 29994, + "name": "PUSH [tag]", + "source": 16, + "value": "750" + }, + { + "begin": 29905, + "end": 29994, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 29905, + "end": 29994, + "name": "tag", + "source": 16, + "value": "1063" + }, + { + "begin": 29905, + "end": 29994, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 29898, + "end": 29994, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 29898, + "end": 29994, + "name": "POP", + "source": 16 + }, + { + "begin": 30003, + "end": 30068, + "name": "PUSH [tag]", + "source": 16, + "value": "1064" + }, + { + "begin": 30061, + "end": 30067, + "name": "DUP2", + "source": 16 + }, + { + "begin": 30056, + "end": 30059, + "name": "DUP6", + "source": 16 + }, + { + "begin": 30049, + "end": 30053, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 30042, + "end": 30047, + "name": "DUP7", + "source": 16 + }, + { + "begin": 30038, + "end": 30054, + "name": "ADD", + "source": 16 + }, + { + "begin": 30003, + "end": 30068, + "name": "PUSH [tag]", + "source": 16, + "value": "754" + }, + { + "begin": 30003, + "end": 30068, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 30003, + "end": 30068, + "name": "tag", + "source": 16, + "value": "1064" + }, + { + "begin": 30003, + "end": 30068, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 30093, + "end": 30099, + "name": "DUP1", + "source": 16 + }, + { + "begin": 30088, + "end": 30091, + "name": "DUP5", + "source": 16 + }, + { + "begin": 30084, + "end": 30100, + "name": "ADD", + "source": 16 + }, + { + "begin": 30077, + "end": 30100, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 30077, + "end": 30100, + "name": "POP", + "source": 16 + }, + { + "begin": 29826, + "end": 30106, + "name": "POP", + "source": 16 + }, + { + "begin": 29716, + "end": 30106, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 29716, + "end": 30106, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 29716, + "end": 30106, + "name": "POP", + "source": 16 + }, + { + "begin": 29716, + "end": 30106, + "name": "POP", + "source": 16 + }, + { + "begin": 29716, + "end": 30106, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 30112, + "end": 30279, + "name": "tag", + "source": 16, + "value": "756" + }, + { + "begin": 30112, + "end": 30279, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 30252, + "end": 30271, + "name": "PUSH", + "source": 16, + "value": "206973206D697373696E6720726F6C6520000000000000000000000000000000" + }, + { + "begin": 30248, + "end": 30249, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 30240, + "end": 30246, + "name": "DUP3", + "source": 16 + }, + { + "begin": 30236, + "end": 30250, + "name": "ADD", + "source": 16 + }, + { + "begin": 30229, + "end": 30272, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 30112, + "end": 30279, + "name": "POP", + "source": 16 + }, + { + "begin": 30112, + "end": 30279, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 30285, + "end": 30687, + "name": "tag", + "source": 16, + "value": "757" + }, + { + "begin": 30285, + "end": 30687, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 30445, + "end": 30448, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 30466, + "end": 30551, + "name": "PUSH [tag]", + "source": 16, + "value": "1067" + }, + { + "begin": 30548, + "end": 30550, + "name": "PUSH", + "source": 16, + "value": "11" + }, + { + "begin": 30543, + "end": 30546, + "name": "DUP4", + "source": 16 + }, + { + "begin": 30466, + "end": 30551, + "name": "PUSH [tag]", + "source": 16, + "value": "750" + }, + { + "begin": 30466, + "end": 30551, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 30466, + "end": 30551, + "name": "tag", + "source": 16, + "value": "1067" + }, + { + "begin": 30466, + "end": 30551, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 30459, + "end": 30551, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 30459, + "end": 30551, + "name": "POP", + "source": 16 + }, + { + "begin": 30560, + "end": 30653, + "name": "PUSH [tag]", + "source": 16, + "value": "1068" + }, + { + "begin": 30649, + "end": 30652, + "name": "DUP3", + "source": 16 + }, + { + "begin": 30560, + "end": 30653, + "name": "PUSH [tag]", + "source": 16, + "value": "756" + }, + { + "begin": 30560, + "end": 30653, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 30560, + "end": 30653, + "name": "tag", + "source": 16, + "value": "1068" + }, + { + "begin": 30560, + "end": 30653, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 30678, + "end": 30680, + "name": "PUSH", + "source": 16, + "value": "11" + }, + { + "begin": 30673, + "end": 30676, + "name": "DUP3", + "source": 16 + }, + { + "begin": 30669, + "end": 30681, + "name": "ADD", + "source": 16 + }, + { + "begin": 30662, + "end": 30681, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 30662, + "end": 30681, + "name": "POP", + "source": 16 + }, + { + "begin": 30285, + "end": 30687, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 30285, + "end": 30687, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 30285, + "end": 30687, + "name": "POP", + "source": 16 + }, + { + "begin": 30285, + "end": 30687, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 30693, + "end": 31660, + "name": "tag", + "source": 16, + "value": "577" + }, + { + "begin": 30693, + "end": 31660, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 31075, + "end": 31078, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 31097, + "end": 31245, + "name": "PUSH [tag]", + "source": 16, + "value": "1070" + }, + { + "begin": 31241, + "end": 31244, + "name": "DUP3", + "source": 16 + }, + { + "begin": 31097, + "end": 31245, + "name": "PUSH [tag]", + "source": 16, + "value": "752" + }, + { + "begin": 31097, + "end": 31245, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 31097, + "end": 31245, + "name": "tag", + "source": 16, + "value": "1070" + }, + { + "begin": 31097, + "end": 31245, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 31090, + "end": 31245, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 31090, + "end": 31245, + "name": "POP", + "source": 16 + }, + { + "begin": 31262, + "end": 31357, + "name": "PUSH [tag]", + "source": 16, + "value": "1071" + }, + { + "begin": 31353, + "end": 31356, + "name": "DUP3", + "source": 16 + }, + { + "begin": 31344, + "end": 31350, + "name": "DUP6", + "source": 16 + }, + { + "begin": 31262, + "end": 31357, + "name": "PUSH [tag]", + "source": 16, + "value": "755" + }, + { + "begin": 31262, + "end": 31357, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 31262, + "end": 31357, + "name": "tag", + "source": 16, + "value": "1071" + }, + { + "begin": 31262, + "end": 31357, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 31255, + "end": 31357, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 31255, + "end": 31357, + "name": "POP", + "source": 16 + }, + { + "begin": 31374, + "end": 31522, + "name": "PUSH [tag]", + "source": 16, + "value": "1072" + }, + { + "begin": 31518, + "end": 31521, + "name": "DUP3", + "source": 16 + }, + { + "begin": 31374, + "end": 31522, + "name": "PUSH [tag]", + "source": 16, + "value": "757" + }, + { + "begin": 31374, + "end": 31522, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 31374, + "end": 31522, + "name": "tag", + "source": 16, + "value": "1072" + }, + { + "begin": 31374, + "end": 31522, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 31367, + "end": 31522, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 31367, + "end": 31522, + "name": "POP", + "source": 16 + }, + { + "begin": 31539, + "end": 31634, + "name": "PUSH [tag]", + "source": 16, + "value": "1073" + }, + { + "begin": 31630, + "end": 31633, + "name": "DUP3", + "source": 16 + }, + { + "begin": 31621, + "end": 31627, + "name": "DUP5", + "source": 16 + }, + { + "begin": 31539, + "end": 31634, + "name": "PUSH [tag]", + "source": 16, + "value": "755" + }, + { + "begin": 31539, + "end": 31634, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 31539, + "end": 31634, + "name": "tag", + "source": 16, + "value": "1073" + }, + { + "begin": 31539, + "end": 31634, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 31532, + "end": 31634, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 31532, + "end": 31634, + "name": "POP", + "source": 16 + }, + { + "begin": 31651, + "end": 31654, + "name": "DUP2", + "source": 16 + }, + { + "begin": 31644, + "end": 31654, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 31644, + "end": 31654, + "name": "POP", + "source": 16 + }, + { + "begin": 30693, + "end": 31660, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 30693, + "end": 31660, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 30693, + "end": 31660, + "name": "POP", + "source": 16 + }, + { + "begin": 30693, + "end": 31660, + "name": "POP", + "source": 16 + }, + { + "begin": 30693, + "end": 31660, + "name": "POP", + "source": 16 + }, + { + "begin": 30693, + "end": 31660, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 31666, + "end": 31768, + "name": "tag", + "source": 16, + "value": "758" + }, + { + "begin": 31666, + "end": 31768, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 31707, + "end": 31713, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 31758, + "end": 31760, + "name": "PUSH", + "source": 16, + "value": "1F" + }, + { + "begin": 31754, + "end": 31761, + "name": "NOT", + "source": 16 + }, + { + "begin": 31749, + "end": 31751, + "name": "PUSH", + "source": 16, + "value": "1F" + }, + { + "begin": 31742, + "end": 31747, + "name": "DUP4", + "source": 16 + }, + { + "begin": 31738, + "end": 31752, + "name": "ADD", + "source": 16 + }, + { + "begin": 31734, + "end": 31762, + "name": "AND", + "source": 16 + }, + { + "begin": 31724, + "end": 31762, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 31724, + "end": 31762, + "name": "POP", + "source": 16 + }, + { + "begin": 31666, + "end": 31768, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 31666, + "end": 31768, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 31666, + "end": 31768, + "name": "POP", + "source": 16 + }, + { + "begin": 31666, + "end": 31768, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 31774, + "end": 32151, + "name": "tag", + "source": 16, + "value": "759" + }, + { + "begin": 31774, + "end": 32151, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 31862, + "end": 31865, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 31890, + "end": 31929, + "name": "PUSH [tag]", + "source": 16, + "value": "1076" + }, + { + "begin": 31923, + "end": 31928, + "name": "DUP3", + "source": 16 + }, + { + "begin": 31890, + "end": 31929, + "name": "PUSH [tag]", + "source": 16, + "value": "753" + }, + { + "begin": 31890, + "end": 31929, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 31890, + "end": 31929, + "name": "tag", + "source": 16, + "value": "1076" + }, + { + "begin": 31890, + "end": 31929, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 31945, + "end": 32016, + "name": "PUSH [tag]", + "source": 16, + "value": "1077" + }, + { + "begin": 32009, + "end": 32015, + "name": "DUP2", + "source": 16 + }, + { + "begin": 32004, + "end": 32007, + "name": "DUP6", + "source": 16 + }, + { + "begin": 31945, + "end": 32016, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 31945, + "end": 32016, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 31945, + "end": 32016, + "name": "tag", + "source": 16, + "value": "1077" + }, + { + "begin": 31945, + "end": 32016, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 31938, + "end": 32016, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 31938, + "end": 32016, + "name": "POP", + "source": 16 + }, + { + "begin": 32025, + "end": 32090, + "name": "PUSH [tag]", + "source": 16, + "value": "1078" + }, + { + "begin": 32083, + "end": 32089, + "name": "DUP2", + "source": 16 + }, + { + "begin": 32078, + "end": 32081, + "name": "DUP6", + "source": 16 + }, + { + "begin": 32071, + "end": 32075, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 32064, + "end": 32069, + "name": "DUP7", + "source": 16 + }, + { + "begin": 32060, + "end": 32076, + "name": "ADD", + "source": 16 + }, + { + "begin": 32025, + "end": 32090, + "name": "PUSH [tag]", + "source": 16, + "value": "754" + }, + { + "begin": 32025, + "end": 32090, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 32025, + "end": 32090, + "name": "tag", + "source": 16, + "value": "1078" + }, + { + "begin": 32025, + "end": 32090, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 32115, + "end": 32144, + "name": "PUSH [tag]", + "source": 16, + "value": "1079" + }, + { + "begin": 32137, + "end": 32143, + "name": "DUP2", + "source": 16 + }, + { + "begin": 32115, + "end": 32144, + "name": "PUSH [tag]", + "source": 16, + "value": "758" + }, + { + "begin": 32115, + "end": 32144, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 32115, + "end": 32144, + "name": "tag", + "source": 16, + "value": "1079" + }, + { + "begin": 32115, + "end": 32144, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 32110, + "end": 32113, + "name": "DUP5", + "source": 16 + }, + { + "begin": 32106, + "end": 32145, + "name": "ADD", + "source": 16 + }, + { + "begin": 32099, + "end": 32145, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 32099, + "end": 32145, + "name": "POP", + "source": 16 + }, + { + "begin": 31866, + "end": 32151, + "name": "POP", + "source": 16 + }, + { + "begin": 31774, + "end": 32151, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 31774, + "end": 32151, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 31774, + "end": 32151, + "name": "POP", + "source": 16 + }, + { + "begin": 31774, + "end": 32151, + "name": "POP", + "source": 16 + }, + { + "begin": 31774, + "end": 32151, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 32157, + "end": 32470, + "name": "tag", + "source": 16, + "value": "579" + }, + { + "begin": 32157, + "end": 32470, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 32270, + "end": 32274, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 32308, + "end": 32310, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 32297, + "end": 32306, + "name": "DUP3", + "source": 16 + }, + { + "begin": 32293, + "end": 32311, + "name": "ADD", + "source": 16 + }, + { + "begin": 32285, + "end": 32311, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 32285, + "end": 32311, + "name": "POP", + "source": 16 + }, + { + "begin": 32357, + "end": 32366, + "name": "DUP2", + "source": 16 + }, + { + "begin": 32351, + "end": 32355, + "name": "DUP2", + "source": 16 + }, + { + "begin": 32347, + "end": 32367, + "name": "SUB", + "source": 16 + }, + { + "begin": 32343, + "end": 32344, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 32332, + "end": 32341, + "name": "DUP4", + "source": 16 + }, + { + "begin": 32328, + "end": 32345, + "name": "ADD", + "source": 16 + }, + { + "begin": 32321, + "end": 32368, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 32385, + "end": 32463, + "name": "PUSH [tag]", + "source": 16, + "value": "1081" + }, + { + "begin": 32458, + "end": 32462, + "name": "DUP2", + "source": 16 + }, + { + "begin": 32449, + "end": 32455, + "name": "DUP5", + "source": 16 + }, + { + "begin": 32385, + "end": 32463, + "name": "PUSH [tag]", + "source": 16, + "value": "759" + }, + { + "begin": 32385, + "end": 32463, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 32385, + "end": 32463, + "name": "tag", + "source": 16, + "value": "1081" + }, + { + "begin": 32385, + "end": 32463, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 32377, + "end": 32463, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 32377, + "end": 32463, + "name": "POP", + "source": 16 + }, + { + "begin": 32157, + "end": 32470, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 32157, + "end": 32470, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 32157, + "end": 32470, + "name": "POP", + "source": 16 + }, + { + "begin": 32157, + "end": 32470, + "name": "POP", + "source": 16 + }, + { + "begin": 32157, + "end": 32470, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 32476, + "end": 32918, + "name": "tag", + "source": 16, + "value": "610" + }, + { + "begin": 32476, + "end": 32918, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 32625, + "end": 32629, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 32663, + "end": 32665, + "name": "PUSH", + "source": 16, + "value": "60" + }, + { + "begin": 32652, + "end": 32661, + "name": "DUP3", + "source": 16 + }, + { + "begin": 32648, + "end": 32666, + "name": "ADD", + "source": 16 + }, + { + "begin": 32640, + "end": 32666, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 32640, + "end": 32666, + "name": "POP", + "source": 16 + }, + { + "begin": 32676, + "end": 32747, + "name": "PUSH [tag]", + "source": 16, + "value": "1083" + }, + { + "begin": 32744, + "end": 32745, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 32733, + "end": 32742, + "name": "DUP4", + "source": 16 + }, + { + "begin": 32729, + "end": 32746, + "name": "ADD", + "source": 16 + }, + { + "begin": 32720, + "end": 32726, + "name": "DUP7", + "source": 16 + }, + { + "begin": 32676, + "end": 32747, + "name": "PUSH [tag]", + "source": 16, + "value": "700" + }, + { + "begin": 32676, + "end": 32747, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 32676, + "end": 32747, + "name": "tag", + "source": 16, + "value": "1083" + }, + { + "begin": 32676, + "end": 32747, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 32757, + "end": 32829, + "name": "PUSH [tag]", + "source": 16, + "value": "1084" + }, + { + "begin": 32825, + "end": 32827, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 32814, + "end": 32823, + "name": "DUP4", + "source": 16 + }, + { + "begin": 32810, + "end": 32828, + "name": "ADD", + "source": 16 + }, + { + "begin": 32801, + "end": 32807, + "name": "DUP6", + "source": 16 + }, + { + "begin": 32757, + "end": 32829, + "name": "PUSH [tag]", + "source": 16, + "value": "700" + }, + { + "begin": 32757, + "end": 32829, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 32757, + "end": 32829, + "name": "tag", + "source": 16, + "value": "1084" + }, + { + "begin": 32757, + "end": 32829, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 32839, + "end": 32911, + "name": "PUSH [tag]", + "source": 16, + "value": "1085" + }, + { + "begin": 32907, + "end": 32909, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 32896, + "end": 32905, + "name": "DUP4", + "source": 16 + }, + { + "begin": 32892, + "end": 32910, + "name": "ADD", + "source": 16 + }, + { + "begin": 32883, + "end": 32889, + "name": "DUP5", + "source": 16 + }, + { + "begin": 32839, + "end": 32911, + "name": "PUSH [tag]", + "source": 16, + "value": "708" + }, + { + "begin": 32839, + "end": 32911, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 32839, + "end": 32911, + "name": "tag", + "source": 16, + "value": "1085" + }, + { + "begin": 32839, + "end": 32911, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 32476, + "end": 32918, + "name": "SWAP5", + "source": 16 + }, + { + "begin": 32476, + "end": 32918, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 32476, + "end": 32918, + "name": "POP", + "source": 16 + }, + { + "begin": 32476, + "end": 32918, + "name": "POP", + "source": 16 + }, + { + "begin": 32476, + "end": 32918, + "name": "POP", + "source": 16 + }, + { + "begin": 32476, + "end": 32918, + "name": "POP", + "source": 16 + }, + { + "begin": 32476, + "end": 32918, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 32924, + "end": 33095, + "name": "tag", + "source": 16, + "value": "633" + }, + { + "begin": 32924, + "end": 33095, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 32963, + "end": 32966, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 32986, + "end": 33010, + "name": "PUSH [tag]", + "source": 16, + "value": "1087" + }, + { + "begin": 33004, + "end": 33009, + "name": "DUP3", + "source": 16 + }, + { + "begin": 32986, + "end": 33010, + "name": "PUSH [tag]", + "source": 16, + "value": "707" + }, + { + "begin": 32986, + "end": 33010, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 32986, + "end": 33010, + "name": "tag", + "source": 16, + "value": "1087" + }, + { + "begin": 32986, + "end": 33010, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 32977, + "end": 33010, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 32977, + "end": 33010, + "name": "POP", + "source": 16 + }, + { + "begin": 33032, + "end": 33036, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 33025, + "end": 33030, + "name": "DUP3", + "source": 16 + }, + { + "begin": 33022, + "end": 33037, + "name": "SUB", + "source": 16 + }, + { + "begin": 33019, + "end": 33060, + "name": "PUSH [tag]", + "source": 16, + "value": "1088" + }, + { + "begin": 33019, + "end": 33060, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 33040, + "end": 33058, + "name": "PUSH [tag]", + "source": 16, + "value": "1089" + }, + { + "begin": 33040, + "end": 33058, + "name": "PUSH [tag]", + "source": 16, + "value": "741" + }, + { + "begin": 33040, + "end": 33058, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 33040, + "end": 33058, + "name": "tag", + "source": 16, + "value": "1089" + }, + { + "begin": 33040, + "end": 33058, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 33019, + "end": 33060, + "name": "tag", + "source": 16, + "value": "1088" + }, + { + "begin": 33019, + "end": 33060, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 33087, + "end": 33088, + "name": "PUSH", + "source": 16, + "value": "1" + }, + { + "begin": 33080, + "end": 33085, + "name": "DUP3", + "source": 16 + }, + { + "begin": 33076, + "end": 33089, + "name": "SUB", + "source": 16 + }, + { + "begin": 33069, + "end": 33089, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 33069, + "end": 33089, + "name": "POP", + "source": 16 + }, + { + "begin": 32924, + "end": 33095, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 32924, + "end": 33095, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 32924, + "end": 33095, + "name": "POP", + "source": 16 + }, + { + "begin": 32924, + "end": 33095, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 33101, + "end": 33283, + "name": "tag", + "source": 16, + "value": "760" + }, + { + "begin": 33101, + "end": 33283, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 33241, + "end": 33275, + "name": "PUSH", + "source": 16, + "value": "537472696E67733A20686578206C656E67746820696E73756666696369656E74" + }, + { + "begin": 33237, + "end": 33238, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 33229, + "end": 33235, + "name": "DUP3", + "source": 16 + }, + { + "begin": 33225, + "end": 33239, + "name": "ADD", + "source": 16 + }, + { + "begin": 33218, + "end": 33276, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 33101, + "end": 33283, + "name": "POP", + "source": 16 + }, + { + "begin": 33101, + "end": 33283, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 33289, + "end": 33655, + "name": "tag", + "source": 16, + "value": "761" + }, + { + "begin": 33289, + "end": 33655, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 33431, + "end": 33434, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 33452, + "end": 33519, + "name": "PUSH [tag]", + "source": 16, + "value": "1092" + }, + { + "begin": 33516, + "end": 33518, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 33511, + "end": 33514, + "name": "DUP4", + "source": 16 + }, + { + "begin": 33452, + "end": 33519, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 33452, + "end": 33519, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 33452, + "end": 33519, + "name": "tag", + "source": 16, + "value": "1092" + }, + { + "begin": 33452, + "end": 33519, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 33445, + "end": 33519, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 33445, + "end": 33519, + "name": "POP", + "source": 16 + }, + { + "begin": 33528, + "end": 33621, + "name": "PUSH [tag]", + "source": 16, + "value": "1093" + }, + { + "begin": 33617, + "end": 33620, + "name": "DUP3", + "source": 16 + }, + { + "begin": 33528, + "end": 33621, + "name": "PUSH [tag]", + "source": 16, + "value": "760" + }, + { + "begin": 33528, + "end": 33621, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 33528, + "end": 33621, + "name": "tag", + "source": 16, + "value": "1093" + }, + { + "begin": 33528, + "end": 33621, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 33646, + "end": 33648, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 33641, + "end": 33644, + "name": "DUP3", + "source": 16 + }, + { + "begin": 33637, + "end": 33649, + "name": "ADD", + "source": 16 + }, + { + "begin": 33630, + "end": 33649, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 33630, + "end": 33649, + "name": "POP", + "source": 16 + }, + { + "begin": 33289, + "end": 33655, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 33289, + "end": 33655, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 33289, + "end": 33655, + "name": "POP", + "source": 16 + }, + { + "begin": 33289, + "end": 33655, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 33661, + "end": 34080, + "name": "tag", + "source": 16, + "value": "636" + }, + { + "begin": 33661, + "end": 34080, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 33827, + "end": 33831, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 33865, + "end": 33867, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 33854, + "end": 33863, + "name": "DUP3", + "source": 16 + }, + { + "begin": 33850, + "end": 33868, + "name": "ADD", + "source": 16 + }, + { + "begin": 33842, + "end": 33868, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 33842, + "end": 33868, + "name": "POP", + "source": 16 + }, + { + "begin": 33914, + "end": 33923, + "name": "DUP2", + "source": 16 + }, + { + "begin": 33908, + "end": 33912, + "name": "DUP2", + "source": 16 + }, + { + "begin": 33904, + "end": 33924, + "name": "SUB", + "source": 16 + }, + { + "begin": 33900, + "end": 33901, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 33889, + "end": 33898, + "name": "DUP4", + "source": 16 + }, + { + "begin": 33885, + "end": 33902, + "name": "ADD", + "source": 16 + }, + { + "begin": 33878, + "end": 33925, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 33942, + "end": 34073, + "name": "PUSH [tag]", + "source": 16, + "value": "1095" + }, + { + "begin": 34068, + "end": 34072, + "name": "DUP2", + "source": 16 + }, + { + "begin": 33942, + "end": 34073, + "name": "PUSH [tag]", + "source": 16, + "value": "761" + }, + { + "begin": 33942, + "end": 34073, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 33942, + "end": 34073, + "name": "tag", + "source": 16, + "value": "1095" + }, + { + "begin": 33942, + "end": 34073, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 33934, + "end": 34073, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 33934, + "end": 34073, + "name": "POP", + "source": 16 + }, + { + "begin": 33661, + "end": 34080, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 33661, + "end": 34080, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 33661, + "end": 34080, + "name": "POP", + "source": 16 + }, + { + "begin": 33661, + "end": 34080, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 34086, + "end": 34223, + "name": "tag", + "source": 16, + "value": "762" + }, + { + "begin": 34086, + "end": 34223, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 34140, + "end": 34145, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 34171, + "end": 34177, + "name": "DUP2", + "source": 16 + }, + { + "begin": 34165, + "end": 34178, + "name": "MLOAD", + "source": 16 + }, + { + "begin": 34156, + "end": 34178, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 34156, + "end": 34178, + "name": "POP", + "source": 16 + }, + { + "begin": 34187, + "end": 34217, + "name": "PUSH [tag]", + "source": 16, + "value": "1097" + }, + { + "begin": 34211, + "end": 34216, + "name": "DUP2", + "source": 16 + }, + { + "begin": 34187, + "end": 34217, + "name": "PUSH [tag]", + "source": 16, + "value": "701" + }, + { + "begin": 34187, + "end": 34217, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 34187, + "end": 34217, + "name": "tag", + "source": 16, + "value": "1097" + }, + { + "begin": 34187, + "end": 34217, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 34086, + "end": 34223, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 34086, + "end": 34223, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 34086, + "end": 34223, + "name": "POP", + "source": 16 + }, + { + "begin": 34086, + "end": 34223, + "name": "POP", + "source": 16 + }, + { + "begin": 34086, + "end": 34223, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 34229, + "end": 34574, + "name": "tag", + "source": 16, + "value": "652" + }, + { + "begin": 34229, + "end": 34574, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 34296, + "end": 34302, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 34345, + "end": 34347, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 34333, + "end": 34342, + "name": "DUP3", + "source": 16 + }, + { + "begin": 34324, + "end": 34331, + "name": "DUP5", + "source": 16 + }, + { + "begin": 34320, + "end": 34343, + "name": "SUB", + "source": 16 + }, + { + "begin": 34316, + "end": 34348, + "name": "SLT", + "source": 16 + }, + { + "begin": 34313, + "end": 34432, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 34313, + "end": 34432, + "name": "PUSH [tag]", + "source": 16, + "value": "1099" + }, + { + "begin": 34313, + "end": 34432, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 34351, + "end": 34430, + "name": "PUSH [tag]", + "source": 16, + "value": "1100" + }, + { + "begin": 34351, + "end": 34430, + "name": "PUSH [tag]", + "source": 16, + "value": "685" + }, + { + "begin": 34351, + "end": 34430, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 34351, + "end": 34430, + "name": "tag", + "source": 16, + "value": "1100" + }, + { + "begin": 34351, + "end": 34430, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 34313, + "end": 34432, + "name": "tag", + "source": 16, + "value": "1099" + }, + { + "begin": 34313, + "end": 34432, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 34471, + "end": 34472, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 34496, + "end": 34557, + "name": "PUSH [tag]", + "source": 16, + "value": "1101" + }, + { + "begin": 34549, + "end": 34556, + "name": "DUP5", + "source": 16 + }, + { + "begin": 34540, + "end": 34546, + "name": "DUP3", + "source": 16 + }, + { + "begin": 34529, + "end": 34538, + "name": "DUP6", + "source": 16 + }, + { + "begin": 34525, + "end": 34547, + "name": "ADD", + "source": 16 + }, + { + "begin": 34496, + "end": 34557, + "name": "PUSH [tag]", + "source": 16, + "value": "762" + }, + { + "begin": 34496, + "end": 34557, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 34496, + "end": 34557, + "name": "tag", + "source": 16, + "value": "1101" + }, + { + "begin": 34496, + "end": 34557, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 34486, + "end": 34557, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 34486, + "end": 34557, + "name": "POP", + "source": 16 + }, + { + "begin": 34442, + "end": 34567, + "name": "POP", + "source": 16 + }, + { + "begin": 34229, + "end": 34574, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 34229, + "end": 34574, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 34229, + "end": 34574, + "name": "POP", + "source": 16 + }, + { + "begin": 34229, + "end": 34574, + "name": "POP", + "source": 16 + }, + { + "begin": 34229, + "end": 34574, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 34580, + "end": 34809, + "name": "tag", + "source": 16, + "value": "763" + }, + { + "begin": 34580, + "end": 34809, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 34720, + "end": 34754, + "name": "PUSH", + "source": 16, + "value": "5361666545524332303A204552433230206F7065726174696F6E20646964206E" + }, + { + "begin": 34716, + "end": 34717, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 34708, + "end": 34714, + "name": "DUP3", + "source": 16 + }, + { + "begin": 34704, + "end": 34718, + "name": "ADD", + "source": 16 + }, + { + "begin": 34697, + "end": 34755, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 34789, + "end": 34801, + "name": "PUSH", + "source": 16, + "value": "6F74207375636365656400000000000000000000000000000000000000000000" + }, + { + "begin": 34784, + "end": 34786, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 34776, + "end": 34782, + "name": "DUP3", + "source": 16 + }, + { + "begin": 34772, + "end": 34787, + "name": "ADD", + "source": 16 + }, + { + "begin": 34765, + "end": 34802, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 34580, + "end": 34809, + "name": "POP", + "source": 16 + }, + { + "begin": 34580, + "end": 34809, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 34815, + "end": 35181, + "name": "tag", + "source": 16, + "value": "764" + }, + { + "begin": 34815, + "end": 35181, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 34957, + "end": 34960, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 34978, + "end": 35045, + "name": "PUSH [tag]", + "source": 16, + "value": "1104" + }, + { + "begin": 35042, + "end": 35044, + "name": "PUSH", + "source": 16, + "value": "2A" + }, + { + "begin": 35037, + "end": 35040, + "name": "DUP4", + "source": 16 + }, + { + "begin": 34978, + "end": 35045, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 34978, + "end": 35045, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 34978, + "end": 35045, + "name": "tag", + "source": 16, + "value": "1104" + }, + { + "begin": 34978, + "end": 35045, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 34971, + "end": 35045, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 34971, + "end": 35045, + "name": "POP", + "source": 16 + }, + { + "begin": 35054, + "end": 35147, + "name": "PUSH [tag]", + "source": 16, + "value": "1105" + }, + { + "begin": 35143, + "end": 35146, + "name": "DUP3", + "source": 16 + }, + { + "begin": 35054, + "end": 35147, + "name": "PUSH [tag]", + "source": 16, + "value": "763" + }, + { + "begin": 35054, + "end": 35147, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 35054, + "end": 35147, + "name": "tag", + "source": 16, + "value": "1105" + }, + { + "begin": 35054, + "end": 35147, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 35172, + "end": 35174, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 35167, + "end": 35170, + "name": "DUP3", + "source": 16 + }, + { + "begin": 35163, + "end": 35175, + "name": "ADD", + "source": 16 + }, + { + "begin": 35156, + "end": 35175, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 35156, + "end": 35175, + "name": "POP", + "source": 16 + }, + { + "begin": 34815, + "end": 35181, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 34815, + "end": 35181, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 34815, + "end": 35181, + "name": "POP", + "source": 16 + }, + { + "begin": 34815, + "end": 35181, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 35187, + "end": 35606, + "name": "tag", + "source": 16, + "value": "655" + }, + { + "begin": 35187, + "end": 35606, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 35353, + "end": 35357, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 35391, + "end": 35393, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 35380, + "end": 35389, + "name": "DUP3", + "source": 16 + }, + { + "begin": 35376, + "end": 35394, + "name": "ADD", + "source": 16 + }, + { + "begin": 35368, + "end": 35394, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 35368, + "end": 35394, + "name": "POP", + "source": 16 + }, + { + "begin": 35440, + "end": 35449, + "name": "DUP2", + "source": 16 + }, + { + "begin": 35434, + "end": 35438, + "name": "DUP2", + "source": 16 + }, + { + "begin": 35430, + "end": 35450, + "name": "SUB", + "source": 16 + }, + { + "begin": 35426, + "end": 35427, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 35415, + "end": 35424, + "name": "DUP4", + "source": 16 + }, + { + "begin": 35411, + "end": 35428, + "name": "ADD", + "source": 16 + }, + { + "begin": 35404, + "end": 35451, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 35468, + "end": 35599, + "name": "PUSH [tag]", + "source": 16, + "value": "1107" + }, + { + "begin": 35594, + "end": 35598, + "name": "DUP2", + "source": 16 + }, + { + "begin": 35468, + "end": 35599, + "name": "PUSH [tag]", + "source": 16, + "value": "764" + }, + { + "begin": 35468, + "end": 35599, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 35468, + "end": 35599, + "name": "tag", + "source": 16, + "value": "1107" + }, + { + "begin": 35468, + "end": 35599, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 35460, + "end": 35599, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 35460, + "end": 35599, + "name": "POP", + "source": 16 + }, + { + "begin": 35187, + "end": 35606, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 35187, + "end": 35606, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 35187, + "end": 35606, + "name": "POP", + "source": 16 + }, + { + "begin": 35187, + "end": 35606, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 35612, + "end": 35837, + "name": "tag", + "source": 16, + "value": "765" + }, + { + "begin": 35612, + "end": 35837, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 35752, + "end": 35786, + "name": "PUSH", + "source": 16, + "value": "416464726573733A20696E73756666696369656E742062616C616E636520666F" + }, + { + "begin": 35748, + "end": 35749, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 35740, + "end": 35746, + "name": "DUP3", + "source": 16 + }, + { + "begin": 35736, + "end": 35750, + "name": "ADD", + "source": 16 + }, + { + "begin": 35729, + "end": 35787, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 35821, + "end": 35829, + "name": "PUSH", + "source": 16, + "value": "722063616C6C0000000000000000000000000000000000000000000000000000" + }, + { + "begin": 35816, + "end": 35818, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 35808, + "end": 35814, + "name": "DUP3", + "source": 16 + }, + { + "begin": 35804, + "end": 35819, + "name": "ADD", + "source": 16 + }, + { + "begin": 35797, + "end": 35830, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 35612, + "end": 35837, + "name": "POP", + "source": 16 + }, + { + "begin": 35612, + "end": 35837, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 35843, + "end": 36209, + "name": "tag", + "source": 16, + "value": "766" + }, + { + "begin": 35843, + "end": 36209, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 35985, + "end": 35988, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 36006, + "end": 36073, + "name": "PUSH [tag]", + "source": 16, + "value": "1110" + }, + { + "begin": 36070, + "end": 36072, + "name": "PUSH", + "source": 16, + "value": "26" + }, + { + "begin": 36065, + "end": 36068, + "name": "DUP4", + "source": 16 + }, + { + "begin": 36006, + "end": 36073, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 36006, + "end": 36073, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 36006, + "end": 36073, + "name": "tag", + "source": 16, + "value": "1110" + }, + { + "begin": 36006, + "end": 36073, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 35999, + "end": 36073, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 35999, + "end": 36073, + "name": "POP", + "source": 16 + }, + { + "begin": 36082, + "end": 36175, + "name": "PUSH [tag]", + "source": 16, + "value": "1111" + }, + { + "begin": 36171, + "end": 36174, + "name": "DUP3", + "source": 16 + }, + { + "begin": 36082, + "end": 36175, + "name": "PUSH [tag]", + "source": 16, + "value": "765" + }, + { + "begin": 36082, + "end": 36175, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 36082, + "end": 36175, + "name": "tag", + "source": 16, + "value": "1111" + }, + { + "begin": 36082, + "end": 36175, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 36200, + "end": 36202, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 36195, + "end": 36198, + "name": "DUP3", + "source": 16 + }, + { + "begin": 36191, + "end": 36203, + "name": "ADD", + "source": 16 + }, + { + "begin": 36184, + "end": 36203, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 36184, + "end": 36203, + "name": "POP", + "source": 16 + }, + { + "begin": 35843, + "end": 36209, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 35843, + "end": 36209, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 35843, + "end": 36209, + "name": "POP", + "source": 16 + }, + { + "begin": 35843, + "end": 36209, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 36215, + "end": 36634, + "name": "tag", + "source": 16, + "value": "662" + }, + { + "begin": 36215, + "end": 36634, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 36381, + "end": 36385, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 36419, + "end": 36421, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 36408, + "end": 36417, + "name": "DUP3", + "source": 16 + }, + { + "begin": 36404, + "end": 36422, + "name": "ADD", + "source": 16 + }, + { + "begin": 36396, + "end": 36422, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 36396, + "end": 36422, + "name": "POP", + "source": 16 + }, + { + "begin": 36468, + "end": 36477, + "name": "DUP2", + "source": 16 + }, + { + "begin": 36462, + "end": 36466, + "name": "DUP2", + "source": 16 + }, + { + "begin": 36458, + "end": 36478, + "name": "SUB", + "source": 16 + }, + { + "begin": 36454, + "end": 36455, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 36443, + "end": 36452, + "name": "DUP4", + "source": 16 + }, + { + "begin": 36439, + "end": 36456, + "name": "ADD", + "source": 16 + }, + { + "begin": 36432, + "end": 36479, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 36496, + "end": 36627, + "name": "PUSH [tag]", + "source": 16, + "value": "1113" + }, + { + "begin": 36622, + "end": 36626, + "name": "DUP2", + "source": 16 + }, + { + "begin": 36496, + "end": 36627, + "name": "PUSH [tag]", + "source": 16, + "value": "766" + }, + { + "begin": 36496, + "end": 36627, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 36496, + "end": 36627, + "name": "tag", + "source": 16, + "value": "1113" + }, + { + "begin": 36496, + "end": 36627, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 36488, + "end": 36627, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 36488, + "end": 36627, + "name": "POP", + "source": 16 + }, + { + "begin": 36215, + "end": 36634, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 36215, + "end": 36634, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 36215, + "end": 36634, + "name": "POP", + "source": 16 + }, + { + "begin": 36215, + "end": 36634, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 36640, + "end": 36738, + "name": "tag", + "source": 16, + "value": "767" + }, + { + "begin": 36640, + "end": 36738, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 36691, + "end": 36697, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 36725, + "end": 36730, + "name": "DUP2", + "source": 16 + }, + { + "begin": 36719, + "end": 36731, + "name": "MLOAD", + "source": 16 + }, + { + "begin": 36709, + "end": 36731, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 36709, + "end": 36731, + "name": "POP", + "source": 16 + }, + { + "begin": 36640, + "end": 36738, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 36640, + "end": 36738, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 36640, + "end": 36738, + "name": "POP", + "source": 16 + }, + { + "begin": 36640, + "end": 36738, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 36744, + "end": 37130, + "name": "tag", + "source": 16, + "value": "768" + }, + { + "begin": 36744, + "end": 37130, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 36848, + "end": 36851, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 36876, + "end": 36914, + "name": "PUSH [tag]", + "source": 16, + "value": "1116" + }, + { + "begin": 36908, + "end": 36913, + "name": "DUP3", + "source": 16 + }, + { + "begin": 36876, + "end": 36914, + "name": "PUSH [tag]", + "source": 16, + "value": "767" + }, + { + "begin": 36876, + "end": 36914, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 36876, + "end": 36914, + "name": "tag", + "source": 16, + "value": "1116" + }, + { + "begin": 36876, + "end": 36914, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 36930, + "end": 37018, + "name": "PUSH [tag]", + "source": 16, + "value": "1117" + }, + { + "begin": 37011, + "end": 37017, + "name": "DUP2", + "source": 16 + }, + { + "begin": 37006, + "end": 37009, + "name": "DUP6", + "source": 16 + }, + { + "begin": 36930, + "end": 37018, + "name": "PUSH [tag]", + "source": 16, + "value": "747" + }, + { + "begin": 36930, + "end": 37018, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 36930, + "end": 37018, + "name": "tag", + "source": 16, + "value": "1117" + }, + { + "begin": 36930, + "end": 37018, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 36923, + "end": 37018, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 36923, + "end": 37018, + "name": "POP", + "source": 16 + }, + { + "begin": 37027, + "end": 37092, + "name": "PUSH [tag]", + "source": 16, + "value": "1118" + }, + { + "begin": 37085, + "end": 37091, + "name": "DUP2", + "source": 16 + }, + { + "begin": 37080, + "end": 37083, + "name": "DUP6", + "source": 16 + }, + { + "begin": 37073, + "end": 37077, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 37066, + "end": 37071, + "name": "DUP7", + "source": 16 + }, + { + "begin": 37062, + "end": 37078, + "name": "ADD", + "source": 16 + }, + { + "begin": 37027, + "end": 37092, + "name": "PUSH [tag]", + "source": 16, + "value": "754" + }, + { + "begin": 37027, + "end": 37092, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 37027, + "end": 37092, + "name": "tag", + "source": 16, + "value": "1118" + }, + { + "begin": 37027, + "end": 37092, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 37117, + "end": 37123, + "name": "DUP1", + "source": 16 + }, + { + "begin": 37112, + "end": 37115, + "name": "DUP5", + "source": 16 + }, + { + "begin": 37108, + "end": 37124, + "name": "ADD", + "source": 16 + }, + { + "begin": 37101, + "end": 37124, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 37101, + "end": 37124, + "name": "POP", + "source": 16 + }, + { + "begin": 36852, + "end": 37130, + "name": "POP", + "source": 16 + }, + { + "begin": 36744, + "end": 37130, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 36744, + "end": 37130, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 36744, + "end": 37130, + "name": "POP", + "source": 16 + }, + { + "begin": 36744, + "end": 37130, + "name": "POP", + "source": 16 + }, + { + "begin": 36744, + "end": 37130, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 37136, + "end": 37407, + "name": "tag", + "source": 16, + "value": "664" + }, + { + "begin": 37136, + "end": 37407, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 37266, + "end": 37269, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 37288, + "end": 37381, + "name": "PUSH [tag]", + "source": 16, + "value": "1120" + }, + { + "begin": 37377, + "end": 37380, + "name": "DUP3", + "source": 16 + }, + { + "begin": 37368, + "end": 37374, + "name": "DUP5", + "source": 16 + }, + { + "begin": 37288, + "end": 37381, + "name": "PUSH [tag]", + "source": 16, + "value": "768" + }, + { + "begin": 37288, + "end": 37381, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 37288, + "end": 37381, + "name": "tag", + "source": 16, + "value": "1120" + }, + { + "begin": 37288, + "end": 37381, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 37281, + "end": 37381, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 37281, + "end": 37381, + "name": "POP", + "source": 16 + }, + { + "begin": 37398, + "end": 37401, + "name": "DUP2", + "source": 16 + }, + { + "begin": 37391, + "end": 37401, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 37391, + "end": 37401, + "name": "POP", + "source": 16 + }, + { + "begin": 37136, + "end": 37407, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 37136, + "end": 37407, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 37136, + "end": 37407, + "name": "POP", + "source": 16 + }, + { + "begin": 37136, + "end": 37407, + "name": "POP", + "source": 16 + }, + { + "begin": 37136, + "end": 37407, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 37413, + "end": 37592, + "name": "tag", + "source": 16, + "value": "769" + }, + { + "begin": 37413, + "end": 37592, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 37553, + "end": 37584, + "name": "PUSH", + "source": 16, + "value": "416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000" + }, + { + "begin": 37549, + "end": 37550, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 37541, + "end": 37547, + "name": "DUP3", + "source": 16 + }, + { + "begin": 37537, + "end": 37551, + "name": "ADD", + "source": 16 + }, + { + "begin": 37530, + "end": 37585, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 37413, + "end": 37592, + "name": "POP", + "source": 16 + }, + { + "begin": 37413, + "end": 37592, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 37598, + "end": 37964, + "name": "tag", + "source": 16, + "value": "770" + }, + { + "begin": 37598, + "end": 37964, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 37740, + "end": 37743, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 37761, + "end": 37828, + "name": "PUSH [tag]", + "source": 16, + "value": "1123" + }, + { + "begin": 37825, + "end": 37827, + "name": "PUSH", + "source": 16, + "value": "1D" + }, + { + "begin": 37820, + "end": 37823, + "name": "DUP4", + "source": 16 + }, + { + "begin": 37761, + "end": 37828, + "name": "PUSH [tag]", + "source": 16, + "value": "719" + }, + { + "begin": 37761, + "end": 37828, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 37761, + "end": 37828, + "name": "tag", + "source": 16, + "value": "1123" + }, + { + "begin": 37761, + "end": 37828, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 37754, + "end": 37828, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 37754, + "end": 37828, + "name": "POP", + "source": 16 + }, + { + "begin": 37837, + "end": 37930, + "name": "PUSH [tag]", + "source": 16, + "value": "1124" + }, + { + "begin": 37926, + "end": 37929, + "name": "DUP3", + "source": 16 + }, + { + "begin": 37837, + "end": 37930, + "name": "PUSH [tag]", + "source": 16, + "value": "769" + }, + { + "begin": 37837, + "end": 37930, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 37837, + "end": 37930, + "name": "tag", + "source": 16, + "value": "1124" + }, + { + "begin": 37837, + "end": 37930, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 37955, + "end": 37957, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 37950, + "end": 37953, + "name": "DUP3", + "source": 16 + }, + { + "begin": 37946, + "end": 37958, + "name": "ADD", + "source": 16 + }, + { + "begin": 37939, + "end": 37958, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 37939, + "end": 37958, + "name": "POP", + "source": 16 + }, + { + "begin": 37598, + "end": 37964, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 37598, + "end": 37964, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 37598, + "end": 37964, + "name": "POP", + "source": 16 + }, + { + "begin": 37598, + "end": 37964, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 37970, + "end": 38389, + "name": "tag", + "source": 16, + "value": "676" + }, + { + "begin": 37970, + "end": 38389, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 38136, + "end": 38140, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 38174, + "end": 38176, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 38163, + "end": 38172, + "name": "DUP3", + "source": 16 + }, + { + "begin": 38159, + "end": 38177, + "name": "ADD", + "source": 16 + }, + { + "begin": 38151, + "end": 38177, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 38151, + "end": 38177, + "name": "POP", + "source": 16 + }, + { + "begin": 38223, + "end": 38232, + "name": "DUP2", + "source": 16 + }, + { + "begin": 38217, + "end": 38221, + "name": "DUP2", + "source": 16 + }, + { + "begin": 38213, + "end": 38233, + "name": "SUB", + "source": 16 + }, + { + "begin": 38209, + "end": 38210, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 38198, + "end": 38207, + "name": "DUP4", + "source": 16 + }, + { + "begin": 38194, + "end": 38211, + "name": "ADD", + "source": 16 + }, + { + "begin": 38187, + "end": 38234, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 38251, + "end": 38382, + "name": "PUSH [tag]", + "source": 16, + "value": "1126" + }, + { + "begin": 38377, + "end": 38381, + "name": "DUP2", + "source": 16 + }, + { + "begin": 38251, + "end": 38382, + "name": "PUSH [tag]", + "source": 16, + "value": "770" + }, + { + "begin": 38251, + "end": 38382, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 38251, + "end": 38382, + "name": "tag", + "source": 16, + "value": "1126" + }, + { + "begin": 38251, + "end": 38382, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 38243, + "end": 38382, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 38243, + "end": 38382, + "name": "POP", + "source": 16 + }, + { + "begin": 37970, + "end": 38389, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 37970, + "end": 38389, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 37970, + "end": 38389, + "name": "POP", + "source": 16 + }, + { + "begin": 37970, + "end": 38389, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + } + ] + } + }, + "sourceList": [ + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandler.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol", + "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol", + "#utility.yul" + ] + }, + "methodIdentifiers": { + "ACCEPTED_TOKEN()": "fdbb219d", + "ADMIN()": "2a0acc6a", + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "DONATION_RECIPIENT()": "dcda7dad", + "FEE_RECEIVER()": "d3e78e4d", + "HUNDRED()": "f85fc0ab", + "NATIVE()": "a0cf0aea", + "addAdmin(address[])": "3d0950a8", + "addDonationRecipient(address[])": "80c78f1c", + "addFeeReceiver(address[])": "9d082c98", + "addToken(address[])": "10881166", + "balanceOf(address,address)": "f7888aec", + "balances(address,address)": "c23f001f", + "balancesOf(address[],address)": "f46b80ca", + "distribute(address[],address)": "42e228ef", + "distributeMany(address[],address[])": "3b8453ca", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "init()": "e1c7392a", + "initialize(address[],address[],address[],address[],uint256)": "f2d4120e", + "isAdmin(address)": "24d7806c", + "isDonationRecipient(address)": "fbfe3ab2", + "isFeeReceiver(address)": "b278110f", + "isRecipientWhitelistActive()": "102d7927", + "isTokenAccepted(address)": "0560bd96", + "isTokenWhitelistActive()": "60e007a6", + "minFee()": "24ec7590", + "removeAdmin(address[])": "ae876f61", + "removeDonationRecipient(address[])": "1037d18c", + "removeFeeReceiver(address[])": "2620d800", + "removeToken(address[])": "bf7cb70b", + "renounceRole(bytes32,address)": "36568abe", + "revokeAdmin()": "0d6aef04", + "revokeRole(bytes32,address)": "d547741f", + "roundAddress()": "0b67d925", + "setIsRecipientWhitelistActive(bool)": "6bb85f4c", + "setIsTokenWhitelistActive(bool)": "155dc549", + "setMinFee(uint256)": "31ac9920", + "supportsInterface(bytes4)": "01ffc9a7", + "vote(bytes[],address)": "fc6d4e39", + "withdraw(address,uint256)": "f3fef3a3", + "withdrawFee(address)": "1ac3ddeb", + "withdrawFeeMany(address[])": "041c60ee", + "withdrawMany(address[])": "658e4821" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FeeTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAdmin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFeeReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RecipientNotAccepted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenNotAccepted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DonationRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FeeRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRecipientWhitelistActive\",\"type\":\"bool\"}],\"name\":\"IsRecipientWhitelistActiveSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isTokenWhitelistActive\",\"type\":\"bool\"}],\"name\":\"IsTokenWhitelistActiveSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minFee\",\"type\":\"uint256\"}],\"name\":\"MinFeeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"grantAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"roundAddress\",\"type\":\"address\"}],\"name\":\"Voted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCEPTED_TOKEN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DONATION_RECIPIENT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE_RECEIVER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HUNDRED\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_admins\",\"type\":\"address[]\"}],\"name\":\"addAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_recipients\",\"type\":\"address[]\"}],\"name\":\"addDonationRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_feeReceiver\",\"type\":\"address[]\"}],\"name\":\"addFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_token\",\"type\":\"address[]\"}],\"name\":\"addToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_token\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"balancesOf\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_token\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_token\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_to\",\"type\":\"address[]\"}],\"name\":\"distributeMany\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_acceptedToken\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_donationReceiver\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_feeReceiver\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_admins\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_minFee\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"isDonationRecipient\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"isFeeReceiver\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRecipientWhitelistActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenAccepted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isTokenWhitelistActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_admins\",\"type\":\"address[]\"}],\"name\":\"removeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_recipients\",\"type\":\"address[]\"}],\"name\":\"removeDonationRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_feeReceiver\",\"type\":\"address[]\"}],\"name\":\"removeFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_token\",\"type\":\"address[]\"}],\"name\":\"removeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revokeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"roundAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_isRecipientWhitelistActive\",\"type\":\"bool\"}],\"name\":\"setIsRecipientWhitelistActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_isTokenWhitelistActive\",\"type\":\"bool\"}],\"name\":\"setIsTokenWhitelistActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minFee\",\"type\":\"uint256\"}],\"name\":\"setMinFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"encodedVotes\",\"type\":\"bytes[]\"},{\"internalType\":\"address\",\"name\":\"voterAddress\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_token\",\"type\":\"address[]\"}],\"name\":\"withdrawFeeMany\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_token\",\"type\":\"address[]\"}],\"name\":\"withdrawMany\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@Kurt for Giveth\",\"events\":{\"DonationRegistered(address,address,address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens\",\"from\":\"The address of the sender\",\"recipient\":\"The address of the recipient\",\"token\":\"The token address\"}},\"FeeRegistered(address,address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens\",\"from\":\"The address of the sender\",\"token\":\"The token address\"}},\"IsRecipientWhitelistActiveSet(bool)\":{\"params\":{\"isRecipientWhitelistActive\":\"The recipient whitelist status\"}},\"IsTokenWhitelistActiveSet(bool)\":{\"params\":{\"isTokenWhitelistActive\":\"The token whitelist status\"}},\"MinFeeSet(uint256)\":{\"params\":{\"minFee\":\"The minimum fee\"}},\"Withdraw(address,address,address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens\",\"from\":\"The address of the sender\",\"to\":\"The address of the recipient\",\"token\":\"The token address\"}}},\"kind\":\"dev\",\"methods\":{\"addAdmin(address[])\":{\"params\":{\"_admins\":\"Array of addresses to assign to admin role.\"}},\"addDonationRecipient(address[])\":{\"params\":{\"_recipients\":\"Array of addresses to assign to donation recipient role.\"}},\"addFeeReceiver(address[])\":{\"params\":{\"_feeReceiver\":\"Array of addresses to assign to fee receiver role.\"}},\"addToken(address[])\":{\"params\":{\"_token\":\"Array of addresses to assign to accepted token role.\"}},\"balanceOf(address,address)\":{\"params\":{\"_token\":\"Address of the token\",\"_user\":\"Address of the user\"},\"returns\":{\"_0\":\"Token balance of the user\"}},\"balancesOf(address[],address)\":{\"params\":{\"_token\":\"Address array of the token\",\"_user\":\"Address of the user\"},\"returns\":{\"_0\":\"Uint256 array. Token balances of the user\"}},\"distribute(address[],address)\":{\"params\":{\"_to\":\"Address of the recipient\",\"_token\":\"Address array of the token\"}},\"distributeMany(address[],address[])\":{\"params\":{\"_to\":\"Address array of the recipients\",\"_token\":\"Address array of the token\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address[],address[],address[],address[],uint256)\":{\"params\":{\"_acceptedToken\":\"Array of accepted tokens\",\"_admins\":\"Array of admins\",\"_donationReceiver\":\"Array of donation receivers\",\"_feeReceiver\":\"Array of fee receivers\",\"_minFee\":\"Minimum donation fee\"}},\"isAdmin(address)\":{\"params\":{\"_account\":\"The address to check.\"},\"returns\":{\"_0\":\"bool True if address is admin, false otherwise.\"}},\"isDonationRecipient(address)\":{\"params\":{\"_recipient\":\"The address to check.\"},\"returns\":{\"_0\":\"bool True if address is a donation recipient, false otherwise.\"}},\"isFeeReceiver(address)\":{\"params\":{\"_receiver\":\"The address to check.\"},\"returns\":{\"_0\":\"bool True if address is a fee receiver, false otherwise.\"}},\"isTokenAccepted(address)\":{\"params\":{\"_token\":\"The address to check.\"},\"returns\":{\"_0\":\"bool True if address is whitelisted, false otherwise.\"}},\"removeAdmin(address[])\":{\"params\":{\"_admins\":\"Array of addresses to remove from admin role.\"}},\"removeDonationRecipient(address[])\":{\"params\":{\"_recipients\":\"Array of addresses to remove from donation recipient role.\"}},\"removeFeeReceiver(address[])\":{\"params\":{\"_feeReceiver\":\"Array of addresses to remove from fee receiver role.\"}},\"removeToken(address[])\":{\"params\":{\"_token\":\"Array of addresses to remove from accepted token role.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setIsRecipientWhitelistActive(bool)\":{\"params\":{\"_isRecipientWhitelistActive\":\"Enable/Disable recipient whitelist\"}},\"setIsTokenWhitelistActive(bool)\":{\"params\":{\"_isTokenWhitelistActive\":\"Enable/Disable token whitelist\"}},\"setMinFee(uint256)\":{\"params\":{\"_minFee\":\"Minimum donation fee\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"vote(bytes[],address)\":{\"params\":{\"encodedVotes\":\"Array of donations\",\"voterAddress\":\"Address of the voter\"}},\"withdraw(address,uint256)\":{\"params\":{\"_amount\":\"Amount of tokens\",\"_token\":\"Address of the token\"}},\"withdrawFee(address)\":{\"params\":{\"_token\":\"Address of the token\"}},\"withdrawFeeMany(address[])\":{\"params\":{\"_token\":\"Address array of the token\"}},\"withdrawMany(address[])\":{\"params\":{\"_token\":\"Address array of the token\"}}},\"title\":\"DonationHandler\",\"version\":1},\"userdoc\":{\"errors\":{\"FeeTooHigh()\":[{\"notice\":\"Throws if passed fee is above 100%.\"}],\"FeeTooLow()\":[{\"notice\":\"Throws if passed fee is below minFee.\"}],\"InsufficientBalance()\":[{\"notice\":\"Throws if the withdrawal amount is too high.\"}],\"InvalidAmount()\":[{\"notice\":\"Throws if amount is zero or does not match the msg.value\"}],\"NotAdmin()\":[{\"notice\":\"Throws if called by any account other than a admin.\"}],\"NotDefaultAdmin()\":[{\"notice\":\"Throws if called by any account other than a default admin.\"}],\"NotFeeReceiver()\":[{\"notice\":\"Throws if the sender is not a whitelisted fee receiver.\"}],\"RecipientNotAccepted()\":[{\"notice\":\"Throws if a donation recipient is not whitelisted.\"}],\"TokenNotAccepted()\":[{\"notice\":\"Throws if a token is not whitelisted.\"}],\"TransferFailed()\":[{\"notice\":\"Throws if the native currency transfer failed\"}]},\"events\":{\"DonationRegistered(address,address,address,uint256)\":{\"notice\":\"Emitted when a donation is registered\"},\"FeeRegistered(address,address,uint256)\":{\"notice\":\"Emitted when a fee is registered\"},\"IsRecipientWhitelistActiveSet(bool)\":{\"notice\":\"Emitted when the recipient whitelist is set to active or inactive\"},\"IsTokenWhitelistActiveSet(bool)\":{\"notice\":\"Emitted when the token whitelist is set to active or inactive\"},\"MinFeeSet(uint256)\":{\"notice\":\"Emitted when the minimum fee is set\"},\"Voted(address,uint256,address,address,address)\":{\"notice\":\"Emitted when a new vote is sent\"},\"Withdraw(address,address,address,uint256)\":{\"notice\":\"Emitted when a withdrawal is made\"}},\"kind\":\"user\",\"methods\":{\"HUNDRED()\":{\"notice\":\"1e18 represents 100%, 1e16 represents 1%\"},\"NATIVE()\":{\"notice\":\"special address which represents the native network currency. address(0) is used by gitcoin.\"},\"addAdmin(address[])\":{\"notice\":\"Assigns addresses to admin role. Can only be called by an admin.\"},\"addDonationRecipient(address[])\":{\"notice\":\"Assigns addresses to donation recipient role. Can only be called by an admin.\"},\"addFeeReceiver(address[])\":{\"notice\":\"Assigns addresses to fee receiver role. Can only be called by an admin.\"},\"addToken(address[])\":{\"notice\":\"Assigns addresses to accepted token role. Can only be called by an admin.\"},\"balanceOf(address,address)\":{\"notice\":\"Returns the token balance of a user\"},\"balances(address,address)\":{\"notice\":\"mapping: user => token => amount\"},\"balancesOf(address[],address)\":{\"notice\":\"Returns the token balances of a user\"},\"distribute(address[],address)\":{\"notice\":\"Distributes full amount of token arrays token from the contract to a recipient.\"},\"distributeMany(address[],address[])\":{\"notice\":\"Distributes full amount of token arrays token from the contract to an array of recipients.\"},\"init()\":{\"notice\":\"Invoked by RoundImplementation on creation to set the round for which the voting contracts is to be used\"},\"initialize(address[],address[],address[],address[],uint256)\":{\"notice\":\"Initialize the contract.\"},\"isAdmin(address)\":{\"notice\":\"Wrapper function to check if an address is admin.\"},\"isDonationRecipient(address)\":{\"notice\":\"Wrapper function to check if an address is a donation recipient.\"},\"isFeeReceiver(address)\":{\"notice\":\"Wrapper function to check if an address is a fee receiver.\"},\"isTokenAccepted(address)\":{\"notice\":\"Wrapper function to check if an address is a whitelisted token.\"},\"minFee()\":{\"notice\":\"Minimum donation fee. 0 by default\"},\"removeAdmin(address[])\":{\"notice\":\"Removes addresses from admin role. Can only be called by default admin.\"},\"removeDonationRecipient(address[])\":{\"notice\":\"Removes addresses from donation recipient role. Can only be called by an admin.\"},\"removeFeeReceiver(address[])\":{\"notice\":\"Removes addresses from fee receiver role. Can only be called by an admin.\"},\"removeToken(address[])\":{\"notice\":\"Removes addresses from accepted token role. Can only be called by an admin.\"},\"roundAddress()\":{\"notice\":\"Round address\"},\"setIsRecipientWhitelistActive(bool)\":{\"notice\":\"Enable/Disable recipient whitelist. Can only be called by an Admin. Emits IsRecipientWhitelistActiveSet event.\"},\"setIsTokenWhitelistActive(bool)\":{\"notice\":\"Enable/Disable token whitelist. Can only be called by an Admin. Emits IsTokenWhitelistActiveSet event.\"},\"setMinFee(uint256)\":{\"notice\":\"Set minimum donation fee. Can only be called by an Admin. Emits MinFeeSet event.\"},\"vote(bytes[],address)\":{\"notice\":\"Donate(vote) to a whitelisted recipient.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw tokens from the contract to msg.sender.\"},\"withdrawFee(address)\":{\"notice\":\"Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver.\"},\"withdrawFeeMany(address[])\":{\"notice\":\"Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver.\"},\"withdrawMany(address[])\":{\"notice\":\"Withdraw full amount of token arrays token from the contract to msg.sender.\"}},\"notice\":\"This contract is used to handle donations This contract is build to use with proxies. The user can donate whitelisted token to whitelisted recipients by calling the vote function. The fee is deducted from the users donation, assigned to the contracts address and can be withdrawn by a fee receiver. The min fee is set during initialization and can be changed by the protocol admins. The max fee is set by default to 1e18 and can't be changed. The user can withdraw the donation of a single token by calling the withdraw function. The user can withdraw all donations of a list of token by calling the withdrawMany function. The fee receiver can withdraw the donation fee by calling the withdrawFee function. The fee receiver can withdraw the donation fee of a list of token by calling the withdrawFeeMany function. Users can distribute the funds of a list of token in behalf of a recipient by calling the distribute function. Users can distribute the funds of a list of token in behalf of a list of recipients by calling the distributeMany function. The donation balance of one token can be checked by calling the balanceOf function. The donation balance of multiple token can be checked by calling the balancesOf function.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":\"DonationHandler\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xe8f27a3e3e25067334e76799f03d4de6d8f8535c3fc4806468228a9ebd5de51a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://686aaf8725727d94b36c53baad3779e168b31e33eec8d39b41e282382617c626\",\"dweb:/ipfs/QmWVRwPpZyweGCw7uRj1rXQTmcwaXB5Ctz3KvpNJPtxDP8\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2b3005a0064cfc558bdf64b2bae94b565f4574a536aadd61c13838d4f2157790\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://622c3eb87563e71585c9f538d1a196fe2d154dcc5b8f335e8770a8acc95e1f3a\",\"dweb:/ipfs/QmSnDqJJLzv3mirjGB1vrk5X7hegFdS7BKpscpxyqj7sWu\"]},\"@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x4e733d3164f73f461eaf9d8087a7ad1ea180bdc8ba0d3d61b0e1ae16d8e63dff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75b47c3aeca7b66ea6752f8be020ec5c1c502de6ec9065272dae23d3a52196e2\",\"dweb:/ipfs/QmUebPMHv16tYKFh5BmBQkMfRFb5b8UZ2RgVwdjxCeufVF\"]},\"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol\":{\"keccak256\":\"0xcc70d8e2281fb3ff69e8ab242500f10142cd0a7fa8dd9e45882be270d4d09024\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17a4063bc918df0f7bb9cbf04c6f0bb4977afab3f2fc212bc138a178312a221d\",\"dweb:/ipfs/QmZMdvsHP5mDEAAdrK4bNeNh47TfmSFgN9qEBFTbie7zmm\"]},\"@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol\":{\"keccak256\":\"0x220c4a5af915e656be2aaa85ca57505d102418e476b1e2ef6c62e0c6ac143871\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ed2c33173f7e7000889abed7c339b7a0e3b7867cdea546caaf6bc917ef1039c\",\"dweb:/ipfs/QmQ4Ye5h7jm6V4CdhT3r6hvf25DtiV74ErppQVE4SpRKj6\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]},\"giveth/GIVfi/src/DonationHandler/DonationHandler.sol\":{\"keccak256\":\"0xbcd1929f15bf25fbd0ea11fc9a29c71863e69fd7ba108db091371f85d3e0341c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://336b64a8013b8635ac354af39a1dab0ac99aa3a157c049806564473d0baf84f8\",\"dweb:/ipfs/QmbXMiBnomdmJw5ezbdugPkkrkPYctEfKhi1u6v2a3KbzM\"]},\"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":{\"keccak256\":\"0x09aa18e8c7f0a7fec7f8ff09c30f916e1b0a9288aaaae56d78555d868a78f875\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56a3998b440ca886e5d6cc2c0954191210bd18dbe3a99e2bbcbc7564236b2098\",\"dweb:/ipfs/QmT1EFfSpbcAsAfyqNtkEy8pLKaFYXYTnyRuzQmJGLdKax\"]},\"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":{\"keccak256\":\"0x294e63ce1df9e00acd8969ec71323adeeb1b3598a2a97cf389364ff8cd445f88\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://6ae88b9a4e997a15afcd05a607e334a15751aeae7a5f20e5c51c4dfb75078dca\",\"dweb:/ipfs/QmW1YGotPJ3AG3dUtLfC8XSAF5nPHjhYMCH5baDtkqG88T\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 3818, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "roundAddress", + "offset": 0, + "slot": "0", + "type": "t_address" + }, + { + "astId": 415, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "_initialized", + "offset": 20, + "slot": "0", + "type": "t_uint8" + }, + { + "astId": 418, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "_initializing", + "offset": 21, + "slot": "0", + "type": "t_bool" + }, + { + "astId": 1370, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage" + }, + { + "astId": 1589, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage" + }, + { + "astId": 39, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "_roles", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)" + }, + { + "astId": 334, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage" + }, + { + "astId": 591, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "_status", + "offset": 0, + "slot": "151", + "type": "t_uint256" + }, + { + "astId": 649, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage" + }, + { + "astId": 2495, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "minFee", + "offset": 0, + "slot": "201", + "type": "t_uint256" + }, + { + "astId": 2497, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "isTokenWhitelistActive", + "offset": 0, + "slot": "202", + "type": "t_bool" + }, + { + "astId": 2499, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "isRecipientWhitelistActive", + "offset": 1, + "slot": "202", + "type": "t_bool" + }, + { + "astId": 2506, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "balances", + "offset": 0, + "slot": "203", + "type": "t_mapping(t_address,t_mapping(t_address,t_uint256))" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "base": "t_uint256", + "encoding": "inplace", + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "base": "t_uint256", + "encoding": "inplace", + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_address,t_mapping(t_address,t_uint256))": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => mapping(address => uint256))", + "numberOfBytes": "32", + "value": "t_mapping(t_address,t_uint256)" + }, + "t_mapping(t_address,t_uint256)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32", + "value": "t_struct(RoleData)34_storage" + }, + "t_struct(RoleData)34_storage": { + "encoding": "inplace", + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "astId": 31, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "members", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_address,t_bool)" + }, + { + "astId": 33, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol:DonationHandler", + "label": "adminRole", + "offset": 0, + "slot": "1", + "type": "t_bytes32" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "encoding": "inplace", + "label": "uint8", + "numberOfBytes": "1" + } + } + }, + "userdoc": { + "errors": { + "FeeTooHigh()": [ + { + "notice": "Throws if passed fee is above 100%." + } + ], + "FeeTooLow()": [ + { + "notice": "Throws if passed fee is below minFee." + } + ], + "InsufficientBalance()": [ + { + "notice": "Throws if the withdrawal amount is too high." + } + ], + "InvalidAmount()": [ + { + "notice": "Throws if amount is zero or does not match the msg.value" + } + ], + "NotAdmin()": [ + { + "notice": "Throws if called by any account other than a admin." + } + ], + "NotDefaultAdmin()": [ + { + "notice": "Throws if called by any account other than a default admin." + } + ], + "NotFeeReceiver()": [ + { + "notice": "Throws if the sender is not a whitelisted fee receiver." + } + ], + "RecipientNotAccepted()": [ + { + "notice": "Throws if a donation recipient is not whitelisted." + } + ], + "TokenNotAccepted()": [ + { + "notice": "Throws if a token is not whitelisted." + } + ], + "TransferFailed()": [ + { + "notice": "Throws if the native currency transfer failed" + } + ] + }, + "events": { + "DonationRegistered(address,address,address,uint256)": { + "notice": "Emitted when a donation is registered" + }, + "FeeRegistered(address,address,uint256)": { + "notice": "Emitted when a fee is registered" + }, + "IsRecipientWhitelistActiveSet(bool)": { + "notice": "Emitted when the recipient whitelist is set to active or inactive" + }, + "IsTokenWhitelistActiveSet(bool)": { + "notice": "Emitted when the token whitelist is set to active or inactive" + }, + "MinFeeSet(uint256)": { + "notice": "Emitted when the minimum fee is set" + }, + "Voted(address,uint256,address,address,address)": { + "notice": "Emitted when a new vote is sent" + }, + "Withdraw(address,address,address,uint256)": { + "notice": "Emitted when a withdrawal is made" + } + }, + "kind": "user", + "methods": { + "HUNDRED()": { + "notice": "1e18 represents 100%, 1e16 represents 1%" + }, + "NATIVE()": { + "notice": "special address which represents the native network currency. address(0) is used by gitcoin." + }, + "addAdmin(address[])": { + "notice": "Assigns addresses to admin role. Can only be called by an admin." + }, + "addDonationRecipient(address[])": { + "notice": "Assigns addresses to donation recipient role. Can only be called by an admin." + }, + "addFeeReceiver(address[])": { + "notice": "Assigns addresses to fee receiver role. Can only be called by an admin." + }, + "addToken(address[])": { + "notice": "Assigns addresses to accepted token role. Can only be called by an admin." + }, + "balanceOf(address,address)": { + "notice": "Returns the token balance of a user" + }, + "balances(address,address)": { + "notice": "mapping: user => token => amount" + }, + "balancesOf(address[],address)": { + "notice": "Returns the token balances of a user" + }, + "distribute(address[],address)": { + "notice": "Distributes full amount of token arrays token from the contract to a recipient." + }, + "distributeMany(address[],address[])": { + "notice": "Distributes full amount of token arrays token from the contract to an array of recipients." + }, + "init()": { + "notice": "Invoked by RoundImplementation on creation to set the round for which the voting contracts is to be used" + }, + "initialize(address[],address[],address[],address[],uint256)": { + "notice": "Initialize the contract." + }, + "isAdmin(address)": { + "notice": "Wrapper function to check if an address is admin." + }, + "isDonationRecipient(address)": { + "notice": "Wrapper function to check if an address is a donation recipient." + }, + "isFeeReceiver(address)": { + "notice": "Wrapper function to check if an address is a fee receiver." + }, + "isTokenAccepted(address)": { + "notice": "Wrapper function to check if an address is a whitelisted token." + }, + "minFee()": { + "notice": "Minimum donation fee. 0 by default" + }, + "removeAdmin(address[])": { + "notice": "Removes addresses from admin role. Can only be called by default admin." + }, + "removeDonationRecipient(address[])": { + "notice": "Removes addresses from donation recipient role. Can only be called by an admin." + }, + "removeFeeReceiver(address[])": { + "notice": "Removes addresses from fee receiver role. Can only be called by an admin." + }, + "removeToken(address[])": { + "notice": "Removes addresses from accepted token role. Can only be called by an admin." + }, + "roundAddress()": { + "notice": "Round address" + }, + "setIsRecipientWhitelistActive(bool)": { + "notice": "Enable/Disable recipient whitelist. Can only be called by an Admin. Emits IsRecipientWhitelistActiveSet event." + }, + "setIsTokenWhitelistActive(bool)": { + "notice": "Enable/Disable token whitelist. Can only be called by an Admin. Emits IsTokenWhitelistActiveSet event." + }, + "setMinFee(uint256)": { + "notice": "Set minimum donation fee. Can only be called by an Admin. Emits MinFeeSet event." + }, + "vote(bytes[],address)": { + "notice": "Donate(vote) to a whitelisted recipient." + }, + "withdraw(address,uint256)": { + "notice": "Withdraw tokens from the contract to msg.sender." + }, + "withdrawFee(address)": { + "notice": "Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver." + }, + "withdrawFeeMany(address[])": { + "notice": "Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver." + }, + "withdrawMany(address[])": { + "notice": "Withdraw full amount of token arrays token from the contract to msg.sender." + } + }, + "notice": "This contract is used to handle donations This contract is build to use with proxies. The user can donate whitelisted token to whitelisted recipients by calling the vote function. The fee is deducted from the users donation, assigned to the contracts address and can be withdrawn by a fee receiver. The min fee is set during initialization and can be changed by the protocol admins. The max fee is set by default to 1e18 and can't be changed. The user can withdraw the donation of a single token by calling the withdraw function. The user can withdraw all donations of a list of token by calling the withdrawMany function. The fee receiver can withdraw the donation fee by calling the withdrawFee function. The fee receiver can withdraw the donation fee of a list of token by calling the withdrawFeeMany function. Users can distribute the funds of a list of token in behalf of a recipient by calling the distribute function. Users can distribute the funds of a list of token in behalf of a list of recipients by calling the distributeMany function. The donation balance of one token can be checked by calling the balanceOf function. The donation balance of multiple token can be checked by calling the balancesOf function.", + "version": 1 + } + } + }, + "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol": { + "DonationHandlerRoles": { + "abi": [ + { + "inputs": [], + "name": "NotAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "NotDefaultAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "NotFeeReceiver", + "type": "error" + }, + { + "inputs": [], + "name": "RecipientNotAccepted", + "type": "error" + }, + { + "inputs": [], + "name": "TokenNotAccepted", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "ACCEPTED_TOKEN", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ADMIN", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DONATION_RECIPIENT", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FEE_RECEIVER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NATIVE", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_admins", + "type": "address[]" + } + ], + "name": "addAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_recipients", + "type": "address[]" + } + ], + "name": "addDonationRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_feeReceiver", + "type": "address[]" + } + ], + "name": "addFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "addToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "isAdmin", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_recipient", + "type": "address" + } + ], + "name": "isDonationRecipient", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_receiver", + "type": "address" + } + ], + "name": "isFeeReceiver", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "isTokenAccepted", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_admins", + "type": "address[]" + } + ], + "name": "removeAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_recipients", + "type": "address[]" + } + ], + "name": "removeDonationRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_feeReceiver", + "type": "address[]" + } + ], + "name": "removeFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_token", + "type": "address[]" + } + ], + "name": "removeToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "revokeAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "author": "@Kurt for Giveth", + "kind": "dev", + "methods": { + "addAdmin(address[])": { + "params": { + "_admins": "Array of addresses to assign to admin role." + } + }, + "addDonationRecipient(address[])": { + "params": { + "_recipients": "Array of addresses to assign to donation recipient role." + } + }, + "addFeeReceiver(address[])": { + "params": { + "_feeReceiver": "Array of addresses to assign to fee receiver role." + } + }, + "addToken(address[])": { + "params": { + "_token": "Array of addresses to assign to accepted token role." + } + }, + "getRoleAdmin(bytes32)": { + "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." + }, + "grantRole(bytes32,address)": { + "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event." + }, + "hasRole(bytes32,address)": { + "details": "Returns `true` if `account` has been granted `role`." + }, + "isAdmin(address)": { + "params": { + "_account": "The address to check." + }, + "returns": { + "_0": "bool True if address is admin, false otherwise." + } + }, + "isDonationRecipient(address)": { + "params": { + "_recipient": "The address to check." + }, + "returns": { + "_0": "bool True if address is a donation recipient, false otherwise." + } + }, + "isFeeReceiver(address)": { + "params": { + "_receiver": "The address to check." + }, + "returns": { + "_0": "bool True if address is a fee receiver, false otherwise." + } + }, + "isTokenAccepted(address)": { + "params": { + "_token": "The address to check." + }, + "returns": { + "_0": "bool True if address is whitelisted, false otherwise." + } + }, + "removeAdmin(address[])": { + "params": { + "_admins": "Array of addresses to remove from admin role." + } + }, + "removeDonationRecipient(address[])": { + "params": { + "_recipients": "Array of addresses to remove from donation recipient role." + } + }, + "removeFeeReceiver(address[])": { + "params": { + "_feeReceiver": "Array of addresses to remove from fee receiver role." + } + }, + "removeToken(address[])": { + "params": { + "_token": "Array of addresses to remove from accepted token role." + } + }, + "renounceRole(bytes32,address)": { + "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event." + }, + "revokeRole(bytes32,address)": { + "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + } + }, + "title": "DonationHandlerRoles", + "version": 1 + }, + "evm": { + "assembly": " /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":336:8866 contract DonationHandlerRoles is AccessControl {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":336:8866 contract DonationHandlerRoles is AccessControl {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x80c78f1c\n gt\n tag_28\n jumpi\n dup1\n 0xb278110f\n gt\n tag_29\n jumpi\n dup1\n 0xd547741f\n gt\n tag_30\n jumpi\n dup1\n 0xd547741f\n eq\n tag_24\n jumpi\n dup1\n 0xdcda7dad\n eq\n tag_25\n jumpi\n dup1\n 0xfbfe3ab2\n eq\n tag_26\n jumpi\n dup1\n 0xfdbb219d\n eq\n tag_27\n jumpi\n jump(tag_2)\n tag_30:\n dup1\n 0xb278110f\n eq\n tag_21\n jumpi\n dup1\n 0xbf7cb70b\n eq\n tag_22\n jumpi\n dup1\n 0xd3e78e4d\n eq\n tag_23\n jumpi\n jump(tag_2)\n tag_29:\n dup1\n 0x80c78f1c\n eq\n tag_15\n jumpi\n dup1\n 0x91d14854\n eq\n tag_16\n jumpi\n dup1\n 0x9d082c98\n eq\n tag_17\n jumpi\n dup1\n 0xa0cf0aea\n eq\n tag_18\n jumpi\n dup1\n 0xa217fddf\n eq\n tag_19\n jumpi\n dup1\n 0xae876f61\n eq\n tag_20\n jumpi\n jump(tag_2)\n tag_28:\n dup1\n 0x24d7806c\n gt\n tag_31\n jumpi\n dup1\n 0x24d7806c\n eq\n tag_9\n jumpi\n dup1\n 0x2620d800\n eq\n tag_10\n jumpi\n dup1\n 0x2a0acc6a\n eq\n tag_11\n jumpi\n dup1\n 0x2f2ff15d\n eq\n tag_12\n jumpi\n dup1\n 0x36568abe\n eq\n tag_13\n jumpi\n dup1\n 0x3d0950a8\n eq\n tag_14\n jumpi\n jump(tag_2)\n tag_31:\n dup1\n 0x01ffc9a7\n eq\n tag_3\n jumpi\n dup1\n 0x0560bd96\n eq\n tag_4\n jumpi\n dup1\n 0x0d6aef04\n eq\n tag_5\n jumpi\n dup1\n 0x1037d18c\n eq\n tag_6\n jumpi\n dup1\n 0x10881166\n eq\n tag_7\n jumpi\n dup1\n 0x248a9ca3\n eq\n tag_8\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2903:3116 function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {... */\n tag_3:\n tag_32\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_33\n swap2\n swap1\n tag_34\n jump\t// in\n tag_33:\n tag_35\n jump\t// in\n tag_32:\n mload(0x40)\n tag_36\n swap2\n swap1\n tag_37\n jump\t// in\n tag_36:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5484:5609 function isTokenAccepted(address _token) external view returns (bool) {... */\n tag_4:\n tag_38\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_39\n swap2\n swap1\n tag_40\n jump\t// in\n tag_39:\n tag_41\n jump\t// in\n tag_38:\n mload(0x40)\n tag_42\n swap2\n swap1\n tag_37\n jump\t// in\n tag_42:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3931:4043 function revokeAdmin() external {... */\n tag_5:\n tag_43\n tag_44\n jump\t// in\n tag_43:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6536:6705 function removeDonationRecipient(address[] calldata _recipients) external {... */\n tag_6:\n tag_45\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_46\n swap2\n swap1\n tag_47\n jump\t// in\n tag_46:\n tag_48\n jump\t// in\n tag_45:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4829:4966 function addToken(address[] calldata _token) external {... */\n tag_7:\n tag_49\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_50\n swap2\n swap1\n tag_47\n jump\t// in\n tag_50:\n tag_51\n jump\t// in\n tag_49:\n stop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4708:4837 function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {... */\n tag_8:\n tag_52\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_53\n swap2\n swap1\n tag_54\n jump\t// in\n tag_53:\n tag_55\n jump\t// in\n tag_52:\n mload(0x40)\n tag_56\n swap2\n swap1\n tag_57\n jump\t// in\n tag_56:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4225:4337 function isAdmin(address _account) external view returns (bool) {... */\n tag_9:\n tag_58\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_59\n swap2\n swap1\n tag_40\n jump\t// in\n tag_59:\n tag_60\n jump\t// in\n tag_58:\n mload(0x40)\n tag_61\n swap2\n swap1\n tag_37\n jump\t// in\n tag_61:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7892:8051 function removeFeeReceiver(address[] calldata _feeReceiver) external {... */\n tag_10:\n tag_62\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_63\n swap2\n swap1\n tag_47\n jump\t// in\n tag_63:\n tag_64\n jump\t// in\n tag_62:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":615:665 bytes32 public constant ADMIN = keccak256(\"ADMIN\") */\n tag_11:\n tag_65\n tag_66\n jump\t// in\n tag_65:\n mload(0x40)\n tag_67\n swap2\n swap1\n tag_57\n jump\t// in\n tag_67:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5133:5278 function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n tag_12:\n tag_68\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_69\n swap2\n swap1\n tag_70\n jump\t// in\n tag_69:\n tag_71\n jump\t// in\n tag_68:\n stop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6242:6456 function renounceRole(bytes32 role, address account) public virtual override {... */\n tag_13:\n tag_72\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_73\n swap2\n swap1\n tag_70\n jump\t// in\n tag_73:\n tag_74\n jump\t// in\n tag_72:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3393:3523 function addAdmin(address[] calldata _admins) external {... */\n tag_14:\n tag_75\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_76\n swap2\n swap1\n tag_47\n jump\t// in\n tag_76:\n tag_77\n jump\t// in\n tag_75:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6185:6348 function addDonationRecipient(address[] calldata _recipients) external {... */\n tag_15:\n tag_78\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_79\n swap2\n swap1\n tag_47\n jump\t// in\n tag_79:\n tag_80\n jump\t// in\n tag_78:\n stop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3203:3348 function hasRole(bytes32 role, address account) public view virtual override returns (bool) {... */\n tag_16:\n tag_81\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_82\n swap2\n swap1\n tag_70\n jump\t// in\n tag_82:\n tag_83\n jump\t// in\n tag_81:\n mload(0x40)\n tag_84\n swap2\n swap1\n tag_37\n jump\t// in\n tag_84:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7562:7715 function addFeeReceiver(address[] calldata _feeReceiver) external {... */\n tag_17:\n tag_85\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_86\n swap2\n swap1\n tag_47\n jump\t// in\n tag_86:\n tag_87\n jump\t// in\n tag_85:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":781:824 address public constant NATIVE = address(0) */\n tag_18:\n tag_88\n tag_89\n jump\t// in\n tag_88:\n mload(0x40)\n tag_90\n swap2\n swap1\n tag_91\n jump\t// in\n tag_90:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2324:2373 bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00 */\n tag_19:\n tag_92\n tag_93\n jump\t// in\n tag_92:\n mload(0x40)\n tag_94\n swap2\n swap1\n tag_57\n jump\t// in\n tag_94:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3686:3869 function removeAdmin(address[] calldata _admins) external {... */\n tag_20:\n tag_95\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_96\n swap2\n swap1\n tag_47\n jump\t// in\n tag_96:\n tag_97\n jump\t// in\n tag_95:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8252:8379 function isFeeReceiver(address _receiver) external view returns (bool) {... */\n tag_21:\n tag_98\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_99\n swap2\n swap1\n tag_40\n jump\t// in\n tag_99:\n tag_100\n jump\t// in\n tag_98:\n mload(0x40)\n tag_101\n swap2\n swap1\n tag_37\n jump\t// in\n tag_101:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5141:5284 function removeToken(address[] calldata _token) external {... */\n tag_22:\n tag_102\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_103\n swap2\n swap1\n tag_47\n jump\t// in\n tag_103:\n tag_104\n jump\t// in\n tag_102:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":545:609 bytes32 public constant FEE_RECEIVER = keccak256(\"FEE_RECEIVER\") */\n tag_23:\n tag_105\n tag_106\n jump\t// in\n tag_105:\n mload(0x40)\n tag_107\n swap2\n swap1\n tag_57\n jump\t// in\n tag_107:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5558:5705 function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n tag_24:\n tag_108\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_109\n swap2\n swap1\n tag_70\n jump\t// in\n tag_109:\n tag_110\n jump\t// in\n tag_108:\n stop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":463:539 bytes32 public constant DONATION_RECIPIENT = keccak256(\"DONATION_RECIPIENT\") */\n tag_25:\n tag_111\n tag_112\n jump\t// in\n tag_111:\n mload(0x40)\n tag_113\n swap2\n swap1\n tag_57\n jump\t// in\n tag_113:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6919:7060 function isDonationRecipient(address _recipient) external view returns (bool) {... */\n tag_26:\n tag_114\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_115\n swap2\n swap1\n tag_40\n jump\t// in\n tag_115:\n tag_116\n jump\t// in\n tag_114:\n mload(0x40)\n tag_117\n swap2\n swap1\n tag_37\n jump\t// in\n tag_117:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":389:457 bytes32 public constant ACCEPTED_TOKEN = keccak256(\"ACCEPTED_TOKEN\") */\n tag_27:\n tag_118\n tag_119\n jump\t// in\n tag_118:\n mload(0x40)\n tag_120\n swap2\n swap1\n tag_57\n jump\t// in\n tag_120:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2903:3116 function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {... */\n tag_35:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2988:2992 bool */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3026:3069 type(IAccessControlUpgradeable).interfaceId */\n 0x7965db0b00000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3011:3069 interfaceId == type(IAccessControlUpgradeable).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3011:3022 interfaceId */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3011:3069 interfaceId == type(IAccessControlUpgradeable).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n eq\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3011:3109 interfaceId == type(IAccessControlUpgradeable).interfaceId || super.supportsInterface(interfaceId) */\n dup1\n tag_122\n jumpi\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3073:3109 super.supportsInterface(interfaceId) */\n tag_123\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3097:3108 interfaceId */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3073:3096 super.supportsInterface */\n tag_124\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3073:3109 super.supportsInterface(interfaceId) */\n jump\t// in\n tag_123:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3011:3109 interfaceId == type(IAccessControlUpgradeable).interfaceId || super.supportsInterface(interfaceId) */\n tag_122:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3004:3109 return interfaceId == type(IAccessControlUpgradeable).interfaceId || super.supportsInterface(interfaceId) */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2903:3116 function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5484:5609 function isTokenAccepted(address _token) external view returns (bool) {... */\n tag_41:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5548:5552 bool */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5571:5602 hasRole(ACCEPTED_TOKEN, _token) */\n tag_126\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5595:5601 _token */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5571:5578 hasRole */\n tag_83\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5571:5602 hasRole(ACCEPTED_TOKEN, _token) */\n jump\t// in\n tag_126:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5564:5602 return hasRole(ACCEPTED_TOKEN, _token) */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5484:5609 function isTokenAccepted(address _token) external view returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3931:4043 function revokeAdmin() external {... */\n tag_44:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3973:3996 _checkAdmin(msg.sender) */\n tag_128\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3985:3995 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3973:3984 _checkAdmin */\n tag_129\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3973:3996 _checkAdmin(msg.sender) */\n jump\t// in\n tag_128:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4006:4036 _revokeRole(ADMIN, msg.sender) */\n tag_130\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4025:4035 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4006:4017 _revokeRole */\n tag_131\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4006:4036 _revokeRole(ADMIN, msg.sender) */\n jump\t// in\n tag_130:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3931:4043 function revokeAdmin() external {... */\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6536:6705 function removeDonationRecipient(address[] calldata _recipients) external {... */\n tag_48:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6620:6643 _checkAdmin(msg.sender) */\n tag_133\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6632:6642 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6620:6631 _checkAdmin */\n tag_129\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6620:6643 _checkAdmin(msg.sender) */\n jump\t// in\n tag_133:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6653:6698 _removeRoles(DONATION_RECIPIENT, _recipients) */\n tag_134\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6686:6697 _recipients */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6653:6665 _removeRoles */\n tag_135\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6653:6698 _removeRoles(DONATION_RECIPIENT, _recipients) */\n jump\t// in\n tag_134:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6536:6705 function removeDonationRecipient(address[] calldata _recipients) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4829:4966 function addToken(address[] calldata _token) external {... */\n tag_51:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4893:4916 _checkAdmin(msg.sender) */\n tag_137\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4905:4915 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4893:4904 _checkAdmin */\n tag_129\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4893:4916 _checkAdmin(msg.sender) */\n jump\t// in\n tag_137:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4926:4959 _addRoles(ACCEPTED_TOKEN, _token) */\n tag_138\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4952:4958 _token */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4926:4935 _addRoles */\n tag_139\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4926:4959 _addRoles(ACCEPTED_TOKEN, _token) */\n jump\t// in\n tag_138:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4829:4966 function addToken(address[] calldata _token) external {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4708:4837 function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {... */\n tag_55:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4782:4789 bytes32 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4808:4814 _roles */\n 0x65\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4808:4820 _roles[role] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4815:4819 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4808:4820 _roles[role] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4808:4830 _roles[role].adminRole */\n 0x01\n add\n sload\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4801:4830 return _roles[role].adminRole */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4708:4837 function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4225:4337 function isAdmin(address _account) external view returns (bool) {... */\n tag_60:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4283:4287 bool */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4306:4330 hasRole(ADMIN, _account) */\n tag_142\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4321:4329 _account */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4306:4313 hasRole */\n tag_83\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4306:4330 hasRole(ADMIN, _account) */\n jump\t// in\n tag_142:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4299:4330 return hasRole(ADMIN, _account) */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":4225:4337 function isAdmin(address _account) external view returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7892:8051 function removeFeeReceiver(address[] calldata _feeReceiver) external {... */\n tag_64:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7971:7994 _checkAdmin(msg.sender) */\n tag_144\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7983:7993 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7971:7982 _checkAdmin */\n tag_129\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7971:7994 _checkAdmin(msg.sender) */\n jump\t// in\n tag_144:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8004:8044 _removeRoles(FEE_RECEIVER, _feeReceiver) */\n tag_145\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":584:609 keccak256(\"FEE_RECEIVER\") */\n 0xb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8031:8043 _feeReceiver */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8004:8016 _removeRoles */\n tag_135\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8004:8044 _removeRoles(FEE_RECEIVER, _feeReceiver) */\n jump\t// in\n tag_145:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7892:8051 function removeFeeReceiver(address[] calldata _feeReceiver) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":615:665 bytes32 public constant ADMIN = keccak256(\"ADMIN\") */\n tag_66:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":615:665 bytes32 public constant ADMIN = keccak256(\"ADMIN\") */\n dup2\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5133:5278 function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n tag_71:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5216:5234 getRoleAdmin(role) */\n tag_146\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5229:5233 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5216:5228 getRoleAdmin */\n tag_55\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5216:5234 getRoleAdmin(role) */\n jump\t// in\n tag_146:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2818 _checkRole(role) */\n tag_148\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2813:2817 role */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2812 _checkRole */\n tag_149\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2818 _checkRole(role) */\n jump\t// in\n tag_148:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5246:5271 _grantRole(role, account) */\n tag_151\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5257:5261 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5263:5270 account */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5246:5256 _grantRole */\n tag_152\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5246:5271 _grantRole(role, account) */\n jump\t// in\n tag_151:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5133:5278 function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6242:6456 function renounceRole(bytes32 role, address account) public virtual override {... */\n tag_74:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6348:6360 _msgSender() */\n tag_154\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6348:6358 _msgSender */\n tag_155\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6348:6360 _msgSender() */\n jump\t// in\n tag_154:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6337:6360 account == _msgSender() */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6337:6344 account */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6337:6360 account == _msgSender() */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6329:6412 require(account == _msgSender(), \"AccessControl: can only renounce roles for self\") */\n tag_156\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_157\n swap1\n tag_158\n jump\t// in\n tag_157:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_156:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6423:6449 _revokeRole(role, account) */\n tag_159\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6435:6439 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6441:6448 account */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6423:6434 _revokeRole */\n tag_131\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6423:6449 _revokeRole(role, account) */\n jump\t// in\n tag_159:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":6242:6456 function renounceRole(bytes32 role, address account) public virtual override {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3393:3523 function addAdmin(address[] calldata _admins) external {... */\n tag_77:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3458:3481 _checkAdmin(msg.sender) */\n tag_161\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3470:3480 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3458:3469 _checkAdmin */\n tag_129\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3458:3481 _checkAdmin(msg.sender) */\n jump\t// in\n tag_161:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3491:3516 _addRoles(ADMIN, _admins) */\n tag_162\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3508:3515 _admins */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3491:3500 _addRoles */\n tag_139\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3491:3516 _addRoles(ADMIN, _admins) */\n jump\t// in\n tag_162:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3393:3523 function addAdmin(address[] calldata _admins) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6185:6348 function addDonationRecipient(address[] calldata _recipients) external {... */\n tag_80:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6266:6289 _checkAdmin(msg.sender) */\n tag_164\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6278:6288 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6266:6277 _checkAdmin */\n tag_129\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6266:6289 _checkAdmin(msg.sender) */\n jump\t// in\n tag_164:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6299:6341 _addRoles(DONATION_RECIPIENT, _recipients) */\n tag_165\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6329:6340 _recipients */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6299:6308 _addRoles */\n tag_139\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6299:6341 _addRoles(DONATION_RECIPIENT, _recipients) */\n jump\t// in\n tag_165:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6185:6348 function addDonationRecipient(address[] calldata _recipients) external {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3203:3348 function hasRole(bytes32 role, address account) public view virtual override returns (bool) {... */\n tag_83:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3289:3293 bool */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3318 _roles */\n 0x65\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3324 _roles[role] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3319:3323 role */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3324 _roles[role] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3332 _roles[role].members */\n 0x00\n add\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3341 _roles[role].members[account] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3333:3340 account */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3312:3341 _roles[role].members[account] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3305:3341 return _roles[role].members[account] */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3203:3348 function hasRole(bytes32 role, address account) public view virtual override returns (bool) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7562:7715 function addFeeReceiver(address[] calldata _feeReceiver) external {... */\n tag_87:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7638:7661 _checkAdmin(msg.sender) */\n tag_168\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7650:7660 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7638:7649 _checkAdmin */\n tag_129\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7638:7661 _checkAdmin(msg.sender) */\n jump\t// in\n tag_168:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7671:7708 _addRoles(FEE_RECEIVER, _feeReceiver) */\n tag_169\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":584:609 keccak256(\"FEE_RECEIVER\") */\n 0xb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7695:7707 _feeReceiver */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7671:7680 _addRoles */\n tag_139\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7671:7708 _addRoles(FEE_RECEIVER, _feeReceiver) */\n jump\t// in\n tag_169:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7562:7715 function addFeeReceiver(address[] calldata _feeReceiver) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":781:824 address public constant NATIVE = address(0) */\n tag_89:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":822:823 0 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":781:824 address public constant NATIVE = address(0) */\n dup2\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2324:2373 bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00 */\n tag_93:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2369:2373 0x00 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2324:2373 bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00 */\n dup1\n shl\n dup2\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3686:3869 function removeAdmin(address[] calldata _admins) external {... */\n tag_97:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3759:3798 hasRole(DEFAULT_ADMIN_ROLE, msg.sender) */\n tag_171\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2369:2373 0x00 */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3767:3785 DEFAULT_ADMIN_ROLE */\n dup1\n shl\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3787:3797 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3759:3766 hasRole */\n tag_83\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3759:3798 hasRole(DEFAULT_ADMIN_ROLE, msg.sender) */\n jump\t// in\n tag_171:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3754:3824 if (!hasRole(DEFAULT_ADMIN_ROLE, msg.sender)) revert NotDefaultAdmin() */\n tag_172\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3807:3824 NotDefaultAdmin() */\n mload(0x40)\n 0x46ab053d00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3754:3824 if (!hasRole(DEFAULT_ADMIN_ROLE, msg.sender)) revert NotDefaultAdmin() */\n tag_172:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3834:3862 _removeRoles(ADMIN, _admins) */\n tag_173\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3854:3861 _admins */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3834:3846 _removeRoles */\n tag_135\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3834:3862 _removeRoles(ADMIN, _admins) */\n jump\t// in\n tag_173:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3686:3869 function removeAdmin(address[] calldata _admins) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8252:8379 function isFeeReceiver(address _receiver) external view returns (bool) {... */\n tag_100:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8317:8321 bool */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8340:8372 hasRole(FEE_RECEIVER, _receiver) */\n tag_175\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":584:609 keccak256(\"FEE_RECEIVER\") */\n 0xb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8362:8371 _receiver */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8340:8347 hasRole */\n tag_83\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8340:8372 hasRole(FEE_RECEIVER, _receiver) */\n jump\t// in\n tag_175:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8333:8372 return hasRole(FEE_RECEIVER, _receiver) */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":8252:8379 function isFeeReceiver(address _receiver) external view returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5141:5284 function removeToken(address[] calldata _token) external {... */\n tag_104:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5208:5231 _checkAdmin(msg.sender) */\n tag_177\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5220:5230 msg.sender */\n caller\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5208:5219 _checkAdmin */\n tag_129\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5208:5231 _checkAdmin(msg.sender) */\n jump\t// in\n tag_177:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5241:5277 _removeRoles(ACCEPTED_TOKEN, _token) */\n tag_178\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5270:5276 _token */\n dup4\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5241:5253 _removeRoles */\n tag_135\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5241:5277 _removeRoles(ACCEPTED_TOKEN, _token) */\n jump\t// in\n tag_178:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":5141:5284 function removeToken(address[] calldata _token) external {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":545:609 bytes32 public constant FEE_RECEIVER = keccak256(\"FEE_RECEIVER\") */\n tag_106:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":584:609 keccak256(\"FEE_RECEIVER\") */\n 0xb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":545:609 bytes32 public constant FEE_RECEIVER = keccak256(\"FEE_RECEIVER\") */\n dup2\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5558:5705 function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n tag_110:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5642:5660 getRoleAdmin(role) */\n tag_179\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5655:5659 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5642:5654 getRoleAdmin */\n tag_55\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5642:5660 getRoleAdmin(role) */\n jump\t// in\n tag_179:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2818 _checkRole(role) */\n tag_181\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2813:2817 role */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2812 _checkRole */\n tag_149\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":2802:2818 _checkRole(role) */\n jump\t// in\n tag_181:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5672:5698 _revokeRole(role, account) */\n tag_183\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5684:5688 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5690:5697 account */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5672:5683 _revokeRole */\n tag_131\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5672:5698 _revokeRole(role, account) */\n jump\t// in\n tag_183:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":5558:5705 function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {... */\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":463:539 bytes32 public constant DONATION_RECIPIENT = keccak256(\"DONATION_RECIPIENT\") */\n tag_112:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":463:539 bytes32 public constant DONATION_RECIPIENT = keccak256(\"DONATION_RECIPIENT\") */\n dup2\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6919:7060 function isDonationRecipient(address _recipient) external view returns (bool) {... */\n tag_116:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6991:6995 bool */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7014:7053 hasRole(DONATION_RECIPIENT, _recipient) */\n tag_185\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":508:539 keccak256(\"DONATION_RECIPIENT\") */\n 0xbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7042:7052 _recipient */\n dup4\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7014:7021 hasRole */\n tag_83\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7014:7053 hasRole(DONATION_RECIPIENT, _recipient) */\n jump\t// in\n tag_185:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":7007:7053 return hasRole(DONATION_RECIPIENT, _recipient) */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":6919:7060 function isDonationRecipient(address _recipient) external view returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":389:457 bytes32 public constant ACCEPTED_TOKEN = keccak256(\"ACCEPTED_TOKEN\") */\n tag_119:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":430:457 keccak256(\"ACCEPTED_TOKEN\") */\n 0x6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":389:457 bytes32 public constant ACCEPTED_TOKEN = keccak256(\"ACCEPTED_TOKEN\") */\n dup2\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1060:1226 function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {... */\n tag_124:\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1145:1149 bool */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1183:1219 type(IERC165Upgradeable).interfaceId */\n 0x01ffc9a700000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1168:1219 interfaceId == type(IERC165Upgradeable).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1168:1179 interfaceId */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1168:1219 interfaceId == type(IERC165Upgradeable).interfaceId */\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n eq\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1161:1219 return interfaceId == type(IERC165Upgradeable).interfaceId */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":1060:1226 function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3121:3239 function _checkAdmin(address _address) internal view {... */\n tag_129:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3189:3213 hasRole(ADMIN, _address) */\n tag_188\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":647:665 keccak256(\"ADMIN\") */\n 0xdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3204:3212 _address */\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3189:3196 hasRole */\n tag_83\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3189:3213 hasRole(ADMIN, _address) */\n jump\t// in\n tag_188:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3184:3232 if (!hasRole(ADMIN, _address)) revert NotAdmin() */\n tag_189\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3222:3232 NotAdmin() */\n mload(0x40)\n 0x7bfa4b9f00000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3184:3232 if (!hasRole(ADMIN, _address)) revert NotAdmin() */\n tag_189:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":3121:3239 function _checkAdmin(address _address) internal view {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8195:8429 function _revokeRole(bytes32 role, address account) internal virtual {... */\n tag_131:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8278:8300 hasRole(role, account) */\n tag_191\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8286:8290 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8292:8299 account */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8278:8285 hasRole */\n tag_83\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8278:8300 hasRole(role, account) */\n jump\t// in\n tag_191:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8274:8423 if (hasRole(role, account)) {... */\n iszero\n tag_192\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8348:8353 false */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8322 _roles */\n 0x65\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8328 _roles[role] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8323:8327 role */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8328 _roles[role] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8336 _roles[role].members */\n 0x00\n add\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8345 _roles[role].members[account] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8337:8344 account */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8345 _roles[role].members[account] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8316:8353 _roles[role].members[account] = false */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8399:8411 _msgSender() */\n tag_193\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8399:8409 _msgSender */\n tag_155\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8399:8411 _msgSender() */\n jump\t// in\n tag_193:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8372:8412 RoleRevoked(role, account, _msgSender()) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8390:8397 account */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8372:8412 RoleRevoked(role, account, _msgSender()) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8384:8388 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8372:8412 RoleRevoked(role, account, _msgSender()) */\n 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8274:8423 if (hasRole(role, account)) {... */\n tag_192:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":8195:8429 function _revokeRole(bytes32 role, address account) internal virtual {... */\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2713:2999 function _removeRoles(bytes32 _role, address[] calldata _addresses) internal {... */\n tag_135:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2800:2814 uint256 length */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2817:2827 _addresses */\n dup3\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2817:2834 _addresses.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2800:2834 uint256 length = _addresses.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2849:2858 uint256 i */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2844:2993 for (uint256 i = 0; i < length;) {... */\n tag_195:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2868:2874 length */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2864:2865 i */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2864:2874 i < length */\n lt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2844:2993 for (uint256 i = 0; i < length;) {... */\n iszero\n tag_196\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2891:2923 revokeRole(_role, _addresses[i]) */\n tag_198\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2902:2907 _role */\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2909:2919 _addresses */\n dup6\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2920:2921 i */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2909:2922 _addresses[i] */\n dup2\n dup2\n lt\n tag_199\n jumpi\n tag_200\n tag_201\n jump\t// in\n tag_200:\n tag_199:\n swap1\n pop\n 0x20\n mul\n add\n 0x20\n dup2\n add\n swap1\n tag_202\n swap2\n swap1\n tag_40\n jump\t// in\n tag_202:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2891:2901 revokeRole */\n tag_110\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2891:2923 revokeRole(_role, _addresses[i]) */\n jump\t// in\n tag_198:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2965:2968 i++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2844:2993 for (uint256 i = 0; i < length;) {... */\n jump(tag_195)\n tag_196:\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2790:2999 {... */\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2713:2999 function _removeRoles(bytes32 _role, address[] calldata _addresses) internal {... */\n pop\n pop\n pop\n jump\t// out\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2215:2498 function _addRoles(bytes32 _role, address[] calldata _addresses) internal {... */\n tag_139:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2299:2313 uint256 length */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2316:2326 _addresses */\n dup3\n dup3\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2316:2333 _addresses.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2299:2333 uint256 length = _addresses.length */\n swap1\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2348:2357 uint256 i */\n 0x00\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2343:2492 for (uint256 i = 0; i < length;) {... */\n tag_204:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2367:2373 length */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2363:2364 i */\n dup2\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2363:2373 i < length */\n lt\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2343:2492 for (uint256 i = 0; i < length;) {... */\n iszero\n tag_205\n jumpi\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2390:2422 _setupRole(_role, _addresses[i]) */\n tag_207\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2401:2406 _role */\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2408:2418 _addresses */\n dup6\n dup6\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2419:2420 i */\n dup5\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2408:2421 _addresses[i] */\n dup2\n dup2\n lt\n tag_208\n jumpi\n tag_209\n tag_201\n jump\t// in\n tag_209:\n tag_208:\n swap1\n pop\n 0x20\n mul\n add\n 0x20\n dup2\n add\n swap1\n tag_210\n swap2\n swap1\n tag_40\n jump\t// in\n tag_210:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2390:2400 _setupRole */\n tag_211\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2390:2422 _setupRole(_role, _addresses[i]) */\n jump\t// in\n tag_207:\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2464:2467 i++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2343:2492 for (uint256 i = 0; i < length;) {... */\n jump(tag_204)\n tag_205:\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2289:2498 {... */\n pop\n /* \"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":2215:2498 function _addRoles(bytes32 _role, address[] calldata _addresses) internal {... */\n pop\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3642:3745 function _checkRole(bytes32 role) internal view virtual {... */\n tag_149:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3708:3738 _checkRole(role, _msgSender()) */\n tag_213\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3719:3723 role */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3725:3737 _msgSender() */\n tag_214\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3725:3735 _msgSender */\n tag_155\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3725:3737 _msgSender() */\n jump\t// in\n tag_214:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3708:3718 _checkRole */\n tag_215\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3708:3738 _checkRole(role, _msgSender()) */\n jump\t// in\n tag_213:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":3642:3745 function _checkRole(bytes32 role) internal view virtual {... */\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7791:8024 function _grantRole(bytes32 role, address account) internal virtual {... */\n tag_152:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7874:7896 hasRole(role, account) */\n tag_217\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7882:7886 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7888:7895 account */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7874:7881 hasRole */\n tag_83\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7874:7896 hasRole(role, account) */\n jump\t// in\n tag_217:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7869:8018 if (!hasRole(role, account)) {... */\n tag_218\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7944:7948 true */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7918 _roles */\n 0x65\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7924 _roles[role] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7919:7923 role */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7924 _roles[role] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7932 _roles[role].members */\n 0x00\n add\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7941 _roles[role].members[account] */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7933:7940 account */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7941 _roles[role].members[account] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7912:7948 _roles[role].members[account] = true */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7994:8006 _msgSender() */\n tag_219\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7994:8004 _msgSender */\n tag_155\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7994:8006 _msgSender() */\n jump\t// in\n tag_219:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7967:8007 RoleGranted(role, account, _msgSender()) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7985:7992 account */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7967:8007 RoleGranted(role, account, _msgSender()) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7979:7983 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7967:8007 RoleGranted(role, account, _msgSender()) */\n 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d\n mload(0x40)\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7869:8018 if (!hasRole(role, account)) {... */\n tag_218:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7791:8024 function _grantRole(bytes32 role, address account) internal virtual {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":850:946 function _msgSender() internal view virtual returns (address) {... */\n tag_155:\n /* \"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":903:910 address */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":929:939 msg.sender */\n caller\n /* \"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":922:939 return msg.sender */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":850:946 function _msgSender() internal view virtual returns (address) {... */\n swap1\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7141:7251 function _setupRole(bytes32 role, address account) internal virtual {... */\n tag_211:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7219:7244 _grantRole(role, account) */\n tag_222\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7230:7234 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7236:7243 account */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7219:7229 _grantRole */\n tag_152\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7219:7244 _grantRole(role, account) */\n jump\t// in\n tag_222:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":7141:7251 function _setupRole(bytes32 role, address account) internal virtual {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4026:4527 function _checkRole(bytes32 role, address account) internal view virtual {... */\n tag_215:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4114:4136 hasRole(role, account) */\n tag_224\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4122:4126 role */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4128:4135 account */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4114:4121 hasRole */\n tag_83\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4114:4136 hasRole(role, account) */\n jump\t// in\n tag_224:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4109:4521 if (!hasRole(role, account)) {... */\n tag_225\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4297:4336 StringsUpgradeable.toHexString(account) */\n tag_226\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4328:4335 account */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4297:4327 StringsUpgradeable.toHexString */\n tag_227\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4297:4336 StringsUpgradeable.toHexString(account) */\n jump\t// in\n tag_226:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4407:4456 StringsUpgradeable.toHexString(uint256(role), 32) */\n tag_228\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4446:4450 role */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4438:4451 uint256(role) */\n 0x00\n shr\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4453:4455 32 */\n 0x20\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4407:4437 StringsUpgradeable.toHexString */\n tag_229\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4407:4456 StringsUpgradeable.toHexString(uint256(role), 32) */\n jump\t// in\n tag_228:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4204:4478 abi.encodePacked(... */\n add(0x20, mload(0x40))\n tag_230\n swap3\n swap2\n swap1\n tag_231\n jump\t// in\n tag_230:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4152:4510 revert(... */\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_232\n swap2\n swap1\n tag_233\n jump\t// in\n tag_232:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4109:4521 if (!hasRole(role, account)) {... */\n tag_225:\n /* \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":4026:4527 function _checkRole(bytes32 role, address account) internal view virtual {... */\n pop\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2146:2295 function toHexString(address addr) internal pure returns (string memory) {... */\n tag_227:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2204:2217 string memory */\n 0x60\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2236:2288 toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH) */\n tag_235\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2264:2268 addr */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2248:2270 uint256(uint160(addr)) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":333:335 20 */\n 0x14\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2236:2288 toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH) */\n 0xff\n and\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2236:2247 toHexString */\n tag_229\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2236:2288 toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH) */\n jump\t// in\n tag_235:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2229:2288 return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH) */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":2146:2295 function toHexString(address addr) internal pure returns (string memory) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1557:1994 function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {... */\n tag_229:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1632:1645 string memory */\n 0x60\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1657:1676 bytes memory buffer */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1702:1703 2 */\n 0x02\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1693:1699 length */\n dup4\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1689:1690 2 */\n 0x02\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1689:1699 2 * length */\n tag_237\n swap2\n swap1\n tag_238\n jump\t// in\n tag_237:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1689:1703 2 * length + 2 */\n tag_239\n swap2\n swap1\n tag_240\n jump\t// in\n tag_239:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1679:1704 new bytes(2 * length + 2) */\n 0xffffffffffffffff\n dup2\n gt\n iszero\n tag_241\n jumpi\n tag_242\n tag_243\n jump\t// in\n tag_242:\n tag_241:\n mload(0x40)\n swap1\n dup1\n dup3\n mstore\n dup1\n 0x1f\n add\n not(0x1f)\n and\n 0x20\n add\n dup3\n add\n 0x40\n mstore\n dup1\n iszero\n tag_244\n jumpi\n dup2\n 0x20\n add\n 0x01\n dup3\n mul\n dup1\n calldatasize\n dup4\n calldatacopy\n dup1\n dup3\n add\n swap2\n pop\n pop\n swap1\n pop\n tag_244:\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1657:1704 bytes memory buffer = new bytes(2 * length + 2) */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1714:1729 buffer[0] = \"0\" */\n 0x3000000000000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1714:1720 buffer */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1721:1722 0 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1714:1723 buffer[0] */\n dup2\n mload\n dup2\n lt\n tag_245\n jumpi\n tag_246\n tag_201\n jump\t// in\n tag_246:\n tag_245:\n 0x20\n add\n add\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1714:1729 buffer[0] = \"0\" */\n swap1\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n swap1\n dup2\n 0x00\n byte\n swap1\n mstore8\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1739:1754 buffer[1] = \"x\" */\n 0x7800000000000000000000000000000000000000000000000000000000000000\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1739:1745 buffer */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1746:1747 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1739:1748 buffer[1] */\n dup2\n mload\n dup2\n lt\n tag_247\n jumpi\n tag_248\n tag_201\n jump\t// in\n tag_248:\n tag_247:\n 0x20\n add\n add\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1739:1754 buffer[1] = \"x\" */\n swap1\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n swap1\n dup2\n 0x00\n byte\n swap1\n mstore8\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1769:1778 uint256 i */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1794:1795 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1785:1791 length */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1781:1782 2 */\n 0x02\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1781:1791 2 * length */\n tag_252\n swap2\n swap1\n tag_238\n jump\t// in\n tag_252:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1781:1795 2 * length + 1 */\n tag_253\n swap2\n swap1\n tag_240\n jump\t// in\n tag_253:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1769:1795 uint256 i = 2 * length + 1 */\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1764:1892 for (uint256 i = 2 * length + 1; i > 1; --i) {... */\n tag_249:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1801:1802 1 */\n 0x01\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1797:1798 i */\n dup2\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1797:1802 i > 1 */\n gt\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1764:1892 for (uint256 i = 2 * length + 1; i > 1; --i) {... */\n iszero\n tag_250\n jumpi\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1835:1843 _SYMBOLS */\n 0x3031323334353637383961626364656600000000000000000000000000000000\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1852:1855 0xf */\n 0x0f\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1844:1849 value */\n dup7\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1844:1855 value & 0xf */\n and\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1835:1856 _SYMBOLS[value & 0xf] */\n 0x10\n dup2\n lt\n tag_254\n jumpi\n tag_255\n tag_201\n jump\t// in\n tag_255:\n tag_254:\n byte\n 0xf8\n shl\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1823:1829 buffer */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1830:1831 i */\n dup3\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1823:1832 buffer[i] */\n dup2\n mload\n dup2\n lt\n tag_256\n jumpi\n tag_257\n tag_201\n jump\t// in\n tag_257:\n tag_256:\n 0x20\n add\n add\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1823:1856 buffer[i] = _SYMBOLS[value & 0xf] */\n swap1\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n swap1\n dup2\n 0x00\n byte\n swap1\n mstore8\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1880:1881 4 */\n 0x04\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1870:1881 value >>= 4 */\n dup6\n swap1\n shr\n swap5\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1804:1807 --i */\n dup1\n tag_258\n swap1\n tag_259\n jump\t// in\n tag_258:\n swap1\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1764:1892 for (uint256 i = 2 * length + 1; i > 1; --i) {... */\n jump(tag_249)\n tag_250:\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1918:1919 0 */\n 0x00\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1909:1914 value */\n dup5\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1909:1919 value == 0 */\n eq\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1901:1956 require(value == 0, \"Strings: hex length insufficient\") */\n tag_260\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_261\n swap1\n tag_262\n jump\t// in\n tag_261:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_260:\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1980:1986 buffer */\n dup1\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1966:1987 return string(buffer) */\n swap2\n pop\n pop\n /* \"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":1557:1994 function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":88:205 */\n tag_264:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\n tag_265:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:483 */\n tag_266:\n /* \"#utility.yul\":370:377 */\n 0x00\n /* \"#utility.yul\":410:476 */\n 0xffffffff00000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":403:408 */\n dup3\n /* \"#utility.yul\":399:477 */\n and\n /* \"#utility.yul\":388:477 */\n swap1\n pop\n /* \"#utility.yul\":334:483 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":489:609 */\n tag_267:\n /* \"#utility.yul\":561:584 */\n tag_307\n /* \"#utility.yul\":578:583 */\n dup2\n /* \"#utility.yul\":561:584 */\n tag_266\n jump\t// in\n tag_307:\n /* \"#utility.yul\":554:559 */\n dup2\n /* \"#utility.yul\":551:585 */\n eq\n /* \"#utility.yul\":541:603 */\n tag_308\n jumpi\n /* \"#utility.yul\":599:600 */\n 0x00\n /* \"#utility.yul\":596:597 */\n dup1\n /* \"#utility.yul\":589:601 */\n revert\n /* \"#utility.yul\":541:603 */\n tag_308:\n /* \"#utility.yul\":489:609 */\n pop\n jump\t// out\n /* \"#utility.yul\":615:752 */\n tag_268:\n /* \"#utility.yul\":660:665 */\n 0x00\n /* \"#utility.yul\":698:704 */\n dup2\n /* \"#utility.yul\":685:705 */\n calldataload\n /* \"#utility.yul\":676:705 */\n swap1\n pop\n /* \"#utility.yul\":714:746 */\n tag_310\n /* \"#utility.yul\":740:745 */\n dup2\n /* \"#utility.yul\":714:746 */\n tag_267\n jump\t// in\n tag_310:\n /* \"#utility.yul\":615:752 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":758:1085 */\n tag_34:\n /* \"#utility.yul\":816:822 */\n 0x00\n /* \"#utility.yul\":865:867 */\n 0x20\n /* \"#utility.yul\":853:862 */\n dup3\n /* \"#utility.yul\":844:851 */\n dup5\n /* \"#utility.yul\":840:863 */\n sub\n /* \"#utility.yul\":836:868 */\n slt\n /* \"#utility.yul\":833:952 */\n iszero\n tag_312\n jumpi\n /* \"#utility.yul\":871:950 */\n tag_313\n tag_264\n jump\t// in\n tag_313:\n /* \"#utility.yul\":833:952 */\n tag_312:\n /* \"#utility.yul\":991:992 */\n 0x00\n /* \"#utility.yul\":1016:1068 */\n tag_314\n /* \"#utility.yul\":1060:1067 */\n dup5\n /* \"#utility.yul\":1051:1057 */\n dup3\n /* \"#utility.yul\":1040:1049 */\n dup6\n /* \"#utility.yul\":1036:1058 */\n add\n /* \"#utility.yul\":1016:1068 */\n tag_268\n jump\t// in\n tag_314:\n /* \"#utility.yul\":1006:1068 */\n swap2\n pop\n /* \"#utility.yul\":962:1078 */\n pop\n /* \"#utility.yul\":758:1085 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1091:1181 */\n tag_269:\n /* \"#utility.yul\":1125:1132 */\n 0x00\n /* \"#utility.yul\":1168:1173 */\n dup2\n /* \"#utility.yul\":1161:1174 */\n iszero\n /* \"#utility.yul\":1154:1175 */\n iszero\n /* \"#utility.yul\":1143:1175 */\n swap1\n pop\n /* \"#utility.yul\":1091:1181 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1187:1296 */\n tag_270:\n /* \"#utility.yul\":1268:1289 */\n tag_317\n /* \"#utility.yul\":1283:1288 */\n dup2\n /* \"#utility.yul\":1268:1289 */\n tag_269\n jump\t// in\n tag_317:\n /* \"#utility.yul\":1263:1266 */\n dup3\n /* \"#utility.yul\":1256:1290 */\n mstore\n /* \"#utility.yul\":1187:1296 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1302:1512 */\n tag_37:\n /* \"#utility.yul\":1389:1393 */\n 0x00\n /* \"#utility.yul\":1427:1429 */\n 0x20\n /* \"#utility.yul\":1416:1425 */\n dup3\n /* \"#utility.yul\":1412:1430 */\n add\n /* \"#utility.yul\":1404:1430 */\n swap1\n pop\n /* \"#utility.yul\":1440:1505 */\n tag_319\n /* \"#utility.yul\":1502:1503 */\n 0x00\n /* \"#utility.yul\":1491:1500 */\n dup4\n /* \"#utility.yul\":1487:1504 */\n add\n /* \"#utility.yul\":1478:1484 */\n dup5\n /* \"#utility.yul\":1440:1505 */\n tag_270\n jump\t// in\n tag_319:\n /* \"#utility.yul\":1302:1512 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1518:1644 */\n tag_271:\n /* \"#utility.yul\":1555:1562 */\n 0x00\n /* \"#utility.yul\":1595:1637 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1588:1593 */\n dup3\n /* \"#utility.yul\":1584:1638 */\n and\n /* \"#utility.yul\":1573:1638 */\n swap1\n pop\n /* \"#utility.yul\":1518:1644 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1650:1746 */\n tag_272:\n /* \"#utility.yul\":1687:1694 */\n 0x00\n /* \"#utility.yul\":1716:1740 */\n tag_322\n /* \"#utility.yul\":1734:1739 */\n dup3\n /* \"#utility.yul\":1716:1740 */\n tag_271\n jump\t// in\n tag_322:\n /* \"#utility.yul\":1705:1740 */\n swap1\n pop\n /* \"#utility.yul\":1650:1746 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1752:1874 */\n tag_273:\n /* \"#utility.yul\":1825:1849 */\n tag_324\n /* \"#utility.yul\":1843:1848 */\n dup2\n /* \"#utility.yul\":1825:1849 */\n tag_272\n jump\t// in\n tag_324:\n /* \"#utility.yul\":1818:1823 */\n dup2\n /* \"#utility.yul\":1815:1850 */\n eq\n /* \"#utility.yul\":1805:1868 */\n tag_325\n jumpi\n /* \"#utility.yul\":1864:1865 */\n 0x00\n /* \"#utility.yul\":1861:1862 */\n dup1\n /* \"#utility.yul\":1854:1866 */\n revert\n /* \"#utility.yul\":1805:1868 */\n tag_325:\n /* \"#utility.yul\":1752:1874 */\n pop\n jump\t// out\n /* \"#utility.yul\":1880:2019 */\n tag_274:\n /* \"#utility.yul\":1926:1931 */\n 0x00\n /* \"#utility.yul\":1964:1970 */\n dup2\n /* \"#utility.yul\":1951:1971 */\n calldataload\n /* \"#utility.yul\":1942:1971 */\n swap1\n pop\n /* \"#utility.yul\":1980:2013 */\n tag_327\n /* \"#utility.yul\":2007:2012 */\n dup2\n /* \"#utility.yul\":1980:2013 */\n tag_273\n jump\t// in\n tag_327:\n /* \"#utility.yul\":1880:2019 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2025:2354 */\n tag_40:\n /* \"#utility.yul\":2084:2090 */\n 0x00\n /* \"#utility.yul\":2133:2135 */\n 0x20\n /* \"#utility.yul\":2121:2130 */\n dup3\n /* \"#utility.yul\":2112:2119 */\n dup5\n /* \"#utility.yul\":2108:2131 */\n sub\n /* \"#utility.yul\":2104:2136 */\n slt\n /* \"#utility.yul\":2101:2220 */\n iszero\n tag_329\n jumpi\n /* \"#utility.yul\":2139:2218 */\n tag_330\n tag_264\n jump\t// in\n tag_330:\n /* \"#utility.yul\":2101:2220 */\n tag_329:\n /* \"#utility.yul\":2259:2260 */\n 0x00\n /* \"#utility.yul\":2284:2337 */\n tag_331\n /* \"#utility.yul\":2329:2336 */\n dup5\n /* \"#utility.yul\":2320:2326 */\n dup3\n /* \"#utility.yul\":2309:2318 */\n dup6\n /* \"#utility.yul\":2305:2327 */\n add\n /* \"#utility.yul\":2284:2337 */\n tag_274\n jump\t// in\n tag_331:\n /* \"#utility.yul\":2274:2337 */\n swap2\n pop\n /* \"#utility.yul\":2230:2347 */\n pop\n /* \"#utility.yul\":2025:2354 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2360:2477 */\n tag_275:\n /* \"#utility.yul\":2469:2470 */\n 0x00\n /* \"#utility.yul\":2466:2467 */\n dup1\n /* \"#utility.yul\":2459:2471 */\n revert\n /* \"#utility.yul\":2483:2600 */\n tag_276:\n /* \"#utility.yul\":2592:2593 */\n 0x00\n /* \"#utility.yul\":2589:2590 */\n dup1\n /* \"#utility.yul\":2582:2594 */\n revert\n /* \"#utility.yul\":2606:2723 */\n tag_277:\n /* \"#utility.yul\":2715:2716 */\n 0x00\n /* \"#utility.yul\":2712:2713 */\n dup1\n /* \"#utility.yul\":2705:2717 */\n revert\n /* \"#utility.yul\":2746:3314 */\n tag_278:\n /* \"#utility.yul\":2819:2827 */\n 0x00\n /* \"#utility.yul\":2829:2835 */\n dup1\n /* \"#utility.yul\":2879:2882 */\n dup4\n /* \"#utility.yul\":2872:2876 */\n 0x1f\n /* \"#utility.yul\":2864:2870 */\n dup5\n /* \"#utility.yul\":2860:2877 */\n add\n /* \"#utility.yul\":2856:2883 */\n slt\n /* \"#utility.yul\":2846:2968 */\n tag_336\n jumpi\n /* \"#utility.yul\":2887:2966 */\n tag_337\n tag_275\n jump\t// in\n tag_337:\n /* \"#utility.yul\":2846:2968 */\n tag_336:\n /* \"#utility.yul\":3000:3006 */\n dup3\n /* \"#utility.yul\":2987:3007 */\n calldataload\n /* \"#utility.yul\":2977:3007 */\n swap1\n pop\n /* \"#utility.yul\":3030:3048 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3022:3028 */\n dup2\n /* \"#utility.yul\":3019:3049 */\n gt\n /* \"#utility.yul\":3016:3133 */\n iszero\n tag_338\n jumpi\n /* \"#utility.yul\":3052:3131 */\n tag_339\n tag_276\n jump\t// in\n tag_339:\n /* \"#utility.yul\":3016:3133 */\n tag_338:\n /* \"#utility.yul\":3166:3170 */\n 0x20\n /* \"#utility.yul\":3158:3164 */\n dup4\n /* \"#utility.yul\":3154:3171 */\n add\n /* \"#utility.yul\":3142:3171 */\n swap2\n pop\n /* \"#utility.yul\":3220:3223 */\n dup4\n /* \"#utility.yul\":3212:3216 */\n 0x20\n /* \"#utility.yul\":3204:3210 */\n dup3\n /* \"#utility.yul\":3200:3217 */\n mul\n /* \"#utility.yul\":3190:3198 */\n dup4\n /* \"#utility.yul\":3186:3218 */\n add\n /* \"#utility.yul\":3183:3224 */\n gt\n /* \"#utility.yul\":3180:3308 */\n iszero\n tag_340\n jumpi\n /* \"#utility.yul\":3227:3306 */\n tag_341\n tag_277\n jump\t// in\n tag_341:\n /* \"#utility.yul\":3180:3308 */\n tag_340:\n /* \"#utility.yul\":2746:3314 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3320:3879 */\n tag_47:\n /* \"#utility.yul\":3406:3412 */\n 0x00\n /* \"#utility.yul\":3414:3420 */\n dup1\n /* \"#utility.yul\":3463:3465 */\n 0x20\n /* \"#utility.yul\":3451:3460 */\n dup4\n /* \"#utility.yul\":3442:3449 */\n dup6\n /* \"#utility.yul\":3438:3461 */\n sub\n /* \"#utility.yul\":3434:3466 */\n slt\n /* \"#utility.yul\":3431:3550 */\n iszero\n tag_343\n jumpi\n /* \"#utility.yul\":3469:3548 */\n tag_344\n tag_264\n jump\t// in\n tag_344:\n /* \"#utility.yul\":3431:3550 */\n tag_343:\n /* \"#utility.yul\":3617:3618 */\n 0x00\n /* \"#utility.yul\":3606:3615 */\n dup4\n /* \"#utility.yul\":3602:3619 */\n add\n /* \"#utility.yul\":3589:3620 */\n calldataload\n /* \"#utility.yul\":3647:3665 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3639:3645 */\n dup2\n /* \"#utility.yul\":3636:3666 */\n gt\n /* \"#utility.yul\":3633:3750 */\n iszero\n tag_345\n jumpi\n /* \"#utility.yul\":3669:3748 */\n tag_346\n tag_265\n jump\t// in\n tag_346:\n /* \"#utility.yul\":3633:3750 */\n tag_345:\n /* \"#utility.yul\":3782:3862 */\n tag_347\n /* \"#utility.yul\":3854:3861 */\n dup6\n /* \"#utility.yul\":3845:3851 */\n dup3\n /* \"#utility.yul\":3834:3843 */\n dup7\n /* \"#utility.yul\":3830:3852 */\n add\n /* \"#utility.yul\":3782:3862 */\n tag_278\n jump\t// in\n tag_347:\n /* \"#utility.yul\":3764:3862 */\n swap3\n pop\n swap3\n pop\n /* \"#utility.yul\":3560:3872 */\n pop\n /* \"#utility.yul\":3320:3879 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3885:3962 */\n tag_279:\n /* \"#utility.yul\":3922:3929 */\n 0x00\n /* \"#utility.yul\":3951:3956 */\n dup2\n /* \"#utility.yul\":3940:3956 */\n swap1\n pop\n /* \"#utility.yul\":3885:3962 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3968:4090 */\n tag_280:\n /* \"#utility.yul\":4041:4065 */\n tag_350\n /* \"#utility.yul\":4059:4064 */\n dup2\n /* \"#utility.yul\":4041:4065 */\n tag_279\n jump\t// in\n tag_350:\n /* \"#utility.yul\":4034:4039 */\n dup2\n /* \"#utility.yul\":4031:4066 */\n eq\n /* \"#utility.yul\":4021:4084 */\n tag_351\n jumpi\n /* \"#utility.yul\":4080:4081 */\n 0x00\n /* \"#utility.yul\":4077:4078 */\n dup1\n /* \"#utility.yul\":4070:4082 */\n revert\n /* \"#utility.yul\":4021:4084 */\n tag_351:\n /* \"#utility.yul\":3968:4090 */\n pop\n jump\t// out\n /* \"#utility.yul\":4096:4235 */\n tag_281:\n /* \"#utility.yul\":4142:4147 */\n 0x00\n /* \"#utility.yul\":4180:4186 */\n dup2\n /* \"#utility.yul\":4167:4187 */\n calldataload\n /* \"#utility.yul\":4158:4187 */\n swap1\n pop\n /* \"#utility.yul\":4196:4229 */\n tag_353\n /* \"#utility.yul\":4223:4228 */\n dup2\n /* \"#utility.yul\":4196:4229 */\n tag_280\n jump\t// in\n tag_353:\n /* \"#utility.yul\":4096:4235 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4241:4570 */\n tag_54:\n /* \"#utility.yul\":4300:4306 */\n 0x00\n /* \"#utility.yul\":4349:4351 */\n 0x20\n /* \"#utility.yul\":4337:4346 */\n dup3\n /* \"#utility.yul\":4328:4335 */\n dup5\n /* \"#utility.yul\":4324:4347 */\n sub\n /* \"#utility.yul\":4320:4352 */\n slt\n /* \"#utility.yul\":4317:4436 */\n iszero\n tag_355\n jumpi\n /* \"#utility.yul\":4355:4434 */\n tag_356\n tag_264\n jump\t// in\n tag_356:\n /* \"#utility.yul\":4317:4436 */\n tag_355:\n /* \"#utility.yul\":4475:4476 */\n 0x00\n /* \"#utility.yul\":4500:4553 */\n tag_357\n /* \"#utility.yul\":4545:4552 */\n dup5\n /* \"#utility.yul\":4536:4542 */\n dup3\n /* \"#utility.yul\":4525:4534 */\n dup6\n /* \"#utility.yul\":4521:4543 */\n add\n /* \"#utility.yul\":4500:4553 */\n tag_281\n jump\t// in\n tag_357:\n /* \"#utility.yul\":4490:4553 */\n swap2\n pop\n /* \"#utility.yul\":4446:4563 */\n pop\n /* \"#utility.yul\":4241:4570 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4576:4694 */\n tag_282:\n /* \"#utility.yul\":4663:4687 */\n tag_359\n /* \"#utility.yul\":4681:4686 */\n dup2\n /* \"#utility.yul\":4663:4687 */\n tag_279\n jump\t// in\n tag_359:\n /* \"#utility.yul\":4658:4661 */\n dup3\n /* \"#utility.yul\":4651:4688 */\n mstore\n /* \"#utility.yul\":4576:4694 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4700:4922 */\n tag_57:\n /* \"#utility.yul\":4793:4797 */\n 0x00\n /* \"#utility.yul\":4831:4833 */\n 0x20\n /* \"#utility.yul\":4820:4829 */\n dup3\n /* \"#utility.yul\":4816:4834 */\n add\n /* \"#utility.yul\":4808:4834 */\n swap1\n pop\n /* \"#utility.yul\":4844:4915 */\n tag_361\n /* \"#utility.yul\":4912:4913 */\n 0x00\n /* \"#utility.yul\":4901:4910 */\n dup4\n /* \"#utility.yul\":4897:4914 */\n add\n /* \"#utility.yul\":4888:4894 */\n dup5\n /* \"#utility.yul\":4844:4915 */\n tag_282\n jump\t// in\n tag_361:\n /* \"#utility.yul\":4700:4922 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4928:5402 */\n tag_70:\n /* \"#utility.yul\":4996:5002 */\n 0x00\n /* \"#utility.yul\":5004:5010 */\n dup1\n /* \"#utility.yul\":5053:5055 */\n 0x40\n /* \"#utility.yul\":5041:5050 */\n dup4\n /* \"#utility.yul\":5032:5039 */\n dup6\n /* \"#utility.yul\":5028:5051 */\n sub\n /* \"#utility.yul\":5024:5056 */\n slt\n /* \"#utility.yul\":5021:5140 */\n iszero\n tag_363\n jumpi\n /* \"#utility.yul\":5059:5138 */\n tag_364\n tag_264\n jump\t// in\n tag_364:\n /* \"#utility.yul\":5021:5140 */\n tag_363:\n /* \"#utility.yul\":5179:5180 */\n 0x00\n /* \"#utility.yul\":5204:5257 */\n tag_365\n /* \"#utility.yul\":5249:5256 */\n dup6\n /* \"#utility.yul\":5240:5246 */\n dup3\n /* \"#utility.yul\":5229:5238 */\n dup7\n /* \"#utility.yul\":5225:5247 */\n add\n /* \"#utility.yul\":5204:5257 */\n tag_281\n jump\t// in\n tag_365:\n /* \"#utility.yul\":5194:5257 */\n swap3\n pop\n /* \"#utility.yul\":5150:5267 */\n pop\n /* \"#utility.yul\":5306:5308 */\n 0x20\n /* \"#utility.yul\":5332:5385 */\n tag_366\n /* \"#utility.yul\":5377:5384 */\n dup6\n /* \"#utility.yul\":5368:5374 */\n dup3\n /* \"#utility.yul\":5357:5366 */\n dup7\n /* \"#utility.yul\":5353:5375 */\n add\n /* \"#utility.yul\":5332:5385 */\n tag_274\n jump\t// in\n tag_366:\n /* \"#utility.yul\":5322:5385 */\n swap2\n pop\n /* \"#utility.yul\":5277:5395 */\n pop\n /* \"#utility.yul\":4928:5402 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":5408:5526 */\n tag_283:\n /* \"#utility.yul\":5495:5519 */\n tag_368\n /* \"#utility.yul\":5513:5518 */\n dup2\n /* \"#utility.yul\":5495:5519 */\n tag_272\n jump\t// in\n tag_368:\n /* \"#utility.yul\":5490:5493 */\n dup3\n /* \"#utility.yul\":5483:5520 */\n mstore\n /* \"#utility.yul\":5408:5526 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5532:5754 */\n tag_91:\n /* \"#utility.yul\":5625:5629 */\n 0x00\n /* \"#utility.yul\":5663:5665 */\n 0x20\n /* \"#utility.yul\":5652:5661 */\n dup3\n /* \"#utility.yul\":5648:5666 */\n add\n /* \"#utility.yul\":5640:5666 */\n swap1\n pop\n /* \"#utility.yul\":5676:5747 */\n tag_370\n /* \"#utility.yul\":5744:5745 */\n 0x00\n /* \"#utility.yul\":5733:5742 */\n dup4\n /* \"#utility.yul\":5729:5746 */\n add\n /* \"#utility.yul\":5720:5726 */\n dup5\n /* \"#utility.yul\":5676:5747 */\n tag_283\n jump\t// in\n tag_370:\n /* \"#utility.yul\":5532:5754 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5760:5929 */\n tag_284:\n /* \"#utility.yul\":5844:5855 */\n 0x00\n /* \"#utility.yul\":5878:5884 */\n dup3\n /* \"#utility.yul\":5873:5876 */\n dup3\n /* \"#utility.yul\":5866:5885 */\n mstore\n /* \"#utility.yul\":5918:5922 */\n 0x20\n /* \"#utility.yul\":5913:5916 */\n dup3\n /* \"#utility.yul\":5909:5923 */\n add\n /* \"#utility.yul\":5894:5923 */\n swap1\n pop\n /* \"#utility.yul\":5760:5929 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5935:6169 */\n tag_285:\n /* \"#utility.yul\":6075:6109 */\n 0x416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365\n /* \"#utility.yul\":6071:6072 */\n 0x00\n /* \"#utility.yul\":6063:6069 */\n dup3\n /* \"#utility.yul\":6059:6073 */\n add\n /* \"#utility.yul\":6052:6110 */\n mstore\n /* \"#utility.yul\":6144:6161 */\n 0x20726f6c657320666f722073656c660000000000000000000000000000000000\n /* \"#utility.yul\":6139:6141 */\n 0x20\n /* \"#utility.yul\":6131:6137 */\n dup3\n /* \"#utility.yul\":6127:6142 */\n add\n /* \"#utility.yul\":6120:6162 */\n mstore\n /* \"#utility.yul\":5935:6169 */\n pop\n jump\t// out\n /* \"#utility.yul\":6175:6541 */\n tag_286:\n /* \"#utility.yul\":6317:6320 */\n 0x00\n /* \"#utility.yul\":6338:6405 */\n tag_374\n /* \"#utility.yul\":6402:6404 */\n 0x2f\n /* \"#utility.yul\":6397:6400 */\n dup4\n /* \"#utility.yul\":6338:6405 */\n tag_284\n jump\t// in\n tag_374:\n /* \"#utility.yul\":6331:6405 */\n swap2\n pop\n /* \"#utility.yul\":6414:6507 */\n tag_375\n /* \"#utility.yul\":6503:6506 */\n dup3\n /* \"#utility.yul\":6414:6507 */\n tag_285\n jump\t// in\n tag_375:\n /* \"#utility.yul\":6532:6534 */\n 0x40\n /* \"#utility.yul\":6527:6530 */\n dup3\n /* \"#utility.yul\":6523:6535 */\n add\n /* \"#utility.yul\":6516:6535 */\n swap1\n pop\n /* \"#utility.yul\":6175:6541 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6547:6966 */\n tag_158:\n /* \"#utility.yul\":6713:6717 */\n 0x00\n /* \"#utility.yul\":6751:6753 */\n 0x20\n /* \"#utility.yul\":6740:6749 */\n dup3\n /* \"#utility.yul\":6736:6754 */\n add\n /* \"#utility.yul\":6728:6754 */\n swap1\n pop\n /* \"#utility.yul\":6800:6809 */\n dup2\n /* \"#utility.yul\":6794:6798 */\n dup2\n /* \"#utility.yul\":6790:6810 */\n sub\n /* \"#utility.yul\":6786:6787 */\n 0x00\n /* \"#utility.yul\":6775:6784 */\n dup4\n /* \"#utility.yul\":6771:6788 */\n add\n /* \"#utility.yul\":6764:6811 */\n mstore\n /* \"#utility.yul\":6828:6959 */\n tag_377\n /* \"#utility.yul\":6954:6958 */\n dup2\n /* \"#utility.yul\":6828:6959 */\n tag_286\n jump\t// in\n tag_377:\n /* \"#utility.yul\":6820:6959 */\n swap1\n pop\n /* \"#utility.yul\":6547:6966 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6972:7152 */\n tag_201:\n /* \"#utility.yul\":7020:7097 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":7017:7018 */\n 0x00\n /* \"#utility.yul\":7010:7098 */\n mstore\n /* \"#utility.yul\":7117:7121 */\n 0x32\n /* \"#utility.yul\":7114:7115 */\n 0x04\n /* \"#utility.yul\":7107:7122 */\n mstore\n /* \"#utility.yul\":7141:7145 */\n 0x24\n /* \"#utility.yul\":7138:7139 */\n 0x00\n /* \"#utility.yul\":7131:7146 */\n revert\n /* \"#utility.yul\":7158:7306 */\n tag_287:\n /* \"#utility.yul\":7260:7271 */\n 0x00\n /* \"#utility.yul\":7297:7300 */\n dup2\n /* \"#utility.yul\":7282:7300 */\n swap1\n pop\n /* \"#utility.yul\":7158:7306 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7312:7485 */\n tag_288:\n /* \"#utility.yul\":7452:7477 */\n 0x416363657373436f6e74726f6c3a206163636f756e7420000000000000000000\n /* \"#utility.yul\":7448:7449 */\n 0x00\n /* \"#utility.yul\":7440:7446 */\n dup3\n /* \"#utility.yul\":7436:7450 */\n add\n /* \"#utility.yul\":7429:7478 */\n mstore\n /* \"#utility.yul\":7312:7485 */\n pop\n jump\t// out\n /* \"#utility.yul\":7491:7893 */\n tag_289:\n /* \"#utility.yul\":7651:7654 */\n 0x00\n /* \"#utility.yul\":7672:7757 */\n tag_382\n /* \"#utility.yul\":7754:7756 */\n 0x17\n /* \"#utility.yul\":7749:7752 */\n dup4\n /* \"#utility.yul\":7672:7757 */\n tag_287\n jump\t// in\n tag_382:\n /* \"#utility.yul\":7665:7757 */\n swap2\n pop\n /* \"#utility.yul\":7766:7859 */\n tag_383\n /* \"#utility.yul\":7855:7858 */\n dup3\n /* \"#utility.yul\":7766:7859 */\n tag_288\n jump\t// in\n tag_383:\n /* \"#utility.yul\":7884:7886 */\n 0x17\n /* \"#utility.yul\":7879:7882 */\n dup3\n /* \"#utility.yul\":7875:7887 */\n add\n /* \"#utility.yul\":7868:7887 */\n swap1\n pop\n /* \"#utility.yul\":7491:7893 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7899:7998 */\n tag_290:\n /* \"#utility.yul\":7951:7957 */\n 0x00\n /* \"#utility.yul\":7985:7990 */\n dup2\n /* \"#utility.yul\":7979:7991 */\n mload\n /* \"#utility.yul\":7969:7991 */\n swap1\n pop\n /* \"#utility.yul\":7899:7998 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8004:8250 */\n tag_291:\n /* \"#utility.yul\":8085:8086 */\n 0x00\n /* \"#utility.yul\":8095:8208 */\n tag_386:\n /* \"#utility.yul\":8109:8115 */\n dup4\n /* \"#utility.yul\":8106:8107 */\n dup2\n /* \"#utility.yul\":8103:8116 */\n lt\n /* \"#utility.yul\":8095:8208 */\n iszero\n tag_388\n jumpi\n /* \"#utility.yul\":8194:8195 */\n dup1\n /* \"#utility.yul\":8189:8192 */\n dup3\n /* \"#utility.yul\":8185:8196 */\n add\n /* \"#utility.yul\":8179:8197 */\n mload\n /* \"#utility.yul\":8175:8176 */\n dup2\n /* \"#utility.yul\":8170:8173 */\n dup5\n /* \"#utility.yul\":8166:8177 */\n add\n /* \"#utility.yul\":8159:8198 */\n mstore\n /* \"#utility.yul\":8131:8133 */\n 0x20\n /* \"#utility.yul\":8128:8129 */\n dup2\n /* \"#utility.yul\":8124:8134 */\n add\n /* \"#utility.yul\":8119:8134 */\n swap1\n pop\n /* \"#utility.yul\":8095:8208 */\n jump(tag_386)\n tag_388:\n /* \"#utility.yul\":8242:8243 */\n 0x00\n /* \"#utility.yul\":8233:8239 */\n dup5\n /* \"#utility.yul\":8228:8231 */\n dup5\n /* \"#utility.yul\":8224:8240 */\n add\n /* \"#utility.yul\":8217:8244 */\n mstore\n /* \"#utility.yul\":8066:8250 */\n pop\n /* \"#utility.yul\":8004:8250 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8256:8646 */\n tag_292:\n /* \"#utility.yul\":8362:8365 */\n 0x00\n /* \"#utility.yul\":8390:8429 */\n tag_390\n /* \"#utility.yul\":8423:8428 */\n dup3\n /* \"#utility.yul\":8390:8429 */\n tag_290\n jump\t// in\n tag_390:\n /* \"#utility.yul\":8445:8534 */\n tag_391\n /* \"#utility.yul\":8527:8533 */\n dup2\n /* \"#utility.yul\":8522:8525 */\n dup6\n /* \"#utility.yul\":8445:8534 */\n tag_287\n jump\t// in\n tag_391:\n /* \"#utility.yul\":8438:8534 */\n swap4\n pop\n /* \"#utility.yul\":8543:8608 */\n tag_392\n /* \"#utility.yul\":8601:8607 */\n dup2\n /* \"#utility.yul\":8596:8599 */\n dup6\n /* \"#utility.yul\":8589:8593 */\n 0x20\n /* \"#utility.yul\":8582:8587 */\n dup7\n /* \"#utility.yul\":8578:8594 */\n add\n /* \"#utility.yul\":8543:8608 */\n tag_291\n jump\t// in\n tag_392:\n /* \"#utility.yul\":8633:8639 */\n dup1\n /* \"#utility.yul\":8628:8631 */\n dup5\n /* \"#utility.yul\":8624:8640 */\n add\n /* \"#utility.yul\":8617:8640 */\n swap2\n pop\n /* \"#utility.yul\":8366:8646 */\n pop\n /* \"#utility.yul\":8256:8646 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8652:8819 */\n tag_293:\n /* \"#utility.yul\":8792:8811 */\n 0x206973206d697373696e6720726f6c6520000000000000000000000000000000\n /* \"#utility.yul\":8788:8789 */\n 0x00\n /* \"#utility.yul\":8780:8786 */\n dup3\n /* \"#utility.yul\":8776:8790 */\n add\n /* \"#utility.yul\":8769:8812 */\n mstore\n /* \"#utility.yul\":8652:8819 */\n pop\n jump\t// out\n /* \"#utility.yul\":8825:9227 */\n tag_294:\n /* \"#utility.yul\":8985:8988 */\n 0x00\n /* \"#utility.yul\":9006:9091 */\n tag_395\n /* \"#utility.yul\":9088:9090 */\n 0x11\n /* \"#utility.yul\":9083:9086 */\n dup4\n /* \"#utility.yul\":9006:9091 */\n tag_287\n jump\t// in\n tag_395:\n /* \"#utility.yul\":8999:9091 */\n swap2\n pop\n /* \"#utility.yul\":9100:9193 */\n tag_396\n /* \"#utility.yul\":9189:9192 */\n dup3\n /* \"#utility.yul\":9100:9193 */\n tag_293\n jump\t// in\n tag_396:\n /* \"#utility.yul\":9218:9220 */\n 0x11\n /* \"#utility.yul\":9213:9216 */\n dup3\n /* \"#utility.yul\":9209:9221 */\n add\n /* \"#utility.yul\":9202:9221 */\n swap1\n pop\n /* \"#utility.yul\":8825:9227 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":9233:10200 */\n tag_231:\n /* \"#utility.yul\":9615:9618 */\n 0x00\n /* \"#utility.yul\":9637:9785 */\n tag_398\n /* \"#utility.yul\":9781:9784 */\n dup3\n /* \"#utility.yul\":9637:9785 */\n tag_289\n jump\t// in\n tag_398:\n /* \"#utility.yul\":9630:9785 */\n swap2\n pop\n /* \"#utility.yul\":9802:9897 */\n tag_399\n /* \"#utility.yul\":9893:9896 */\n dup3\n /* \"#utility.yul\":9884:9890 */\n dup6\n /* \"#utility.yul\":9802:9897 */\n tag_292\n jump\t// in\n tag_399:\n /* \"#utility.yul\":9795:9897 */\n swap2\n pop\n /* \"#utility.yul\":9914:10062 */\n tag_400\n /* \"#utility.yul\":10058:10061 */\n dup3\n /* \"#utility.yul\":9914:10062 */\n tag_294\n jump\t// in\n tag_400:\n /* \"#utility.yul\":9907:10062 */\n swap2\n pop\n /* \"#utility.yul\":10079:10174 */\n tag_401\n /* \"#utility.yul\":10170:10173 */\n dup3\n /* \"#utility.yul\":10161:10167 */\n dup5\n /* \"#utility.yul\":10079:10174 */\n tag_292\n jump\t// in\n tag_401:\n /* \"#utility.yul\":10072:10174 */\n swap2\n pop\n /* \"#utility.yul\":10191:10194 */\n dup2\n /* \"#utility.yul\":10184:10194 */\n swap1\n pop\n /* \"#utility.yul\":9233:10200 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10206:10308 */\n tag_295:\n /* \"#utility.yul\":10247:10253 */\n 0x00\n /* \"#utility.yul\":10298:10300 */\n 0x1f\n /* \"#utility.yul\":10294:10301 */\n not\n /* \"#utility.yul\":10289:10291 */\n 0x1f\n /* \"#utility.yul\":10282:10287 */\n dup4\n /* \"#utility.yul\":10278:10292 */\n add\n /* \"#utility.yul\":10274:10302 */\n and\n /* \"#utility.yul\":10264:10302 */\n swap1\n pop\n /* \"#utility.yul\":10206:10308 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":10314:10691 */\n tag_296:\n /* \"#utility.yul\":10402:10405 */\n 0x00\n /* \"#utility.yul\":10430:10469 */\n tag_404\n /* \"#utility.yul\":10463:10468 */\n dup3\n /* \"#utility.yul\":10430:10469 */\n tag_290\n jump\t// in\n tag_404:\n /* \"#utility.yul\":10485:10556 */\n tag_405\n /* \"#utility.yul\":10549:10555 */\n dup2\n /* \"#utility.yul\":10544:10547 */\n dup6\n /* \"#utility.yul\":10485:10556 */\n tag_284\n jump\t// in\n tag_405:\n /* \"#utility.yul\":10478:10556 */\n swap4\n pop\n /* \"#utility.yul\":10565:10630 */\n tag_406\n /* \"#utility.yul\":10623:10629 */\n dup2\n /* \"#utility.yul\":10618:10621 */\n dup6\n /* \"#utility.yul\":10611:10615 */\n 0x20\n /* \"#utility.yul\":10604:10609 */\n dup7\n /* \"#utility.yul\":10600:10616 */\n add\n /* \"#utility.yul\":10565:10630 */\n tag_291\n jump\t// in\n tag_406:\n /* \"#utility.yul\":10655:10684 */\n tag_407\n /* \"#utility.yul\":10677:10683 */\n dup2\n /* \"#utility.yul\":10655:10684 */\n tag_295\n jump\t// in\n tag_407:\n /* \"#utility.yul\":10650:10653 */\n dup5\n /* \"#utility.yul\":10646:10685 */\n add\n /* \"#utility.yul\":10639:10685 */\n swap2\n pop\n /* \"#utility.yul\":10406:10691 */\n pop\n /* \"#utility.yul\":10314:10691 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10697:11010 */\n tag_233:\n /* \"#utility.yul\":10810:10814 */\n 0x00\n /* \"#utility.yul\":10848:10850 */\n 0x20\n /* \"#utility.yul\":10837:10846 */\n dup3\n /* \"#utility.yul\":10833:10851 */\n add\n /* \"#utility.yul\":10825:10851 */\n swap1\n pop\n /* \"#utility.yul\":10897:10906 */\n dup2\n /* \"#utility.yul\":10891:10895 */\n dup2\n /* \"#utility.yul\":10887:10907 */\n sub\n /* \"#utility.yul\":10883:10884 */\n 0x00\n /* \"#utility.yul\":10872:10881 */\n dup4\n /* \"#utility.yul\":10868:10885 */\n add\n /* \"#utility.yul\":10861:10908 */\n mstore\n /* \"#utility.yul\":10925:11003 */\n tag_409\n /* \"#utility.yul\":10998:11002 */\n dup2\n /* \"#utility.yul\":10989:10995 */\n dup5\n /* \"#utility.yul\":10925:11003 */\n tag_296\n jump\t// in\n tag_409:\n /* \"#utility.yul\":10917:11003 */\n swap1\n pop\n /* \"#utility.yul\":10697:11010 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11016:11093 */\n tag_297:\n /* \"#utility.yul\":11053:11060 */\n 0x00\n /* \"#utility.yul\":11082:11087 */\n dup2\n /* \"#utility.yul\":11071:11087 */\n swap1\n pop\n /* \"#utility.yul\":11016:11093 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":11099:11279 */\n tag_298:\n /* \"#utility.yul\":11147:11224 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":11144:11145 */\n 0x00\n /* \"#utility.yul\":11137:11225 */\n mstore\n /* \"#utility.yul\":11244:11248 */\n 0x11\n /* \"#utility.yul\":11241:11242 */\n 0x04\n /* \"#utility.yul\":11234:11249 */\n mstore\n /* \"#utility.yul\":11268:11272 */\n 0x24\n /* \"#utility.yul\":11265:11266 */\n 0x00\n /* \"#utility.yul\":11258:11273 */\n revert\n /* \"#utility.yul\":11285:11695 */\n tag_238:\n /* \"#utility.yul\":11325:11332 */\n 0x00\n /* \"#utility.yul\":11348:11368 */\n tag_413\n /* \"#utility.yul\":11366:11367 */\n dup3\n /* \"#utility.yul\":11348:11368 */\n tag_297\n jump\t// in\n tag_413:\n /* \"#utility.yul\":11343:11368 */\n swap2\n pop\n /* \"#utility.yul\":11382:11402 */\n tag_414\n /* \"#utility.yul\":11400:11401 */\n dup4\n /* \"#utility.yul\":11382:11402 */\n tag_297\n jump\t// in\n tag_414:\n /* \"#utility.yul\":11377:11402 */\n swap3\n pop\n /* \"#utility.yul\":11437:11438 */\n dup3\n /* \"#utility.yul\":11434:11435 */\n dup3\n /* \"#utility.yul\":11430:11439 */\n mul\n /* \"#utility.yul\":11459:11489 */\n tag_415\n /* \"#utility.yul\":11477:11488 */\n dup2\n /* \"#utility.yul\":11459:11489 */\n tag_297\n jump\t// in\n tag_415:\n /* \"#utility.yul\":11448:11489 */\n swap2\n pop\n /* \"#utility.yul\":11638:11639 */\n dup3\n /* \"#utility.yul\":11629:11636 */\n dup3\n /* \"#utility.yul\":11625:11640 */\n div\n /* \"#utility.yul\":11622:11623 */\n dup5\n /* \"#utility.yul\":11619:11641 */\n eq\n /* \"#utility.yul\":11599:11600 */\n dup4\n /* \"#utility.yul\":11592:11601 */\n iszero\n /* \"#utility.yul\":11572:11655 */\n or\n /* \"#utility.yul\":11549:11688 */\n tag_416\n jumpi\n /* \"#utility.yul\":11668:11686 */\n tag_417\n tag_298\n jump\t// in\n tag_417:\n /* \"#utility.yul\":11549:11688 */\n tag_416:\n /* \"#utility.yul\":11333:11695 */\n pop\n /* \"#utility.yul\":11285:11695 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11701:11892 */\n tag_240:\n /* \"#utility.yul\":11741:11744 */\n 0x00\n /* \"#utility.yul\":11760:11780 */\n tag_419\n /* \"#utility.yul\":11778:11779 */\n dup3\n /* \"#utility.yul\":11760:11780 */\n tag_297\n jump\t// in\n tag_419:\n /* \"#utility.yul\":11755:11780 */\n swap2\n pop\n /* \"#utility.yul\":11794:11814 */\n tag_420\n /* \"#utility.yul\":11812:11813 */\n dup4\n /* \"#utility.yul\":11794:11814 */\n tag_297\n jump\t// in\n tag_420:\n /* \"#utility.yul\":11789:11814 */\n swap3\n pop\n /* \"#utility.yul\":11837:11838 */\n dup3\n /* \"#utility.yul\":11834:11835 */\n dup3\n /* \"#utility.yul\":11830:11839 */\n add\n /* \"#utility.yul\":11823:11839 */\n swap1\n pop\n /* \"#utility.yul\":11858:11861 */\n dup1\n /* \"#utility.yul\":11855:11856 */\n dup3\n /* \"#utility.yul\":11852:11862 */\n gt\n /* \"#utility.yul\":11849:11885 */\n iszero\n tag_421\n jumpi\n /* \"#utility.yul\":11865:11883 */\n tag_422\n tag_298\n jump\t// in\n tag_422:\n /* \"#utility.yul\":11849:11885 */\n tag_421:\n /* \"#utility.yul\":11701:11892 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11898:12078 */\n tag_243:\n /* \"#utility.yul\":11946:12023 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":11943:11944 */\n 0x00\n /* \"#utility.yul\":11936:12024 */\n mstore\n /* \"#utility.yul\":12043:12047 */\n 0x41\n /* \"#utility.yul\":12040:12041 */\n 0x04\n /* \"#utility.yul\":12033:12048 */\n mstore\n /* \"#utility.yul\":12067:12071 */\n 0x24\n /* \"#utility.yul\":12064:12065 */\n 0x00\n /* \"#utility.yul\":12057:12072 */\n revert\n /* \"#utility.yul\":12084:12255 */\n tag_259:\n /* \"#utility.yul\":12123:12126 */\n 0x00\n /* \"#utility.yul\":12146:12170 */\n tag_425\n /* \"#utility.yul\":12164:12169 */\n dup3\n /* \"#utility.yul\":12146:12170 */\n tag_297\n jump\t// in\n tag_425:\n /* \"#utility.yul\":12137:12170 */\n swap2\n pop\n /* \"#utility.yul\":12192:12196 */\n 0x00\n /* \"#utility.yul\":12185:12190 */\n dup3\n /* \"#utility.yul\":12182:12197 */\n sub\n /* \"#utility.yul\":12179:12220 */\n tag_426\n jumpi\n /* \"#utility.yul\":12200:12218 */\n tag_427\n tag_298\n jump\t// in\n tag_427:\n /* \"#utility.yul\":12179:12220 */\n tag_426:\n /* \"#utility.yul\":12247:12248 */\n 0x01\n /* \"#utility.yul\":12240:12245 */\n dup3\n /* \"#utility.yul\":12236:12249 */\n sub\n /* \"#utility.yul\":12229:12249 */\n swap1\n pop\n /* \"#utility.yul\":12084:12255 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":12261:12443 */\n tag_299:\n /* \"#utility.yul\":12401:12435 */\n 0x537472696e67733a20686578206c656e67746820696e73756666696369656e74\n /* \"#utility.yul\":12397:12398 */\n 0x00\n /* \"#utility.yul\":12389:12395 */\n dup3\n /* \"#utility.yul\":12385:12399 */\n add\n /* \"#utility.yul\":12378:12436 */\n mstore\n /* \"#utility.yul\":12261:12443 */\n pop\n jump\t// out\n /* \"#utility.yul\":12449:12815 */\n tag_300:\n /* \"#utility.yul\":12591:12594 */\n 0x00\n /* \"#utility.yul\":12612:12679 */\n tag_430\n /* \"#utility.yul\":12676:12678 */\n 0x20\n /* \"#utility.yul\":12671:12674 */\n dup4\n /* \"#utility.yul\":12612:12679 */\n tag_284\n jump\t// in\n tag_430:\n /* \"#utility.yul\":12605:12679 */\n swap2\n pop\n /* \"#utility.yul\":12688:12781 */\n tag_431\n /* \"#utility.yul\":12777:12780 */\n dup3\n /* \"#utility.yul\":12688:12781 */\n tag_299\n jump\t// in\n tag_431:\n /* \"#utility.yul\":12806:12808 */\n 0x20\n /* \"#utility.yul\":12801:12804 */\n dup3\n /* \"#utility.yul\":12797:12809 */\n add\n /* \"#utility.yul\":12790:12809 */\n swap1\n pop\n /* \"#utility.yul\":12449:12815 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":12821:13240 */\n tag_262:\n /* \"#utility.yul\":12987:12991 */\n 0x00\n /* \"#utility.yul\":13025:13027 */\n 0x20\n /* \"#utility.yul\":13014:13023 */\n dup3\n /* \"#utility.yul\":13010:13028 */\n add\n /* \"#utility.yul\":13002:13028 */\n swap1\n pop\n /* \"#utility.yul\":13074:13083 */\n dup2\n /* \"#utility.yul\":13068:13072 */\n dup2\n /* \"#utility.yul\":13064:13084 */\n sub\n /* \"#utility.yul\":13060:13061 */\n 0x00\n /* \"#utility.yul\":13049:13058 */\n dup4\n /* \"#utility.yul\":13045:13062 */\n add\n /* \"#utility.yul\":13038:13085 */\n mstore\n /* \"#utility.yul\":13102:13233 */\n tag_433\n /* \"#utility.yul\":13228:13232 */\n dup2\n /* \"#utility.yul\":13102:13233 */\n tag_300\n jump\t// in\n tag_433:\n /* \"#utility.yul\":13094:13233 */\n swap1\n pop\n /* \"#utility.yul\":12821:13240 */\n swap2\n swap1\n pop\n jump\t// out\n\n auxdata: 0xa264697066735822122092709fee65ba1540fd2f3044cd39844fdd412a5af8038064659cf24faa7a8cff64736f6c63430008110033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50611796806100206000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806380c78f1c116100de578063b278110f11610097578063d547741f11610071578063d547741f14610432578063dcda7dad1461044e578063fbfe3ab21461046c578063fdbb219d1461049c57610173565b8063b278110f146103c8578063bf7cb70b146103f8578063d3e78e4d1461041457610173565b806380c78f1c1461030857806391d14854146103245780639d082c9814610354578063a0cf0aea14610370578063a217fddf1461038e578063ae876f61146103ac57610173565b806324d7806c1161013057806324d7806c1461024a5780632620d8001461027a5780632a0acc6a146102965780632f2ff15d146102b457806336568abe146102d05780633d0950a8146102ec57610173565b806301ffc9a7146101785780630560bd96146101a85780630d6aef04146101d85780631037d18c146101e257806310881166146101fe578063248a9ca31461021a575b600080fd5b610192600480360381019061018d91906110d5565b6104ba565b60405161019f919061111d565b60405180910390f35b6101c260048036038101906101bd9190611196565b610534565b6040516101cf919061111d565b60405180910390f35b6101e0610567565b005b6101fc60048036038101906101f79190611228565b61059c565b005b61021860048036038101906102139190611228565b6105d4565b005b610234600480360381019061022f91906112ab565b61060c565b60405161024191906112e7565b60405180910390f35b610264600480360381019061025f9190611196565b61062c565b604051610271919061111d565b60405180910390f35b610294600480360381019061028f9190611228565b61065f565b005b61029e610697565b6040516102ab91906112e7565b60405180910390f35b6102ce60048036038101906102c99190611302565b6106bb565b005b6102ea60048036038101906102e59190611302565b6106dc565b005b61030660048036038101906103019190611228565b61075f565b005b610322600480360381019061031d9190611228565b610797565b005b61033e60048036038101906103399190611302565b6107cf565b60405161034b919061111d565b60405180910390f35b61036e60048036038101906103699190611228565b61083a565b005b610378610872565b6040516103859190611351565b60405180910390f35b610396610877565b6040516103a391906112e7565b60405180910390f35b6103c660048036038101906103c19190611228565b61087e565b005b6103e260048036038101906103dd9190611196565b6108f0565b6040516103ef919061111d565b60405180910390f35b610412600480360381019061040d9190611228565b610923565b005b61041c61095b565b60405161042991906112e7565b60405180910390f35b61044c60048036038101906104479190611302565b61097f565b005b6104566109a0565b60405161046391906112e7565b60405180910390f35b61048660048036038101906104819190611196565b6109c4565b604051610493919061111d565b60405180910390f35b6104a46109f7565b6040516104b191906112e7565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061052d575061052c82610a1b565b5b9050919050565b60006105607f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19836107cf565b9050919050565b61057033610a85565b61059a7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233610ae8565b565b6105a533610a85565b6105d07fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383610bca565b5050565b6105dd33610a85565b6106087f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383610c22565b5050565b600060656000838152602001908152602001600020600101549050919050565b60006106587fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42836107cf565b9050919050565b61066833610a85565b6106937fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383610bca565b5050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4281565b6106c48261060c565b6106cd81610c7a565b6106d78383610c8e565b505050565b6106e4610d6f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610751576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610748906113ef565b60405180910390fd5b61075b8282610ae8565b5050565b61076833610a85565b6107937fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383610c22565b5050565b6107a033610a85565b6107cb7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383610c22565b5050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61084333610a85565b61086e7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383610c22565b5050565b600081565b6000801b81565b61088b6000801b336107cf565b6108c1576040517f46ab053d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108ec7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383610bca565b5050565b600061091c7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083836107cf565b9050919050565b61092c33610a85565b6109577f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383610bca565b5050565b7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f08381565b6109888261060c565b61099181610c7a565b61099b8383610ae8565b505050565b7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc63281565b60006109f07fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632836107cf565b9050919050565b7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed1981565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610aaf7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42826107cf565b610ae5576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b610af282826107cf565b15610bc65760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610b6b610d6f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600082829050905060005b81811015610c1b57610c0e85858584818110610bf457610bf361140f565b5b9050602002016020810190610c099190611196565b61097f565b8080600101915050610bd5565b5050505050565b600082829050905060005b81811015610c7357610c6685858584818110610c4c57610c4b61140f565b5b9050602002016020810190610c619190611196565b610d77565b8080600101915050610c2d565b5050505050565b610c8b81610c86610d6f565b610d85565b50565b610c9882826107cf565b610d6b5760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610d10610d6f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600033905090565b610d818282610c8e565b5050565b610d8f82826107cf565b610e0657610d9c81610e0a565b610daa8360001c6020610e37565b604051602001610dbb929190611547565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd91906115cb565b60405180910390fd5b5050565b6060610e308273ffffffffffffffffffffffffffffffffffffffff16601460ff16610e37565b9050919050565b606060006002836002610e4a9190611626565b610e549190611668565b67ffffffffffffffff811115610e6d57610e6c61169c565b5b6040519080825280601f01601f191660200182016040528015610e9f5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610ed757610ed661140f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610f3b57610f3a61140f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002610f7b9190611626565b610f859190611668565b90505b6001811115611025577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110610fc757610fc661140f565b5b1a60f81b828281518110610fde57610fdd61140f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061101e906116cb565b9050610f88565b5060008414611069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106090611740565b60405180910390fd5b8091505092915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6110b28161107d565b81146110bd57600080fd5b50565b6000813590506110cf816110a9565b92915050565b6000602082840312156110eb576110ea611073565b5b60006110f9848285016110c0565b91505092915050565b60008115159050919050565b61111781611102565b82525050565b6000602082019050611132600083018461110e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061116382611138565b9050919050565b61117381611158565b811461117e57600080fd5b50565b6000813590506111908161116a565b92915050565b6000602082840312156111ac576111ab611073565b5b60006111ba84828501611181565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126111e8576111e76111c3565b5b8235905067ffffffffffffffff811115611205576112046111c8565b5b602083019150836020820283011115611221576112206111cd565b5b9250929050565b6000806020838503121561123f5761123e611073565b5b600083013567ffffffffffffffff81111561125d5761125c611078565b5b611269858286016111d2565b92509250509250929050565b6000819050919050565b61128881611275565b811461129357600080fd5b50565b6000813590506112a58161127f565b92915050565b6000602082840312156112c1576112c0611073565b5b60006112cf84828501611296565b91505092915050565b6112e181611275565b82525050565b60006020820190506112fc60008301846112d8565b92915050565b6000806040838503121561131957611318611073565b5b600061132785828601611296565b925050602061133885828601611181565b9150509250929050565b61134b81611158565b82525050565b60006020820190506113666000830184611342565b92915050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006113d9602f8361136c565b91506113e48261137d565b604082019050919050565b60006020820190508181036000830152611408816113cc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061147f60178361143e565b915061148a82611449565b601782019050919050565b600081519050919050565b60005b838110156114be5780820151818401526020810190506114a3565b60008484015250505050565b60006114d582611495565b6114df818561143e565b93506114ef8185602086016114a0565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061153160118361143e565b915061153c826114fb565b601182019050919050565b600061155282611472565b915061155e82856114ca565b915061156982611524565b915061157582846114ca565b91508190509392505050565b6000601f19601f8301169050919050565b600061159d82611495565b6115a7818561136c565b93506115b78185602086016114a0565b6115c081611581565b840191505092915050565b600060208201905081810360008301526115e58184611592565b905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611631826115ed565b915061163c836115ed565b925082820261164a816115ed565b91508282048414831517611661576116606115f7565b5b5092915050565b6000611673826115ed565b915061167e836115ed565b9250828201905080821115611696576116956115f7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006116d6826115ed565b9150600082036116e9576116e86115f7565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061172a60208361136c565b9150611735826116f4565b602082019050919050565b600060208201905081810360008301526117598161171d565b905091905056fea264697066735822122092709fee65ba1540fd2f3044cd39844fdd412a5af8038064659cf24faa7a8cff64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1796 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x173 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x80C78F1C GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xB278110F GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x432 JUMPI DUP1 PUSH4 0xDCDA7DAD EQ PUSH2 0x44E JUMPI DUP1 PUSH4 0xFBFE3AB2 EQ PUSH2 0x46C JUMPI DUP1 PUSH4 0xFDBB219D EQ PUSH2 0x49C JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0xB278110F EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0xBF7CB70B EQ PUSH2 0x3F8 JUMPI DUP1 PUSH4 0xD3E78E4D EQ PUSH2 0x414 JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x80C78F1C EQ PUSH2 0x308 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x9D082C98 EQ PUSH2 0x354 JUMPI DUP1 PUSH4 0xA0CF0AEA EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0xAE876F61 EQ PUSH2 0x3AC JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C GT PUSH2 0x130 JUMPI DUP1 PUSH4 0x24D7806C EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x2620D800 EQ PUSH2 0x27A JUMPI DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x296 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0x3D0950A8 EQ PUSH2 0x2EC JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x178 JUMPI DUP1 PUSH4 0x560BD96 EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xD6AEF04 EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x1037D18C EQ PUSH2 0x1E2 JUMPI DUP1 PUSH4 0x10881166 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x21A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x192 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18D SWAP2 SWAP1 PUSH2 0x10D5 JUMP JUMPDEST PUSH2 0x4BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19F SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0x534 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CF SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E0 PUSH2 0x567 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x59C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x218 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x5D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x234 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22F SWAP2 SWAP1 PUSH2 0x12AB JUMP JUMPDEST PUSH2 0x60C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x241 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x264 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25F SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x294 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x65F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x29E PUSH2 0x697 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C9 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E5 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH2 0x6DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x306 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x301 SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x322 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31D SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x797 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH2 0x7CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x36E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x369 SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x83A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x378 PUSH2 0x872 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x385 SWAP2 SWAP1 PUSH2 0x1351 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x396 PUSH2 0x877 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A3 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C1 SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x87E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DD SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0x8F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3EF SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x412 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x40D SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x923 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41C PUSH2 0x95B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x429 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x44C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x447 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH2 0x97F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x456 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x463 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x486 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x481 SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0x9C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x493 SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4A4 PUSH2 0x9F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4B1 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x52D JUMPI POP PUSH2 0x52C DUP3 PUSH2 0xA1B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x560 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 PUSH2 0x7CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x570 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x59A PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 CALLER PUSH2 0xAE8 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x5A5 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x5D0 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0xBCA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5DD CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x608 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0xC22 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x658 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 PUSH2 0x7CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x668 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x693 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0xBCA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP2 JUMP JUMPDEST PUSH2 0x6C4 DUP3 PUSH2 0x60C JUMP JUMPDEST PUSH2 0x6CD DUP2 PUSH2 0xC7A JUMP JUMPDEST PUSH2 0x6D7 DUP4 DUP4 PUSH2 0xC8E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x6E4 PUSH2 0xD6F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x751 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x748 SWAP1 PUSH2 0x13EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x75B DUP3 DUP3 PUSH2 0xAE8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x768 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x793 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0xC22 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x7A0 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x7CB PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0xC22 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x843 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x86E PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0xC22 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x88B PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x7CF JUMP JUMPDEST PUSH2 0x8C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x46AB053D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8EC PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0xBCA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 PUSH2 0x7CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x92C CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x957 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0xBCA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP2 JUMP JUMPDEST PUSH2 0x988 DUP3 PUSH2 0x60C JUMP JUMPDEST PUSH2 0x991 DUP2 PUSH2 0xC7A JUMP JUMPDEST PUSH2 0x99B DUP4 DUP4 PUSH2 0xAE8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F0 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 PUSH2 0x7CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAAF PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP3 PUSH2 0x7CF JUMP JUMPDEST PUSH2 0xAE5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x7BFA4B9F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xAF2 DUP3 DUP3 PUSH2 0x7CF JUMP JUMPDEST ISZERO PUSH2 0xBC6 JUMPI PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xB6B PUSH2 0xD6F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xC1B JUMPI PUSH2 0xC0E DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xBF4 JUMPI PUSH2 0xBF3 PUSH2 0x140F JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xC09 SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0x97F JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xBD5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xC73 JUMPI PUSH2 0xC66 DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xC4C JUMPI PUSH2 0xC4B PUSH2 0x140F JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xC61 SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0xD77 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xC2D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC8B DUP2 PUSH2 0xC86 PUSH2 0xD6F JUMP JUMPDEST PUSH2 0xD85 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xC98 DUP3 DUP3 PUSH2 0x7CF JUMP JUMPDEST PUSH2 0xD6B JUMPI PUSH1 0x1 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xD10 PUSH2 0xD6F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xD81 DUP3 DUP3 PUSH2 0xC8E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xD8F DUP3 DUP3 PUSH2 0x7CF JUMP JUMPDEST PUSH2 0xE06 JUMPI PUSH2 0xD9C DUP2 PUSH2 0xE0A JUMP JUMPDEST PUSH2 0xDAA DUP4 PUSH1 0x0 SHR PUSH1 0x20 PUSH2 0xE37 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDBB SWAP3 SWAP2 SWAP1 PUSH2 0x1547 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDFD SWAP2 SWAP1 PUSH2 0x15CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xE30 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x14 PUSH1 0xFF AND PUSH2 0xE37 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x2 DUP4 PUSH1 0x2 PUSH2 0xE4A SWAP2 SWAP1 PUSH2 0x1626 JUMP JUMPDEST PUSH2 0xE54 SWAP2 SWAP1 PUSH2 0x1668 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE6D JUMPI PUSH2 0xE6C PUSH2 0x169C JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE9F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xED7 JUMPI PUSH2 0xED6 PUSH2 0x140F JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0xF3B JUMPI PUSH2 0xF3A PUSH2 0x140F JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH1 0x1 DUP5 PUSH1 0x2 PUSH2 0xF7B SWAP2 SWAP1 PUSH2 0x1626 JUMP JUMPDEST PUSH2 0xF85 SWAP2 SWAP1 PUSH2 0x1668 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1025 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xF DUP7 AND PUSH1 0x10 DUP2 LT PUSH2 0xFC7 JUMPI PUSH2 0xFC6 PUSH2 0x140F JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xFDE JUMPI PUSH2 0xFDD PUSH2 0x140F JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 DUP6 SWAP1 SHR SWAP5 POP DUP1 PUSH2 0x101E SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP1 POP PUSH2 0xF88 JUMP JUMPDEST POP PUSH1 0x0 DUP5 EQ PUSH2 0x1069 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1060 SWAP1 PUSH2 0x1740 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10B2 DUP2 PUSH2 0x107D JUMP JUMPDEST DUP2 EQ PUSH2 0x10BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10CF DUP2 PUSH2 0x10A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10EB JUMPI PUSH2 0x10EA PUSH2 0x1073 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10F9 DUP5 DUP3 DUP6 ADD PUSH2 0x10C0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1117 DUP2 PUSH2 0x1102 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1132 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x110E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1163 DUP3 PUSH2 0x1138 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1173 DUP2 PUSH2 0x1158 JUMP JUMPDEST DUP2 EQ PUSH2 0x117E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1190 DUP2 PUSH2 0x116A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11AC JUMPI PUSH2 0x11AB PUSH2 0x1073 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x11BA DUP5 DUP3 DUP6 ADD PUSH2 0x1181 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x11E8 JUMPI PUSH2 0x11E7 PUSH2 0x11C3 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1205 JUMPI PUSH2 0x1204 PUSH2 0x11C8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1221 JUMPI PUSH2 0x1220 PUSH2 0x11CD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x123F JUMPI PUSH2 0x123E PUSH2 0x1073 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x125D JUMPI PUSH2 0x125C PUSH2 0x1078 JUMP JUMPDEST JUMPDEST PUSH2 0x1269 DUP6 DUP3 DUP7 ADD PUSH2 0x11D2 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1288 DUP2 PUSH2 0x1275 JUMP JUMPDEST DUP2 EQ PUSH2 0x1293 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12A5 DUP2 PUSH2 0x127F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12C1 JUMPI PUSH2 0x12C0 PUSH2 0x1073 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12CF DUP5 DUP3 DUP6 ADD PUSH2 0x1296 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12E1 DUP2 PUSH2 0x1275 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x12FC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x12D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1319 JUMPI PUSH2 0x1318 PUSH2 0x1073 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1327 DUP6 DUP3 DUP7 ADD PUSH2 0x1296 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1338 DUP6 DUP3 DUP7 ADD PUSH2 0x1181 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x134B DUP2 PUSH2 0x1158 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1366 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1342 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13D9 PUSH1 0x2F DUP4 PUSH2 0x136C JUMP JUMPDEST SWAP2 POP PUSH2 0x13E4 DUP3 PUSH2 0x137D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1408 DUP2 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x147F PUSH1 0x17 DUP4 PUSH2 0x143E JUMP JUMPDEST SWAP2 POP PUSH2 0x148A DUP3 PUSH2 0x1449 JUMP JUMPDEST PUSH1 0x17 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14BE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x14A3 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14D5 DUP3 PUSH2 0x1495 JUMP JUMPDEST PUSH2 0x14DF DUP2 DUP6 PUSH2 0x143E JUMP JUMPDEST SWAP4 POP PUSH2 0x14EF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x14A0 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1531 PUSH1 0x11 DUP4 PUSH2 0x143E JUMP JUMPDEST SWAP2 POP PUSH2 0x153C DUP3 PUSH2 0x14FB JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1552 DUP3 PUSH2 0x1472 JUMP JUMPDEST SWAP2 POP PUSH2 0x155E DUP3 DUP6 PUSH2 0x14CA JUMP JUMPDEST SWAP2 POP PUSH2 0x1569 DUP3 PUSH2 0x1524 JUMP JUMPDEST SWAP2 POP PUSH2 0x1575 DUP3 DUP5 PUSH2 0x14CA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x159D DUP3 PUSH2 0x1495 JUMP JUMPDEST PUSH2 0x15A7 DUP2 DUP6 PUSH2 0x136C JUMP JUMPDEST SWAP4 POP PUSH2 0x15B7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x14A0 JUMP JUMPDEST PUSH2 0x15C0 DUP2 PUSH2 0x1581 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x15E5 DUP2 DUP5 PUSH2 0x1592 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1631 DUP3 PUSH2 0x15ED JUMP JUMPDEST SWAP2 POP PUSH2 0x163C DUP4 PUSH2 0x15ED JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x164A DUP2 PUSH2 0x15ED JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1661 JUMPI PUSH2 0x1660 PUSH2 0x15F7 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1673 DUP3 PUSH2 0x15ED JUMP JUMPDEST SWAP2 POP PUSH2 0x167E DUP4 PUSH2 0x15ED JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1696 JUMPI PUSH2 0x1695 PUSH2 0x15F7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0x15ED JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 SUB PUSH2 0x16E9 JUMPI PUSH2 0x16E8 PUSH2 0x15F7 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x172A PUSH1 0x20 DUP4 PUSH2 0x136C JUMP JUMPDEST SWAP2 POP PUSH2 0x1735 DUP3 PUSH2 0x16F4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1759 DUP2 PUSH2 0x171D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 PUSH17 0x9FEE65BA1540FD2F3044CD39844FDD412A GAS 0xF8 SUB DUP1 PUSH5 0x659CF24FAA PUSH27 0x8CFF64736F6C634300081100330000000000000000000000000000 ", + "sourceMap": "336:8530:14:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@ACCEPTED_TOKEN_3343": { + "entryPoint": 2551, + "id": 3343, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@ADMIN_3358": { + "entryPoint": 1687, + "id": 3358, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@DEFAULT_ADMIN_ROLE_42": { + "entryPoint": 2167, + "id": 42, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@DONATION_RECIPIENT_3348": { + "entryPoint": 2464, + "id": 3348, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@FEE_RECEIVER_3353": { + "entryPoint": 2395, + "id": 3353, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@NATIVE_3365": { + "entryPoint": 2162, + "id": 3365, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_addRoles_3476": { + "entryPoint": 3106, + "id": 3476, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkAdmin_3527": { + "entryPoint": 2693, + "id": 3527, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkRole_107": { + "entryPoint": 3194, + "id": 107, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkRole_146": { + "entryPoint": 3461, + "id": 146, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_grantRole_298": { + "entryPoint": 3214, + "id": 298, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_1356": { + "entryPoint": 3439, + "id": 1356, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_removeRoles_3511": { + "entryPoint": 3018, + "id": 3511, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_revokeRole_329": { + "entryPoint": 2792, + "id": 329, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setupRole_238": { + "entryPoint": 3447, + "id": 238, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addAdmin_3545": { + "entryPoint": 1887, + "id": 3545, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addDonationRecipient_3698": { + "entryPoint": 1943, + "id": 3698, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addFeeReceiver_3764": { + "entryPoint": 2106, + "id": 3764, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addToken_3631": { + "entryPoint": 1492, + "id": 3631, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@getRoleAdmin_161": { + "entryPoint": 1548, + "id": 161, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@grantRole_181": { + "entryPoint": 1723, + "id": 181, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@hasRole_94": { + "entryPoint": 1999, + "id": 94, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isAdmin_3597": { + "entryPoint": 1580, + "id": 3597, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isDonationRecipient_3730": { + "entryPoint": 2500, + "id": 3730, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isFeeReceiver_3796": { + "entryPoint": 2288, + "id": 3796, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isTokenAccepted_3663": { + "entryPoint": 1332, + "id": 3663, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@removeAdmin_3568": { + "entryPoint": 2174, + "id": 3568, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@removeDonationRecipient_3716": { + "entryPoint": 1436, + "id": 3716, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@removeFeeReceiver_3782": { + "entryPoint": 1631, + "id": 3782, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@removeToken_3649": { + "entryPoint": 2339, + "id": 3649, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@renounceRole_224": { + "entryPoint": 1756, + "id": 224, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@revokeAdmin_3583": { + "entryPoint": 1383, + "id": 3583, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@revokeRole_201": { + "entryPoint": 2431, + "id": 201, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1584": { + "entryPoint": 2587, + "id": 1584, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_75": { + "entryPoint": 1210, + "id": 75, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@toHexString_1525": { + "entryPoint": 3639, + "id": 1525, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@toHexString_1545": { + "entryPoint": 3594, + "id": 1545, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 4481, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4562, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_bytes32": { + "entryPoint": 4758, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 4288, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 4502, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4648, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 4779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 4866, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 4309, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 4930, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 4366, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 4824, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5522, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 5322, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5917, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 5234, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 5412, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5068, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 5447, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 4945, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 4381, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 4839, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5579, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5952, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5103, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 5269, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 4972, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 5182, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 5736, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 5670, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 4440, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 4354, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 4725, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 4221, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 4408, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 5613, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 5280, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "decrement_t_uint256": { + "entryPoint": 5835, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 5623, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 5135, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 5788, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 4552, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 4547, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 4557, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 4216, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 4211, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 5505, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2": { + "entryPoint": 5876, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874": { + "entryPoint": 5193, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69": { + "entryPoint": 5371, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b": { + "entryPoint": 4989, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 4458, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 4735, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 4265, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:13243:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "378:105:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "388:89:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "403:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "410:66:16", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "399:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "399:78:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "388:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "360:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "370:7:16", + "type": "" + } + ], + "src": "334:149:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "531:78:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "587:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "596:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "599:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "589:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "589:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "589:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "554:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "578:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "561:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "561:23:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "551:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "551:34:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "544:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "544:42:16" + }, + "nodeType": "YulIf", + "src": "541:62:16" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "524:5:16", + "type": "" + } + ], + "src": "489:120:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:86:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "698:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "685:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "685:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "740:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "714:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "714:32:16" + }, + "nodeType": "YulExpressionStatement", + "src": "714:32:16" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "644:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "652:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "660:5:16", + "type": "" + } + ], + "src": "615:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "823:262:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "871:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "871:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "871:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "844:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "853:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "840:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "840:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "836:32:16" + }, + "nodeType": "YulIf", + "src": "833:119:16" + }, + { + "nodeType": "YulBlock", + "src": "962:116:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "977:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "991:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "981:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1006:62:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1040:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1051:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1036:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1036:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1060:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1016:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "1016:52:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1006:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "793:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "804:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "816:6:16", + "type": "" + } + ], + "src": "758:327:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1133:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1143:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1168:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1161:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1161:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1154:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1154:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1143:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1115:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1125:7:16", + "type": "" + } + ], + "src": "1091:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1246:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1263:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1283:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "1268:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "1268:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1256:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1256:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1256:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1234:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1241:3:16", + "type": "" + } + ], + "src": "1187:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1394:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1404:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1416:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1412:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1412:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1404:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1478:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1491:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1487:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1440:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "1440:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1440:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1366:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1378:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1389:4:16", + "type": "" + } + ], + "src": "1302:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1563:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1573:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1588:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1595:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1584:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1584:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1573:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1545:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1555:7:16", + "type": "" + } + ], + "src": "1518:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1695:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1705:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1734:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1716:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1716:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1705:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1677:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1687:7:16", + "type": "" + } + ], + "src": "1650:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1795:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1852:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1861:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1864:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1854:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1854:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1854:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1818:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1843:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1825:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1825:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1815:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1815:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1808:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1808:43:16" + }, + "nodeType": "YulIf", + "src": "1805:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1788:5:16", + "type": "" + } + ], + "src": "1752:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1932:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1942:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1964:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1951:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "1951:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1942:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2007:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "1980:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "1980:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1980:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1910:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1918:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1926:5:16", + "type": "" + } + ], + "src": "1880:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2091:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2137:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2139:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2139:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2139:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2112:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2121:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2108:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2108:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2133:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2104:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:32:16" + }, + "nodeType": "YulIf", + "src": "2101:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2230:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2245:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2259:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2249:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2274:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2309:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2320:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2305:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2305:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2329:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2284:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2284:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2274:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2061:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2072:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2084:6:16", + "type": "" + } + ], + "src": "2025:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2449:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2466:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2469:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2459:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2459:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2459:12:16" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "2360:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2572:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2589:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2592:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2582:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2582:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2582:12:16" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "2483:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2695:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2712:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2715:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2705:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2705:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2705:12:16" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "2606:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2836:478:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2885:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2887:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2887:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2887:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2864:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2872:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2860:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2860:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2879:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2856:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2856:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2849:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2849:35:16" + }, + "nodeType": "YulIf", + "src": "2846:122:16" + }, + { + "nodeType": "YulAssignment", + "src": "2977:30:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3000:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2987:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2987:20:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2977:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3050:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "3052:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3052:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3052:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3022:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3030:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3019:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3019:30:16" + }, + "nodeType": "YulIf", + "src": "3016:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "3142:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3158:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3166:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3154:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3154:17:16" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3142:8:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3225:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "3227:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3227:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3227:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3190:8:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3204:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3212:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3200:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3200:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3186:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3186:32:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3220:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3183:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3183:41:16" + }, + "nodeType": "YulIf", + "src": "3180:128:16" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2803:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2811:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "2819:8:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2829:6:16", + "type": "" + } + ], + "src": "2746:568:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3421:458:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3467:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3469:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3469:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3469:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3442:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3451:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3438:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3438:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3463:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3434:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3434:32:16" + }, + "nodeType": "YulIf", + "src": "3431:119:16" + }, + { + "nodeType": "YulBlock", + "src": "3560:312:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3575:45:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3606:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3617:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3602:17:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3589:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "3589:31:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3579:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3667:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3669:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3669:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3669:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3639:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3647:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3636:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3636:30:16" + }, + "nodeType": "YulIf", + "src": "3633:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "3764:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3834:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3845:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3830:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3830:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3854:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "3782:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "3782:80:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3764:6:16" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3772:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3383:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3394:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3406:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3414:6:16", + "type": "" + } + ], + "src": "3320:559:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3930:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3940:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3951:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3940:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3912:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3922:7:16", + "type": "" + } + ], + "src": "3885:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4011:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4068:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4077:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4080:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4070:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4070:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4070:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4034:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4059:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "4041:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4031:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4031:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4024:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4024:43:16" + }, + "nodeType": "YulIf", + "src": "4021:63:16" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4004:5:16", + "type": "" + } + ], + "src": "3968:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4148:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4158:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4180:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4167:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "4167:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4158:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4223:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nodeType": "YulIdentifier", + "src": "4196:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "4196:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4196:33:16" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4126:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4134:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4142:5:16", + "type": "" + } + ], + "src": "4096:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4307:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4353:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4355:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4355:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4355:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4328:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4337:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4324:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4324:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4349:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4320:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4320:32:16" + }, + "nodeType": "YulIf", + "src": "4317:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4446:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4461:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4475:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4465:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4490:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4525:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4536:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4521:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4521:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4545:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "4500:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4500:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4490:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4277:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4288:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4300:6:16", + "type": "" + } + ], + "src": "4241:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4641:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4658:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4681:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "4663:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "4663:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4651:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4651:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4651:37:16" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4629:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4636:3:16", + "type": "" + } + ], + "src": "4576:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4798:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4808:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4820:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4831:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4816:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4816:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4808:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4888:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4901:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4912:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4897:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4897:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "4844:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "4844:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4844:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4770:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4782:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4793:4:16", + "type": "" + } + ], + "src": "4700:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5011:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5057:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5059:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5059:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5059:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5032:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5041:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5028:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5028:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5053:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5024:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5024:32:16" + }, + "nodeType": "YulIf", + "src": "5021:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5150:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5165:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5179:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5169:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5194:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5229:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5240:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5225:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5225:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5249:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "5204:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5204:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5194:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5277:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5292:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5306:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5296:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5322:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5357:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5368:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5353:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5353:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5377:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5332:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5332:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5322:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4973:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4984:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4996:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5004:6:16", + "type": "" + } + ], + "src": "4928:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5473:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5490:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5513:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5495:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "5495:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5483:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5483:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5483:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5461:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5468:3:16", + "type": "" + } + ], + "src": "5408:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5630:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5640:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5652:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5663:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5648:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5648:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5640:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5720:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5733:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5744:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5729:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5729:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5676:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "5676:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5676:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5602:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5614:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5625:4:16", + "type": "" + } + ], + "src": "5532:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5856:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5873:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5878:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5866:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5866:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5866:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "5894:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5913:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5918:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5909:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5909:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "5894:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5828:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5833:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "5844:11:16", + "type": "" + } + ], + "src": "5760:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6041:128:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "6063:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6071:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6059:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6059:14:16" + }, + { + "hexValue": "416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6075:34:16", + "type": "", + "value": "AccessControl: can only renounce" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6052:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6052:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6052:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "6131:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6139:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6127:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6127:15:16" + }, + { + "hexValue": "20726f6c657320666f722073656c66", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6144:17:16", + "type": "", + "value": " roles for self" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6120:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6120:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6120:42:16" + } + ] + }, + "name": "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6033:6:16", + "type": "" + } + ], + "src": "5935:234:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6321:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6331:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6397:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6402:2:16", + "type": "", + "value": "47" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6338:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "6338:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6331:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6503:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "nodeType": "YulIdentifier", + "src": "6414:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "6414:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6414:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "6516:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6527:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6532:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6523:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6523:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6516:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6309:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6317:3:16", + "type": "" + } + ], + "src": "6175:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6718:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6728:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6740:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6736:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6736:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6728:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6775:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6786:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6771:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6771:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6794:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6800:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6790:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6790:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6764:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6764:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6764:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "6820:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6954:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6828:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "6828:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6820:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6698:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6713:4:16", + "type": "" + } + ], + "src": "6547:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7000:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7017:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7020:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7010:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7010:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7010:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7114:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7117:4:16", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7107:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7107:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7107:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7138:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7141:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7131:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7131:15:16" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "6972:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7272:34:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7282:18:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7297:3:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "7282:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7244:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7249:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "7260:11:16", + "type": "" + } + ], + "src": "7158:148:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7418:67:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7440:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7448:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7436:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7436:14:16" + }, + { + "hexValue": "416363657373436f6e74726f6c3a206163636f756e7420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7452:25:16", + "type": "", + "value": "AccessControl: account " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7429:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7429:49:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7429:49:16" + } + ] + }, + "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7410:6:16", + "type": "" + } + ], + "src": "7312:173:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7655:238:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7665:92:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7749:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7754:2:16", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "7672:76:16" + }, + "nodeType": "YulFunctionCall", + "src": "7672:85:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7665:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7855:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", + "nodeType": "YulIdentifier", + "src": "7766:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "7766:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7766:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "7868:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7879:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7884:2:16", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7875:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7875:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7868:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7643:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7651:3:16", + "type": "" + } + ], + "src": "7491:402:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7958:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7969:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7985:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7979:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "7979:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7969:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7941:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7951:6:16", + "type": "" + } + ], + "src": "7899:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8066:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8076:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8085:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "8080:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8145:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8170:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8175:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8166:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8189:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8194:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8185:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8185:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8179:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "8179:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8159:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8159:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8159:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8106:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8109:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8103:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8103:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8117:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8119:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8128:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8131:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8124:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8124:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8119:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8099:3:16", + "statements": [] + }, + "src": "8095:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8228:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8233:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8224:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8224:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8242:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8217:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8217:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8217:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8048:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "8053:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8058:6:16", + "type": "" + } + ], + "src": "8004:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8366:280:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8376:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8423:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8390:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "8390:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8380:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8438:96:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8522:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8527:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "8445:76:16" + }, + "nodeType": "YulFunctionCall", + "src": "8445:89:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8438:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8582:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8589:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8578:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8578:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8596:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8601:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "8543:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "8543:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8543:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "8617:23:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8628:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8633:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8624:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8624:16:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8617:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8347:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8354:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8362:3:16", + "type": "" + } + ], + "src": "8256:390:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8758:61:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8780:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8788:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8776:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8776:14:16" + }, + { + "hexValue": "206973206d697373696e6720726f6c6520", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8792:19:16", + "type": "", + "value": " is missing role " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8769:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8769:43:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8769:43:16" + } + ] + }, + "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "8750:6:16", + "type": "" + } + ], + "src": "8652:167:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8989:238:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8999:92:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9083:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9088:2:16", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "9006:76:16" + }, + "nodeType": "YulFunctionCall", + "src": "9006:85:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8999:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9189:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "nodeType": "YulIdentifier", + "src": "9100:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "9100:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9100:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "9202:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9213:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9218:2:16", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9209:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9209:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9202:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8977:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8985:3:16", + "type": "" + } + ], + "src": "8825:402:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9619:581:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9630:155:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9781:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "9637:142:16" + }, + "nodeType": "YulFunctionCall", + "src": "9637:148:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9630:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9795:102:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9884:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9893:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "9802:81:16" + }, + "nodeType": "YulFunctionCall", + "src": "9802:95:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9795:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9907:155:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10058:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "9914:142:16" + }, + "nodeType": "YulFunctionCall", + "src": "9914:148:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9907:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10072:102:16", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10161:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10170:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "10079:81:16" + }, + "nodeType": "YulFunctionCall", + "src": "10079:95:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10072:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10184:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10191:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10184:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9590:3:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9596:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9604:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9615:3:16", + "type": "" + } + ], + "src": "9233:967:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10254:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10264:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10282:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10289:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10278:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10278:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10298:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "10294:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10294:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10274:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10274:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "10264:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10237:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "10247:6:16", + "type": "" + } + ], + "src": "10206:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10406:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10416:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10463:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "10430:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "10430:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10420:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10478:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10544:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10549:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10485:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "10485:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10478:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10604:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10611:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10600:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10600:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10618:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10623:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "10565:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "10565:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10565:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "10639:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10650:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10677:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "10655:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "10655:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10646:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10646:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10639:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10387:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10394:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10402:3:16", + "type": "" + } + ], + "src": "10314:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10815:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10825:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10837:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10848:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10833:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10833:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10825:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10883:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10868:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10891:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10897:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10887:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10887:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10861:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "10861:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10861:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "10917:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10989:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10998:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10925:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "10925:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10917:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10787:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10799:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10810:4:16", + "type": "" + } + ], + "src": "10697:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11061:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11071:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11082:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "11071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "11053:7:16", + "type": "" + } + ], + "src": "11016:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11127:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11144:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11147:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11137:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11137:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11137:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11241:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11244:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11234:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11234:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11234:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11265:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11268:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11258:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11258:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11258:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "11099:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11333:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11343:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11366:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "11348:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "11348:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11343:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11377:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "11400:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "11382:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "11382:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "11377:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "11411:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11434:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "11437:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "11430:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11430:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "11415:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11448:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "11477:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "11459:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "11459:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "11448:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11666:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "11668:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "11668:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11668:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11599:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11592:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11592:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "11622:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "11629:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11638:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "11625:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11625:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11619:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "11619:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "11572:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "11572:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11552:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11552:113:16" + }, + "nodeType": "YulIf", + "src": "11549:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "11316:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "11319:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "11325:7:16", + "type": "" + } + ], + "src": "11285:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11745:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11755:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11778:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "11760:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "11760:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11755:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11789:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "11812:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "11794:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "11794:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "11789:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11823:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11834:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "11837:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11830:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11830:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "11823:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11863:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "11865:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "11865:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11865:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11855:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "11858:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11852:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "11852:10:16" + }, + "nodeType": "YulIf", + "src": "11849:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "11732:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "11735:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "11741:3:16", + "type": "" + } + ], + "src": "11701:191:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11926:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11943:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11946:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11936:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11936:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11936:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12040:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12043:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12033:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12033:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12033:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12064:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12067:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12057:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12057:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12057:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "11898:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12127:128:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12137:33:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12164:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "12146:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "12146:24:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12137:5:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12198:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "12200:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "12200:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12200:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12185:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12192:4:16", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "12182:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "12182:15:16" + }, + "nodeType": "YulIf", + "src": "12179:41:16" + }, + { + "nodeType": "YulAssignment", + "src": "12229:20:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12240:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12247:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12236:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12236:13:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "12229:3:16" + } + ] + } + ] + }, + "name": "decrement_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12113:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "12123:3:16", + "type": "" + } + ], + "src": "12084:171:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12367:76:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12389:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12397:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12385:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12385:14:16" + }, + { + "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12401:34:16", + "type": "", + "value": "Strings: hex length insufficient" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12378:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12378:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12378:58:16" + } + ] + }, + "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12359:6:16", + "type": "" + } + ], + "src": "12261:182:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12595:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12605:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12671:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12676:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12612:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "12612:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12605:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12777:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "nodeType": "YulIdentifier", + "src": "12688:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "12688:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12688:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "12790:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12801:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12806:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12797:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12797:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12790:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12583:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12591:3:16", + "type": "" + } + ], + "src": "12449:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12992:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13002:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13014:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13025:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13010:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13010:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13002:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13049:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13060:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13045:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13045:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13068:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13074:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13064:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13064:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13038:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13038:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13038:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "13094:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13228:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13102:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "13102:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13094:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12972:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12987:4:16", + "type": "" + } + ], + "src": "12821:419:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n mstore(add(memPtr, 32), \" roles for self\")\n\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: account \")\n\n }\n\n function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n end := add(pos, 23)\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n mstore(add(memPtr, 0), \" is missing role \")\n\n }\n\n function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n }\n\n function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101735760003560e01c806380c78f1c116100de578063b278110f11610097578063d547741f11610071578063d547741f14610432578063dcda7dad1461044e578063fbfe3ab21461046c578063fdbb219d1461049c57610173565b8063b278110f146103c8578063bf7cb70b146103f8578063d3e78e4d1461041457610173565b806380c78f1c1461030857806391d14854146103245780639d082c9814610354578063a0cf0aea14610370578063a217fddf1461038e578063ae876f61146103ac57610173565b806324d7806c1161013057806324d7806c1461024a5780632620d8001461027a5780632a0acc6a146102965780632f2ff15d146102b457806336568abe146102d05780633d0950a8146102ec57610173565b806301ffc9a7146101785780630560bd96146101a85780630d6aef04146101d85780631037d18c146101e257806310881166146101fe578063248a9ca31461021a575b600080fd5b610192600480360381019061018d91906110d5565b6104ba565b60405161019f919061111d565b60405180910390f35b6101c260048036038101906101bd9190611196565b610534565b6040516101cf919061111d565b60405180910390f35b6101e0610567565b005b6101fc60048036038101906101f79190611228565b61059c565b005b61021860048036038101906102139190611228565b6105d4565b005b610234600480360381019061022f91906112ab565b61060c565b60405161024191906112e7565b60405180910390f35b610264600480360381019061025f9190611196565b61062c565b604051610271919061111d565b60405180910390f35b610294600480360381019061028f9190611228565b61065f565b005b61029e610697565b6040516102ab91906112e7565b60405180910390f35b6102ce60048036038101906102c99190611302565b6106bb565b005b6102ea60048036038101906102e59190611302565b6106dc565b005b61030660048036038101906103019190611228565b61075f565b005b610322600480360381019061031d9190611228565b610797565b005b61033e60048036038101906103399190611302565b6107cf565b60405161034b919061111d565b60405180910390f35b61036e60048036038101906103699190611228565b61083a565b005b610378610872565b6040516103859190611351565b60405180910390f35b610396610877565b6040516103a391906112e7565b60405180910390f35b6103c660048036038101906103c19190611228565b61087e565b005b6103e260048036038101906103dd9190611196565b6108f0565b6040516103ef919061111d565b60405180910390f35b610412600480360381019061040d9190611228565b610923565b005b61041c61095b565b60405161042991906112e7565b60405180910390f35b61044c60048036038101906104479190611302565b61097f565b005b6104566109a0565b60405161046391906112e7565b60405180910390f35b61048660048036038101906104819190611196565b6109c4565b604051610493919061111d565b60405180910390f35b6104a46109f7565b6040516104b191906112e7565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061052d575061052c82610a1b565b5b9050919050565b60006105607f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19836107cf565b9050919050565b61057033610a85565b61059a7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233610ae8565b565b6105a533610a85565b6105d07fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383610bca565b5050565b6105dd33610a85565b6106087f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383610c22565b5050565b600060656000838152602001908152602001600020600101549050919050565b60006106587fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42836107cf565b9050919050565b61066833610a85565b6106937fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383610bca565b5050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4281565b6106c48261060c565b6106cd81610c7a565b6106d78383610c8e565b505050565b6106e4610d6f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610751576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610748906113ef565b60405180910390fd5b61075b8282610ae8565b5050565b61076833610a85565b6107937fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383610c22565b5050565b6107a033610a85565b6107cb7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc6328383610c22565b5050565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61084333610a85565b61086e7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f0838383610c22565b5050565b600081565b6000801b81565b61088b6000801b336107cf565b6108c1576040517f46ab053d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108ec7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428383610bca565b5050565b600061091c7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083836107cf565b9050919050565b61092c33610a85565b6109577f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed198383610bca565b5050565b7fb65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f08381565b6109888261060c565b61099181610c7a565b61099b8383610ae8565b505050565b7fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc63281565b60006109f07fbb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632836107cf565b9050919050565b7f6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed1981565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610aaf7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42826107cf565b610ae5576040517f7bfa4b9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b610af282826107cf565b15610bc65760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610b6b610d6f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600082829050905060005b81811015610c1b57610c0e85858584818110610bf457610bf361140f565b5b9050602002016020810190610c099190611196565b61097f565b8080600101915050610bd5565b5050505050565b600082829050905060005b81811015610c7357610c6685858584818110610c4c57610c4b61140f565b5b9050602002016020810190610c619190611196565b610d77565b8080600101915050610c2d565b5050505050565b610c8b81610c86610d6f565b610d85565b50565b610c9882826107cf565b610d6b5760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610d10610d6f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600033905090565b610d818282610c8e565b5050565b610d8f82826107cf565b610e0657610d9c81610e0a565b610daa8360001c6020610e37565b604051602001610dbb929190611547565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd91906115cb565b60405180910390fd5b5050565b6060610e308273ffffffffffffffffffffffffffffffffffffffff16601460ff16610e37565b9050919050565b606060006002836002610e4a9190611626565b610e549190611668565b67ffffffffffffffff811115610e6d57610e6c61169c565b5b6040519080825280601f01601f191660200182016040528015610e9f5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610ed757610ed661140f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610f3b57610f3a61140f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002610f7b9190611626565b610f859190611668565b90505b6001811115611025577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110610fc757610fc661140f565b5b1a60f81b828281518110610fde57610fdd61140f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061101e906116cb565b9050610f88565b5060008414611069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106090611740565b60405180910390fd5b8091505092915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6110b28161107d565b81146110bd57600080fd5b50565b6000813590506110cf816110a9565b92915050565b6000602082840312156110eb576110ea611073565b5b60006110f9848285016110c0565b91505092915050565b60008115159050919050565b61111781611102565b82525050565b6000602082019050611132600083018461110e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061116382611138565b9050919050565b61117381611158565b811461117e57600080fd5b50565b6000813590506111908161116a565b92915050565b6000602082840312156111ac576111ab611073565b5b60006111ba84828501611181565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126111e8576111e76111c3565b5b8235905067ffffffffffffffff811115611205576112046111c8565b5b602083019150836020820283011115611221576112206111cd565b5b9250929050565b6000806020838503121561123f5761123e611073565b5b600083013567ffffffffffffffff81111561125d5761125c611078565b5b611269858286016111d2565b92509250509250929050565b6000819050919050565b61128881611275565b811461129357600080fd5b50565b6000813590506112a58161127f565b92915050565b6000602082840312156112c1576112c0611073565b5b60006112cf84828501611296565b91505092915050565b6112e181611275565b82525050565b60006020820190506112fc60008301846112d8565b92915050565b6000806040838503121561131957611318611073565b5b600061132785828601611296565b925050602061133885828601611181565b9150509250929050565b61134b81611158565b82525050565b60006020820190506113666000830184611342565b92915050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006113d9602f8361136c565b91506113e48261137d565b604082019050919050565b60006020820190508181036000830152611408816113cc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061147f60178361143e565b915061148a82611449565b601782019050919050565b600081519050919050565b60005b838110156114be5780820151818401526020810190506114a3565b60008484015250505050565b60006114d582611495565b6114df818561143e565b93506114ef8185602086016114a0565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061153160118361143e565b915061153c826114fb565b601182019050919050565b600061155282611472565b915061155e82856114ca565b915061156982611524565b915061157582846114ca565b91508190509392505050565b6000601f19601f8301169050919050565b600061159d82611495565b6115a7818561136c565b93506115b78185602086016114a0565b6115c081611581565b840191505092915050565b600060208201905081810360008301526115e58184611592565b905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611631826115ed565b915061163c836115ed565b925082820261164a816115ed565b91508282048414831517611661576116606115f7565b5b5092915050565b6000611673826115ed565b915061167e836115ed565b9250828201905080821115611696576116956115f7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006116d6826115ed565b9150600082036116e9576116e86115f7565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061172a60208361136c565b9150611735826116f4565b602082019050919050565b600060208201905081810360008301526117598161171d565b905091905056fea264697066735822122092709fee65ba1540fd2f3044cd39844fdd412a5af8038064659cf24faa7a8cff64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x173 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x80C78F1C GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xB278110F GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x432 JUMPI DUP1 PUSH4 0xDCDA7DAD EQ PUSH2 0x44E JUMPI DUP1 PUSH4 0xFBFE3AB2 EQ PUSH2 0x46C JUMPI DUP1 PUSH4 0xFDBB219D EQ PUSH2 0x49C JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0xB278110F EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0xBF7CB70B EQ PUSH2 0x3F8 JUMPI DUP1 PUSH4 0xD3E78E4D EQ PUSH2 0x414 JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x80C78F1C EQ PUSH2 0x308 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x9D082C98 EQ PUSH2 0x354 JUMPI DUP1 PUSH4 0xA0CF0AEA EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0xAE876F61 EQ PUSH2 0x3AC JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x24D7806C GT PUSH2 0x130 JUMPI DUP1 PUSH4 0x24D7806C EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x2620D800 EQ PUSH2 0x27A JUMPI DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x296 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0x3D0950A8 EQ PUSH2 0x2EC JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x178 JUMPI DUP1 PUSH4 0x560BD96 EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xD6AEF04 EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x1037D18C EQ PUSH2 0x1E2 JUMPI DUP1 PUSH4 0x10881166 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x21A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x192 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18D SWAP2 SWAP1 PUSH2 0x10D5 JUMP JUMPDEST PUSH2 0x4BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19F SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0x534 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CF SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E0 PUSH2 0x567 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x59C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x218 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x5D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x234 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22F SWAP2 SWAP1 PUSH2 0x12AB JUMP JUMPDEST PUSH2 0x60C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x241 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x264 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25F SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x294 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x65F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x29E PUSH2 0x697 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C9 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E5 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH2 0x6DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x306 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x301 SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x322 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31D SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x797 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH2 0x7CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x36E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x369 SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x83A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x378 PUSH2 0x872 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x385 SWAP2 SWAP1 PUSH2 0x1351 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x396 PUSH2 0x877 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A3 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C1 SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x87E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DD SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0x8F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3EF SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x412 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x40D SWAP2 SWAP1 PUSH2 0x1228 JUMP JUMPDEST PUSH2 0x923 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41C PUSH2 0x95B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x429 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x44C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x447 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH2 0x97F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x456 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x463 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x486 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x481 SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0x9C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x493 SWAP2 SWAP1 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4A4 PUSH2 0x9F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4B1 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x52D JUMPI POP PUSH2 0x52C DUP3 PUSH2 0xA1B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x560 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 PUSH2 0x7CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x570 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x59A PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 CALLER PUSH2 0xAE8 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x5A5 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x5D0 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0xBCA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5DD CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x608 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0xC22 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x658 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 PUSH2 0x7CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x668 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x693 PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0xBCA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP2 JUMP JUMPDEST PUSH2 0x6C4 DUP3 PUSH2 0x60C JUMP JUMPDEST PUSH2 0x6CD DUP2 PUSH2 0xC7A JUMP JUMPDEST PUSH2 0x6D7 DUP4 DUP4 PUSH2 0xC8E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x6E4 PUSH2 0xD6F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x751 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x748 SWAP1 PUSH2 0x13EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x75B DUP3 DUP3 PUSH2 0xAE8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x768 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x793 PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0xC22 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x7A0 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x7CB PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 DUP4 PUSH2 0xC22 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x843 CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x86E PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 DUP4 PUSH2 0xC22 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x88B PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x7CF JUMP JUMPDEST PUSH2 0x8C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x46AB053D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8EC PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP4 DUP4 PUSH2 0xBCA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91C PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP4 PUSH2 0x7CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x92C CALLER PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x957 PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP4 DUP4 PUSH2 0xBCA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xB65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083 DUP2 JUMP JUMPDEST PUSH2 0x988 DUP3 PUSH2 0x60C JUMP JUMPDEST PUSH2 0x991 DUP2 PUSH2 0xC7A JUMP JUMPDEST PUSH2 0x99B DUP4 DUP4 PUSH2 0xAE8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F0 PUSH32 0xBB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632 DUP4 PUSH2 0x7CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAAF PUSH32 0xDF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42 DUP3 PUSH2 0x7CF JUMP JUMPDEST PUSH2 0xAE5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x7BFA4B9F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xAF2 DUP3 DUP3 PUSH2 0x7CF JUMP JUMPDEST ISZERO PUSH2 0xBC6 JUMPI PUSH1 0x0 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xB6B PUSH2 0xD6F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xC1B JUMPI PUSH2 0xC0E DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xBF4 JUMPI PUSH2 0xBF3 PUSH2 0x140F JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xC09 SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0x97F JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xBD5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xC73 JUMPI PUSH2 0xC66 DUP6 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xC4C JUMPI PUSH2 0xC4B PUSH2 0x140F JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xC61 SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH2 0xD77 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xC2D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC8B DUP2 PUSH2 0xC86 PUSH2 0xD6F JUMP JUMPDEST PUSH2 0xD85 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xC98 DUP3 DUP3 PUSH2 0x7CF JUMP JUMPDEST PUSH2 0xD6B JUMPI PUSH1 0x1 PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xD10 PUSH2 0xD6F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xD81 DUP3 DUP3 PUSH2 0xC8E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xD8F DUP3 DUP3 PUSH2 0x7CF JUMP JUMPDEST PUSH2 0xE06 JUMPI PUSH2 0xD9C DUP2 PUSH2 0xE0A JUMP JUMPDEST PUSH2 0xDAA DUP4 PUSH1 0x0 SHR PUSH1 0x20 PUSH2 0xE37 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDBB SWAP3 SWAP2 SWAP1 PUSH2 0x1547 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDFD SWAP2 SWAP1 PUSH2 0x15CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xE30 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x14 PUSH1 0xFF AND PUSH2 0xE37 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x2 DUP4 PUSH1 0x2 PUSH2 0xE4A SWAP2 SWAP1 PUSH2 0x1626 JUMP JUMPDEST PUSH2 0xE54 SWAP2 SWAP1 PUSH2 0x1668 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE6D JUMPI PUSH2 0xE6C PUSH2 0x169C JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE9F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xED7 JUMPI PUSH2 0xED6 PUSH2 0x140F JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0xF3B JUMPI PUSH2 0xF3A PUSH2 0x140F JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH1 0x1 DUP5 PUSH1 0x2 PUSH2 0xF7B SWAP2 SWAP1 PUSH2 0x1626 JUMP JUMPDEST PUSH2 0xF85 SWAP2 SWAP1 PUSH2 0x1668 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1025 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xF DUP7 AND PUSH1 0x10 DUP2 LT PUSH2 0xFC7 JUMPI PUSH2 0xFC6 PUSH2 0x140F JUMP JUMPDEST JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xFDE JUMPI PUSH2 0xFDD PUSH2 0x140F JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 DUP6 SWAP1 SHR SWAP5 POP DUP1 PUSH2 0x101E SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP1 POP PUSH2 0xF88 JUMP JUMPDEST POP PUSH1 0x0 DUP5 EQ PUSH2 0x1069 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1060 SWAP1 PUSH2 0x1740 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10B2 DUP2 PUSH2 0x107D JUMP JUMPDEST DUP2 EQ PUSH2 0x10BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10CF DUP2 PUSH2 0x10A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10EB JUMPI PUSH2 0x10EA PUSH2 0x1073 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10F9 DUP5 DUP3 DUP6 ADD PUSH2 0x10C0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1117 DUP2 PUSH2 0x1102 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1132 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x110E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1163 DUP3 PUSH2 0x1138 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1173 DUP2 PUSH2 0x1158 JUMP JUMPDEST DUP2 EQ PUSH2 0x117E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1190 DUP2 PUSH2 0x116A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11AC JUMPI PUSH2 0x11AB PUSH2 0x1073 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x11BA DUP5 DUP3 DUP6 ADD PUSH2 0x1181 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x11E8 JUMPI PUSH2 0x11E7 PUSH2 0x11C3 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1205 JUMPI PUSH2 0x1204 PUSH2 0x11C8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1221 JUMPI PUSH2 0x1220 PUSH2 0x11CD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x123F JUMPI PUSH2 0x123E PUSH2 0x1073 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x125D JUMPI PUSH2 0x125C PUSH2 0x1078 JUMP JUMPDEST JUMPDEST PUSH2 0x1269 DUP6 DUP3 DUP7 ADD PUSH2 0x11D2 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1288 DUP2 PUSH2 0x1275 JUMP JUMPDEST DUP2 EQ PUSH2 0x1293 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12A5 DUP2 PUSH2 0x127F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12C1 JUMPI PUSH2 0x12C0 PUSH2 0x1073 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12CF DUP5 DUP3 DUP6 ADD PUSH2 0x1296 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12E1 DUP2 PUSH2 0x1275 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x12FC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x12D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1319 JUMPI PUSH2 0x1318 PUSH2 0x1073 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1327 DUP6 DUP3 DUP7 ADD PUSH2 0x1296 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1338 DUP6 DUP3 DUP7 ADD PUSH2 0x1181 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x134B DUP2 PUSH2 0x1158 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1366 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1342 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13D9 PUSH1 0x2F DUP4 PUSH2 0x136C JUMP JUMPDEST SWAP2 POP PUSH2 0x13E4 DUP3 PUSH2 0x137D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1408 DUP2 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x147F PUSH1 0x17 DUP4 PUSH2 0x143E JUMP JUMPDEST SWAP2 POP PUSH2 0x148A DUP3 PUSH2 0x1449 JUMP JUMPDEST PUSH1 0x17 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14BE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x14A3 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14D5 DUP3 PUSH2 0x1495 JUMP JUMPDEST PUSH2 0x14DF DUP2 DUP6 PUSH2 0x143E JUMP JUMPDEST SWAP4 POP PUSH2 0x14EF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x14A0 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1531 PUSH1 0x11 DUP4 PUSH2 0x143E JUMP JUMPDEST SWAP2 POP PUSH2 0x153C DUP3 PUSH2 0x14FB JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1552 DUP3 PUSH2 0x1472 JUMP JUMPDEST SWAP2 POP PUSH2 0x155E DUP3 DUP6 PUSH2 0x14CA JUMP JUMPDEST SWAP2 POP PUSH2 0x1569 DUP3 PUSH2 0x1524 JUMP JUMPDEST SWAP2 POP PUSH2 0x1575 DUP3 DUP5 PUSH2 0x14CA JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x159D DUP3 PUSH2 0x1495 JUMP JUMPDEST PUSH2 0x15A7 DUP2 DUP6 PUSH2 0x136C JUMP JUMPDEST SWAP4 POP PUSH2 0x15B7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x14A0 JUMP JUMPDEST PUSH2 0x15C0 DUP2 PUSH2 0x1581 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x15E5 DUP2 DUP5 PUSH2 0x1592 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1631 DUP3 PUSH2 0x15ED JUMP JUMPDEST SWAP2 POP PUSH2 0x163C DUP4 PUSH2 0x15ED JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x164A DUP2 PUSH2 0x15ED JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1661 JUMPI PUSH2 0x1660 PUSH2 0x15F7 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1673 DUP3 PUSH2 0x15ED JUMP JUMPDEST SWAP2 POP PUSH2 0x167E DUP4 PUSH2 0x15ED JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1696 JUMPI PUSH2 0x1695 PUSH2 0x15F7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0x15ED JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 SUB PUSH2 0x16E9 JUMPI PUSH2 0x16E8 PUSH2 0x15F7 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x172A PUSH1 0x20 DUP4 PUSH2 0x136C JUMP JUMPDEST SWAP2 POP PUSH2 0x1735 DUP3 PUSH2 0x16F4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1759 DUP2 PUSH2 0x171D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 PUSH17 0x9FEE65BA1540FD2F3044CD39844FDD412A GAS 0xF8 SUB DUP1 PUSH5 0x659CF24FAA PUSH27 0x8CFF64736F6C634300081100330000000000000000000000000000 ", + "sourceMap": "336:8530:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:213:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5484:125:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3931:112;;;:::i;:::-;;6536:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4829:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4708:129:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4225:112:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7892:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;615:50;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5133:145:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6242:214;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3393:130:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6185:163;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3203:145:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7562:153:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;781:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2324:49:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3686:183:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8252:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5141:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;545:64;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5558:147:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;463:76:14;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6919:141;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;389:68;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2903:213:0;2988:4;3026:43;3011:58;;;:11;:58;;;;:98;;;;3073:36;3097:11;3073:23;:36::i;:::-;3011:98;3004:105;;2903:213;;;:::o;5484:125:14:-;5548:4;5571:31;430:27;5595:6;5571:7;:31::i;:::-;5564:38;;5484:125;;;:::o;3931:112::-;3973:23;3985:10;3973:11;:23::i;:::-;4006:30;647:18;4025:10;4006:11;:30::i;:::-;3931:112::o;6536:169::-;6620:23;6632:10;6620:11;:23::i;:::-;6653:45;508:31;6686:11;;6653:12;:45::i;:::-;6536:169;;:::o;4829:137::-;4893:23;4905:10;4893:11;:23::i;:::-;4926:33;430:27;4952:6;;4926:9;:33::i;:::-;4829:137;;:::o;4708:129:0:-;4782:7;4808:6;:12;4815:4;4808:12;;;;;;;;;;;:22;;;4801:29;;4708:129;;;:::o;4225:112:14:-;4283:4;4306:24;647:18;4321:8;4306:7;:24::i;:::-;4299:31;;4225:112;;;:::o;7892:159::-;7971:23;7983:10;7971:11;:23::i;:::-;8004:40;584:25;8031:12;;8004;:40::i;:::-;7892:159;;:::o;615:50::-;647:18;615:50;:::o;5133:145:0:-;5216:18;5229:4;5216:12;:18::i;:::-;2802:16;2813:4;2802:10;:16::i;:::-;5246:25:::1;5257:4;5263:7;5246:10;:25::i;:::-;5133:145:::0;;;:::o;6242:214::-;6348:12;:10;:12::i;:::-;6337:23;;:7;:23;;;6329:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;6423:26;6435:4;6441:7;6423:11;:26::i;:::-;6242:214;;:::o;3393:130:14:-;3458:23;3470:10;3458:11;:23::i;:::-;3491:25;647:18;3508:7;;3491:9;:25::i;:::-;3393:130;;:::o;6185:163::-;6266:23;6278:10;6266:11;:23::i;:::-;6299:42;508:31;6329:11;;6299:9;:42::i;:::-;6185:163;;:::o;3203:145:0:-;3289:4;3312:6;:12;3319:4;3312:12;;;;;;;;;;;:20;;:29;3333:7;3312:29;;;;;;;;;;;;;;;;;;;;;;;;;3305:36;;3203:145;;;;:::o;7562:153:14:-;7638:23;7650:10;7638:11;:23::i;:::-;7671:37;584:25;7695:12;;7671:9;:37::i;:::-;7562:153;;:::o;781:43::-;822:1;781:43;:::o;2324:49:0:-;2369:4;2324:49;;;:::o;3686:183:14:-;3759:39;2369:4:0;3767:18:14;;3787:10;3759:7;:39::i;:::-;3754:70;;3807:17;;;;;;;;;;;;;;3754:70;3834:28;647:18;3854:7;;3834:12;:28::i;:::-;3686:183;;:::o;8252:127::-;8317:4;8340:32;584:25;8362:9;8340:7;:32::i;:::-;8333:39;;8252:127;;;:::o;5141:143::-;5208:23;5220:10;5208:11;:23::i;:::-;5241:36;430:27;5270:6;;5241:12;:36::i;:::-;5141:143;;:::o;545:64::-;584:25;545:64;:::o;5558:147:0:-;5642:18;5655:4;5642:12;:18::i;:::-;2802:16;2813:4;2802:10;:16::i;:::-;5672:26:::1;5684:4;5690:7;5672:11;:26::i;:::-;5558:147:::0;;;:::o;463:76:14:-;508:31;463:76;:::o;6919:141::-;6991:4;7014:39;508:31;7042:10;7014:7;:39::i;:::-;7007:46;;6919:141;;;:::o;389:68::-;430:27;389:68;:::o;1060:166:10:-;1145:4;1183:36;1168:51;;;:11;:51;;;;1161:58;;1060:166;;;:::o;3121:118:14:-;3189:24;647:18;3204:8;3189:7;:24::i;:::-;3184:48;;3222:10;;;;;;;;;;;;;;3184:48;3121:118;:::o;8195:234:0:-;8278:22;8286:4;8292:7;8278;:22::i;:::-;8274:149;;;8348:5;8316:6;:12;8323:4;8316:12;;;;;;;;;;;:20;;:29;8337:7;8316:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;8399:12;:10;:12::i;:::-;8372:40;;8390:7;8372:40;;8384:4;8372:40;;;;;;;;;;8274:149;8195:234;;:::o;2713:286:14:-;2800:14;2817:10;;:17;;2800:34;;2849:9;2844:149;2868:6;2864:1;:10;2844:149;;;2891:32;2902:5;2909:10;;2920:1;2909:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2891:10;:32::i;:::-;2965:3;;;;;;;2844:149;;;;2790:209;2713:286;;;:::o;2215:283::-;2299:14;2316:10;;:17;;2299:34;;2348:9;2343:149;2367:6;2363:1;:10;2343:149;;;2390:32;2401:5;2408:10;;2419:1;2408:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2390:10;:32::i;:::-;2464:3;;;;;;;2343:149;;;;2289:209;2215:283;;;:::o;3642:103:0:-;3708:30;3719:4;3725:12;:10;:12::i;:::-;3708:10;:30::i;:::-;3642:103;:::o;7791:233::-;7874:22;7882:4;7888:7;7874;:22::i;:::-;7869:149;;7944:4;7912:6;:12;7919:4;7912:12;;;;;;;;;;;:20;;:29;7933:7;7912:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7994:12;:10;:12::i;:::-;7967:40;;7985:7;7967:40;;7979:4;7967:40;;;;;;;;;;7869:149;7791:233;;:::o;850:96:8:-;903:7;929:10;922:17;;850:96;:::o;7141:110:0:-;7219:25;7230:4;7236:7;7219:10;:25::i;:::-;7141:110;;:::o;4026:501::-;4114:22;4122:4;4128:7;4114;:22::i;:::-;4109:412;;4297:39;4328:7;4297:30;:39::i;:::-;4407:49;4446:4;4438:13;;4453:2;4407:30;:49::i;:::-;4204:274;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4152:358;;;;;;;;;;;:::i;:::-;;;;;;;;4109:412;4026:501;;:::o;2146:149:9:-;2204:13;2236:52;2264:4;2248:22;;333:2;2236:52;;:11;:52::i;:::-;2229:59;;2146:149;;;:::o;1557:437::-;1632:13;1657:19;1702:1;1693:6;1689:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1679:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1657:47;;1714:15;:6;1721:1;1714:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1739;:6;1746:1;1739:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1769:9;1794:1;1785:6;1781:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1769:26;;1764:128;1801:1;1797;:5;1764:128;;;1835:8;1852:3;1844:5;:11;1835:21;;;;;;;:::i;:::-;;;;;1823:6;1830:1;1823:9;;;;;;;;:::i;:::-;;;;;:33;;;;;;;;;;;1880:1;1870:11;;;;;1804:3;;;;:::i;:::-;;;1764:128;;;;1918:1;1909:5;:10;1901:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;1980:6;1966:21;;;1557:437;;;;:::o;88:117:16:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:126::-;1555:7;1595:42;1588:5;1584:54;1573:65;;1518:126;;;:::o;1650:96::-;1687:7;1716:24;1734:5;1716:24;:::i;:::-;1705:35;;1650:96;;;:::o;1752:122::-;1825:24;1843:5;1825:24;:::i;:::-;1818:5;1815:35;1805:63;;1864:1;1861;1854:12;1805:63;1752:122;:::o;1880:139::-;1926:5;1964:6;1951:20;1942:29;;1980:33;2007:5;1980:33;:::i;:::-;1880:139;;;;:::o;2025:329::-;2084:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:119;;;2139:79;;:::i;:::-;2101:119;2259:1;2284:53;2329:7;2320:6;2309:9;2305:22;2284:53;:::i;:::-;2274:63;;2230:117;2025:329;;;;:::o;2360:117::-;2469:1;2466;2459:12;2483:117;2592:1;2589;2582:12;2606:117;2715:1;2712;2705:12;2746:568;2819:8;2829:6;2879:3;2872:4;2864:6;2860:17;2856:27;2846:122;;2887:79;;:::i;:::-;2846:122;3000:6;2987:20;2977:30;;3030:18;3022:6;3019:30;3016:117;;;3052:79;;:::i;:::-;3016:117;3166:4;3158:6;3154:17;3142:29;;3220:3;3212:4;3204:6;3200:17;3190:8;3186:32;3183:41;3180:128;;;3227:79;;:::i;:::-;3180:128;2746:568;;;;;:::o;3320:559::-;3406:6;3414;3463:2;3451:9;3442:7;3438:23;3434:32;3431:119;;;3469:79;;:::i;:::-;3431:119;3617:1;3606:9;3602:17;3589:31;3647:18;3639:6;3636:30;3633:117;;;3669:79;;:::i;:::-;3633:117;3782:80;3854:7;3845:6;3834:9;3830:22;3782:80;:::i;:::-;3764:98;;;;3560:312;3320:559;;;;;:::o;3885:77::-;3922:7;3951:5;3940:16;;3885:77;;;:::o;3968:122::-;4041:24;4059:5;4041:24;:::i;:::-;4034:5;4031:35;4021:63;;4080:1;4077;4070:12;4021:63;3968:122;:::o;4096:139::-;4142:5;4180:6;4167:20;4158:29;;4196:33;4223:5;4196:33;:::i;:::-;4096:139;;;;:::o;4241:329::-;4300:6;4349:2;4337:9;4328:7;4324:23;4320:32;4317:119;;;4355:79;;:::i;:::-;4317:119;4475:1;4500:53;4545:7;4536:6;4525:9;4521:22;4500:53;:::i;:::-;4490:63;;4446:117;4241:329;;;;:::o;4576:118::-;4663:24;4681:5;4663:24;:::i;:::-;4658:3;4651:37;4576:118;;:::o;4700:222::-;4793:4;4831:2;4820:9;4816:18;4808:26;;4844:71;4912:1;4901:9;4897:17;4888:6;4844:71;:::i;:::-;4700:222;;;;:::o;4928:474::-;4996:6;5004;5053:2;5041:9;5032:7;5028:23;5024:32;5021:119;;;5059:79;;:::i;:::-;5021:119;5179:1;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5150:117;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4928:474;;;;;:::o;5408:118::-;5495:24;5513:5;5495:24;:::i;:::-;5490:3;5483:37;5408:118;;:::o;5532:222::-;5625:4;5663:2;5652:9;5648:18;5640:26;;5676:71;5744:1;5733:9;5729:17;5720:6;5676:71;:::i;:::-;5532:222;;;;:::o;5760:169::-;5844:11;5878:6;5873:3;5866:19;5918:4;5913:3;5909:14;5894:29;;5760:169;;;;:::o;5935:234::-;6075:34;6071:1;6063:6;6059:14;6052:58;6144:17;6139:2;6131:6;6127:15;6120:42;5935:234;:::o;6175:366::-;6317:3;6338:67;6402:2;6397:3;6338:67;:::i;:::-;6331:74;;6414:93;6503:3;6414:93;:::i;:::-;6532:2;6527:3;6523:12;6516:19;;6175:366;;;:::o;6547:419::-;6713:4;6751:2;6740:9;6736:18;6728:26;;6800:9;6794:4;6790:20;6786:1;6775:9;6771:17;6764:47;6828:131;6954:4;6828:131;:::i;:::-;6820:139;;6547:419;;;:::o;6972:180::-;7020:77;7017:1;7010:88;7117:4;7114:1;7107:15;7141:4;7138:1;7131:15;7158:148;7260:11;7297:3;7282:18;;7158:148;;;;:::o;7312:173::-;7452:25;7448:1;7440:6;7436:14;7429:49;7312:173;:::o;7491:402::-;7651:3;7672:85;7754:2;7749:3;7672:85;:::i;:::-;7665:92;;7766:93;7855:3;7766:93;:::i;:::-;7884:2;7879:3;7875:12;7868:19;;7491:402;;;:::o;7899:99::-;7951:6;7985:5;7979:12;7969:22;;7899:99;;;:::o;8004:246::-;8085:1;8095:113;8109:6;8106:1;8103:13;8095:113;;;8194:1;8189:3;8185:11;8179:18;8175:1;8170:3;8166:11;8159:39;8131:2;8128:1;8124:10;8119:15;;8095:113;;;8242:1;8233:6;8228:3;8224:16;8217:27;8066:184;8004:246;;;:::o;8256:390::-;8362:3;8390:39;8423:5;8390:39;:::i;:::-;8445:89;8527:6;8522:3;8445:89;:::i;:::-;8438:96;;8543:65;8601:6;8596:3;8589:4;8582:5;8578:16;8543:65;:::i;:::-;8633:6;8628:3;8624:16;8617:23;;8366:280;8256:390;;;;:::o;8652:167::-;8792:19;8788:1;8780:6;8776:14;8769:43;8652:167;:::o;8825:402::-;8985:3;9006:85;9088:2;9083:3;9006:85;:::i;:::-;8999:92;;9100:93;9189:3;9100:93;:::i;:::-;9218:2;9213:3;9209:12;9202:19;;8825:402;;;:::o;9233:967::-;9615:3;9637:148;9781:3;9637:148;:::i;:::-;9630:155;;9802:95;9893:3;9884:6;9802:95;:::i;:::-;9795:102;;9914:148;10058:3;9914:148;:::i;:::-;9907:155;;10079:95;10170:3;10161:6;10079:95;:::i;:::-;10072:102;;10191:3;10184:10;;9233:967;;;;;:::o;10206:102::-;10247:6;10298:2;10294:7;10289:2;10282:5;10278:14;10274:28;10264:38;;10206:102;;;:::o;10314:377::-;10402:3;10430:39;10463:5;10430:39;:::i;:::-;10485:71;10549:6;10544:3;10485:71;:::i;:::-;10478:78;;10565:65;10623:6;10618:3;10611:4;10604:5;10600:16;10565:65;:::i;:::-;10655:29;10677:6;10655:29;:::i;:::-;10650:3;10646:39;10639:46;;10406:285;10314:377;;;;:::o;10697:313::-;10810:4;10848:2;10837:9;10833:18;10825:26;;10897:9;10891:4;10887:20;10883:1;10872:9;10868:17;10861:47;10925:78;10998:4;10989:6;10925:78;:::i;:::-;10917:86;;10697:313;;;;:::o;11016:77::-;11053:7;11082:5;11071:16;;11016:77;;;:::o;11099:180::-;11147:77;11144:1;11137:88;11244:4;11241:1;11234:15;11268:4;11265:1;11258:15;11285:410;11325:7;11348:20;11366:1;11348:20;:::i;:::-;11343:25;;11382:20;11400:1;11382:20;:::i;:::-;11377:25;;11437:1;11434;11430:9;11459:30;11477:11;11459:30;:::i;:::-;11448:41;;11638:1;11629:7;11625:15;11622:1;11619:22;11599:1;11592:9;11572:83;11549:139;;11668:18;;:::i;:::-;11549:139;11333:362;11285:410;;;;:::o;11701:191::-;11741:3;11760:20;11778:1;11760:20;:::i;:::-;11755:25;;11794:20;11812:1;11794:20;:::i;:::-;11789:25;;11837:1;11834;11830:9;11823:16;;11858:3;11855:1;11852:10;11849:36;;;11865:18;;:::i;:::-;11849:36;11701:191;;;;:::o;11898:180::-;11946:77;11943:1;11936:88;12043:4;12040:1;12033:15;12067:4;12064:1;12057:15;12084:171;12123:3;12146:24;12164:5;12146:24;:::i;:::-;12137:33;;12192:4;12185:5;12182:15;12179:41;;12200:18;;:::i;:::-;12179:41;12247:1;12240:5;12236:13;12229:20;;12084:171;;;:::o;12261:182::-;12401:34;12397:1;12389:6;12385:14;12378:58;12261:182;:::o;12449:366::-;12591:3;12612:67;12676:2;12671:3;12612:67;:::i;:::-;12605:74;;12688:93;12777:3;12688:93;:::i;:::-;12806:2;12801:3;12797:12;12790:19;;12449:366;;;:::o;12821:419::-;12987:4;13025:2;13014:9;13010:18;13002:26;;13074:9;13068:4;13064:20;13060:1;13049:9;13045:17;13038:47;13102:131;13228:4;13102:131;:::i;:::-;13094:139;;12821:419;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "1207600", + "executionCost": "1254", + "totalCost": "1208854" + }, + "external": { + "ACCEPTED_TOKEN()": "439", + "ADMIN()": "396", + "DEFAULT_ADMIN_ROLE()": "446", + "DONATION_RECIPIENT()": "395", + "FEE_RECEIVER()": "418", + "NATIVE()": "467", + "addAdmin(address[])": "infinite", + "addDonationRecipient(address[])": "infinite", + "addFeeReceiver(address[])": "infinite", + "addToken(address[])": "infinite", + "getRoleAdmin(bytes32)": "infinite", + "grantRole(bytes32,address)": "infinite", + "hasRole(bytes32,address)": "3185", + "isAdmin(address)": "3038", + "isDonationRecipient(address)": "3103", + "isFeeReceiver(address)": "3060", + "isTokenAccepted(address)": "3061", + "removeAdmin(address[])": "infinite", + "removeDonationRecipient(address[])": "infinite", + "removeFeeReceiver(address[])": "infinite", + "removeToken(address[])": "infinite", + "renounceRole(bytes32,address)": "infinite", + "revokeAdmin()": "infinite", + "revokeRole(bytes32,address)": "infinite", + "supportsInterface(bytes4)": "751" + }, + "internal": { + "__DonationHandlerRoles_init(address[] calldata,address[] calldata,address[] calldata,address[] calldata)": "infinite", + "_addRoles(bytes32,address[] calldata)": "infinite", + "_checkAdmin(address)": "infinite", + "_checkDonationRecipient(address)": "infinite", + "_checkFeeReceiver(address)": "infinite", + "_checkToken(address)": "infinite", + "_removeRoles(bytes32,address[] calldata)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "80" + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 336, + "end": 8866, + "name": "MSTORE", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "1" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "REVERT", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "tag", + "source": 14, + "value": "1" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "POP", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH #[$]", + "source": 14, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [$]", + "source": 14, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 336, + "end": 8866, + "name": "CODECOPY", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 336, + "end": 8866, + "name": "RETURN", + "source": 14 + } + ], + ".data": { + "0": { + ".auxdata": "a264697066735822122092709fee65ba1540fd2f3044cd39844fdd412a5af8038064659cf24faa7a8cff64736f6c63430008110033", + ".code": [ + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "80" + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 336, + "end": 8866, + "name": "MSTORE", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "CALLVALUE", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "1" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "REVERT", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "tag", + "source": 14, + "value": "1" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "POP", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 336, + "end": 8866, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "LT", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "2" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 336, + "end": 8866, + "name": "CALLDATALOAD", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "E0" + }, + { + "begin": 336, + "end": 8866, + "name": "SHR", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "80C78F1C" + }, + { + "begin": 336, + "end": 8866, + "name": "GT", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "28" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "B278110F" + }, + { + "begin": 336, + "end": 8866, + "name": "GT", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "29" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "D547741F" + }, + { + "begin": 336, + "end": 8866, + "name": "GT", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "30" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "D547741F" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "24" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "DCDA7DAD" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "25" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "FBFE3AB2" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "26" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "FDBB219D" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "27" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "2" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMP", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "tag", + "source": 14, + "value": "30" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "B278110F" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "21" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "BF7CB70B" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "22" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "D3E78E4D" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "23" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "2" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMP", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "tag", + "source": 14, + "value": "29" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "80C78F1C" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "15" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "91D14854" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "16" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "9D082C98" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "17" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "A0CF0AEA" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "18" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "A217FDDF" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "19" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "AE876F61" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "20" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "2" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMP", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "tag", + "source": 14, + "value": "28" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "24D7806C" + }, + { + "begin": 336, + "end": 8866, + "name": "GT", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "31" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "24D7806C" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "9" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "2620D800" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "10" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "2A0ACC6A" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "11" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "2F2FF15D" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "12" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "36568ABE" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "13" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "3D0950A8" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "14" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "2" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMP", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "tag", + "source": 14, + "value": "31" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "1FFC9A7" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "3" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "560BD96" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "4" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "D6AEF04" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "5" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "1037D18C" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "6" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "10881166" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "7" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "248A9CA3" + }, + { + "begin": 336, + "end": 8866, + "name": "EQ", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH [tag]", + "source": 14, + "value": "8" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "tag", + "source": 14, + "value": "2" + }, + { + "begin": 336, + "end": 8866, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 336, + "end": 8866, + "name": "DUP1", + "source": 14 + }, + { + "begin": 336, + "end": 8866, + "name": "REVERT", + "source": 14 + }, + { + "begin": 2903, + "end": 3116, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 2903, + "end": 3116, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SUB", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "ADD", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "34" + }, + { + "begin": 2903, + "end": 3116, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 2903, + "end": 3116, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 2903, + "end": 3116, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 2903, + "end": 3116, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 2903, + "end": 3116, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SUB", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "RETURN", + "source": 0 + }, + { + "begin": 5484, + "end": 5609, + "name": "tag", + "source": 14, + "value": "4" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "38" + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 5484, + "end": 5609, + "name": "DUP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SUB", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "DUP2", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "ADD", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "39" + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "40" + }, + { + "begin": 5484, + "end": 5609, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "tag", + "source": 14, + "value": "39" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "41" + }, + { + "begin": 5484, + "end": 5609, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "tag", + "source": 14, + "value": "38" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 5484, + "end": 5609, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "42" + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH [tag]", + "source": 14, + "value": "37" + }, + { + "begin": 5484, + "end": 5609, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "tag", + "source": 14, + "value": "42" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 5484, + "end": 5609, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "DUP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SUB", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "RETURN", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "tag", + "source": 14, + "value": "5" + }, + { + "begin": 3931, + "end": 4043, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "PUSH [tag]", + "source": 14, + "value": "43" + }, + { + "begin": 3931, + "end": 4043, + "name": "PUSH [tag]", + "source": 14, + "value": "44" + }, + { + "begin": 3931, + "end": 4043, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "tag", + "source": 14, + "value": "43" + }, + { + "begin": 3931, + "end": 4043, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "STOP", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "tag", + "source": 14, + "value": "6" + }, + { + "begin": 6536, + "end": 6705, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH [tag]", + "source": 14, + "value": "45" + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 6536, + "end": 6705, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "SUB", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "DUP2", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "ADD", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH [tag]", + "source": 14, + "value": "46" + }, + { + "begin": 6536, + "end": 6705, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH [tag]", + "source": 14, + "value": "47" + }, + { + "begin": 6536, + "end": 6705, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "tag", + "source": 14, + "value": "46" + }, + { + "begin": 6536, + "end": 6705, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "PUSH [tag]", + "source": 14, + "value": "48" + }, + { + "begin": 6536, + "end": 6705, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "tag", + "source": 14, + "value": "45" + }, + { + "begin": 6536, + "end": 6705, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "STOP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "tag", + "source": 14, + "value": "7" + }, + { + "begin": 4829, + "end": 4966, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH [tag]", + "source": 14, + "value": "49" + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 4829, + "end": 4966, + "name": "DUP1", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "SUB", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "DUP2", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "ADD", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH [tag]", + "source": 14, + "value": "50" + }, + { + "begin": 4829, + "end": 4966, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH [tag]", + "source": 14, + "value": "47" + }, + { + "begin": 4829, + "end": 4966, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "tag", + "source": 14, + "value": "50" + }, + { + "begin": 4829, + "end": 4966, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "PUSH [tag]", + "source": 14, + "value": "51" + }, + { + "begin": 4829, + "end": 4966, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "tag", + "source": 14, + "value": "49" + }, + { + "begin": 4829, + "end": 4966, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "STOP", + "source": 14 + }, + { + "begin": 4708, + "end": 4837, + "name": "tag", + "source": 0, + "value": "8" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "52" + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 4708, + "end": 4837, + "name": "DUP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SUB", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "ADD", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "53" + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "54" + }, + { + "begin": 4708, + "end": 4837, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "tag", + "source": 0, + "value": "53" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "55" + }, + { + "begin": 4708, + "end": 4837, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "tag", + "source": 0, + "value": "52" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4708, + "end": 4837, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "56" + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH [tag]", + "source": 0, + "value": "57" + }, + { + "begin": 4708, + "end": 4837, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "tag", + "source": 0, + "value": "56" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4708, + "end": 4837, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "DUP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SUB", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "RETURN", + "source": 0 + }, + { + "begin": 4225, + "end": 4337, + "name": "tag", + "source": 14, + "value": "9" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "58" + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 4225, + "end": 4337, + "name": "DUP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SUB", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "DUP2", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "ADD", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "59" + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "40" + }, + { + "begin": 4225, + "end": 4337, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "tag", + "source": 14, + "value": "59" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "60" + }, + { + "begin": 4225, + "end": 4337, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "tag", + "source": 14, + "value": "58" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 4225, + "end": 4337, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "61" + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH [tag]", + "source": 14, + "value": "37" + }, + { + "begin": 4225, + "end": 4337, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "tag", + "source": 14, + "value": "61" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 4225, + "end": 4337, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "DUP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SUB", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "RETURN", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "tag", + "source": 14, + "value": "10" + }, + { + "begin": 7892, + "end": 8051, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH [tag]", + "source": 14, + "value": "62" + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 7892, + "end": 8051, + "name": "DUP1", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "SUB", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "DUP2", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "ADD", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH [tag]", + "source": 14, + "value": "63" + }, + { + "begin": 7892, + "end": 8051, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH [tag]", + "source": 14, + "value": "47" + }, + { + "begin": 7892, + "end": 8051, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "tag", + "source": 14, + "value": "63" + }, + { + "begin": 7892, + "end": 8051, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "PUSH [tag]", + "source": 14, + "value": "64" + }, + { + "begin": 7892, + "end": 8051, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "tag", + "source": 14, + "value": "62" + }, + { + "begin": 7892, + "end": 8051, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "STOP", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "tag", + "source": 14, + "value": "11" + }, + { + "begin": 615, + "end": 665, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH [tag]", + "source": 14, + "value": "65" + }, + { + "begin": 615, + "end": 665, + "name": "PUSH [tag]", + "source": 14, + "value": "66" + }, + { + "begin": 615, + "end": 665, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "tag", + "source": 14, + "value": "65" + }, + { + "begin": 615, + "end": 665, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 615, + "end": 665, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH [tag]", + "source": 14, + "value": "67" + }, + { + "begin": 615, + "end": 665, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH [tag]", + "source": 14, + "value": "57" + }, + { + "begin": 615, + "end": 665, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "tag", + "source": 14, + "value": "67" + }, + { + "begin": 615, + "end": 665, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 615, + "end": 665, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "DUP1", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "SUB", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "RETURN", + "source": 14 + }, + { + "begin": 5133, + "end": 5278, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 5133, + "end": 5278, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH [tag]", + "source": 0, + "value": "68" + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 5133, + "end": 5278, + "name": "DUP1", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "SUB", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "DUP2", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "ADD", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH [tag]", + "source": 0, + "value": "69" + }, + { + "begin": 5133, + "end": 5278, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH [tag]", + "source": 0, + "value": "70" + }, + { + "begin": 5133, + "end": 5278, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "tag", + "source": 0, + "value": "69" + }, + { + "begin": 5133, + "end": 5278, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "PUSH [tag]", + "source": 0, + "value": "71" + }, + { + "begin": 5133, + "end": 5278, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "tag", + "source": 0, + "value": "68" + }, + { + "begin": 5133, + "end": 5278, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "STOP", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 6242, + "end": 6456, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH [tag]", + "source": 0, + "value": "72" + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 6242, + "end": 6456, + "name": "DUP1", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "SUB", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "DUP2", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "ADD", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH [tag]", + "source": 0, + "value": "73" + }, + { + "begin": 6242, + "end": 6456, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH [tag]", + "source": 0, + "value": "70" + }, + { + "begin": 6242, + "end": 6456, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "tag", + "source": 0, + "value": "73" + }, + { + "begin": 6242, + "end": 6456, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "PUSH [tag]", + "source": 0, + "value": "74" + }, + { + "begin": 6242, + "end": 6456, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "tag", + "source": 0, + "value": "72" + }, + { + "begin": 6242, + "end": 6456, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "STOP", + "source": 0 + }, + { + "begin": 3393, + "end": 3523, + "name": "tag", + "source": 14, + "value": "14" + }, + { + "begin": 3393, + "end": 3523, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH [tag]", + "source": 14, + "value": "75" + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 3393, + "end": 3523, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "SUB", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "DUP2", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "ADD", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH [tag]", + "source": 14, + "value": "76" + }, + { + "begin": 3393, + "end": 3523, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH [tag]", + "source": 14, + "value": "47" + }, + { + "begin": 3393, + "end": 3523, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "tag", + "source": 14, + "value": "76" + }, + { + "begin": 3393, + "end": 3523, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "PUSH [tag]", + "source": 14, + "value": "77" + }, + { + "begin": 3393, + "end": 3523, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "tag", + "source": 14, + "value": "75" + }, + { + "begin": 3393, + "end": 3523, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "STOP", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "tag", + "source": 14, + "value": "15" + }, + { + "begin": 6185, + "end": 6348, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH [tag]", + "source": 14, + "value": "78" + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 6185, + "end": 6348, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "SUB", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "DUP2", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "ADD", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH [tag]", + "source": 14, + "value": "79" + }, + { + "begin": 6185, + "end": 6348, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH [tag]", + "source": 14, + "value": "47" + }, + { + "begin": 6185, + "end": 6348, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "tag", + "source": 14, + "value": "79" + }, + { + "begin": 6185, + "end": 6348, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "PUSH [tag]", + "source": 14, + "value": "80" + }, + { + "begin": 6185, + "end": 6348, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "tag", + "source": 14, + "value": "78" + }, + { + "begin": 6185, + "end": 6348, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "STOP", + "source": 14 + }, + { + "begin": 3203, + "end": 3348, + "name": "tag", + "source": 0, + "value": "16" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "81" + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 3203, + "end": 3348, + "name": "DUP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SUB", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "ADD", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "82" + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "70" + }, + { + "begin": 3203, + "end": 3348, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "tag", + "source": 0, + "value": "82" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "83" + }, + { + "begin": 3203, + "end": 3348, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "tag", + "source": 0, + "value": "81" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 3203, + "end": 3348, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "84" + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 3203, + "end": 3348, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "tag", + "source": 0, + "value": "84" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 3203, + "end": 3348, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "DUP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SUB", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "RETURN", + "source": 0 + }, + { + "begin": 7562, + "end": 7715, + "name": "tag", + "source": 14, + "value": "17" + }, + { + "begin": 7562, + "end": 7715, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH [tag]", + "source": 14, + "value": "85" + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 7562, + "end": 7715, + "name": "DUP1", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "SUB", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "DUP2", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "ADD", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH [tag]", + "source": 14, + "value": "86" + }, + { + "begin": 7562, + "end": 7715, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH [tag]", + "source": 14, + "value": "47" + }, + { + "begin": 7562, + "end": 7715, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "tag", + "source": 14, + "value": "86" + }, + { + "begin": 7562, + "end": 7715, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "PUSH [tag]", + "source": 14, + "value": "87" + }, + { + "begin": 7562, + "end": 7715, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "tag", + "source": 14, + "value": "85" + }, + { + "begin": 7562, + "end": 7715, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "STOP", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "tag", + "source": 14, + "value": "18" + }, + { + "begin": 781, + "end": 824, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH [tag]", + "source": 14, + "value": "88" + }, + { + "begin": 781, + "end": 824, + "name": "PUSH [tag]", + "source": 14, + "value": "89" + }, + { + "begin": 781, + "end": 824, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "tag", + "source": 14, + "value": "88" + }, + { + "begin": 781, + "end": 824, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 781, + "end": 824, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH [tag]", + "source": 14, + "value": "90" + }, + { + "begin": 781, + "end": 824, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH [tag]", + "source": 14, + "value": "91" + }, + { + "begin": 781, + "end": 824, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "tag", + "source": 14, + "value": "90" + }, + { + "begin": 781, + "end": 824, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 781, + "end": 824, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "DUP1", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "SUB", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "RETURN", + "source": 14 + }, + { + "begin": 2324, + "end": 2373, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 2324, + "end": 2373, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH [tag]", + "source": 0, + "value": "92" + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH [tag]", + "source": 0, + "value": "93" + }, + { + "begin": 2324, + "end": 2373, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "tag", + "source": 0, + "value": "92" + }, + { + "begin": 2324, + "end": 2373, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 2324, + "end": 2373, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH [tag]", + "source": 0, + "value": "94" + }, + { + "begin": 2324, + "end": 2373, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH [tag]", + "source": 0, + "value": "57" + }, + { + "begin": 2324, + "end": 2373, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "tag", + "source": 0, + "value": "94" + }, + { + "begin": 2324, + "end": 2373, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 2324, + "end": 2373, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "SUB", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "RETURN", + "source": 0 + }, + { + "begin": 3686, + "end": 3869, + "name": "tag", + "source": 14, + "value": "20" + }, + { + "begin": 3686, + "end": 3869, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH [tag]", + "source": 14, + "value": "95" + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 3686, + "end": 3869, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "SUB", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "DUP2", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "ADD", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH [tag]", + "source": 14, + "value": "96" + }, + { + "begin": 3686, + "end": 3869, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH [tag]", + "source": 14, + "value": "47" + }, + { + "begin": 3686, + "end": 3869, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "tag", + "source": 14, + "value": "96" + }, + { + "begin": 3686, + "end": 3869, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "PUSH [tag]", + "source": 14, + "value": "97" + }, + { + "begin": 3686, + "end": 3869, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "tag", + "source": 14, + "value": "95" + }, + { + "begin": 3686, + "end": 3869, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "STOP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "tag", + "source": 14, + "value": "21" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "98" + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 8252, + "end": 8379, + "name": "DUP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SUB", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "DUP2", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "ADD", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "99" + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "40" + }, + { + "begin": 8252, + "end": 8379, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "tag", + "source": 14, + "value": "99" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "100" + }, + { + "begin": 8252, + "end": 8379, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "tag", + "source": 14, + "value": "98" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 8252, + "end": 8379, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "101" + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH [tag]", + "source": 14, + "value": "37" + }, + { + "begin": 8252, + "end": 8379, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "tag", + "source": 14, + "value": "101" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 8252, + "end": 8379, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "DUP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SUB", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "RETURN", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "tag", + "source": 14, + "value": "22" + }, + { + "begin": 5141, + "end": 5284, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH [tag]", + "source": 14, + "value": "102" + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 5141, + "end": 5284, + "name": "DUP1", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "SUB", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "DUP2", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "ADD", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH [tag]", + "source": 14, + "value": "103" + }, + { + "begin": 5141, + "end": 5284, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH [tag]", + "source": 14, + "value": "47" + }, + { + "begin": 5141, + "end": 5284, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "tag", + "source": 14, + "value": "103" + }, + { + "begin": 5141, + "end": 5284, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "PUSH [tag]", + "source": 14, + "value": "104" + }, + { + "begin": 5141, + "end": 5284, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "tag", + "source": 14, + "value": "102" + }, + { + "begin": 5141, + "end": 5284, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "STOP", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "tag", + "source": 14, + "value": "23" + }, + { + "begin": 545, + "end": 609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH [tag]", + "source": 14, + "value": "105" + }, + { + "begin": 545, + "end": 609, + "name": "PUSH [tag]", + "source": 14, + "value": "106" + }, + { + "begin": 545, + "end": 609, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "tag", + "source": 14, + "value": "105" + }, + { + "begin": 545, + "end": 609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 545, + "end": 609, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH [tag]", + "source": 14, + "value": "107" + }, + { + "begin": 545, + "end": 609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH [tag]", + "source": 14, + "value": "57" + }, + { + "begin": 545, + "end": 609, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "tag", + "source": 14, + "value": "107" + }, + { + "begin": 545, + "end": 609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 545, + "end": 609, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "DUP1", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "SUB", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "RETURN", + "source": 14 + }, + { + "begin": 5558, + "end": 5705, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 5558, + "end": 5705, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH [tag]", + "source": 0, + "value": "108" + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 5558, + "end": 5705, + "name": "DUP1", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "SUB", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "DUP2", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "ADD", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH [tag]", + "source": 0, + "value": "109" + }, + { + "begin": 5558, + "end": 5705, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH [tag]", + "source": 0, + "value": "70" + }, + { + "begin": 5558, + "end": 5705, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "tag", + "source": 0, + "value": "109" + }, + { + "begin": 5558, + "end": 5705, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "PUSH [tag]", + "source": 0, + "value": "110" + }, + { + "begin": 5558, + "end": 5705, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "tag", + "source": 0, + "value": "108" + }, + { + "begin": 5558, + "end": 5705, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "STOP", + "source": 0 + }, + { + "begin": 463, + "end": 539, + "name": "tag", + "source": 14, + "value": "25" + }, + { + "begin": 463, + "end": 539, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH [tag]", + "source": 14, + "value": "111" + }, + { + "begin": 463, + "end": 539, + "name": "PUSH [tag]", + "source": 14, + "value": "112" + }, + { + "begin": 463, + "end": 539, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "tag", + "source": 14, + "value": "111" + }, + { + "begin": 463, + "end": 539, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 463, + "end": 539, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH [tag]", + "source": 14, + "value": "113" + }, + { + "begin": 463, + "end": 539, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH [tag]", + "source": 14, + "value": "57" + }, + { + "begin": 463, + "end": 539, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "tag", + "source": 14, + "value": "113" + }, + { + "begin": 463, + "end": 539, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 463, + "end": 539, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "DUP1", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "SUB", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "name": "RETURN", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "tag", + "source": 14, + "value": "26" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "114" + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 6919, + "end": 7060, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "CALLDATASIZE", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SUB", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "DUP2", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "ADD", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "115" + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "40" + }, + { + "begin": 6919, + "end": 7060, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "tag", + "source": 14, + "value": "115" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "116" + }, + { + "begin": 6919, + "end": 7060, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "tag", + "source": 14, + "value": "114" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 6919, + "end": 7060, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "117" + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH [tag]", + "source": 14, + "value": "37" + }, + { + "begin": 6919, + "end": 7060, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "tag", + "source": 14, + "value": "117" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 6919, + "end": 7060, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "DUP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SUB", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "RETURN", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "tag", + "source": 14, + "value": "27" + }, + { + "begin": 389, + "end": 457, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH [tag]", + "source": 14, + "value": "118" + }, + { + "begin": 389, + "end": 457, + "name": "PUSH [tag]", + "source": 14, + "value": "119" + }, + { + "begin": 389, + "end": 457, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "tag", + "source": 14, + "value": "118" + }, + { + "begin": 389, + "end": 457, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 389, + "end": 457, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH [tag]", + "source": 14, + "value": "120" + }, + { + "begin": 389, + "end": 457, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH [tag]", + "source": 14, + "value": "57" + }, + { + "begin": 389, + "end": 457, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "tag", + "source": 14, + "value": "120" + }, + { + "begin": 389, + "end": 457, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 389, + "end": 457, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "DUP1", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "SUB", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "RETURN", + "source": 14 + }, + { + "begin": 2903, + "end": 3116, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 2903, + "end": 3116, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2988, + "end": 2992, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3026, + "end": 3069, + "name": "PUSH", + "source": 0, + "value": "7965DB0B00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3011, + "end": 3069, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3011, + "end": 3069, + "name": "NOT", + "source": 0 + }, + { + "begin": 3011, + "end": 3069, + "name": "AND", + "source": 0 + }, + { + "begin": 3011, + "end": 3022, + "name": "DUP3", + "source": 0 + }, + { + "begin": 3011, + "end": 3069, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3011, + "end": 3069, + "name": "NOT", + "source": 0 + }, + { + "begin": 3011, + "end": 3069, + "name": "AND", + "source": 0 + }, + { + "begin": 3011, + "end": 3069, + "name": "EQ", + "source": 0 + }, + { + "begin": 3011, + "end": 3109, + "name": "DUP1", + "source": 0 + }, + { + "begin": 3011, + "end": 3109, + "name": "PUSH [tag]", + "source": 0, + "value": "122" + }, + { + "begin": 3011, + "end": 3109, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 3011, + "end": 3109, + "name": "POP", + "source": 0 + }, + { + "begin": 3073, + "end": 3109, + "name": "PUSH [tag]", + "source": 0, + "value": "123" + }, + { + "begin": 3097, + "end": 3108, + "name": "DUP3", + "source": 0 + }, + { + "begin": 3073, + "end": 3096, + "name": "PUSH [tag]", + "source": 0, + "value": "124" + }, + { + "begin": 3073, + "end": 3109, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3073, + "end": 3109, + "name": "tag", + "source": 0, + "value": "123" + }, + { + "begin": 3073, + "end": 3109, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3011, + "end": 3109, + "name": "tag", + "source": 0, + "value": "122" + }, + { + "begin": 3011, + "end": 3109, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3004, + "end": 3109, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3004, + "end": 3109, + "name": "POP", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "name": "POP", + "source": 0 + }, + { + "begin": 2903, + "end": 3116, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5484, + "end": 5609, + "name": "tag", + "source": 14, + "value": "41" + }, + { + "begin": 5484, + "end": 5609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5548, + "end": 5552, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 5571, + "end": 5602, + "name": "PUSH [tag]", + "source": 14, + "value": "126" + }, + { + "begin": 430, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 5595, + "end": 5601, + "name": "DUP4", + "source": 14 + }, + { + "begin": 5571, + "end": 5578, + "name": "PUSH [tag]", + "source": 14, + "value": "83" + }, + { + "begin": 5571, + "end": 5602, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5571, + "end": 5602, + "name": "tag", + "source": 14, + "value": "126" + }, + { + "begin": 5571, + "end": 5602, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5564, + "end": 5602, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5564, + "end": 5602, + "name": "POP", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "name": "POP", + "source": 14 + }, + { + "begin": 5484, + "end": 5609, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "name": "tag", + "source": 14, + "value": "44" + }, + { + "begin": 3931, + "end": 4043, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3973, + "end": 3996, + "name": "PUSH [tag]", + "source": 14, + "value": "128" + }, + { + "begin": 3985, + "end": 3995, + "name": "CALLER", + "source": 14 + }, + { + "begin": 3973, + "end": 3984, + "name": "PUSH [tag]", + "source": 14, + "value": "129" + }, + { + "begin": 3973, + "end": 3996, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3973, + "end": 3996, + "name": "tag", + "source": 14, + "value": "128" + }, + { + "begin": 3973, + "end": 3996, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4006, + "end": 4036, + "name": "PUSH [tag]", + "source": 14, + "value": "130" + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 4025, + "end": 4035, + "name": "CALLER", + "source": 14 + }, + { + "begin": 4006, + "end": 4017, + "name": "PUSH [tag]", + "source": 14, + "value": "131" + }, + { + "begin": 4006, + "end": 4036, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4006, + "end": 4036, + "name": "tag", + "source": 14, + "value": "130" + }, + { + "begin": 4006, + "end": 4036, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3931, + "end": 4043, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "tag", + "source": 14, + "value": "48" + }, + { + "begin": 6536, + "end": 6705, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6620, + "end": 6643, + "name": "PUSH [tag]", + "source": 14, + "value": "133" + }, + { + "begin": 6632, + "end": 6642, + "name": "CALLER", + "source": 14 + }, + { + "begin": 6620, + "end": 6631, + "name": "PUSH [tag]", + "source": 14, + "value": "129" + }, + { + "begin": 6620, + "end": 6643, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6620, + "end": 6643, + "name": "tag", + "source": 14, + "value": "133" + }, + { + "begin": 6620, + "end": 6643, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6653, + "end": 6698, + "name": "PUSH [tag]", + "source": 14, + "value": "134" + }, + { + "begin": 508, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 6686, + "end": 6697, + "name": "DUP4", + "source": 14 + }, + { + "begin": 6686, + "end": 6697, + "name": "DUP4", + "source": 14 + }, + { + "begin": 6653, + "end": 6665, + "name": "PUSH [tag]", + "source": 14, + "value": "135" + }, + { + "begin": 6653, + "end": 6698, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6653, + "end": 6698, + "name": "tag", + "source": 14, + "value": "134" + }, + { + "begin": 6653, + "end": 6698, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "POP", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "name": "POP", + "source": 14 + }, + { + "begin": 6536, + "end": 6705, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "tag", + "source": 14, + "value": "51" + }, + { + "begin": 4829, + "end": 4966, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4893, + "end": 4916, + "name": "PUSH [tag]", + "source": 14, + "value": "137" + }, + { + "begin": 4905, + "end": 4915, + "name": "CALLER", + "source": 14 + }, + { + "begin": 4893, + "end": 4904, + "name": "PUSH [tag]", + "source": 14, + "value": "129" + }, + { + "begin": 4893, + "end": 4916, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4893, + "end": 4916, + "name": "tag", + "source": 14, + "value": "137" + }, + { + "begin": 4893, + "end": 4916, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4926, + "end": 4959, + "name": "PUSH [tag]", + "source": 14, + "value": "138" + }, + { + "begin": 430, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 4952, + "end": 4958, + "name": "DUP4", + "source": 14 + }, + { + "begin": 4952, + "end": 4958, + "name": "DUP4", + "source": 14 + }, + { + "begin": 4926, + "end": 4935, + "name": "PUSH [tag]", + "source": 14, + "value": "139" + }, + { + "begin": 4926, + "end": 4959, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4926, + "end": 4959, + "name": "tag", + "source": 14, + "value": "138" + }, + { + "begin": 4926, + "end": 4959, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "POP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "name": "POP", + "source": 14 + }, + { + "begin": 4829, + "end": 4966, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4708, + "end": 4837, + "name": "tag", + "source": 0, + "value": "55" + }, + { + "begin": 4708, + "end": 4837, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4782, + "end": 4789, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 4808, + "end": 4814, + "name": "PUSH", + "source": 0, + "value": "65" + }, + { + "begin": 4808, + "end": 4820, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 4815, + "end": 4819, + "name": "DUP4", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 4808, + "end": 4820, + "name": "ADD", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 4808, + "end": 4820, + "name": "ADD", + "source": 0 + }, + { + "begin": 4808, + "end": 4820, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 4808, + "end": 4820, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 4808, + "end": 4830, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 4808, + "end": 4830, + "name": "ADD", + "source": 0 + }, + { + "begin": 4808, + "end": 4830, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 4801, + "end": 4830, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4801, + "end": 4830, + "name": "POP", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "name": "POP", + "source": 0 + }, + { + "begin": 4708, + "end": 4837, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4225, + "end": 4337, + "name": "tag", + "source": 14, + "value": "60" + }, + { + "begin": 4225, + "end": 4337, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4283, + "end": 4287, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 4306, + "end": 4330, + "name": "PUSH [tag]", + "source": 14, + "value": "142" + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 4321, + "end": 4329, + "name": "DUP4", + "source": 14 + }, + { + "begin": 4306, + "end": 4313, + "name": "PUSH [tag]", + "source": 14, + "value": "83" + }, + { + "begin": 4306, + "end": 4330, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 4306, + "end": 4330, + "name": "tag", + "source": 14, + "value": "142" + }, + { + "begin": 4306, + "end": 4330, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 4299, + "end": 4330, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4299, + "end": 4330, + "name": "POP", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "name": "POP", + "source": 14 + }, + { + "begin": 4225, + "end": 4337, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "tag", + "source": 14, + "value": "64" + }, + { + "begin": 7892, + "end": 8051, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7971, + "end": 7994, + "name": "PUSH [tag]", + "source": 14, + "value": "144" + }, + { + "begin": 7983, + "end": 7993, + "name": "CALLER", + "source": 14 + }, + { + "begin": 7971, + "end": 7982, + "name": "PUSH [tag]", + "source": 14, + "value": "129" + }, + { + "begin": 7971, + "end": 7994, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7971, + "end": 7994, + "name": "tag", + "source": 14, + "value": "144" + }, + { + "begin": 7971, + "end": 7994, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8004, + "end": 8044, + "name": "PUSH [tag]", + "source": 14, + "value": "145" + }, + { + "begin": 584, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "B65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083" + }, + { + "begin": 8031, + "end": 8043, + "name": "DUP4", + "source": 14 + }, + { + "begin": 8031, + "end": 8043, + "name": "DUP4", + "source": 14 + }, + { + "begin": 8004, + "end": 8016, + "name": "PUSH [tag]", + "source": 14, + "value": "135" + }, + { + "begin": 8004, + "end": 8044, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8004, + "end": 8044, + "name": "tag", + "source": 14, + "value": "145" + }, + { + "begin": 8004, + "end": 8044, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "POP", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "name": "POP", + "source": 14 + }, + { + "begin": 7892, + "end": 8051, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "name": "tag", + "source": 14, + "value": "66" + }, + { + "begin": 615, + "end": 665, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 615, + "end": 665, + "name": "DUP2", + "source": 14 + }, + { + "begin": 615, + "end": 665, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5133, + "end": 5278, + "name": "tag", + "source": 0, + "value": "71" + }, + { + "begin": 5133, + "end": 5278, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5216, + "end": 5234, + "name": "PUSH [tag]", + "source": 0, + "value": "146" + }, + { + "begin": 5229, + "end": 5233, + "name": "DUP3", + "source": 0 + }, + { + "begin": 5216, + "end": 5228, + "name": "PUSH [tag]", + "source": 0, + "value": "55" + }, + { + "begin": 5216, + "end": 5234, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5216, + "end": 5234, + "name": "tag", + "source": 0, + "value": "146" + }, + { + "begin": 5216, + "end": 5234, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2802, + "end": 2818, + "name": "PUSH [tag]", + "source": 0, + "value": "148" + }, + { + "begin": 2813, + "end": 2817, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2802, + "end": 2812, + "name": "PUSH [tag]", + "source": 0, + "value": "149" + }, + { + "begin": 2802, + "end": 2818, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2802, + "end": 2818, + "name": "tag", + "source": 0, + "value": "148" + }, + { + "begin": 2802, + "end": 2818, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5246, + "end": 5271, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "151" + }, + { + "begin": 5257, + "end": 5261, + "modifierDepth": 1, + "name": "DUP4", + "source": 0 + }, + { + "begin": 5263, + "end": 5270, + "modifierDepth": 1, + "name": "DUP4", + "source": 0 + }, + { + "begin": 5246, + "end": 5256, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "152" + }, + { + "begin": 5246, + "end": 5271, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 0 + }, + { + "begin": 5246, + "end": 5271, + "modifierDepth": 1, + "name": "tag", + "source": 0, + "value": "151" + }, + { + "begin": 5246, + "end": 5271, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "POP", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "POP", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "name": "POP", + "source": 0 + }, + { + "begin": 5133, + "end": 5278, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "tag", + "source": 0, + "value": "74" + }, + { + "begin": 6242, + "end": 6456, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6348, + "end": 6360, + "name": "PUSH [tag]", + "source": 0, + "value": "154" + }, + { + "begin": 6348, + "end": 6358, + "name": "PUSH [tag]", + "source": 0, + "value": "155" + }, + { + "begin": 6348, + "end": 6360, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 6348, + "end": 6360, + "name": "tag", + "source": 0, + "value": "154" + }, + { + "begin": 6348, + "end": 6360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6337, + "end": 6360, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6337, + "end": 6360, + "name": "AND", + "source": 0 + }, + { + "begin": 6337, + "end": 6344, + "name": "DUP2", + "source": 0 + }, + { + "begin": 6337, + "end": 6360, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 6337, + "end": 6360, + "name": "AND", + "source": 0 + }, + { + "begin": 6337, + "end": 6360, + "name": "EQ", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH [tag]", + "source": 0, + "value": "156" + }, + { + "begin": 6329, + "end": 6412, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 6329, + "end": 6412, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH", + "source": 0, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 6329, + "end": 6412, + "name": "DUP2", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 6329, + "end": 6412, + "name": "ADD", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH [tag]", + "source": 0, + "value": "157" + }, + { + "begin": 6329, + "end": 6412, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH [tag]", + "source": 0, + "value": "158" + }, + { + "begin": 6329, + "end": 6412, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "tag", + "source": 0, + "value": "157" + }, + { + "begin": 6329, + "end": 6412, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 6329, + "end": 6412, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "DUP1", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "SUB", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "REVERT", + "source": 0 + }, + { + "begin": 6329, + "end": 6412, + "name": "tag", + "source": 0, + "value": "156" + }, + { + "begin": 6329, + "end": 6412, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6423, + "end": 6449, + "name": "PUSH [tag]", + "source": 0, + "value": "159" + }, + { + "begin": 6435, + "end": 6439, + "name": "DUP3", + "source": 0 + }, + { + "begin": 6441, + "end": 6448, + "name": "DUP3", + "source": 0 + }, + { + "begin": 6423, + "end": 6434, + "name": "PUSH [tag]", + "source": 0, + "value": "131" + }, + { + "begin": 6423, + "end": 6449, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 6423, + "end": 6449, + "name": "tag", + "source": 0, + "value": "159" + }, + { + "begin": 6423, + "end": 6449, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "POP", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "name": "POP", + "source": 0 + }, + { + "begin": 6242, + "end": 6456, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3393, + "end": 3523, + "name": "tag", + "source": 14, + "value": "77" + }, + { + "begin": 3393, + "end": 3523, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3458, + "end": 3481, + "name": "PUSH [tag]", + "source": 14, + "value": "161" + }, + { + "begin": 3470, + "end": 3480, + "name": "CALLER", + "source": 14 + }, + { + "begin": 3458, + "end": 3469, + "name": "PUSH [tag]", + "source": 14, + "value": "129" + }, + { + "begin": 3458, + "end": 3481, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3458, + "end": 3481, + "name": "tag", + "source": 14, + "value": "161" + }, + { + "begin": 3458, + "end": 3481, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3491, + "end": 3516, + "name": "PUSH [tag]", + "source": 14, + "value": "162" + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 3508, + "end": 3515, + "name": "DUP4", + "source": 14 + }, + { + "begin": 3508, + "end": 3515, + "name": "DUP4", + "source": 14 + }, + { + "begin": 3491, + "end": 3500, + "name": "PUSH [tag]", + "source": 14, + "value": "139" + }, + { + "begin": 3491, + "end": 3516, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3491, + "end": 3516, + "name": "tag", + "source": 14, + "value": "162" + }, + { + "begin": 3491, + "end": 3516, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "POP", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "name": "POP", + "source": 14 + }, + { + "begin": 3393, + "end": 3523, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "tag", + "source": 14, + "value": "80" + }, + { + "begin": 6185, + "end": 6348, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6266, + "end": 6289, + "name": "PUSH [tag]", + "source": 14, + "value": "164" + }, + { + "begin": 6278, + "end": 6288, + "name": "CALLER", + "source": 14 + }, + { + "begin": 6266, + "end": 6277, + "name": "PUSH [tag]", + "source": 14, + "value": "129" + }, + { + "begin": 6266, + "end": 6289, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6266, + "end": 6289, + "name": "tag", + "source": 14, + "value": "164" + }, + { + "begin": 6266, + "end": 6289, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6299, + "end": 6341, + "name": "PUSH [tag]", + "source": 14, + "value": "165" + }, + { + "begin": 508, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 6329, + "end": 6340, + "name": "DUP4", + "source": 14 + }, + { + "begin": 6329, + "end": 6340, + "name": "DUP4", + "source": 14 + }, + { + "begin": 6299, + "end": 6308, + "name": "PUSH [tag]", + "source": 14, + "value": "139" + }, + { + "begin": 6299, + "end": 6341, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6299, + "end": 6341, + "name": "tag", + "source": 14, + "value": "165" + }, + { + "begin": 6299, + "end": 6341, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "POP", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "name": "POP", + "source": 14 + }, + { + "begin": 6185, + "end": 6348, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3203, + "end": 3348, + "name": "tag", + "source": 0, + "value": "83" + }, + { + "begin": 3203, + "end": 3348, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3289, + "end": 3293, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3312, + "end": 3318, + "name": "PUSH", + "source": 0, + "value": "65" + }, + { + "begin": 3312, + "end": 3324, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3319, + "end": 3323, + "name": "DUP5", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 3312, + "end": 3324, + "name": "ADD", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 3312, + "end": 3324, + "name": "ADD", + "source": 0 + }, + { + "begin": 3312, + "end": 3324, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3312, + "end": 3324, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 3312, + "end": 3332, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3312, + "end": 3332, + "name": "ADD", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3333, + "end": 3340, + "name": "DUP4", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3312, + "end": 3341, + "name": "AND", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3312, + "end": 3341, + "name": "AND", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 3312, + "end": 3341, + "name": "ADD", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 3312, + "end": 3341, + "name": "ADD", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3312, + "end": 3341, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3312, + "end": 3341, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 3312, + "end": 3341, + "name": "EXP", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "DIV", + "source": 0 + }, + { + "begin": 3312, + "end": 3341, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 3312, + "end": 3341, + "name": "AND", + "source": 0 + }, + { + "begin": 3305, + "end": 3341, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 3305, + "end": 3341, + "name": "POP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "POP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "name": "POP", + "source": 0 + }, + { + "begin": 3203, + "end": 3348, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7562, + "end": 7715, + "name": "tag", + "source": 14, + "value": "87" + }, + { + "begin": 7562, + "end": 7715, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7638, + "end": 7661, + "name": "PUSH [tag]", + "source": 14, + "value": "168" + }, + { + "begin": 7650, + "end": 7660, + "name": "CALLER", + "source": 14 + }, + { + "begin": 7638, + "end": 7649, + "name": "PUSH [tag]", + "source": 14, + "value": "129" + }, + { + "begin": 7638, + "end": 7661, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7638, + "end": 7661, + "name": "tag", + "source": 14, + "value": "168" + }, + { + "begin": 7638, + "end": 7661, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7671, + "end": 7708, + "name": "PUSH [tag]", + "source": 14, + "value": "169" + }, + { + "begin": 584, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "B65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083" + }, + { + "begin": 7695, + "end": 7707, + "name": "DUP4", + "source": 14 + }, + { + "begin": 7695, + "end": 7707, + "name": "DUP4", + "source": 14 + }, + { + "begin": 7671, + "end": 7680, + "name": "PUSH [tag]", + "source": 14, + "value": "139" + }, + { + "begin": 7671, + "end": 7708, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7671, + "end": 7708, + "name": "tag", + "source": 14, + "value": "169" + }, + { + "begin": 7671, + "end": 7708, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "POP", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "name": "POP", + "source": 14 + }, + { + "begin": 7562, + "end": 7715, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "name": "tag", + "source": 14, + "value": "89" + }, + { + "begin": 781, + "end": 824, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 822, + "end": 823, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 781, + "end": 824, + "name": "DUP2", + "source": 14 + }, + { + "begin": 781, + "end": 824, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2324, + "end": 2373, + "name": "tag", + "source": 0, + "value": "93" + }, + { + "begin": 2324, + "end": 2373, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2369, + "end": 2373, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 2324, + "end": 2373, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "SHL", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2324, + "end": 2373, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3686, + "end": 3869, + "name": "tag", + "source": 14, + "value": "97" + }, + { + "begin": 3686, + "end": 3869, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3759, + "end": 3798, + "name": "PUSH [tag]", + "source": 14, + "value": "171" + }, + { + "begin": 2369, + "end": 2373, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 3767, + "end": 3785, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3767, + "end": 3785, + "name": "SHL", + "source": 14 + }, + { + "begin": 3787, + "end": 3797, + "name": "CALLER", + "source": 14 + }, + { + "begin": 3759, + "end": 3766, + "name": "PUSH [tag]", + "source": 14, + "value": "83" + }, + { + "begin": 3759, + "end": 3798, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3759, + "end": 3798, + "name": "tag", + "source": 14, + "value": "171" + }, + { + "begin": 3759, + "end": 3798, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3754, + "end": 3824, + "name": "PUSH [tag]", + "source": 14, + "value": "172" + }, + { + "begin": 3754, + "end": 3824, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 3807, + "end": 3824, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "PUSH", + "source": 14, + "value": "46AB053D00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3807, + "end": 3824, + "name": "DUP2", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "MSTORE", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 3807, + "end": 3824, + "name": "ADD", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 3807, + "end": 3824, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "SUB", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3807, + "end": 3824, + "name": "REVERT", + "source": 14 + }, + { + "begin": 3754, + "end": 3824, + "name": "tag", + "source": 14, + "value": "172" + }, + { + "begin": 3754, + "end": 3824, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3834, + "end": 3862, + "name": "PUSH [tag]", + "source": 14, + "value": "173" + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 3854, + "end": 3861, + "name": "DUP4", + "source": 14 + }, + { + "begin": 3854, + "end": 3861, + "name": "DUP4", + "source": 14 + }, + { + "begin": 3834, + "end": 3846, + "name": "PUSH [tag]", + "source": 14, + "value": "135" + }, + { + "begin": 3834, + "end": 3862, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3834, + "end": 3862, + "name": "tag", + "source": 14, + "value": "173" + }, + { + "begin": 3834, + "end": 3862, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "POP", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "name": "POP", + "source": 14 + }, + { + "begin": 3686, + "end": 3869, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "tag", + "source": 14, + "value": "100" + }, + { + "begin": 8252, + "end": 8379, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8317, + "end": 8321, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 8340, + "end": 8372, + "name": "PUSH [tag]", + "source": 14, + "value": "175" + }, + { + "begin": 584, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "B65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083" + }, + { + "begin": 8362, + "end": 8371, + "name": "DUP4", + "source": 14 + }, + { + "begin": 8340, + "end": 8347, + "name": "PUSH [tag]", + "source": 14, + "value": "83" + }, + { + "begin": 8340, + "end": 8372, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8340, + "end": 8372, + "name": "tag", + "source": 14, + "value": "175" + }, + { + "begin": 8340, + "end": 8372, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 8333, + "end": 8372, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8333, + "end": 8372, + "name": "POP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "name": "POP", + "source": 14 + }, + { + "begin": 8252, + "end": 8379, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "tag", + "source": 14, + "value": "104" + }, + { + "begin": 5141, + "end": 5284, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5208, + "end": 5231, + "name": "PUSH [tag]", + "source": 14, + "value": "177" + }, + { + "begin": 5220, + "end": 5230, + "name": "CALLER", + "source": 14 + }, + { + "begin": 5208, + "end": 5219, + "name": "PUSH [tag]", + "source": 14, + "value": "129" + }, + { + "begin": 5208, + "end": 5231, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5208, + "end": 5231, + "name": "tag", + "source": 14, + "value": "177" + }, + { + "begin": 5208, + "end": 5231, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5241, + "end": 5277, + "name": "PUSH [tag]", + "source": 14, + "value": "178" + }, + { + "begin": 430, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 5270, + "end": 5276, + "name": "DUP4", + "source": 14 + }, + { + "begin": 5270, + "end": 5276, + "name": "DUP4", + "source": 14 + }, + { + "begin": 5241, + "end": 5253, + "name": "PUSH [tag]", + "source": 14, + "value": "135" + }, + { + "begin": 5241, + "end": 5277, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5241, + "end": 5277, + "name": "tag", + "source": 14, + "value": "178" + }, + { + "begin": 5241, + "end": 5277, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "POP", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "name": "POP", + "source": 14 + }, + { + "begin": 5141, + "end": 5284, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "name": "tag", + "source": 14, + "value": "106" + }, + { + "begin": 545, + "end": 609, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 584, + "end": 609, + "name": "PUSH", + "source": 14, + "value": "B65D1AD2CA8116A35CCD39BE9425554AB4464BE07FEB2B70D510D92105C6F083" + }, + { + "begin": 545, + "end": 609, + "name": "DUP2", + "source": 14 + }, + { + "begin": 545, + "end": 609, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 5558, + "end": 5705, + "name": "tag", + "source": 0, + "value": "110" + }, + { + "begin": 5558, + "end": 5705, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5642, + "end": 5660, + "name": "PUSH [tag]", + "source": 0, + "value": "179" + }, + { + "begin": 5655, + "end": 5659, + "name": "DUP3", + "source": 0 + }, + { + "begin": 5642, + "end": 5654, + "name": "PUSH [tag]", + "source": 0, + "value": "55" + }, + { + "begin": 5642, + "end": 5660, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 5642, + "end": 5660, + "name": "tag", + "source": 0, + "value": "179" + }, + { + "begin": 5642, + "end": 5660, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2802, + "end": 2818, + "name": "PUSH [tag]", + "source": 0, + "value": "181" + }, + { + "begin": 2813, + "end": 2817, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2802, + "end": 2812, + "name": "PUSH [tag]", + "source": 0, + "value": "149" + }, + { + "begin": 2802, + "end": 2818, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2802, + "end": 2818, + "name": "tag", + "source": 0, + "value": "181" + }, + { + "begin": 2802, + "end": 2818, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5672, + "end": 5698, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "183" + }, + { + "begin": 5684, + "end": 5688, + "modifierDepth": 1, + "name": "DUP4", + "source": 0 + }, + { + "begin": 5690, + "end": 5697, + "modifierDepth": 1, + "name": "DUP4", + "source": 0 + }, + { + "begin": 5672, + "end": 5683, + "modifierDepth": 1, + "name": "PUSH [tag]", + "source": 0, + "value": "131" + }, + { + "begin": 5672, + "end": 5698, + "jumpType": "[in]", + "modifierDepth": 1, + "name": "JUMP", + "source": 0 + }, + { + "begin": 5672, + "end": 5698, + "modifierDepth": 1, + "name": "tag", + "source": 0, + "value": "183" + }, + { + "begin": 5672, + "end": 5698, + "modifierDepth": 1, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "POP", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "POP", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "name": "POP", + "source": 0 + }, + { + "begin": 5558, + "end": 5705, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 463, + "end": 539, + "name": "tag", + "source": 14, + "value": "112" + }, + { + "begin": 463, + "end": 539, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 508, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 463, + "end": 539, + "name": "DUP2", + "source": 14 + }, + { + "begin": 463, + "end": 539, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "tag", + "source": 14, + "value": "116" + }, + { + "begin": 6919, + "end": 7060, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 6991, + "end": 6995, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 7014, + "end": 7053, + "name": "PUSH [tag]", + "source": 14, + "value": "185" + }, + { + "begin": 508, + "end": 539, + "name": "PUSH", + "source": 14, + "value": "BB33B450B5787500B7743166D12295E6B6B742804A612449720D079818EBC632" + }, + { + "begin": 7042, + "end": 7052, + "name": "DUP4", + "source": 14 + }, + { + "begin": 7014, + "end": 7021, + "name": "PUSH [tag]", + "source": 14, + "value": "83" + }, + { + "begin": 7014, + "end": 7053, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 7014, + "end": 7053, + "name": "tag", + "source": 14, + "value": "185" + }, + { + "begin": 7014, + "end": 7053, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 7007, + "end": 7053, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 7007, + "end": 7053, + "name": "POP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "name": "POP", + "source": 14 + }, + { + "begin": 6919, + "end": 7060, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "name": "tag", + "source": 14, + "value": "119" + }, + { + "begin": 389, + "end": 457, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 430, + "end": 457, + "name": "PUSH", + "source": 14, + "value": "6241945B9C52237C1FC120A0E65553D4E6E262C3D36B3810008A6C39502BED19" + }, + { + "begin": 389, + "end": 457, + "name": "DUP2", + "source": 14 + }, + { + "begin": 389, + "end": 457, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 1060, + "end": 1226, + "name": "tag", + "source": 10, + "value": "124" + }, + { + "begin": 1060, + "end": 1226, + "name": "JUMPDEST", + "source": 10 + }, + { + "begin": 1145, + "end": 1149, + "name": "PUSH", + "source": 10, + "value": "0" + }, + { + "begin": 1183, + "end": 1219, + "name": "PUSH", + "source": 10, + "value": "1FFC9A700000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1168, + "end": 1219, + "name": "PUSH", + "source": 10, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1168, + "end": 1219, + "name": "NOT", + "source": 10 + }, + { + "begin": 1168, + "end": 1219, + "name": "AND", + "source": 10 + }, + { + "begin": 1168, + "end": 1179, + "name": "DUP3", + "source": 10 + }, + { + "begin": 1168, + "end": 1219, + "name": "PUSH", + "source": 10, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1168, + "end": 1219, + "name": "NOT", + "source": 10 + }, + { + "begin": 1168, + "end": 1219, + "name": "AND", + "source": 10 + }, + { + "begin": 1168, + "end": 1219, + "name": "EQ", + "source": 10 + }, + { + "begin": 1161, + "end": 1219, + "name": "SWAP1", + "source": 10 + }, + { + "begin": 1161, + "end": 1219, + "name": "POP", + "source": 10 + }, + { + "begin": 1060, + "end": 1226, + "name": "SWAP2", + "source": 10 + }, + { + "begin": 1060, + "end": 1226, + "name": "SWAP1", + "source": 10 + }, + { + "begin": 1060, + "end": 1226, + "name": "POP", + "source": 10 + }, + { + "begin": 1060, + "end": 1226, + "jumpType": "[out]", + "name": "JUMP", + "source": 10 + }, + { + "begin": 3121, + "end": 3239, + "name": "tag", + "source": 14, + "value": "129" + }, + { + "begin": 3121, + "end": 3239, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3189, + "end": 3213, + "name": "PUSH [tag]", + "source": 14, + "value": "188" + }, + { + "begin": 647, + "end": 665, + "name": "PUSH", + "source": 14, + "value": "DF8B4C520FFE197C5343C6F5AEC59570151EF9A492F2C624FD45DDDE6135EC42" + }, + { + "begin": 3204, + "end": 3212, + "name": "DUP3", + "source": 14 + }, + { + "begin": 3189, + "end": 3196, + "name": "PUSH [tag]", + "source": 14, + "value": "83" + }, + { + "begin": 3189, + "end": 3213, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3189, + "end": 3213, + "name": "tag", + "source": 14, + "value": "188" + }, + { + "begin": 3189, + "end": 3213, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3184, + "end": 3232, + "name": "PUSH [tag]", + "source": 14, + "value": "189" + }, + { + "begin": 3184, + "end": 3232, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 3222, + "end": 3232, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "PUSH", + "source": 14, + "value": "7BFA4B9F00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3222, + "end": 3232, + "name": "DUP2", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "MSTORE", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "PUSH", + "source": 14, + "value": "4" + }, + { + "begin": 3222, + "end": 3232, + "name": "ADD", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "PUSH", + "source": 14, + "value": "40" + }, + { + "begin": 3222, + "end": 3232, + "name": "MLOAD", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "DUP1", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "SUB", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 3222, + "end": 3232, + "name": "REVERT", + "source": 14 + }, + { + "begin": 3184, + "end": 3232, + "name": "tag", + "source": 14, + "value": "189" + }, + { + "begin": 3184, + "end": 3232, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 3121, + "end": 3239, + "name": "POP", + "source": 14 + }, + { + "begin": 3121, + "end": 3239, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 8195, + "end": 8429, + "name": "tag", + "source": 0, + "value": "131" + }, + { + "begin": 8195, + "end": 8429, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 8278, + "end": 8300, + "name": "PUSH [tag]", + "source": 0, + "value": "191" + }, + { + "begin": 8286, + "end": 8290, + "name": "DUP3", + "source": 0 + }, + { + "begin": 8292, + "end": 8299, + "name": "DUP3", + "source": 0 + }, + { + "begin": 8278, + "end": 8285, + "name": "PUSH [tag]", + "source": 0, + "value": "83" + }, + { + "begin": 8278, + "end": 8300, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 8278, + "end": 8300, + "name": "tag", + "source": 0, + "value": "191" + }, + { + "begin": 8278, + "end": 8300, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 8274, + "end": 8423, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 8274, + "end": 8423, + "name": "PUSH [tag]", + "source": 0, + "value": "192" + }, + { + "begin": 8274, + "end": 8423, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 8348, + "end": 8353, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8316, + "end": 8322, + "name": "PUSH", + "source": 0, + "value": "65" + }, + { + "begin": 8316, + "end": 8328, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8323, + "end": 8327, + "name": "DUP5", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 8316, + "end": 8328, + "name": "ADD", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 8316, + "end": 8328, + "name": "ADD", + "source": 0 + }, + { + "begin": 8316, + "end": 8328, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8316, + "end": 8328, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 8316, + "end": 8336, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8316, + "end": 8336, + "name": "ADD", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8337, + "end": 8344, + "name": "DUP4", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 8316, + "end": 8345, + "name": "AND", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 8316, + "end": 8345, + "name": "AND", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 8316, + "end": 8345, + "name": "ADD", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 8316, + "end": 8345, + "name": "ADD", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8316, + "end": 8345, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 8316, + "end": 8345, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 8316, + "end": 8353, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 8316, + "end": 8353, + "name": "EXP", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 8316, + "end": 8353, + "name": "MUL", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "NOT", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "AND", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "DUP4", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "MUL", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "OR", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 8316, + "end": 8353, + "name": "POP", + "source": 0 + }, + { + "begin": 8399, + "end": 8411, + "name": "PUSH [tag]", + "source": 0, + "value": "193" + }, + { + "begin": 8399, + "end": 8409, + "name": "PUSH [tag]", + "source": 0, + "value": "155" + }, + { + "begin": 8399, + "end": 8411, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 8399, + "end": 8411, + "name": "tag", + "source": 0, + "value": "193" + }, + { + "begin": 8399, + "end": 8411, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 8372, + "end": 8412, + "name": "AND", + "source": 0 + }, + { + "begin": 8390, + "end": 8397, + "name": "DUP2", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 8372, + "end": 8412, + "name": "AND", + "source": 0 + }, + { + "begin": 8384, + "end": 8388, + "name": "DUP4", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "PUSH", + "source": 0, + "value": "F6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B" + }, + { + "begin": 8372, + "end": 8412, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 8372, + "end": 8412, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 8372, + "end": 8412, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "DUP1", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "SUB", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 8372, + "end": 8412, + "name": "LOG4", + "source": 0 + }, + { + "begin": 8274, + "end": 8423, + "name": "tag", + "source": 0, + "value": "192" + }, + { + "begin": 8274, + "end": 8423, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 8195, + "end": 8429, + "name": "POP", + "source": 0 + }, + { + "begin": 8195, + "end": 8429, + "name": "POP", + "source": 0 + }, + { + "begin": 8195, + "end": 8429, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2713, + "end": 2999, + "name": "tag", + "source": 14, + "value": "135" + }, + { + "begin": 2713, + "end": 2999, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2800, + "end": 2814, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 2817, + "end": 2827, + "name": "DUP3", + "source": 14 + }, + { + "begin": 2817, + "end": 2827, + "name": "DUP3", + "source": 14 + }, + { + "begin": 2817, + "end": 2834, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2817, + "end": 2834, + "name": "POP", + "source": 14 + }, + { + "begin": 2800, + "end": 2834, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2800, + "end": 2834, + "name": "POP", + "source": 14 + }, + { + "begin": 2849, + "end": 2858, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 2844, + "end": 2993, + "name": "tag", + "source": 14, + "value": "195" + }, + { + "begin": 2844, + "end": 2993, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2868, + "end": 2874, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2864, + "end": 2865, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2864, + "end": 2874, + "name": "LT", + "source": 14 + }, + { + "begin": 2844, + "end": 2993, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 2844, + "end": 2993, + "name": "PUSH [tag]", + "source": 14, + "value": "196" + }, + { + "begin": 2844, + "end": 2993, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 2891, + "end": 2923, + "name": "PUSH [tag]", + "source": 14, + "value": "198" + }, + { + "begin": 2902, + "end": 2907, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2909, + "end": 2919, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2909, + "end": 2919, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2920, + "end": 2921, + "name": "DUP5", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "LT", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH [tag]", + "source": 14, + "value": "199" + }, + { + "begin": 2909, + "end": 2922, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH [tag]", + "source": 14, + "value": "200" + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH [tag]", + "source": 14, + "value": "201" + }, + { + "begin": 2909, + "end": 2922, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "tag", + "source": 14, + "value": "200" + }, + { + "begin": 2909, + "end": 2922, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "tag", + "source": 14, + "value": "199" + }, + { + "begin": 2909, + "end": 2922, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "POP", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH", + "source": 14, + "value": "20" + }, + { + "begin": 2909, + "end": 2922, + "name": "MUL", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "ADD", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH", + "source": 14, + "value": "20" + }, + { + "begin": 2909, + "end": 2922, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "ADD", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH [tag]", + "source": 14, + "value": "202" + }, + { + "begin": 2909, + "end": 2922, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "PUSH [tag]", + "source": 14, + "value": "40" + }, + { + "begin": 2909, + "end": 2922, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2909, + "end": 2922, + "name": "tag", + "source": 14, + "value": "202" + }, + { + "begin": 2909, + "end": 2922, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2891, + "end": 2901, + "name": "PUSH [tag]", + "source": 14, + "value": "110" + }, + { + "begin": 2891, + "end": 2923, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2891, + "end": 2923, + "name": "tag", + "source": 14, + "value": "198" + }, + { + "begin": 2891, + "end": 2923, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "DUP1", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "DUP1", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "PUSH", + "source": 14, + "value": "1" + }, + { + "begin": 2965, + "end": 2968, + "name": "ADD", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "POP", + "source": 14 + }, + { + "begin": 2965, + "end": 2968, + "name": "POP", + "source": 14 + }, + { + "begin": 2844, + "end": 2993, + "name": "PUSH [tag]", + "source": 14, + "value": "195" + }, + { + "begin": 2844, + "end": 2993, + "name": "JUMP", + "source": 14 + }, + { + "begin": 2844, + "end": 2993, + "name": "tag", + "source": 14, + "value": "196" + }, + { + "begin": 2844, + "end": 2993, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2844, + "end": 2993, + "name": "POP", + "source": 14 + }, + { + "begin": 2790, + "end": 2999, + "name": "POP", + "source": 14 + }, + { + "begin": 2713, + "end": 2999, + "name": "POP", + "source": 14 + }, + { + "begin": 2713, + "end": 2999, + "name": "POP", + "source": 14 + }, + { + "begin": 2713, + "end": 2999, + "name": "POP", + "source": 14 + }, + { + "begin": 2713, + "end": 2999, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2215, + "end": 2498, + "name": "tag", + "source": 14, + "value": "139" + }, + { + "begin": 2215, + "end": 2498, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2299, + "end": 2313, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 2316, + "end": 2326, + "name": "DUP3", + "source": 14 + }, + { + "begin": 2316, + "end": 2326, + "name": "DUP3", + "source": 14 + }, + { + "begin": 2316, + "end": 2333, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2316, + "end": 2333, + "name": "POP", + "source": 14 + }, + { + "begin": 2299, + "end": 2333, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2299, + "end": 2333, + "name": "POP", + "source": 14 + }, + { + "begin": 2348, + "end": 2357, + "name": "PUSH", + "source": 14, + "value": "0" + }, + { + "begin": 2343, + "end": 2492, + "name": "tag", + "source": 14, + "value": "204" + }, + { + "begin": 2343, + "end": 2492, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2367, + "end": 2373, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2363, + "end": 2364, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2363, + "end": 2373, + "name": "LT", + "source": 14 + }, + { + "begin": 2343, + "end": 2492, + "name": "ISZERO", + "source": 14 + }, + { + "begin": 2343, + "end": 2492, + "name": "PUSH [tag]", + "source": 14, + "value": "205" + }, + { + "begin": 2343, + "end": 2492, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 2390, + "end": 2422, + "name": "PUSH [tag]", + "source": 14, + "value": "207" + }, + { + "begin": 2401, + "end": 2406, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2408, + "end": 2418, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2408, + "end": 2418, + "name": "DUP6", + "source": 14 + }, + { + "begin": 2419, + "end": 2420, + "name": "DUP5", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "LT", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH [tag]", + "source": 14, + "value": "208" + }, + { + "begin": 2408, + "end": 2421, + "name": "JUMPI", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH [tag]", + "source": 14, + "value": "209" + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH [tag]", + "source": 14, + "value": "201" + }, + { + "begin": 2408, + "end": 2421, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "tag", + "source": 14, + "value": "209" + }, + { + "begin": 2408, + "end": 2421, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "tag", + "source": 14, + "value": "208" + }, + { + "begin": 2408, + "end": 2421, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "POP", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH", + "source": 14, + "value": "20" + }, + { + "begin": 2408, + "end": 2421, + "name": "MUL", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "ADD", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH", + "source": 14, + "value": "20" + }, + { + "begin": 2408, + "end": 2421, + "name": "DUP2", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "ADD", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH [tag]", + "source": 14, + "value": "210" + }, + { + "begin": 2408, + "end": 2421, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "SWAP1", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "PUSH [tag]", + "source": 14, + "value": "40" + }, + { + "begin": 2408, + "end": 2421, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2408, + "end": 2421, + "name": "tag", + "source": 14, + "value": "210" + }, + { + "begin": 2408, + "end": 2421, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2390, + "end": 2400, + "name": "PUSH [tag]", + "source": 14, + "value": "211" + }, + { + "begin": 2390, + "end": 2422, + "jumpType": "[in]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 2390, + "end": 2422, + "name": "tag", + "source": 14, + "value": "207" + }, + { + "begin": 2390, + "end": 2422, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "DUP1", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "DUP1", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "PUSH", + "source": 14, + "value": "1" + }, + { + "begin": 2464, + "end": 2467, + "name": "ADD", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "SWAP2", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "POP", + "source": 14 + }, + { + "begin": 2464, + "end": 2467, + "name": "POP", + "source": 14 + }, + { + "begin": 2343, + "end": 2492, + "name": "PUSH [tag]", + "source": 14, + "value": "204" + }, + { + "begin": 2343, + "end": 2492, + "name": "JUMP", + "source": 14 + }, + { + "begin": 2343, + "end": 2492, + "name": "tag", + "source": 14, + "value": "205" + }, + { + "begin": 2343, + "end": 2492, + "name": "JUMPDEST", + "source": 14 + }, + { + "begin": 2343, + "end": 2492, + "name": "POP", + "source": 14 + }, + { + "begin": 2289, + "end": 2498, + "name": "POP", + "source": 14 + }, + { + "begin": 2215, + "end": 2498, + "name": "POP", + "source": 14 + }, + { + "begin": 2215, + "end": 2498, + "name": "POP", + "source": 14 + }, + { + "begin": 2215, + "end": 2498, + "name": "POP", + "source": 14 + }, + { + "begin": 2215, + "end": 2498, + "jumpType": "[out]", + "name": "JUMP", + "source": 14 + }, + { + "begin": 3642, + "end": 3745, + "name": "tag", + "source": 0, + "value": "149" + }, + { + "begin": 3642, + "end": 3745, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3708, + "end": 3738, + "name": "PUSH [tag]", + "source": 0, + "value": "213" + }, + { + "begin": 3719, + "end": 3723, + "name": "DUP2", + "source": 0 + }, + { + "begin": 3725, + "end": 3737, + "name": "PUSH [tag]", + "source": 0, + "value": "214" + }, + { + "begin": 3725, + "end": 3735, + "name": "PUSH [tag]", + "source": 0, + "value": "155" + }, + { + "begin": 3725, + "end": 3737, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3725, + "end": 3737, + "name": "tag", + "source": 0, + "value": "214" + }, + { + "begin": 3725, + "end": 3737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3708, + "end": 3718, + "name": "PUSH [tag]", + "source": 0, + "value": "215" + }, + { + "begin": 3708, + "end": 3738, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 3708, + "end": 3738, + "name": "tag", + "source": 0, + "value": "213" + }, + { + "begin": 3708, + "end": 3738, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 3642, + "end": 3745, + "name": "POP", + "source": 0 + }, + { + "begin": 3642, + "end": 3745, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7791, + "end": 8024, + "name": "tag", + "source": 0, + "value": "152" + }, + { + "begin": 7791, + "end": 8024, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7874, + "end": 7896, + "name": "PUSH [tag]", + "source": 0, + "value": "217" + }, + { + "begin": 7882, + "end": 7886, + "name": "DUP3", + "source": 0 + }, + { + "begin": 7888, + "end": 7895, + "name": "DUP3", + "source": 0 + }, + { + "begin": 7874, + "end": 7881, + "name": "PUSH [tag]", + "source": 0, + "value": "83" + }, + { + "begin": 7874, + "end": 7896, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7874, + "end": 7896, + "name": "tag", + "source": 0, + "value": "217" + }, + { + "begin": 7874, + "end": 7896, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7869, + "end": 8018, + "name": "PUSH [tag]", + "source": 0, + "value": "218" + }, + { + "begin": 7869, + "end": 8018, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 7944, + "end": 7948, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 7912, + "end": 7918, + "name": "PUSH", + "source": 0, + "value": "65" + }, + { + "begin": 7912, + "end": 7924, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7919, + "end": 7923, + "name": "DUP5", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 7912, + "end": 7924, + "name": "ADD", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 7912, + "end": 7924, + "name": "ADD", + "source": 0 + }, + { + "begin": 7912, + "end": 7924, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7912, + "end": 7924, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 7912, + "end": 7932, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7912, + "end": 7932, + "name": "ADD", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7933, + "end": 7940, + "name": "DUP4", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 7912, + "end": 7941, + "name": "AND", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 7912, + "end": 7941, + "name": "AND", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 7912, + "end": 7941, + "name": "ADD", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 7912, + "end": 7941, + "name": "ADD", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7912, + "end": 7941, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 7912, + "end": 7941, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 7912, + "end": 7948, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 7912, + "end": 7948, + "name": "EXP", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 7912, + "end": 7948, + "name": "MUL", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "NOT", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "AND", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "DUP4", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "MUL", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "OR", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 7912, + "end": 7948, + "name": "POP", + "source": 0 + }, + { + "begin": 7994, + "end": 8006, + "name": "PUSH [tag]", + "source": 0, + "value": "219" + }, + { + "begin": 7994, + "end": 8004, + "name": "PUSH [tag]", + "source": 0, + "value": "155" + }, + { + "begin": 7994, + "end": 8006, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7994, + "end": 8006, + "name": "tag", + "source": 0, + "value": "219" + }, + { + "begin": 7994, + "end": 8006, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 7967, + "end": 8007, + "name": "AND", + "source": 0 + }, + { + "begin": 7985, + "end": 7992, + "name": "DUP2", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 7967, + "end": 8007, + "name": "AND", + "source": 0 + }, + { + "begin": 7979, + "end": 7983, + "name": "DUP4", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "PUSH", + "source": 0, + "value": "2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D" + }, + { + "begin": 7967, + "end": 8007, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 7967, + "end": 8007, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 7967, + "end": 8007, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "DUP1", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "SUB", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 7967, + "end": 8007, + "name": "LOG4", + "source": 0 + }, + { + "begin": 7869, + "end": 8018, + "name": "tag", + "source": 0, + "value": "218" + }, + { + "begin": 7869, + "end": 8018, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7791, + "end": 8024, + "name": "POP", + "source": 0 + }, + { + "begin": 7791, + "end": 8024, + "name": "POP", + "source": 0 + }, + { + "begin": 7791, + "end": 8024, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 850, + "end": 946, + "name": "tag", + "source": 8, + "value": "155" + }, + { + "begin": 850, + "end": 946, + "name": "JUMPDEST", + "source": 8 + }, + { + "begin": 903, + "end": 910, + "name": "PUSH", + "source": 8, + "value": "0" + }, + { + "begin": 929, + "end": 939, + "name": "CALLER", + "source": 8 + }, + { + "begin": 922, + "end": 939, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 922, + "end": 939, + "name": "POP", + "source": 8 + }, + { + "begin": 850, + "end": 946, + "name": "SWAP1", + "source": 8 + }, + { + "begin": 850, + "end": 946, + "jumpType": "[out]", + "name": "JUMP", + "source": 8 + }, + { + "begin": 7141, + "end": 7251, + "name": "tag", + "source": 0, + "value": "211" + }, + { + "begin": 7141, + "end": 7251, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7219, + "end": 7244, + "name": "PUSH [tag]", + "source": 0, + "value": "222" + }, + { + "begin": 7230, + "end": 7234, + "name": "DUP3", + "source": 0 + }, + { + "begin": 7236, + "end": 7243, + "name": "DUP3", + "source": 0 + }, + { + "begin": 7219, + "end": 7229, + "name": "PUSH [tag]", + "source": 0, + "value": "152" + }, + { + "begin": 7219, + "end": 7244, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 7219, + "end": 7244, + "name": "tag", + "source": 0, + "value": "222" + }, + { + "begin": 7219, + "end": 7244, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 7141, + "end": 7251, + "name": "POP", + "source": 0 + }, + { + "begin": 7141, + "end": 7251, + "name": "POP", + "source": 0 + }, + { + "begin": 7141, + "end": 7251, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4026, + "end": 4527, + "name": "tag", + "source": 0, + "value": "215" + }, + { + "begin": 4026, + "end": 4527, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4114, + "end": 4136, + "name": "PUSH [tag]", + "source": 0, + "value": "224" + }, + { + "begin": 4122, + "end": 4126, + "name": "DUP3", + "source": 0 + }, + { + "begin": 4128, + "end": 4135, + "name": "DUP3", + "source": 0 + }, + { + "begin": 4114, + "end": 4121, + "name": "PUSH [tag]", + "source": 0, + "value": "83" + }, + { + "begin": 4114, + "end": 4136, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4114, + "end": 4136, + "name": "tag", + "source": 0, + "value": "224" + }, + { + "begin": 4114, + "end": 4136, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4109, + "end": 4521, + "name": "PUSH [tag]", + "source": 0, + "value": "225" + }, + { + "begin": 4109, + "end": 4521, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 4297, + "end": 4336, + "name": "PUSH [tag]", + "source": 0, + "value": "226" + }, + { + "begin": 4328, + "end": 4335, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4297, + "end": 4327, + "name": "PUSH [tag]", + "source": 0, + "value": "227" + }, + { + "begin": 4297, + "end": 4336, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4297, + "end": 4336, + "name": "tag", + "source": 0, + "value": "226" + }, + { + "begin": 4297, + "end": 4336, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4407, + "end": 4456, + "name": "PUSH [tag]", + "source": 0, + "value": "228" + }, + { + "begin": 4446, + "end": 4450, + "name": "DUP4", + "source": 0 + }, + { + "begin": 4438, + "end": 4451, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 4438, + "end": 4451, + "name": "SHR", + "source": 0 + }, + { + "begin": 4453, + "end": 4455, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 4407, + "end": 4437, + "name": "PUSH [tag]", + "source": 0, + "value": "229" + }, + { + "begin": 4407, + "end": 4456, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4407, + "end": 4456, + "name": "tag", + "source": 0, + "value": "228" + }, + { + "begin": 4407, + "end": 4456, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4204, + "end": 4478, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 4204, + "end": 4478, + "name": "ADD", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH [tag]", + "source": 0, + "value": "230" + }, + { + "begin": 4204, + "end": 4478, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH [tag]", + "source": 0, + "value": "231" + }, + { + "begin": 4204, + "end": 4478, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "tag", + "source": 0, + "value": "230" + }, + { + "begin": 4204, + "end": 4478, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4204, + "end": 4478, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 4204, + "end": 4478, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "DUP4", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "SUB", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "SUB", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4204, + "end": 4478, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4204, + "end": 4478, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4152, + "end": 4510, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH", + "source": 0, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 4152, + "end": 4510, + "name": "DUP2", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 4152, + "end": 4510, + "name": "ADD", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH [tag]", + "source": 0, + "value": "232" + }, + { + "begin": 4152, + "end": 4510, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH [tag]", + "source": 0, + "value": "233" + }, + { + "begin": 4152, + "end": 4510, + "jumpType": "[in]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "tag", + "source": 0, + "value": "232" + }, + { + "begin": 4152, + "end": 4510, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 4152, + "end": 4510, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "DUP1", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "SUB", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 4152, + "end": 4510, + "name": "REVERT", + "source": 0 + }, + { + "begin": 4109, + "end": 4521, + "name": "tag", + "source": 0, + "value": "225" + }, + { + "begin": 4109, + "end": 4521, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 4026, + "end": 4527, + "name": "POP", + "source": 0 + }, + { + "begin": 4026, + "end": 4527, + "name": "POP", + "source": 0 + }, + { + "begin": 4026, + "end": 4527, + "jumpType": "[out]", + "name": "JUMP", + "source": 0 + }, + { + "begin": 2146, + "end": 2295, + "name": "tag", + "source": 9, + "value": "227" + }, + { + "begin": 2146, + "end": 2295, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 2204, + "end": 2217, + "name": "PUSH", + "source": 9, + "value": "60" + }, + { + "begin": 2236, + "end": 2288, + "name": "PUSH [tag]", + "source": 9, + "value": "235" + }, + { + "begin": 2264, + "end": 2268, + "name": "DUP3", + "source": 9 + }, + { + "begin": 2248, + "end": 2270, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2248, + "end": 2270, + "name": "AND", + "source": 9 + }, + { + "begin": 333, + "end": 335, + "name": "PUSH", + "source": 9, + "value": "14" + }, + { + "begin": 2236, + "end": 2288, + "name": "PUSH", + "source": 9, + "value": "FF" + }, + { + "begin": 2236, + "end": 2288, + "name": "AND", + "source": 9 + }, + { + "begin": 2236, + "end": 2247, + "name": "PUSH [tag]", + "source": 9, + "value": "229" + }, + { + "begin": 2236, + "end": 2288, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 2236, + "end": 2288, + "name": "tag", + "source": 9, + "value": "235" + }, + { + "begin": 2236, + "end": 2288, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 2229, + "end": 2288, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 2229, + "end": 2288, + "name": "POP", + "source": 9 + }, + { + "begin": 2146, + "end": 2295, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 2146, + "end": 2295, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 2146, + "end": 2295, + "name": "POP", + "source": 9 + }, + { + "begin": 2146, + "end": 2295, + "jumpType": "[out]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "name": "tag", + "source": 9, + "value": "229" + }, + { + "begin": 1557, + "end": 1994, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1632, + "end": 1645, + "name": "PUSH", + "source": 9, + "value": "60" + }, + { + "begin": 1657, + "end": 1676, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1702, + "end": 1703, + "name": "PUSH", + "source": 9, + "value": "2" + }, + { + "begin": 1693, + "end": 1699, + "name": "DUP4", + "source": 9 + }, + { + "begin": 1689, + "end": 1690, + "name": "PUSH", + "source": 9, + "value": "2" + }, + { + "begin": 1689, + "end": 1699, + "name": "PUSH [tag]", + "source": 9, + "value": "237" + }, + { + "begin": 1689, + "end": 1699, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1689, + "end": 1699, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1689, + "end": 1699, + "name": "PUSH [tag]", + "source": 9, + "value": "238" + }, + { + "begin": 1689, + "end": 1699, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1689, + "end": 1699, + "name": "tag", + "source": 9, + "value": "237" + }, + { + "begin": 1689, + "end": 1699, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1689, + "end": 1703, + "name": "PUSH [tag]", + "source": 9, + "value": "239" + }, + { + "begin": 1689, + "end": 1703, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1689, + "end": 1703, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1689, + "end": 1703, + "name": "PUSH [tag]", + "source": 9, + "value": "240" + }, + { + "begin": 1689, + "end": 1703, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1689, + "end": 1703, + "name": "tag", + "source": 9, + "value": "239" + }, + { + "begin": 1689, + "end": 1703, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "GT", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "ISZERO", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH [tag]", + "source": 9, + "value": "241" + }, + { + "begin": 1679, + "end": 1704, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH [tag]", + "source": 9, + "value": "242" + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH [tag]", + "source": 9, + "value": "243" + }, + { + "begin": 1679, + "end": 1704, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "tag", + "source": 9, + "value": "242" + }, + { + "begin": 1679, + "end": 1704, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "tag", + "source": 9, + "value": "241" + }, + { + "begin": 1679, + "end": 1704, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "40" + }, + { + "begin": 1679, + "end": 1704, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "1F" + }, + { + "begin": 1679, + "end": 1704, + "name": "ADD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "1F" + }, + { + "begin": 1679, + "end": 1704, + "name": "NOT", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "AND", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 1679, + "end": 1704, + "name": "ADD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "ADD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "40" + }, + { + "begin": 1679, + "end": 1704, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "ISZERO", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH [tag]", + "source": 9, + "value": "244" + }, + { + "begin": 1679, + "end": 1704, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 1679, + "end": 1704, + "name": "ADD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "PUSH", + "source": 9, + "value": "1" + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "MUL", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "CALLDATASIZE", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP4", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "CALLDATACOPY", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "ADD", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "POP", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "POP", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "POP", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "tag", + "source": 9, + "value": "244" + }, + { + "begin": 1679, + "end": 1704, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1679, + "end": 1704, + "name": "POP", + "source": 9 + }, + { + "begin": 1657, + "end": 1704, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1657, + "end": 1704, + "name": "POP", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "PUSH", + "source": 9, + "value": "3000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1714, + "end": 1720, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1721, + "end": 1722, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1714, + "end": 1723, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "LT", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "PUSH [tag]", + "source": 9, + "value": "245" + }, + { + "begin": 1714, + "end": 1723, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "PUSH [tag]", + "source": 9, + "value": "246" + }, + { + "begin": 1714, + "end": 1723, + "name": "PUSH [tag]", + "source": 9, + "value": "201" + }, + { + "begin": 1714, + "end": 1723, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "tag", + "source": 9, + "value": "246" + }, + { + "begin": 1714, + "end": 1723, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "tag", + "source": 9, + "value": "245" + }, + { + "begin": 1714, + "end": 1723, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 1714, + "end": 1723, + "name": "ADD", + "source": 9 + }, + { + "begin": 1714, + "end": 1723, + "name": "ADD", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1714, + "end": 1729, + "name": "NOT", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "AND", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1714, + "end": 1729, + "name": "BYTE", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "MSTORE8", + "source": 9 + }, + { + "begin": 1714, + "end": 1729, + "name": "POP", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "PUSH", + "source": 9, + "value": "7800000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1739, + "end": 1745, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1746, + "end": 1747, + "name": "PUSH", + "source": 9, + "value": "1" + }, + { + "begin": 1739, + "end": 1748, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "LT", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "PUSH [tag]", + "source": 9, + "value": "247" + }, + { + "begin": 1739, + "end": 1748, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "PUSH [tag]", + "source": 9, + "value": "248" + }, + { + "begin": 1739, + "end": 1748, + "name": "PUSH [tag]", + "source": 9, + "value": "201" + }, + { + "begin": 1739, + "end": 1748, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "tag", + "source": 9, + "value": "248" + }, + { + "begin": 1739, + "end": 1748, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "tag", + "source": 9, + "value": "247" + }, + { + "begin": 1739, + "end": 1748, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 1739, + "end": 1748, + "name": "ADD", + "source": 9 + }, + { + "begin": 1739, + "end": 1748, + "name": "ADD", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1739, + "end": 1754, + "name": "NOT", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "AND", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1739, + "end": 1754, + "name": "BYTE", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "MSTORE8", + "source": 9 + }, + { + "begin": 1739, + "end": 1754, + "name": "POP", + "source": 9 + }, + { + "begin": 1769, + "end": 1778, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1794, + "end": 1795, + "name": "PUSH", + "source": 9, + "value": "1" + }, + { + "begin": 1785, + "end": 1791, + "name": "DUP5", + "source": 9 + }, + { + "begin": 1781, + "end": 1782, + "name": "PUSH", + "source": 9, + "value": "2" + }, + { + "begin": 1781, + "end": 1791, + "name": "PUSH [tag]", + "source": 9, + "value": "252" + }, + { + "begin": 1781, + "end": 1791, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1781, + "end": 1791, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1781, + "end": 1791, + "name": "PUSH [tag]", + "source": 9, + "value": "238" + }, + { + "begin": 1781, + "end": 1791, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1781, + "end": 1791, + "name": "tag", + "source": 9, + "value": "252" + }, + { + "begin": 1781, + "end": 1791, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1781, + "end": 1795, + "name": "PUSH [tag]", + "source": 9, + "value": "253" + }, + { + "begin": 1781, + "end": 1795, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1781, + "end": 1795, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1781, + "end": 1795, + "name": "PUSH [tag]", + "source": 9, + "value": "240" + }, + { + "begin": 1781, + "end": 1795, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1781, + "end": 1795, + "name": "tag", + "source": 9, + "value": "253" + }, + { + "begin": 1781, + "end": 1795, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1769, + "end": 1795, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1769, + "end": 1795, + "name": "POP", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "tag", + "source": 9, + "value": "249" + }, + { + "begin": 1764, + "end": 1892, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1801, + "end": 1802, + "name": "PUSH", + "source": 9, + "value": "1" + }, + { + "begin": 1797, + "end": 1798, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1797, + "end": 1802, + "name": "GT", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "ISZERO", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "PUSH [tag]", + "source": 9, + "value": "250" + }, + { + "begin": 1764, + "end": 1892, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1835, + "end": 1843, + "name": "PUSH", + "source": 9, + "value": "3031323334353637383961626364656600000000000000000000000000000000" + }, + { + "begin": 1852, + "end": 1855, + "name": "PUSH", + "source": 9, + "value": "F" + }, + { + "begin": 1844, + "end": 1849, + "name": "DUP7", + "source": 9 + }, + { + "begin": 1844, + "end": 1855, + "name": "AND", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "PUSH", + "source": 9, + "value": "10" + }, + { + "begin": 1835, + "end": 1856, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "LT", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "PUSH [tag]", + "source": 9, + "value": "254" + }, + { + "begin": 1835, + "end": 1856, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "PUSH [tag]", + "source": 9, + "value": "255" + }, + { + "begin": 1835, + "end": 1856, + "name": "PUSH [tag]", + "source": 9, + "value": "201" + }, + { + "begin": 1835, + "end": 1856, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "tag", + "source": 9, + "value": "255" + }, + { + "begin": 1835, + "end": 1856, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "tag", + "source": 9, + "value": "254" + }, + { + "begin": 1835, + "end": 1856, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "BYTE", + "source": 9 + }, + { + "begin": 1835, + "end": 1856, + "name": "PUSH", + "source": 9, + "value": "F8" + }, + { + "begin": 1835, + "end": 1856, + "name": "SHL", + "source": 9 + }, + { + "begin": 1823, + "end": 1829, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1830, + "end": 1831, + "name": "DUP3", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "LT", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "PUSH [tag]", + "source": 9, + "value": "256" + }, + { + "begin": 1823, + "end": 1832, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "PUSH [tag]", + "source": 9, + "value": "257" + }, + { + "begin": 1823, + "end": 1832, + "name": "PUSH [tag]", + "source": 9, + "value": "201" + }, + { + "begin": 1823, + "end": 1832, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "tag", + "source": 9, + "value": "257" + }, + { + "begin": 1823, + "end": 1832, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "tag", + "source": 9, + "value": "256" + }, + { + "begin": 1823, + "end": 1832, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "PUSH", + "source": 9, + "value": "20" + }, + { + "begin": 1823, + "end": 1832, + "name": "ADD", + "source": 9 + }, + { + "begin": 1823, + "end": 1832, + "name": "ADD", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "PUSH", + "source": 9, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1823, + "end": 1856, + "name": "NOT", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "AND", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1823, + "end": 1856, + "name": "BYTE", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "MSTORE8", + "source": 9 + }, + { + "begin": 1823, + "end": 1856, + "name": "POP", + "source": 9 + }, + { + "begin": 1880, + "end": 1881, + "name": "PUSH", + "source": 9, + "value": "4" + }, + { + "begin": 1870, + "end": 1881, + "name": "DUP6", + "source": 9 + }, + { + "begin": 1870, + "end": 1881, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1870, + "end": 1881, + "name": "SHR", + "source": 9 + }, + { + "begin": 1870, + "end": 1881, + "name": "SWAP5", + "source": 9 + }, + { + "begin": 1870, + "end": 1881, + "name": "POP", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "PUSH [tag]", + "source": 9, + "value": "258" + }, + { + "begin": 1804, + "end": 1807, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "PUSH [tag]", + "source": 9, + "value": "259" + }, + { + "begin": 1804, + "end": 1807, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "tag", + "source": 9, + "value": "258" + }, + { + "begin": 1804, + "end": 1807, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1804, + "end": 1807, + "name": "POP", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "PUSH [tag]", + "source": 9, + "value": "249" + }, + { + "begin": 1764, + "end": 1892, + "name": "JUMP", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "tag", + "source": 9, + "value": "250" + }, + { + "begin": 1764, + "end": 1892, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1764, + "end": 1892, + "name": "POP", + "source": 9 + }, + { + "begin": 1918, + "end": 1919, + "name": "PUSH", + "source": 9, + "value": "0" + }, + { + "begin": 1909, + "end": 1914, + "name": "DUP5", + "source": 9 + }, + { + "begin": 1909, + "end": 1919, + "name": "EQ", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH [tag]", + "source": 9, + "value": "260" + }, + { + "begin": 1901, + "end": 1956, + "name": "JUMPI", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH", + "source": 9, + "value": "40" + }, + { + "begin": 1901, + "end": 1956, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH", + "source": 9, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1901, + "end": 1956, + "name": "DUP2", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "MSTORE", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH", + "source": 9, + "value": "4" + }, + { + "begin": 1901, + "end": 1956, + "name": "ADD", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH [tag]", + "source": 9, + "value": "261" + }, + { + "begin": 1901, + "end": 1956, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH [tag]", + "source": 9, + "value": "262" + }, + { + "begin": 1901, + "end": 1956, + "jumpType": "[in]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "tag", + "source": 9, + "value": "261" + }, + { + "begin": 1901, + "end": 1956, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "PUSH", + "source": 9, + "value": "40" + }, + { + "begin": 1901, + "end": 1956, + "name": "MLOAD", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "SUB", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "SWAP1", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "REVERT", + "source": 9 + }, + { + "begin": 1901, + "end": 1956, + "name": "tag", + "source": 9, + "value": "260" + }, + { + "begin": 1901, + "end": 1956, + "name": "JUMPDEST", + "source": 9 + }, + { + "begin": 1980, + "end": 1986, + "name": "DUP1", + "source": 9 + }, + { + "begin": 1966, + "end": 1987, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1966, + "end": 1987, + "name": "POP", + "source": 9 + }, + { + "begin": 1966, + "end": 1987, + "name": "POP", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "name": "SWAP3", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "name": "SWAP2", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "name": "POP", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "name": "POP", + "source": 9 + }, + { + "begin": 1557, + "end": 1994, + "jumpType": "[out]", + "name": "JUMP", + "source": 9 + }, + { + "begin": 88, + "end": 205, + "name": "tag", + "source": 16, + "value": "264" + }, + { + "begin": 88, + "end": 205, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 197, + "end": 198, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 194, + "end": 195, + "name": "DUP1", + "source": 16 + }, + { + "begin": 187, + "end": 199, + "name": "REVERT", + "source": 16 + }, + { + "begin": 211, + "end": 328, + "name": "tag", + "source": 16, + "value": "265" + }, + { + "begin": 211, + "end": 328, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 320, + "end": 321, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 317, + "end": 318, + "name": "DUP1", + "source": 16 + }, + { + "begin": 310, + "end": 322, + "name": "REVERT", + "source": 16 + }, + { + "begin": 334, + "end": 483, + "name": "tag", + "source": 16, + "value": "266" + }, + { + "begin": 334, + "end": 483, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 370, + "end": 377, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 410, + "end": 476, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFF00000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 403, + "end": 408, + "name": "DUP3", + "source": 16 + }, + { + "begin": 399, + "end": 477, + "name": "AND", + "source": 16 + }, + { + "begin": 388, + "end": 477, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 388, + "end": 477, + "name": "POP", + "source": 16 + }, + { + "begin": 334, + "end": 483, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 334, + "end": 483, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 334, + "end": 483, + "name": "POP", + "source": 16 + }, + { + "begin": 334, + "end": 483, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 489, + "end": 609, + "name": "tag", + "source": 16, + "value": "267" + }, + { + "begin": 489, + "end": 609, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 561, + "end": 584, + "name": "PUSH [tag]", + "source": 16, + "value": "307" + }, + { + "begin": 578, + "end": 583, + "name": "DUP2", + "source": 16 + }, + { + "begin": 561, + "end": 584, + "name": "PUSH [tag]", + "source": 16, + "value": "266" + }, + { + "begin": 561, + "end": 584, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 561, + "end": 584, + "name": "tag", + "source": 16, + "value": "307" + }, + { + "begin": 561, + "end": 584, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 554, + "end": 559, + "name": "DUP2", + "source": 16 + }, + { + "begin": 551, + "end": 585, + "name": "EQ", + "source": 16 + }, + { + "begin": 541, + "end": 603, + "name": "PUSH [tag]", + "source": 16, + "value": "308" + }, + { + "begin": 541, + "end": 603, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 599, + "end": 600, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 596, + "end": 597, + "name": "DUP1", + "source": 16 + }, + { + "begin": 589, + "end": 601, + "name": "REVERT", + "source": 16 + }, + { + "begin": 541, + "end": 603, + "name": "tag", + "source": 16, + "value": "308" + }, + { + "begin": 541, + "end": 603, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 489, + "end": 609, + "name": "POP", + "source": 16 + }, + { + "begin": 489, + "end": 609, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "name": "tag", + "source": 16, + "value": "268" + }, + { + "begin": 615, + "end": 752, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 660, + "end": 665, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 698, + "end": 704, + "name": "DUP2", + "source": 16 + }, + { + "begin": 685, + "end": 705, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 676, + "end": 705, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 676, + "end": 705, + "name": "POP", + "source": 16 + }, + { + "begin": 714, + "end": 746, + "name": "PUSH [tag]", + "source": 16, + "value": "310" + }, + { + "begin": 740, + "end": 745, + "name": "DUP2", + "source": 16 + }, + { + "begin": 714, + "end": 746, + "name": "PUSH [tag]", + "source": 16, + "value": "267" + }, + { + "begin": 714, + "end": 746, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 714, + "end": 746, + "name": "tag", + "source": 16, + "value": "310" + }, + { + "begin": 714, + "end": 746, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "name": "POP", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "name": "POP", + "source": 16 + }, + { + "begin": 615, + "end": 752, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "name": "tag", + "source": 16, + "value": "34" + }, + { + "begin": 758, + "end": 1085, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 816, + "end": 822, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 865, + "end": 867, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 853, + "end": 862, + "name": "DUP3", + "source": 16 + }, + { + "begin": 844, + "end": 851, + "name": "DUP5", + "source": 16 + }, + { + "begin": 840, + "end": 863, + "name": "SUB", + "source": 16 + }, + { + "begin": 836, + "end": 868, + "name": "SLT", + "source": 16 + }, + { + "begin": 833, + "end": 952, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 833, + "end": 952, + "name": "PUSH [tag]", + "source": 16, + "value": "312" + }, + { + "begin": 833, + "end": 952, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 871, + "end": 950, + "name": "PUSH [tag]", + "source": 16, + "value": "313" + }, + { + "begin": 871, + "end": 950, + "name": "PUSH [tag]", + "source": 16, + "value": "264" + }, + { + "begin": 871, + "end": 950, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 871, + "end": 950, + "name": "tag", + "source": 16, + "value": "313" + }, + { + "begin": 871, + "end": 950, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 833, + "end": 952, + "name": "tag", + "source": 16, + "value": "312" + }, + { + "begin": 833, + "end": 952, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 991, + "end": 992, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1016, + "end": 1068, + "name": "PUSH [tag]", + "source": 16, + "value": "314" + }, + { + "begin": 1060, + "end": 1067, + "name": "DUP5", + "source": 16 + }, + { + "begin": 1051, + "end": 1057, + "name": "DUP3", + "source": 16 + }, + { + "begin": 1040, + "end": 1049, + "name": "DUP6", + "source": 16 + }, + { + "begin": 1036, + "end": 1058, + "name": "ADD", + "source": 16 + }, + { + "begin": 1016, + "end": 1068, + "name": "PUSH [tag]", + "source": 16, + "value": "268" + }, + { + "begin": 1016, + "end": 1068, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1016, + "end": 1068, + "name": "tag", + "source": 16, + "value": "314" + }, + { + "begin": 1016, + "end": 1068, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1006, + "end": 1068, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 1006, + "end": 1068, + "name": "POP", + "source": 16 + }, + { + "begin": 962, + "end": 1078, + "name": "POP", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "name": "POP", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "name": "POP", + "source": 16 + }, + { + "begin": 758, + "end": 1085, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1091, + "end": 1181, + "name": "tag", + "source": 16, + "value": "269" + }, + { + "begin": 1091, + "end": 1181, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1125, + "end": 1132, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1168, + "end": 1173, + "name": "DUP2", + "source": 16 + }, + { + "begin": 1161, + "end": 1174, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 1154, + "end": 1175, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 1143, + "end": 1175, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1143, + "end": 1175, + "name": "POP", + "source": 16 + }, + { + "begin": 1091, + "end": 1181, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 1091, + "end": 1181, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1091, + "end": 1181, + "name": "POP", + "source": 16 + }, + { + "begin": 1091, + "end": 1181, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1187, + "end": 1296, + "name": "tag", + "source": 16, + "value": "270" + }, + { + "begin": 1187, + "end": 1296, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1268, + "end": 1289, + "name": "PUSH [tag]", + "source": 16, + "value": "317" + }, + { + "begin": 1283, + "end": 1288, + "name": "DUP2", + "source": 16 + }, + { + "begin": 1268, + "end": 1289, + "name": "PUSH [tag]", + "source": 16, + "value": "269" + }, + { + "begin": 1268, + "end": 1289, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1268, + "end": 1289, + "name": "tag", + "source": 16, + "value": "317" + }, + { + "begin": 1268, + "end": 1289, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1263, + "end": 1266, + "name": "DUP3", + "source": 16 + }, + { + "begin": 1256, + "end": 1290, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 1187, + "end": 1296, + "name": "POP", + "source": 16 + }, + { + "begin": 1187, + "end": 1296, + "name": "POP", + "source": 16 + }, + { + "begin": 1187, + "end": 1296, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "name": "tag", + "source": 16, + "value": "37" + }, + { + "begin": 1302, + "end": 1512, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1389, + "end": 1393, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1427, + "end": 1429, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 1416, + "end": 1425, + "name": "DUP3", + "source": 16 + }, + { + "begin": 1412, + "end": 1430, + "name": "ADD", + "source": 16 + }, + { + "begin": 1404, + "end": 1430, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1404, + "end": 1430, + "name": "POP", + "source": 16 + }, + { + "begin": 1440, + "end": 1505, + "name": "PUSH [tag]", + "source": 16, + "value": "319" + }, + { + "begin": 1502, + "end": 1503, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1491, + "end": 1500, + "name": "DUP4", + "source": 16 + }, + { + "begin": 1487, + "end": 1504, + "name": "ADD", + "source": 16 + }, + { + "begin": 1478, + "end": 1484, + "name": "DUP5", + "source": 16 + }, + { + "begin": 1440, + "end": 1505, + "name": "PUSH [tag]", + "source": 16, + "value": "270" + }, + { + "begin": 1440, + "end": 1505, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1440, + "end": 1505, + "name": "tag", + "source": 16, + "value": "319" + }, + { + "begin": 1440, + "end": 1505, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "name": "POP", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "name": "POP", + "source": 16 + }, + { + "begin": 1302, + "end": 1512, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1518, + "end": 1644, + "name": "tag", + "source": 16, + "value": "271" + }, + { + "begin": 1518, + "end": 1644, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1555, + "end": 1562, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1595, + "end": 1637, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1588, + "end": 1593, + "name": "DUP3", + "source": 16 + }, + { + "begin": 1584, + "end": 1638, + "name": "AND", + "source": 16 + }, + { + "begin": 1573, + "end": 1638, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1573, + "end": 1638, + "name": "POP", + "source": 16 + }, + { + "begin": 1518, + "end": 1644, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 1518, + "end": 1644, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1518, + "end": 1644, + "name": "POP", + "source": 16 + }, + { + "begin": 1518, + "end": 1644, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1650, + "end": 1746, + "name": "tag", + "source": 16, + "value": "272" + }, + { + "begin": 1650, + "end": 1746, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1687, + "end": 1694, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1716, + "end": 1740, + "name": "PUSH [tag]", + "source": 16, + "value": "322" + }, + { + "begin": 1734, + "end": 1739, + "name": "DUP3", + "source": 16 + }, + { + "begin": 1716, + "end": 1740, + "name": "PUSH [tag]", + "source": 16, + "value": "271" + }, + { + "begin": 1716, + "end": 1740, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1716, + "end": 1740, + "name": "tag", + "source": 16, + "value": "322" + }, + { + "begin": 1716, + "end": 1740, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1705, + "end": 1740, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1705, + "end": 1740, + "name": "POP", + "source": 16 + }, + { + "begin": 1650, + "end": 1746, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 1650, + "end": 1746, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1650, + "end": 1746, + "name": "POP", + "source": 16 + }, + { + "begin": 1650, + "end": 1746, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1752, + "end": 1874, + "name": "tag", + "source": 16, + "value": "273" + }, + { + "begin": 1752, + "end": 1874, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1825, + "end": 1849, + "name": "PUSH [tag]", + "source": 16, + "value": "324" + }, + { + "begin": 1843, + "end": 1848, + "name": "DUP2", + "source": 16 + }, + { + "begin": 1825, + "end": 1849, + "name": "PUSH [tag]", + "source": 16, + "value": "272" + }, + { + "begin": 1825, + "end": 1849, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1825, + "end": 1849, + "name": "tag", + "source": 16, + "value": "324" + }, + { + "begin": 1825, + "end": 1849, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1818, + "end": 1823, + "name": "DUP2", + "source": 16 + }, + { + "begin": 1815, + "end": 1850, + "name": "EQ", + "source": 16 + }, + { + "begin": 1805, + "end": 1868, + "name": "PUSH [tag]", + "source": 16, + "value": "325" + }, + { + "begin": 1805, + "end": 1868, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 1864, + "end": 1865, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1861, + "end": 1862, + "name": "DUP1", + "source": 16 + }, + { + "begin": 1854, + "end": 1866, + "name": "REVERT", + "source": 16 + }, + { + "begin": 1805, + "end": 1868, + "name": "tag", + "source": 16, + "value": "325" + }, + { + "begin": 1805, + "end": 1868, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1752, + "end": 1874, + "name": "POP", + "source": 16 + }, + { + "begin": 1752, + "end": 1874, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1880, + "end": 2019, + "name": "tag", + "source": 16, + "value": "274" + }, + { + "begin": 1880, + "end": 2019, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1926, + "end": 1931, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 1964, + "end": 1970, + "name": "DUP2", + "source": 16 + }, + { + "begin": 1951, + "end": 1971, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 1942, + "end": 1971, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 1942, + "end": 1971, + "name": "POP", + "source": 16 + }, + { + "begin": 1980, + "end": 2013, + "name": "PUSH [tag]", + "source": 16, + "value": "327" + }, + { + "begin": 2007, + "end": 2012, + "name": "DUP2", + "source": 16 + }, + { + "begin": 1980, + "end": 2013, + "name": "PUSH [tag]", + "source": 16, + "value": "273" + }, + { + "begin": 1980, + "end": 2013, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 1980, + "end": 2013, + "name": "tag", + "source": 16, + "value": "327" + }, + { + "begin": 1980, + "end": 2013, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 1880, + "end": 2019, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 1880, + "end": 2019, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 1880, + "end": 2019, + "name": "POP", + "source": 16 + }, + { + "begin": 1880, + "end": 2019, + "name": "POP", + "source": 16 + }, + { + "begin": 1880, + "end": 2019, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2025, + "end": 2354, + "name": "tag", + "source": 16, + "value": "40" + }, + { + "begin": 2025, + "end": 2354, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2084, + "end": 2090, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 2133, + "end": 2135, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 2121, + "end": 2130, + "name": "DUP3", + "source": 16 + }, + { + "begin": 2112, + "end": 2119, + "name": "DUP5", + "source": 16 + }, + { + "begin": 2108, + "end": 2131, + "name": "SUB", + "source": 16 + }, + { + "begin": 2104, + "end": 2136, + "name": "SLT", + "source": 16 + }, + { + "begin": 2101, + "end": 2220, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 2101, + "end": 2220, + "name": "PUSH [tag]", + "source": 16, + "value": "329" + }, + { + "begin": 2101, + "end": 2220, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 2139, + "end": 2218, + "name": "PUSH [tag]", + "source": 16, + "value": "330" + }, + { + "begin": 2139, + "end": 2218, + "name": "PUSH [tag]", + "source": 16, + "value": "264" + }, + { + "begin": 2139, + "end": 2218, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2139, + "end": 2218, + "name": "tag", + "source": 16, + "value": "330" + }, + { + "begin": 2139, + "end": 2218, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2101, + "end": 2220, + "name": "tag", + "source": 16, + "value": "329" + }, + { + "begin": 2101, + "end": 2220, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2259, + "end": 2260, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 2284, + "end": 2337, + "name": "PUSH [tag]", + "source": 16, + "value": "331" + }, + { + "begin": 2329, + "end": 2336, + "name": "DUP5", + "source": 16 + }, + { + "begin": 2320, + "end": 2326, + "name": "DUP3", + "source": 16 + }, + { + "begin": 2309, + "end": 2318, + "name": "DUP6", + "source": 16 + }, + { + "begin": 2305, + "end": 2327, + "name": "ADD", + "source": 16 + }, + { + "begin": 2284, + "end": 2337, + "name": "PUSH [tag]", + "source": 16, + "value": "274" + }, + { + "begin": 2284, + "end": 2337, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2284, + "end": 2337, + "name": "tag", + "source": 16, + "value": "331" + }, + { + "begin": 2284, + "end": 2337, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2274, + "end": 2337, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 2274, + "end": 2337, + "name": "POP", + "source": 16 + }, + { + "begin": 2230, + "end": 2347, + "name": "POP", + "source": 16 + }, + { + "begin": 2025, + "end": 2354, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 2025, + "end": 2354, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 2025, + "end": 2354, + "name": "POP", + "source": 16 + }, + { + "begin": 2025, + "end": 2354, + "name": "POP", + "source": 16 + }, + { + "begin": 2025, + "end": 2354, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2360, + "end": 2477, + "name": "tag", + "source": 16, + "value": "275" + }, + { + "begin": 2360, + "end": 2477, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2469, + "end": 2470, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 2466, + "end": 2467, + "name": "DUP1", + "source": 16 + }, + { + "begin": 2459, + "end": 2471, + "name": "REVERT", + "source": 16 + }, + { + "begin": 2483, + "end": 2600, + "name": "tag", + "source": 16, + "value": "276" + }, + { + "begin": 2483, + "end": 2600, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2592, + "end": 2593, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 2589, + "end": 2590, + "name": "DUP1", + "source": 16 + }, + { + "begin": 2582, + "end": 2594, + "name": "REVERT", + "source": 16 + }, + { + "begin": 2606, + "end": 2723, + "name": "tag", + "source": 16, + "value": "277" + }, + { + "begin": 2606, + "end": 2723, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2715, + "end": 2716, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 2712, + "end": 2713, + "name": "DUP1", + "source": 16 + }, + { + "begin": 2705, + "end": 2717, + "name": "REVERT", + "source": 16 + }, + { + "begin": 2746, + "end": 3314, + "name": "tag", + "source": 16, + "value": "278" + }, + { + "begin": 2746, + "end": 3314, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2819, + "end": 2827, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 2829, + "end": 2835, + "name": "DUP1", + "source": 16 + }, + { + "begin": 2879, + "end": 2882, + "name": "DUP4", + "source": 16 + }, + { + "begin": 2872, + "end": 2876, + "name": "PUSH", + "source": 16, + "value": "1F" + }, + { + "begin": 2864, + "end": 2870, + "name": "DUP5", + "source": 16 + }, + { + "begin": 2860, + "end": 2877, + "name": "ADD", + "source": 16 + }, + { + "begin": 2856, + "end": 2883, + "name": "SLT", + "source": 16 + }, + { + "begin": 2846, + "end": 2968, + "name": "PUSH [tag]", + "source": 16, + "value": "336" + }, + { + "begin": 2846, + "end": 2968, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 2887, + "end": 2966, + "name": "PUSH [tag]", + "source": 16, + "value": "337" + }, + { + "begin": 2887, + "end": 2966, + "name": "PUSH [tag]", + "source": 16, + "value": "275" + }, + { + "begin": 2887, + "end": 2966, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 2887, + "end": 2966, + "name": "tag", + "source": 16, + "value": "337" + }, + { + "begin": 2887, + "end": 2966, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2846, + "end": 2968, + "name": "tag", + "source": 16, + "value": "336" + }, + { + "begin": 2846, + "end": 2968, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3000, + "end": 3006, + "name": "DUP3", + "source": 16 + }, + { + "begin": 2987, + "end": 3007, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 2977, + "end": 3007, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 2977, + "end": 3007, + "name": "POP", + "source": 16 + }, + { + "begin": 3030, + "end": 3048, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 3022, + "end": 3028, + "name": "DUP2", + "source": 16 + }, + { + "begin": 3019, + "end": 3049, + "name": "GT", + "source": 16 + }, + { + "begin": 3016, + "end": 3133, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 3016, + "end": 3133, + "name": "PUSH [tag]", + "source": 16, + "value": "338" + }, + { + "begin": 3016, + "end": 3133, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 3052, + "end": 3131, + "name": "PUSH [tag]", + "source": 16, + "value": "339" + }, + { + "begin": 3052, + "end": 3131, + "name": "PUSH [tag]", + "source": 16, + "value": "276" + }, + { + "begin": 3052, + "end": 3131, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3052, + "end": 3131, + "name": "tag", + "source": 16, + "value": "339" + }, + { + "begin": 3052, + "end": 3131, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3016, + "end": 3133, + "name": "tag", + "source": 16, + "value": "338" + }, + { + "begin": 3016, + "end": 3133, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3166, + "end": 3170, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 3158, + "end": 3164, + "name": "DUP4", + "source": 16 + }, + { + "begin": 3154, + "end": 3171, + "name": "ADD", + "source": 16 + }, + { + "begin": 3142, + "end": 3171, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 3142, + "end": 3171, + "name": "POP", + "source": 16 + }, + { + "begin": 3220, + "end": 3223, + "name": "DUP4", + "source": 16 + }, + { + "begin": 3212, + "end": 3216, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 3204, + "end": 3210, + "name": "DUP3", + "source": 16 + }, + { + "begin": 3200, + "end": 3217, + "name": "MUL", + "source": 16 + }, + { + "begin": 3190, + "end": 3198, + "name": "DUP4", + "source": 16 + }, + { + "begin": 3186, + "end": 3218, + "name": "ADD", + "source": 16 + }, + { + "begin": 3183, + "end": 3224, + "name": "GT", + "source": 16 + }, + { + "begin": 3180, + "end": 3308, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 3180, + "end": 3308, + "name": "PUSH [tag]", + "source": 16, + "value": "340" + }, + { + "begin": 3180, + "end": 3308, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 3227, + "end": 3306, + "name": "PUSH [tag]", + "source": 16, + "value": "341" + }, + { + "begin": 3227, + "end": 3306, + "name": "PUSH [tag]", + "source": 16, + "value": "277" + }, + { + "begin": 3227, + "end": 3306, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3227, + "end": 3306, + "name": "tag", + "source": 16, + "value": "341" + }, + { + "begin": 3227, + "end": 3306, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3180, + "end": 3308, + "name": "tag", + "source": 16, + "value": "340" + }, + { + "begin": 3180, + "end": 3308, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 2746, + "end": 3314, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 2746, + "end": 3314, + "name": "POP", + "source": 16 + }, + { + "begin": 2746, + "end": 3314, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 2746, + "end": 3314, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 2746, + "end": 3314, + "name": "POP", + "source": 16 + }, + { + "begin": 2746, + "end": 3314, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3320, + "end": 3879, + "name": "tag", + "source": 16, + "value": "47" + }, + { + "begin": 3320, + "end": 3879, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3406, + "end": 3412, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 3414, + "end": 3420, + "name": "DUP1", + "source": 16 + }, + { + "begin": 3463, + "end": 3465, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 3451, + "end": 3460, + "name": "DUP4", + "source": 16 + }, + { + "begin": 3442, + "end": 3449, + "name": "DUP6", + "source": 16 + }, + { + "begin": 3438, + "end": 3461, + "name": "SUB", + "source": 16 + }, + { + "begin": 3434, + "end": 3466, + "name": "SLT", + "source": 16 + }, + { + "begin": 3431, + "end": 3550, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 3431, + "end": 3550, + "name": "PUSH [tag]", + "source": 16, + "value": "343" + }, + { + "begin": 3431, + "end": 3550, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 3469, + "end": 3548, + "name": "PUSH [tag]", + "source": 16, + "value": "344" + }, + { + "begin": 3469, + "end": 3548, + "name": "PUSH [tag]", + "source": 16, + "value": "264" + }, + { + "begin": 3469, + "end": 3548, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3469, + "end": 3548, + "name": "tag", + "source": 16, + "value": "344" + }, + { + "begin": 3469, + "end": 3548, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3431, + "end": 3550, + "name": "tag", + "source": 16, + "value": "343" + }, + { + "begin": 3431, + "end": 3550, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3617, + "end": 3618, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 3606, + "end": 3615, + "name": "DUP4", + "source": 16 + }, + { + "begin": 3602, + "end": 3619, + "name": "ADD", + "source": 16 + }, + { + "begin": 3589, + "end": 3620, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 3647, + "end": 3665, + "name": "PUSH", + "source": 16, + "value": "FFFFFFFFFFFFFFFF" + }, + { + "begin": 3639, + "end": 3645, + "name": "DUP2", + "source": 16 + }, + { + "begin": 3636, + "end": 3666, + "name": "GT", + "source": 16 + }, + { + "begin": 3633, + "end": 3750, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 3633, + "end": 3750, + "name": "PUSH [tag]", + "source": 16, + "value": "345" + }, + { + "begin": 3633, + "end": 3750, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 3669, + "end": 3748, + "name": "PUSH [tag]", + "source": 16, + "value": "346" + }, + { + "begin": 3669, + "end": 3748, + "name": "PUSH [tag]", + "source": 16, + "value": "265" + }, + { + "begin": 3669, + "end": 3748, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3669, + "end": 3748, + "name": "tag", + "source": 16, + "value": "346" + }, + { + "begin": 3669, + "end": 3748, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3633, + "end": 3750, + "name": "tag", + "source": 16, + "value": "345" + }, + { + "begin": 3633, + "end": 3750, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3782, + "end": 3862, + "name": "PUSH [tag]", + "source": 16, + "value": "347" + }, + { + "begin": 3854, + "end": 3861, + "name": "DUP6", + "source": 16 + }, + { + "begin": 3845, + "end": 3851, + "name": "DUP3", + "source": 16 + }, + { + "begin": 3834, + "end": 3843, + "name": "DUP7", + "source": 16 + }, + { + "begin": 3830, + "end": 3852, + "name": "ADD", + "source": 16 + }, + { + "begin": 3782, + "end": 3862, + "name": "PUSH [tag]", + "source": 16, + "value": "278" + }, + { + "begin": 3782, + "end": 3862, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3782, + "end": 3862, + "name": "tag", + "source": 16, + "value": "347" + }, + { + "begin": 3782, + "end": 3862, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3764, + "end": 3862, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 3764, + "end": 3862, + "name": "POP", + "source": 16 + }, + { + "begin": 3764, + "end": 3862, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 3764, + "end": 3862, + "name": "POP", + "source": 16 + }, + { + "begin": 3560, + "end": 3872, + "name": "POP", + "source": 16 + }, + { + "begin": 3320, + "end": 3879, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 3320, + "end": 3879, + "name": "POP", + "source": 16 + }, + { + "begin": 3320, + "end": 3879, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 3320, + "end": 3879, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 3320, + "end": 3879, + "name": "POP", + "source": 16 + }, + { + "begin": 3320, + "end": 3879, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3885, + "end": 3962, + "name": "tag", + "source": 16, + "value": "279" + }, + { + "begin": 3885, + "end": 3962, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3922, + "end": 3929, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 3951, + "end": 3956, + "name": "DUP2", + "source": 16 + }, + { + "begin": 3940, + "end": 3956, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 3940, + "end": 3956, + "name": "POP", + "source": 16 + }, + { + "begin": 3885, + "end": 3962, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 3885, + "end": 3962, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 3885, + "end": 3962, + "name": "POP", + "source": 16 + }, + { + "begin": 3885, + "end": 3962, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 3968, + "end": 4090, + "name": "tag", + "source": 16, + "value": "280" + }, + { + "begin": 3968, + "end": 4090, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4041, + "end": 4065, + "name": "PUSH [tag]", + "source": 16, + "value": "350" + }, + { + "begin": 4059, + "end": 4064, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4041, + "end": 4065, + "name": "PUSH [tag]", + "source": 16, + "value": "279" + }, + { + "begin": 4041, + "end": 4065, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4041, + "end": 4065, + "name": "tag", + "source": 16, + "value": "350" + }, + { + "begin": 4041, + "end": 4065, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4034, + "end": 4039, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4031, + "end": 4066, + "name": "EQ", + "source": 16 + }, + { + "begin": 4021, + "end": 4084, + "name": "PUSH [tag]", + "source": 16, + "value": "351" + }, + { + "begin": 4021, + "end": 4084, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 4080, + "end": 4081, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4077, + "end": 4078, + "name": "DUP1", + "source": 16 + }, + { + "begin": 4070, + "end": 4082, + "name": "REVERT", + "source": 16 + }, + { + "begin": 4021, + "end": 4084, + "name": "tag", + "source": 16, + "value": "351" + }, + { + "begin": 4021, + "end": 4084, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 3968, + "end": 4090, + "name": "POP", + "source": 16 + }, + { + "begin": 3968, + "end": 4090, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4096, + "end": 4235, + "name": "tag", + "source": 16, + "value": "281" + }, + { + "begin": 4096, + "end": 4235, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4142, + "end": 4147, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4180, + "end": 4186, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4167, + "end": 4187, + "name": "CALLDATALOAD", + "source": 16 + }, + { + "begin": 4158, + "end": 4187, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 4158, + "end": 4187, + "name": "POP", + "source": 16 + }, + { + "begin": 4196, + "end": 4229, + "name": "PUSH [tag]", + "source": 16, + "value": "353" + }, + { + "begin": 4223, + "end": 4228, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4196, + "end": 4229, + "name": "PUSH [tag]", + "source": 16, + "value": "280" + }, + { + "begin": 4196, + "end": 4229, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4196, + "end": 4229, + "name": "tag", + "source": 16, + "value": "353" + }, + { + "begin": 4196, + "end": 4229, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4096, + "end": 4235, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 4096, + "end": 4235, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 4096, + "end": 4235, + "name": "POP", + "source": 16 + }, + { + "begin": 4096, + "end": 4235, + "name": "POP", + "source": 16 + }, + { + "begin": 4096, + "end": 4235, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4241, + "end": 4570, + "name": "tag", + "source": 16, + "value": "54" + }, + { + "begin": 4241, + "end": 4570, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4300, + "end": 4306, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4349, + "end": 4351, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 4337, + "end": 4346, + "name": "DUP3", + "source": 16 + }, + { + "begin": 4328, + "end": 4335, + "name": "DUP5", + "source": 16 + }, + { + "begin": 4324, + "end": 4347, + "name": "SUB", + "source": 16 + }, + { + "begin": 4320, + "end": 4352, + "name": "SLT", + "source": 16 + }, + { + "begin": 4317, + "end": 4436, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 4317, + "end": 4436, + "name": "PUSH [tag]", + "source": 16, + "value": "355" + }, + { + "begin": 4317, + "end": 4436, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 4355, + "end": 4434, + "name": "PUSH [tag]", + "source": 16, + "value": "356" + }, + { + "begin": 4355, + "end": 4434, + "name": "PUSH [tag]", + "source": 16, + "value": "264" + }, + { + "begin": 4355, + "end": 4434, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4355, + "end": 4434, + "name": "tag", + "source": 16, + "value": "356" + }, + { + "begin": 4355, + "end": 4434, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4317, + "end": 4436, + "name": "tag", + "source": 16, + "value": "355" + }, + { + "begin": 4317, + "end": 4436, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4475, + "end": 4476, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4500, + "end": 4553, + "name": "PUSH [tag]", + "source": 16, + "value": "357" + }, + { + "begin": 4545, + "end": 4552, + "name": "DUP5", + "source": 16 + }, + { + "begin": 4536, + "end": 4542, + "name": "DUP3", + "source": 16 + }, + { + "begin": 4525, + "end": 4534, + "name": "DUP6", + "source": 16 + }, + { + "begin": 4521, + "end": 4543, + "name": "ADD", + "source": 16 + }, + { + "begin": 4500, + "end": 4553, + "name": "PUSH [tag]", + "source": 16, + "value": "281" + }, + { + "begin": 4500, + "end": 4553, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4500, + "end": 4553, + "name": "tag", + "source": 16, + "value": "357" + }, + { + "begin": 4500, + "end": 4553, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4490, + "end": 4553, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 4490, + "end": 4553, + "name": "POP", + "source": 16 + }, + { + "begin": 4446, + "end": 4563, + "name": "POP", + "source": 16 + }, + { + "begin": 4241, + "end": 4570, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 4241, + "end": 4570, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 4241, + "end": 4570, + "name": "POP", + "source": 16 + }, + { + "begin": 4241, + "end": 4570, + "name": "POP", + "source": 16 + }, + { + "begin": 4241, + "end": 4570, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4576, + "end": 4694, + "name": "tag", + "source": 16, + "value": "282" + }, + { + "begin": 4576, + "end": 4694, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4663, + "end": 4687, + "name": "PUSH [tag]", + "source": 16, + "value": "359" + }, + { + "begin": 4681, + "end": 4686, + "name": "DUP2", + "source": 16 + }, + { + "begin": 4663, + "end": 4687, + "name": "PUSH [tag]", + "source": 16, + "value": "279" + }, + { + "begin": 4663, + "end": 4687, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4663, + "end": 4687, + "name": "tag", + "source": 16, + "value": "359" + }, + { + "begin": 4663, + "end": 4687, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4658, + "end": 4661, + "name": "DUP3", + "source": 16 + }, + { + "begin": 4651, + "end": 4688, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 4576, + "end": 4694, + "name": "POP", + "source": 16 + }, + { + "begin": 4576, + "end": 4694, + "name": "POP", + "source": 16 + }, + { + "begin": 4576, + "end": 4694, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4700, + "end": 4922, + "name": "tag", + "source": 16, + "value": "57" + }, + { + "begin": 4700, + "end": 4922, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4793, + "end": 4797, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4831, + "end": 4833, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 4820, + "end": 4829, + "name": "DUP3", + "source": 16 + }, + { + "begin": 4816, + "end": 4834, + "name": "ADD", + "source": 16 + }, + { + "begin": 4808, + "end": 4834, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 4808, + "end": 4834, + "name": "POP", + "source": 16 + }, + { + "begin": 4844, + "end": 4915, + "name": "PUSH [tag]", + "source": 16, + "value": "361" + }, + { + "begin": 4912, + "end": 4913, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 4901, + "end": 4910, + "name": "DUP4", + "source": 16 + }, + { + "begin": 4897, + "end": 4914, + "name": "ADD", + "source": 16 + }, + { + "begin": 4888, + "end": 4894, + "name": "DUP5", + "source": 16 + }, + { + "begin": 4844, + "end": 4915, + "name": "PUSH [tag]", + "source": 16, + "value": "282" + }, + { + "begin": 4844, + "end": 4915, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4844, + "end": 4915, + "name": "tag", + "source": 16, + "value": "361" + }, + { + "begin": 4844, + "end": 4915, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4700, + "end": 4922, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 4700, + "end": 4922, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 4700, + "end": 4922, + "name": "POP", + "source": 16 + }, + { + "begin": 4700, + "end": 4922, + "name": "POP", + "source": 16 + }, + { + "begin": 4700, + "end": 4922, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 4928, + "end": 5402, + "name": "tag", + "source": 16, + "value": "70" + }, + { + "begin": 4928, + "end": 5402, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 4996, + "end": 5002, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5004, + "end": 5010, + "name": "DUP1", + "source": 16 + }, + { + "begin": 5053, + "end": 5055, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 5041, + "end": 5050, + "name": "DUP4", + "source": 16 + }, + { + "begin": 5032, + "end": 5039, + "name": "DUP6", + "source": 16 + }, + { + "begin": 5028, + "end": 5051, + "name": "SUB", + "source": 16 + }, + { + "begin": 5024, + "end": 5056, + "name": "SLT", + "source": 16 + }, + { + "begin": 5021, + "end": 5140, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 5021, + "end": 5140, + "name": "PUSH [tag]", + "source": 16, + "value": "363" + }, + { + "begin": 5021, + "end": 5140, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 5059, + "end": 5138, + "name": "PUSH [tag]", + "source": 16, + "value": "364" + }, + { + "begin": 5059, + "end": 5138, + "name": "PUSH [tag]", + "source": 16, + "value": "264" + }, + { + "begin": 5059, + "end": 5138, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5059, + "end": 5138, + "name": "tag", + "source": 16, + "value": "364" + }, + { + "begin": 5059, + "end": 5138, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5021, + "end": 5140, + "name": "tag", + "source": 16, + "value": "363" + }, + { + "begin": 5021, + "end": 5140, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5179, + "end": 5180, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5204, + "end": 5257, + "name": "PUSH [tag]", + "source": 16, + "value": "365" + }, + { + "begin": 5249, + "end": 5256, + "name": "DUP6", + "source": 16 + }, + { + "begin": 5240, + "end": 5246, + "name": "DUP3", + "source": 16 + }, + { + "begin": 5229, + "end": 5238, + "name": "DUP7", + "source": 16 + }, + { + "begin": 5225, + "end": 5247, + "name": "ADD", + "source": 16 + }, + { + "begin": 5204, + "end": 5257, + "name": "PUSH [tag]", + "source": 16, + "value": "281" + }, + { + "begin": 5204, + "end": 5257, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5204, + "end": 5257, + "name": "tag", + "source": 16, + "value": "365" + }, + { + "begin": 5204, + "end": 5257, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5194, + "end": 5257, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 5194, + "end": 5257, + "name": "POP", + "source": 16 + }, + { + "begin": 5150, + "end": 5267, + "name": "POP", + "source": 16 + }, + { + "begin": 5306, + "end": 5308, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 5332, + "end": 5385, + "name": "PUSH [tag]", + "source": 16, + "value": "366" + }, + { + "begin": 5377, + "end": 5384, + "name": "DUP6", + "source": 16 + }, + { + "begin": 5368, + "end": 5374, + "name": "DUP3", + "source": 16 + }, + { + "begin": 5357, + "end": 5366, + "name": "DUP7", + "source": 16 + }, + { + "begin": 5353, + "end": 5375, + "name": "ADD", + "source": 16 + }, + { + "begin": 5332, + "end": 5385, + "name": "PUSH [tag]", + "source": 16, + "value": "274" + }, + { + "begin": 5332, + "end": 5385, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5332, + "end": 5385, + "name": "tag", + "source": 16, + "value": "366" + }, + { + "begin": 5332, + "end": 5385, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5322, + "end": 5385, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 5322, + "end": 5385, + "name": "POP", + "source": 16 + }, + { + "begin": 5277, + "end": 5395, + "name": "POP", + "source": 16 + }, + { + "begin": 4928, + "end": 5402, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 4928, + "end": 5402, + "name": "POP", + "source": 16 + }, + { + "begin": 4928, + "end": 5402, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 4928, + "end": 5402, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 4928, + "end": 5402, + "name": "POP", + "source": 16 + }, + { + "begin": 4928, + "end": 5402, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5408, + "end": 5526, + "name": "tag", + "source": 16, + "value": "283" + }, + { + "begin": 5408, + "end": 5526, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5495, + "end": 5519, + "name": "PUSH [tag]", + "source": 16, + "value": "368" + }, + { + "begin": 5513, + "end": 5518, + "name": "DUP2", + "source": 16 + }, + { + "begin": 5495, + "end": 5519, + "name": "PUSH [tag]", + "source": 16, + "value": "272" + }, + { + "begin": 5495, + "end": 5519, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5495, + "end": 5519, + "name": "tag", + "source": 16, + "value": "368" + }, + { + "begin": 5495, + "end": 5519, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5490, + "end": 5493, + "name": "DUP3", + "source": 16 + }, + { + "begin": 5483, + "end": 5520, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 5408, + "end": 5526, + "name": "POP", + "source": 16 + }, + { + "begin": 5408, + "end": 5526, + "name": "POP", + "source": 16 + }, + { + "begin": 5408, + "end": 5526, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5532, + "end": 5754, + "name": "tag", + "source": 16, + "value": "91" + }, + { + "begin": 5532, + "end": 5754, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5625, + "end": 5629, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5663, + "end": 5665, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 5652, + "end": 5661, + "name": "DUP3", + "source": 16 + }, + { + "begin": 5648, + "end": 5666, + "name": "ADD", + "source": 16 + }, + { + "begin": 5640, + "end": 5666, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 5640, + "end": 5666, + "name": "POP", + "source": 16 + }, + { + "begin": 5676, + "end": 5747, + "name": "PUSH [tag]", + "source": 16, + "value": "370" + }, + { + "begin": 5744, + "end": 5745, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5733, + "end": 5742, + "name": "DUP4", + "source": 16 + }, + { + "begin": 5729, + "end": 5746, + "name": "ADD", + "source": 16 + }, + { + "begin": 5720, + "end": 5726, + "name": "DUP5", + "source": 16 + }, + { + "begin": 5676, + "end": 5747, + "name": "PUSH [tag]", + "source": 16, + "value": "283" + }, + { + "begin": 5676, + "end": 5747, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5676, + "end": 5747, + "name": "tag", + "source": 16, + "value": "370" + }, + { + "begin": 5676, + "end": 5747, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5532, + "end": 5754, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 5532, + "end": 5754, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 5532, + "end": 5754, + "name": "POP", + "source": 16 + }, + { + "begin": 5532, + "end": 5754, + "name": "POP", + "source": 16 + }, + { + "begin": 5532, + "end": 5754, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5760, + "end": 5929, + "name": "tag", + "source": 16, + "value": "284" + }, + { + "begin": 5760, + "end": 5929, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 5844, + "end": 5855, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 5878, + "end": 5884, + "name": "DUP3", + "source": 16 + }, + { + "begin": 5873, + "end": 5876, + "name": "DUP3", + "source": 16 + }, + { + "begin": 5866, + "end": 5885, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 5918, + "end": 5922, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 5913, + "end": 5916, + "name": "DUP3", + "source": 16 + }, + { + "begin": 5909, + "end": 5923, + "name": "ADD", + "source": 16 + }, + { + "begin": 5894, + "end": 5923, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 5894, + "end": 5923, + "name": "POP", + "source": 16 + }, + { + "begin": 5760, + "end": 5929, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 5760, + "end": 5929, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 5760, + "end": 5929, + "name": "POP", + "source": 16 + }, + { + "begin": 5760, + "end": 5929, + "name": "POP", + "source": 16 + }, + { + "begin": 5760, + "end": 5929, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 5935, + "end": 6169, + "name": "tag", + "source": 16, + "value": "285" + }, + { + "begin": 5935, + "end": 6169, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6075, + "end": 6109, + "name": "PUSH", + "source": 16, + "value": "416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365" + }, + { + "begin": 6071, + "end": 6072, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 6063, + "end": 6069, + "name": "DUP3", + "source": 16 + }, + { + "begin": 6059, + "end": 6073, + "name": "ADD", + "source": 16 + }, + { + "begin": 6052, + "end": 6110, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 6144, + "end": 6161, + "name": "PUSH", + "source": 16, + "value": "20726F6C657320666F722073656C660000000000000000000000000000000000" + }, + { + "begin": 6139, + "end": 6141, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 6131, + "end": 6137, + "name": "DUP3", + "source": 16 + }, + { + "begin": 6127, + "end": 6142, + "name": "ADD", + "source": 16 + }, + { + "begin": 6120, + "end": 6162, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 5935, + "end": 6169, + "name": "POP", + "source": 16 + }, + { + "begin": 5935, + "end": 6169, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6175, + "end": 6541, + "name": "tag", + "source": 16, + "value": "286" + }, + { + "begin": 6175, + "end": 6541, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6317, + "end": 6320, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 6338, + "end": 6405, + "name": "PUSH [tag]", + "source": 16, + "value": "374" + }, + { + "begin": 6402, + "end": 6404, + "name": "PUSH", + "source": 16, + "value": "2F" + }, + { + "begin": 6397, + "end": 6400, + "name": "DUP4", + "source": 16 + }, + { + "begin": 6338, + "end": 6405, + "name": "PUSH [tag]", + "source": 16, + "value": "284" + }, + { + "begin": 6338, + "end": 6405, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6338, + "end": 6405, + "name": "tag", + "source": 16, + "value": "374" + }, + { + "begin": 6338, + "end": 6405, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6331, + "end": 6405, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 6331, + "end": 6405, + "name": "POP", + "source": 16 + }, + { + "begin": 6414, + "end": 6507, + "name": "PUSH [tag]", + "source": 16, + "value": "375" + }, + { + "begin": 6503, + "end": 6506, + "name": "DUP3", + "source": 16 + }, + { + "begin": 6414, + "end": 6507, + "name": "PUSH [tag]", + "source": 16, + "value": "285" + }, + { + "begin": 6414, + "end": 6507, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6414, + "end": 6507, + "name": "tag", + "source": 16, + "value": "375" + }, + { + "begin": 6414, + "end": 6507, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6532, + "end": 6534, + "name": "PUSH", + "source": 16, + "value": "40" + }, + { + "begin": 6527, + "end": 6530, + "name": "DUP3", + "source": 16 + }, + { + "begin": 6523, + "end": 6535, + "name": "ADD", + "source": 16 + }, + { + "begin": 6516, + "end": 6535, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 6516, + "end": 6535, + "name": "POP", + "source": 16 + }, + { + "begin": 6175, + "end": 6541, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 6175, + "end": 6541, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 6175, + "end": 6541, + "name": "POP", + "source": 16 + }, + { + "begin": 6175, + "end": 6541, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6547, + "end": 6966, + "name": "tag", + "source": 16, + "value": "158" + }, + { + "begin": 6547, + "end": 6966, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6713, + "end": 6717, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 6751, + "end": 6753, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 6740, + "end": 6749, + "name": "DUP3", + "source": 16 + }, + { + "begin": 6736, + "end": 6754, + "name": "ADD", + "source": 16 + }, + { + "begin": 6728, + "end": 6754, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 6728, + "end": 6754, + "name": "POP", + "source": 16 + }, + { + "begin": 6800, + "end": 6809, + "name": "DUP2", + "source": 16 + }, + { + "begin": 6794, + "end": 6798, + "name": "DUP2", + "source": 16 + }, + { + "begin": 6790, + "end": 6810, + "name": "SUB", + "source": 16 + }, + { + "begin": 6786, + "end": 6787, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 6775, + "end": 6784, + "name": "DUP4", + "source": 16 + }, + { + "begin": 6771, + "end": 6788, + "name": "ADD", + "source": 16 + }, + { + "begin": 6764, + "end": 6811, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 6828, + "end": 6959, + "name": "PUSH [tag]", + "source": 16, + "value": "377" + }, + { + "begin": 6954, + "end": 6958, + "name": "DUP2", + "source": 16 + }, + { + "begin": 6828, + "end": 6959, + "name": "PUSH [tag]", + "source": 16, + "value": "286" + }, + { + "begin": 6828, + "end": 6959, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6828, + "end": 6959, + "name": "tag", + "source": 16, + "value": "377" + }, + { + "begin": 6828, + "end": 6959, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 6820, + "end": 6959, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 6820, + "end": 6959, + "name": "POP", + "source": 16 + }, + { + "begin": 6547, + "end": 6966, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 6547, + "end": 6966, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 6547, + "end": 6966, + "name": "POP", + "source": 16 + }, + { + "begin": 6547, + "end": 6966, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 6972, + "end": 7152, + "name": "tag", + "source": 16, + "value": "201" + }, + { + "begin": 6972, + "end": 7152, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7020, + "end": 7097, + "name": "PUSH", + "source": 16, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 7017, + "end": 7018, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 7010, + "end": 7098, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 7117, + "end": 7121, + "name": "PUSH", + "source": 16, + "value": "32" + }, + { + "begin": 7114, + "end": 7115, + "name": "PUSH", + "source": 16, + "value": "4" + }, + { + "begin": 7107, + "end": 7122, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 7141, + "end": 7145, + "name": "PUSH", + "source": 16, + "value": "24" + }, + { + "begin": 7138, + "end": 7139, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 7131, + "end": 7146, + "name": "REVERT", + "source": 16 + }, + { + "begin": 7158, + "end": 7306, + "name": "tag", + "source": 16, + "value": "287" + }, + { + "begin": 7158, + "end": 7306, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7260, + "end": 7271, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 7297, + "end": 7300, + "name": "DUP2", + "source": 16 + }, + { + "begin": 7282, + "end": 7300, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 7282, + "end": 7300, + "name": "POP", + "source": 16 + }, + { + "begin": 7158, + "end": 7306, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 7158, + "end": 7306, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 7158, + "end": 7306, + "name": "POP", + "source": 16 + }, + { + "begin": 7158, + "end": 7306, + "name": "POP", + "source": 16 + }, + { + "begin": 7158, + "end": 7306, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7312, + "end": 7485, + "name": "tag", + "source": 16, + "value": "288" + }, + { + "begin": 7312, + "end": 7485, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7452, + "end": 7477, + "name": "PUSH", + "source": 16, + "value": "416363657373436F6E74726F6C3A206163636F756E7420000000000000000000" + }, + { + "begin": 7448, + "end": 7449, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 7440, + "end": 7446, + "name": "DUP3", + "source": 16 + }, + { + "begin": 7436, + "end": 7450, + "name": "ADD", + "source": 16 + }, + { + "begin": 7429, + "end": 7478, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 7312, + "end": 7485, + "name": "POP", + "source": 16 + }, + { + "begin": 7312, + "end": 7485, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7491, + "end": 7893, + "name": "tag", + "source": 16, + "value": "289" + }, + { + "begin": 7491, + "end": 7893, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7651, + "end": 7654, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 7672, + "end": 7757, + "name": "PUSH [tag]", + "source": 16, + "value": "382" + }, + { + "begin": 7754, + "end": 7756, + "name": "PUSH", + "source": 16, + "value": "17" + }, + { + "begin": 7749, + "end": 7752, + "name": "DUP4", + "source": 16 + }, + { + "begin": 7672, + "end": 7757, + "name": "PUSH [tag]", + "source": 16, + "value": "287" + }, + { + "begin": 7672, + "end": 7757, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7672, + "end": 7757, + "name": "tag", + "source": 16, + "value": "382" + }, + { + "begin": 7672, + "end": 7757, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7665, + "end": 7757, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 7665, + "end": 7757, + "name": "POP", + "source": 16 + }, + { + "begin": 7766, + "end": 7859, + "name": "PUSH [tag]", + "source": 16, + "value": "383" + }, + { + "begin": 7855, + "end": 7858, + "name": "DUP3", + "source": 16 + }, + { + "begin": 7766, + "end": 7859, + "name": "PUSH [tag]", + "source": 16, + "value": "288" + }, + { + "begin": 7766, + "end": 7859, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7766, + "end": 7859, + "name": "tag", + "source": 16, + "value": "383" + }, + { + "begin": 7766, + "end": 7859, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7884, + "end": 7886, + "name": "PUSH", + "source": 16, + "value": "17" + }, + { + "begin": 7879, + "end": 7882, + "name": "DUP3", + "source": 16 + }, + { + "begin": 7875, + "end": 7887, + "name": "ADD", + "source": 16 + }, + { + "begin": 7868, + "end": 7887, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 7868, + "end": 7887, + "name": "POP", + "source": 16 + }, + { + "begin": 7491, + "end": 7893, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 7491, + "end": 7893, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 7491, + "end": 7893, + "name": "POP", + "source": 16 + }, + { + "begin": 7491, + "end": 7893, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 7899, + "end": 7998, + "name": "tag", + "source": 16, + "value": "290" + }, + { + "begin": 7899, + "end": 7998, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 7951, + "end": 7957, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 7985, + "end": 7990, + "name": "DUP2", + "source": 16 + }, + { + "begin": 7979, + "end": 7991, + "name": "MLOAD", + "source": 16 + }, + { + "begin": 7969, + "end": 7991, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 7969, + "end": 7991, + "name": "POP", + "source": 16 + }, + { + "begin": 7899, + "end": 7998, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 7899, + "end": 7998, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 7899, + "end": 7998, + "name": "POP", + "source": 16 + }, + { + "begin": 7899, + "end": 7998, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8004, + "end": 8250, + "name": "tag", + "source": 16, + "value": "291" + }, + { + "begin": 8004, + "end": 8250, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8085, + "end": 8086, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 8095, + "end": 8208, + "name": "tag", + "source": 16, + "value": "386" + }, + { + "begin": 8095, + "end": 8208, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8109, + "end": 8115, + "name": "DUP4", + "source": 16 + }, + { + "begin": 8106, + "end": 8107, + "name": "DUP2", + "source": 16 + }, + { + "begin": 8103, + "end": 8116, + "name": "LT", + "source": 16 + }, + { + "begin": 8095, + "end": 8208, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 8095, + "end": 8208, + "name": "PUSH [tag]", + "source": 16, + "value": "388" + }, + { + "begin": 8095, + "end": 8208, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 8194, + "end": 8195, + "name": "DUP1", + "source": 16 + }, + { + "begin": 8189, + "end": 8192, + "name": "DUP3", + "source": 16 + }, + { + "begin": 8185, + "end": 8196, + "name": "ADD", + "source": 16 + }, + { + "begin": 8179, + "end": 8197, + "name": "MLOAD", + "source": 16 + }, + { + "begin": 8175, + "end": 8176, + "name": "DUP2", + "source": 16 + }, + { + "begin": 8170, + "end": 8173, + "name": "DUP5", + "source": 16 + }, + { + "begin": 8166, + "end": 8177, + "name": "ADD", + "source": 16 + }, + { + "begin": 8159, + "end": 8198, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 8131, + "end": 8133, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 8128, + "end": 8129, + "name": "DUP2", + "source": 16 + }, + { + "begin": 8124, + "end": 8134, + "name": "ADD", + "source": 16 + }, + { + "begin": 8119, + "end": 8134, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 8119, + "end": 8134, + "name": "POP", + "source": 16 + }, + { + "begin": 8095, + "end": 8208, + "name": "PUSH [tag]", + "source": 16, + "value": "386" + }, + { + "begin": 8095, + "end": 8208, + "name": "JUMP", + "source": 16 + }, + { + "begin": 8095, + "end": 8208, + "name": "tag", + "source": 16, + "value": "388" + }, + { + "begin": 8095, + "end": 8208, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8242, + "end": 8243, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 8233, + "end": 8239, + "name": "DUP5", + "source": 16 + }, + { + "begin": 8228, + "end": 8231, + "name": "DUP5", + "source": 16 + }, + { + "begin": 8224, + "end": 8240, + "name": "ADD", + "source": 16 + }, + { + "begin": 8217, + "end": 8244, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 8066, + "end": 8250, + "name": "POP", + "source": 16 + }, + { + "begin": 8004, + "end": 8250, + "name": "POP", + "source": 16 + }, + { + "begin": 8004, + "end": 8250, + "name": "POP", + "source": 16 + }, + { + "begin": 8004, + "end": 8250, + "name": "POP", + "source": 16 + }, + { + "begin": 8004, + "end": 8250, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8256, + "end": 8646, + "name": "tag", + "source": 16, + "value": "292" + }, + { + "begin": 8256, + "end": 8646, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8362, + "end": 8365, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 8390, + "end": 8429, + "name": "PUSH [tag]", + "source": 16, + "value": "390" + }, + { + "begin": 8423, + "end": 8428, + "name": "DUP3", + "source": 16 + }, + { + "begin": 8390, + "end": 8429, + "name": "PUSH [tag]", + "source": 16, + "value": "290" + }, + { + "begin": 8390, + "end": 8429, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8390, + "end": 8429, + "name": "tag", + "source": 16, + "value": "390" + }, + { + "begin": 8390, + "end": 8429, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8445, + "end": 8534, + "name": "PUSH [tag]", + "source": 16, + "value": "391" + }, + { + "begin": 8527, + "end": 8533, + "name": "DUP2", + "source": 16 + }, + { + "begin": 8522, + "end": 8525, + "name": "DUP6", + "source": 16 + }, + { + "begin": 8445, + "end": 8534, + "name": "PUSH [tag]", + "source": 16, + "value": "287" + }, + { + "begin": 8445, + "end": 8534, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8445, + "end": 8534, + "name": "tag", + "source": 16, + "value": "391" + }, + { + "begin": 8445, + "end": 8534, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8438, + "end": 8534, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 8438, + "end": 8534, + "name": "POP", + "source": 16 + }, + { + "begin": 8543, + "end": 8608, + "name": "PUSH [tag]", + "source": 16, + "value": "392" + }, + { + "begin": 8601, + "end": 8607, + "name": "DUP2", + "source": 16 + }, + { + "begin": 8596, + "end": 8599, + "name": "DUP6", + "source": 16 + }, + { + "begin": 8589, + "end": 8593, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 8582, + "end": 8587, + "name": "DUP7", + "source": 16 + }, + { + "begin": 8578, + "end": 8594, + "name": "ADD", + "source": 16 + }, + { + "begin": 8543, + "end": 8608, + "name": "PUSH [tag]", + "source": 16, + "value": "291" + }, + { + "begin": 8543, + "end": 8608, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8543, + "end": 8608, + "name": "tag", + "source": 16, + "value": "392" + }, + { + "begin": 8543, + "end": 8608, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8633, + "end": 8639, + "name": "DUP1", + "source": 16 + }, + { + "begin": 8628, + "end": 8631, + "name": "DUP5", + "source": 16 + }, + { + "begin": 8624, + "end": 8640, + "name": "ADD", + "source": 16 + }, + { + "begin": 8617, + "end": 8640, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 8617, + "end": 8640, + "name": "POP", + "source": 16 + }, + { + "begin": 8366, + "end": 8646, + "name": "POP", + "source": 16 + }, + { + "begin": 8256, + "end": 8646, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 8256, + "end": 8646, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 8256, + "end": 8646, + "name": "POP", + "source": 16 + }, + { + "begin": 8256, + "end": 8646, + "name": "POP", + "source": 16 + }, + { + "begin": 8256, + "end": 8646, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8652, + "end": 8819, + "name": "tag", + "source": 16, + "value": "293" + }, + { + "begin": 8652, + "end": 8819, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8792, + "end": 8811, + "name": "PUSH", + "source": 16, + "value": "206973206D697373696E6720726F6C6520000000000000000000000000000000" + }, + { + "begin": 8788, + "end": 8789, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 8780, + "end": 8786, + "name": "DUP3", + "source": 16 + }, + { + "begin": 8776, + "end": 8790, + "name": "ADD", + "source": 16 + }, + { + "begin": 8769, + "end": 8812, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 8652, + "end": 8819, + "name": "POP", + "source": 16 + }, + { + "begin": 8652, + "end": 8819, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 8825, + "end": 9227, + "name": "tag", + "source": 16, + "value": "294" + }, + { + "begin": 8825, + "end": 9227, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8985, + "end": 8988, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 9006, + "end": 9091, + "name": "PUSH [tag]", + "source": 16, + "value": "395" + }, + { + "begin": 9088, + "end": 9090, + "name": "PUSH", + "source": 16, + "value": "11" + }, + { + "begin": 9083, + "end": 9086, + "name": "DUP4", + "source": 16 + }, + { + "begin": 9006, + "end": 9091, + "name": "PUSH [tag]", + "source": 16, + "value": "287" + }, + { + "begin": 9006, + "end": 9091, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9006, + "end": 9091, + "name": "tag", + "source": 16, + "value": "395" + }, + { + "begin": 9006, + "end": 9091, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 8999, + "end": 9091, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 8999, + "end": 9091, + "name": "POP", + "source": 16 + }, + { + "begin": 9100, + "end": 9193, + "name": "PUSH [tag]", + "source": 16, + "value": "396" + }, + { + "begin": 9189, + "end": 9192, + "name": "DUP3", + "source": 16 + }, + { + "begin": 9100, + "end": 9193, + "name": "PUSH [tag]", + "source": 16, + "value": "293" + }, + { + "begin": 9100, + "end": 9193, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9100, + "end": 9193, + "name": "tag", + "source": 16, + "value": "396" + }, + { + "begin": 9100, + "end": 9193, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9218, + "end": 9220, + "name": "PUSH", + "source": 16, + "value": "11" + }, + { + "begin": 9213, + "end": 9216, + "name": "DUP3", + "source": 16 + }, + { + "begin": 9209, + "end": 9221, + "name": "ADD", + "source": 16 + }, + { + "begin": 9202, + "end": 9221, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 9202, + "end": 9221, + "name": "POP", + "source": 16 + }, + { + "begin": 8825, + "end": 9227, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 8825, + "end": 9227, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 8825, + "end": 9227, + "name": "POP", + "source": 16 + }, + { + "begin": 8825, + "end": 9227, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9233, + "end": 10200, + "name": "tag", + "source": 16, + "value": "231" + }, + { + "begin": 9233, + "end": 10200, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9615, + "end": 9618, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 9637, + "end": 9785, + "name": "PUSH [tag]", + "source": 16, + "value": "398" + }, + { + "begin": 9781, + "end": 9784, + "name": "DUP3", + "source": 16 + }, + { + "begin": 9637, + "end": 9785, + "name": "PUSH [tag]", + "source": 16, + "value": "289" + }, + { + "begin": 9637, + "end": 9785, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9637, + "end": 9785, + "name": "tag", + "source": 16, + "value": "398" + }, + { + "begin": 9637, + "end": 9785, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9630, + "end": 9785, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 9630, + "end": 9785, + "name": "POP", + "source": 16 + }, + { + "begin": 9802, + "end": 9897, + "name": "PUSH [tag]", + "source": 16, + "value": "399" + }, + { + "begin": 9893, + "end": 9896, + "name": "DUP3", + "source": 16 + }, + { + "begin": 9884, + "end": 9890, + "name": "DUP6", + "source": 16 + }, + { + "begin": 9802, + "end": 9897, + "name": "PUSH [tag]", + "source": 16, + "value": "292" + }, + { + "begin": 9802, + "end": 9897, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9802, + "end": 9897, + "name": "tag", + "source": 16, + "value": "399" + }, + { + "begin": 9802, + "end": 9897, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9795, + "end": 9897, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 9795, + "end": 9897, + "name": "POP", + "source": 16 + }, + { + "begin": 9914, + "end": 10062, + "name": "PUSH [tag]", + "source": 16, + "value": "400" + }, + { + "begin": 10058, + "end": 10061, + "name": "DUP3", + "source": 16 + }, + { + "begin": 9914, + "end": 10062, + "name": "PUSH [tag]", + "source": 16, + "value": "294" + }, + { + "begin": 9914, + "end": 10062, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 9914, + "end": 10062, + "name": "tag", + "source": 16, + "value": "400" + }, + { + "begin": 9914, + "end": 10062, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 9907, + "end": 10062, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 9907, + "end": 10062, + "name": "POP", + "source": 16 + }, + { + "begin": 10079, + "end": 10174, + "name": "PUSH [tag]", + "source": 16, + "value": "401" + }, + { + "begin": 10170, + "end": 10173, + "name": "DUP3", + "source": 16 + }, + { + "begin": 10161, + "end": 10167, + "name": "DUP5", + "source": 16 + }, + { + "begin": 10079, + "end": 10174, + "name": "PUSH [tag]", + "source": 16, + "value": "292" + }, + { + "begin": 10079, + "end": 10174, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10079, + "end": 10174, + "name": "tag", + "source": 16, + "value": "401" + }, + { + "begin": 10079, + "end": 10174, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10072, + "end": 10174, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 10072, + "end": 10174, + "name": "POP", + "source": 16 + }, + { + "begin": 10191, + "end": 10194, + "name": "DUP2", + "source": 16 + }, + { + "begin": 10184, + "end": 10194, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 10184, + "end": 10194, + "name": "POP", + "source": 16 + }, + { + "begin": 9233, + "end": 10200, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 9233, + "end": 10200, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 9233, + "end": 10200, + "name": "POP", + "source": 16 + }, + { + "begin": 9233, + "end": 10200, + "name": "POP", + "source": 16 + }, + { + "begin": 9233, + "end": 10200, + "name": "POP", + "source": 16 + }, + { + "begin": 9233, + "end": 10200, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10206, + "end": 10308, + "name": "tag", + "source": 16, + "value": "295" + }, + { + "begin": 10206, + "end": 10308, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10247, + "end": 10253, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 10298, + "end": 10300, + "name": "PUSH", + "source": 16, + "value": "1F" + }, + { + "begin": 10294, + "end": 10301, + "name": "NOT", + "source": 16 + }, + { + "begin": 10289, + "end": 10291, + "name": "PUSH", + "source": 16, + "value": "1F" + }, + { + "begin": 10282, + "end": 10287, + "name": "DUP4", + "source": 16 + }, + { + "begin": 10278, + "end": 10292, + "name": "ADD", + "source": 16 + }, + { + "begin": 10274, + "end": 10302, + "name": "AND", + "source": 16 + }, + { + "begin": 10264, + "end": 10302, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 10264, + "end": 10302, + "name": "POP", + "source": 16 + }, + { + "begin": 10206, + "end": 10308, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 10206, + "end": 10308, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 10206, + "end": 10308, + "name": "POP", + "source": 16 + }, + { + "begin": 10206, + "end": 10308, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10314, + "end": 10691, + "name": "tag", + "source": 16, + "value": "296" + }, + { + "begin": 10314, + "end": 10691, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10402, + "end": 10405, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 10430, + "end": 10469, + "name": "PUSH [tag]", + "source": 16, + "value": "404" + }, + { + "begin": 10463, + "end": 10468, + "name": "DUP3", + "source": 16 + }, + { + "begin": 10430, + "end": 10469, + "name": "PUSH [tag]", + "source": 16, + "value": "290" + }, + { + "begin": 10430, + "end": 10469, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10430, + "end": 10469, + "name": "tag", + "source": 16, + "value": "404" + }, + { + "begin": 10430, + "end": 10469, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10485, + "end": 10556, + "name": "PUSH [tag]", + "source": 16, + "value": "405" + }, + { + "begin": 10549, + "end": 10555, + "name": "DUP2", + "source": 16 + }, + { + "begin": 10544, + "end": 10547, + "name": "DUP6", + "source": 16 + }, + { + "begin": 10485, + "end": 10556, + "name": "PUSH [tag]", + "source": 16, + "value": "284" + }, + { + "begin": 10485, + "end": 10556, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10485, + "end": 10556, + "name": "tag", + "source": 16, + "value": "405" + }, + { + "begin": 10485, + "end": 10556, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10478, + "end": 10556, + "name": "SWAP4", + "source": 16 + }, + { + "begin": 10478, + "end": 10556, + "name": "POP", + "source": 16 + }, + { + "begin": 10565, + "end": 10630, + "name": "PUSH [tag]", + "source": 16, + "value": "406" + }, + { + "begin": 10623, + "end": 10629, + "name": "DUP2", + "source": 16 + }, + { + "begin": 10618, + "end": 10621, + "name": "DUP6", + "source": 16 + }, + { + "begin": 10611, + "end": 10615, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 10604, + "end": 10609, + "name": "DUP7", + "source": 16 + }, + { + "begin": 10600, + "end": 10616, + "name": "ADD", + "source": 16 + }, + { + "begin": 10565, + "end": 10630, + "name": "PUSH [tag]", + "source": 16, + "value": "291" + }, + { + "begin": 10565, + "end": 10630, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10565, + "end": 10630, + "name": "tag", + "source": 16, + "value": "406" + }, + { + "begin": 10565, + "end": 10630, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10655, + "end": 10684, + "name": "PUSH [tag]", + "source": 16, + "value": "407" + }, + { + "begin": 10677, + "end": 10683, + "name": "DUP2", + "source": 16 + }, + { + "begin": 10655, + "end": 10684, + "name": "PUSH [tag]", + "source": 16, + "value": "295" + }, + { + "begin": 10655, + "end": 10684, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10655, + "end": 10684, + "name": "tag", + "source": 16, + "value": "407" + }, + { + "begin": 10655, + "end": 10684, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10650, + "end": 10653, + "name": "DUP5", + "source": 16 + }, + { + "begin": 10646, + "end": 10685, + "name": "ADD", + "source": 16 + }, + { + "begin": 10639, + "end": 10685, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 10639, + "end": 10685, + "name": "POP", + "source": 16 + }, + { + "begin": 10406, + "end": 10691, + "name": "POP", + "source": 16 + }, + { + "begin": 10314, + "end": 10691, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 10314, + "end": 10691, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 10314, + "end": 10691, + "name": "POP", + "source": 16 + }, + { + "begin": 10314, + "end": 10691, + "name": "POP", + "source": 16 + }, + { + "begin": 10314, + "end": 10691, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10697, + "end": 11010, + "name": "tag", + "source": 16, + "value": "233" + }, + { + "begin": 10697, + "end": 11010, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10810, + "end": 10814, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 10848, + "end": 10850, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 10837, + "end": 10846, + "name": "DUP3", + "source": 16 + }, + { + "begin": 10833, + "end": 10851, + "name": "ADD", + "source": 16 + }, + { + "begin": 10825, + "end": 10851, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 10825, + "end": 10851, + "name": "POP", + "source": 16 + }, + { + "begin": 10897, + "end": 10906, + "name": "DUP2", + "source": 16 + }, + { + "begin": 10891, + "end": 10895, + "name": "DUP2", + "source": 16 + }, + { + "begin": 10887, + "end": 10907, + "name": "SUB", + "source": 16 + }, + { + "begin": 10883, + "end": 10884, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 10872, + "end": 10881, + "name": "DUP4", + "source": 16 + }, + { + "begin": 10868, + "end": 10885, + "name": "ADD", + "source": 16 + }, + { + "begin": 10861, + "end": 10908, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 10925, + "end": 11003, + "name": "PUSH [tag]", + "source": 16, + "value": "409" + }, + { + "begin": 10998, + "end": 11002, + "name": "DUP2", + "source": 16 + }, + { + "begin": 10989, + "end": 10995, + "name": "DUP5", + "source": 16 + }, + { + "begin": 10925, + "end": 11003, + "name": "PUSH [tag]", + "source": 16, + "value": "296" + }, + { + "begin": 10925, + "end": 11003, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 10925, + "end": 11003, + "name": "tag", + "source": 16, + "value": "409" + }, + { + "begin": 10925, + "end": 11003, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 10917, + "end": 11003, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 10917, + "end": 11003, + "name": "POP", + "source": 16 + }, + { + "begin": 10697, + "end": 11010, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 10697, + "end": 11010, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 10697, + "end": 11010, + "name": "POP", + "source": 16 + }, + { + "begin": 10697, + "end": 11010, + "name": "POP", + "source": 16 + }, + { + "begin": 10697, + "end": 11010, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11016, + "end": 11093, + "name": "tag", + "source": 16, + "value": "297" + }, + { + "begin": 11016, + "end": 11093, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11053, + "end": 11060, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 11082, + "end": 11087, + "name": "DUP2", + "source": 16 + }, + { + "begin": 11071, + "end": 11087, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 11071, + "end": 11087, + "name": "POP", + "source": 16 + }, + { + "begin": 11016, + "end": 11093, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 11016, + "end": 11093, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 11016, + "end": 11093, + "name": "POP", + "source": 16 + }, + { + "begin": 11016, + "end": 11093, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11099, + "end": 11279, + "name": "tag", + "source": 16, + "value": "298" + }, + { + "begin": 11099, + "end": 11279, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11147, + "end": 11224, + "name": "PUSH", + "source": 16, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 11144, + "end": 11145, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 11137, + "end": 11225, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 11244, + "end": 11248, + "name": "PUSH", + "source": 16, + "value": "11" + }, + { + "begin": 11241, + "end": 11242, + "name": "PUSH", + "source": 16, + "value": "4" + }, + { + "begin": 11234, + "end": 11249, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 11268, + "end": 11272, + "name": "PUSH", + "source": 16, + "value": "24" + }, + { + "begin": 11265, + "end": 11266, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 11258, + "end": 11273, + "name": "REVERT", + "source": 16 + }, + { + "begin": 11285, + "end": 11695, + "name": "tag", + "source": 16, + "value": "238" + }, + { + "begin": 11285, + "end": 11695, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11325, + "end": 11332, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 11348, + "end": 11368, + "name": "PUSH [tag]", + "source": 16, + "value": "413" + }, + { + "begin": 11366, + "end": 11367, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11348, + "end": 11368, + "name": "PUSH [tag]", + "source": 16, + "value": "297" + }, + { + "begin": 11348, + "end": 11368, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11348, + "end": 11368, + "name": "tag", + "source": 16, + "value": "413" + }, + { + "begin": 11348, + "end": 11368, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11343, + "end": 11368, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 11343, + "end": 11368, + "name": "POP", + "source": 16 + }, + { + "begin": 11382, + "end": 11402, + "name": "PUSH [tag]", + "source": 16, + "value": "414" + }, + { + "begin": 11400, + "end": 11401, + "name": "DUP4", + "source": 16 + }, + { + "begin": 11382, + "end": 11402, + "name": "PUSH [tag]", + "source": 16, + "value": "297" + }, + { + "begin": 11382, + "end": 11402, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11382, + "end": 11402, + "name": "tag", + "source": 16, + "value": "414" + }, + { + "begin": 11382, + "end": 11402, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11377, + "end": 11402, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 11377, + "end": 11402, + "name": "POP", + "source": 16 + }, + { + "begin": 11437, + "end": 11438, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11434, + "end": 11435, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11430, + "end": 11439, + "name": "MUL", + "source": 16 + }, + { + "begin": 11459, + "end": 11489, + "name": "PUSH [tag]", + "source": 16, + "value": "415" + }, + { + "begin": 11477, + "end": 11488, + "name": "DUP2", + "source": 16 + }, + { + "begin": 11459, + "end": 11489, + "name": "PUSH [tag]", + "source": 16, + "value": "297" + }, + { + "begin": 11459, + "end": 11489, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11459, + "end": 11489, + "name": "tag", + "source": 16, + "value": "415" + }, + { + "begin": 11459, + "end": 11489, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11448, + "end": 11489, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 11448, + "end": 11489, + "name": "POP", + "source": 16 + }, + { + "begin": 11638, + "end": 11639, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11629, + "end": 11636, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11625, + "end": 11640, + "name": "DIV", + "source": 16 + }, + { + "begin": 11622, + "end": 11623, + "name": "DUP5", + "source": 16 + }, + { + "begin": 11619, + "end": 11641, + "name": "EQ", + "source": 16 + }, + { + "begin": 11599, + "end": 11600, + "name": "DUP4", + "source": 16 + }, + { + "begin": 11592, + "end": 11601, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 11572, + "end": 11655, + "name": "OR", + "source": 16 + }, + { + "begin": 11549, + "end": 11688, + "name": "PUSH [tag]", + "source": 16, + "value": "416" + }, + { + "begin": 11549, + "end": 11688, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 11668, + "end": 11686, + "name": "PUSH [tag]", + "source": 16, + "value": "417" + }, + { + "begin": 11668, + "end": 11686, + "name": "PUSH [tag]", + "source": 16, + "value": "298" + }, + { + "begin": 11668, + "end": 11686, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11668, + "end": 11686, + "name": "tag", + "source": 16, + "value": "417" + }, + { + "begin": 11668, + "end": 11686, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11549, + "end": 11688, + "name": "tag", + "source": 16, + "value": "416" + }, + { + "begin": 11549, + "end": 11688, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11333, + "end": 11695, + "name": "POP", + "source": 16 + }, + { + "begin": 11285, + "end": 11695, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 11285, + "end": 11695, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 11285, + "end": 11695, + "name": "POP", + "source": 16 + }, + { + "begin": 11285, + "end": 11695, + "name": "POP", + "source": 16 + }, + { + "begin": 11285, + "end": 11695, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11701, + "end": 11892, + "name": "tag", + "source": 16, + "value": "240" + }, + { + "begin": 11701, + "end": 11892, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11741, + "end": 11744, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 11760, + "end": 11780, + "name": "PUSH [tag]", + "source": 16, + "value": "419" + }, + { + "begin": 11778, + "end": 11779, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11760, + "end": 11780, + "name": "PUSH [tag]", + "source": 16, + "value": "297" + }, + { + "begin": 11760, + "end": 11780, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11760, + "end": 11780, + "name": "tag", + "source": 16, + "value": "419" + }, + { + "begin": 11760, + "end": 11780, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11755, + "end": 11780, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 11755, + "end": 11780, + "name": "POP", + "source": 16 + }, + { + "begin": 11794, + "end": 11814, + "name": "PUSH [tag]", + "source": 16, + "value": "420" + }, + { + "begin": 11812, + "end": 11813, + "name": "DUP4", + "source": 16 + }, + { + "begin": 11794, + "end": 11814, + "name": "PUSH [tag]", + "source": 16, + "value": "297" + }, + { + "begin": 11794, + "end": 11814, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11794, + "end": 11814, + "name": "tag", + "source": 16, + "value": "420" + }, + { + "begin": 11794, + "end": 11814, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11789, + "end": 11814, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 11789, + "end": 11814, + "name": "POP", + "source": 16 + }, + { + "begin": 11837, + "end": 11838, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11834, + "end": 11835, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11830, + "end": 11839, + "name": "ADD", + "source": 16 + }, + { + "begin": 11823, + "end": 11839, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 11823, + "end": 11839, + "name": "POP", + "source": 16 + }, + { + "begin": 11858, + "end": 11861, + "name": "DUP1", + "source": 16 + }, + { + "begin": 11855, + "end": 11856, + "name": "DUP3", + "source": 16 + }, + { + "begin": 11852, + "end": 11862, + "name": "GT", + "source": 16 + }, + { + "begin": 11849, + "end": 11885, + "name": "ISZERO", + "source": 16 + }, + { + "begin": 11849, + "end": 11885, + "name": "PUSH [tag]", + "source": 16, + "value": "421" + }, + { + "begin": 11849, + "end": 11885, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 11865, + "end": 11883, + "name": "PUSH [tag]", + "source": 16, + "value": "422" + }, + { + "begin": 11865, + "end": 11883, + "name": "PUSH [tag]", + "source": 16, + "value": "298" + }, + { + "begin": 11865, + "end": 11883, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11865, + "end": 11883, + "name": "tag", + "source": 16, + "value": "422" + }, + { + "begin": 11865, + "end": 11883, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11849, + "end": 11885, + "name": "tag", + "source": 16, + "value": "421" + }, + { + "begin": 11849, + "end": 11885, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11701, + "end": 11892, + "name": "SWAP3", + "source": 16 + }, + { + "begin": 11701, + "end": 11892, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 11701, + "end": 11892, + "name": "POP", + "source": 16 + }, + { + "begin": 11701, + "end": 11892, + "name": "POP", + "source": 16 + }, + { + "begin": 11701, + "end": 11892, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 11898, + "end": 12078, + "name": "tag", + "source": 16, + "value": "243" + }, + { + "begin": 11898, + "end": 12078, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 11946, + "end": 12023, + "name": "PUSH", + "source": 16, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 11943, + "end": 11944, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 11936, + "end": 12024, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 12043, + "end": 12047, + "name": "PUSH", + "source": 16, + "value": "41" + }, + { + "begin": 12040, + "end": 12041, + "name": "PUSH", + "source": 16, + "value": "4" + }, + { + "begin": 12033, + "end": 12048, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 12067, + "end": 12071, + "name": "PUSH", + "source": 16, + "value": "24" + }, + { + "begin": 12064, + "end": 12065, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12057, + "end": 12072, + "name": "REVERT", + "source": 16 + }, + { + "begin": 12084, + "end": 12255, + "name": "tag", + "source": 16, + "value": "259" + }, + { + "begin": 12084, + "end": 12255, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12123, + "end": 12126, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12146, + "end": 12170, + "name": "PUSH [tag]", + "source": 16, + "value": "425" + }, + { + "begin": 12164, + "end": 12169, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12146, + "end": 12170, + "name": "PUSH [tag]", + "source": 16, + "value": "297" + }, + { + "begin": 12146, + "end": 12170, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12146, + "end": 12170, + "name": "tag", + "source": 16, + "value": "425" + }, + { + "begin": 12146, + "end": 12170, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12137, + "end": 12170, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 12137, + "end": 12170, + "name": "POP", + "source": 16 + }, + { + "begin": 12192, + "end": 12196, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12185, + "end": 12190, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12182, + "end": 12197, + "name": "SUB", + "source": 16 + }, + { + "begin": 12179, + "end": 12220, + "name": "PUSH [tag]", + "source": 16, + "value": "426" + }, + { + "begin": 12179, + "end": 12220, + "name": "JUMPI", + "source": 16 + }, + { + "begin": 12200, + "end": 12218, + "name": "PUSH [tag]", + "source": 16, + "value": "427" + }, + { + "begin": 12200, + "end": 12218, + "name": "PUSH [tag]", + "source": 16, + "value": "298" + }, + { + "begin": 12200, + "end": 12218, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12200, + "end": 12218, + "name": "tag", + "source": 16, + "value": "427" + }, + { + "begin": 12200, + "end": 12218, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12179, + "end": 12220, + "name": "tag", + "source": 16, + "value": "426" + }, + { + "begin": 12179, + "end": 12220, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12247, + "end": 12248, + "name": "PUSH", + "source": 16, + "value": "1" + }, + { + "begin": 12240, + "end": 12245, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12236, + "end": 12249, + "name": "SUB", + "source": 16 + }, + { + "begin": 12229, + "end": 12249, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12229, + "end": 12249, + "name": "POP", + "source": 16 + }, + { + "begin": 12084, + "end": 12255, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 12084, + "end": 12255, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12084, + "end": 12255, + "name": "POP", + "source": 16 + }, + { + "begin": 12084, + "end": 12255, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12261, + "end": 12443, + "name": "tag", + "source": 16, + "value": "299" + }, + { + "begin": 12261, + "end": 12443, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12401, + "end": 12435, + "name": "PUSH", + "source": 16, + "value": "537472696E67733A20686578206C656E67746820696E73756666696369656E74" + }, + { + "begin": 12397, + "end": 12398, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12389, + "end": 12395, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12385, + "end": 12399, + "name": "ADD", + "source": 16 + }, + { + "begin": 12378, + "end": 12436, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 12261, + "end": 12443, + "name": "POP", + "source": 16 + }, + { + "begin": 12261, + "end": 12443, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12449, + "end": 12815, + "name": "tag", + "source": 16, + "value": "300" + }, + { + "begin": 12449, + "end": 12815, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12591, + "end": 12594, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 12612, + "end": 12679, + "name": "PUSH [tag]", + "source": 16, + "value": "430" + }, + { + "begin": 12676, + "end": 12678, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 12671, + "end": 12674, + "name": "DUP4", + "source": 16 + }, + { + "begin": 12612, + "end": 12679, + "name": "PUSH [tag]", + "source": 16, + "value": "284" + }, + { + "begin": 12612, + "end": 12679, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12612, + "end": 12679, + "name": "tag", + "source": 16, + "value": "430" + }, + { + "begin": 12612, + "end": 12679, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12605, + "end": 12679, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 12605, + "end": 12679, + "name": "POP", + "source": 16 + }, + { + "begin": 12688, + "end": 12781, + "name": "PUSH [tag]", + "source": 16, + "value": "431" + }, + { + "begin": 12777, + "end": 12780, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12688, + "end": 12781, + "name": "PUSH [tag]", + "source": 16, + "value": "299" + }, + { + "begin": 12688, + "end": 12781, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12688, + "end": 12781, + "name": "tag", + "source": 16, + "value": "431" + }, + { + "begin": 12688, + "end": 12781, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12806, + "end": 12808, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 12801, + "end": 12804, + "name": "DUP3", + "source": 16 + }, + { + "begin": 12797, + "end": 12809, + "name": "ADD", + "source": 16 + }, + { + "begin": 12790, + "end": 12809, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12790, + "end": 12809, + "name": "POP", + "source": 16 + }, + { + "begin": 12449, + "end": 12815, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 12449, + "end": 12815, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12449, + "end": 12815, + "name": "POP", + "source": 16 + }, + { + "begin": 12449, + "end": 12815, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 12821, + "end": 13240, + "name": "tag", + "source": 16, + "value": "262" + }, + { + "begin": 12821, + "end": 13240, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 12987, + "end": 12991, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 13025, + "end": 13027, + "name": "PUSH", + "source": 16, + "value": "20" + }, + { + "begin": 13014, + "end": 13023, + "name": "DUP3", + "source": 16 + }, + { + "begin": 13010, + "end": 13028, + "name": "ADD", + "source": 16 + }, + { + "begin": 13002, + "end": 13028, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 13002, + "end": 13028, + "name": "POP", + "source": 16 + }, + { + "begin": 13074, + "end": 13083, + "name": "DUP2", + "source": 16 + }, + { + "begin": 13068, + "end": 13072, + "name": "DUP2", + "source": 16 + }, + { + "begin": 13064, + "end": 13084, + "name": "SUB", + "source": 16 + }, + { + "begin": 13060, + "end": 13061, + "name": "PUSH", + "source": 16, + "value": "0" + }, + { + "begin": 13049, + "end": 13058, + "name": "DUP4", + "source": 16 + }, + { + "begin": 13045, + "end": 13062, + "name": "ADD", + "source": 16 + }, + { + "begin": 13038, + "end": 13085, + "name": "MSTORE", + "source": 16 + }, + { + "begin": 13102, + "end": 13233, + "name": "PUSH [tag]", + "source": 16, + "value": "433" + }, + { + "begin": 13228, + "end": 13232, + "name": "DUP2", + "source": 16 + }, + { + "begin": 13102, + "end": 13233, + "name": "PUSH [tag]", + "source": 16, + "value": "300" + }, + { + "begin": 13102, + "end": 13233, + "jumpType": "[in]", + "name": "JUMP", + "source": 16 + }, + { + "begin": 13102, + "end": 13233, + "name": "tag", + "source": 16, + "value": "433" + }, + { + "begin": 13102, + "end": 13233, + "name": "JUMPDEST", + "source": 16 + }, + { + "begin": 13094, + "end": 13233, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 13094, + "end": 13233, + "name": "POP", + "source": 16 + }, + { + "begin": 12821, + "end": 13240, + "name": "SWAP2", + "source": 16 + }, + { + "begin": 12821, + "end": 13240, + "name": "SWAP1", + "source": 16 + }, + { + "begin": 12821, + "end": 13240, + "name": "POP", + "source": 16 + }, + { + "begin": 12821, + "end": 13240, + "jumpType": "[out]", + "name": "JUMP", + "source": 16 + } + ] + } + }, + "sourceList": [ + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandler.sol", + "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol", + "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol", + "#utility.yul" + ] + }, + "methodIdentifiers": { + "ACCEPTED_TOKEN()": "fdbb219d", + "ADMIN()": "2a0acc6a", + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "DONATION_RECIPIENT()": "dcda7dad", + "FEE_RECEIVER()": "d3e78e4d", + "NATIVE()": "a0cf0aea", + "addAdmin(address[])": "3d0950a8", + "addDonationRecipient(address[])": "80c78f1c", + "addFeeReceiver(address[])": "9d082c98", + "addToken(address[])": "10881166", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "isAdmin(address)": "24d7806c", + "isDonationRecipient(address)": "fbfe3ab2", + "isFeeReceiver(address)": "b278110f", + "isTokenAccepted(address)": "0560bd96", + "removeAdmin(address[])": "ae876f61", + "removeDonationRecipient(address[])": "1037d18c", + "removeFeeReceiver(address[])": "2620d800", + "removeToken(address[])": "bf7cb70b", + "renounceRole(bytes32,address)": "36568abe", + "revokeAdmin()": "0d6aef04", + "revokeRole(bytes32,address)": "d547741f", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NotAdmin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFeeReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RecipientNotAccepted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenNotAccepted\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCEPTED_TOKEN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DONATION_RECIPIENT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE_RECEIVER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_admins\",\"type\":\"address[]\"}],\"name\":\"addAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_recipients\",\"type\":\"address[]\"}],\"name\":\"addDonationRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_feeReceiver\",\"type\":\"address[]\"}],\"name\":\"addFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_token\",\"type\":\"address[]\"}],\"name\":\"addToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"isDonationRecipient\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"isFeeReceiver\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"isTokenAccepted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_admins\",\"type\":\"address[]\"}],\"name\":\"removeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_recipients\",\"type\":\"address[]\"}],\"name\":\"removeDonationRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_feeReceiver\",\"type\":\"address[]\"}],\"name\":\"removeFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_token\",\"type\":\"address[]\"}],\"name\":\"removeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revokeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@Kurt for Giveth\",\"kind\":\"dev\",\"methods\":{\"addAdmin(address[])\":{\"params\":{\"_admins\":\"Array of addresses to assign to admin role.\"}},\"addDonationRecipient(address[])\":{\"params\":{\"_recipients\":\"Array of addresses to assign to donation recipient role.\"}},\"addFeeReceiver(address[])\":{\"params\":{\"_feeReceiver\":\"Array of addresses to assign to fee receiver role.\"}},\"addToken(address[])\":{\"params\":{\"_token\":\"Array of addresses to assign to accepted token role.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isAdmin(address)\":{\"params\":{\"_account\":\"The address to check.\"},\"returns\":{\"_0\":\"bool True if address is admin, false otherwise.\"}},\"isDonationRecipient(address)\":{\"params\":{\"_recipient\":\"The address to check.\"},\"returns\":{\"_0\":\"bool True if address is a donation recipient, false otherwise.\"}},\"isFeeReceiver(address)\":{\"params\":{\"_receiver\":\"The address to check.\"},\"returns\":{\"_0\":\"bool True if address is a fee receiver, false otherwise.\"}},\"isTokenAccepted(address)\":{\"params\":{\"_token\":\"The address to check.\"},\"returns\":{\"_0\":\"bool True if address is whitelisted, false otherwise.\"}},\"removeAdmin(address[])\":{\"params\":{\"_admins\":\"Array of addresses to remove from admin role.\"}},\"removeDonationRecipient(address[])\":{\"params\":{\"_recipients\":\"Array of addresses to remove from donation recipient role.\"}},\"removeFeeReceiver(address[])\":{\"params\":{\"_feeReceiver\":\"Array of addresses to remove from fee receiver role.\"}},\"removeToken(address[])\":{\"params\":{\"_token\":\"Array of addresses to remove from accepted token role.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"DonationHandlerRoles\",\"version\":1},\"userdoc\":{\"errors\":{\"NotAdmin()\":[{\"notice\":\"Throws if called by any account other than a admin.\"}],\"NotDefaultAdmin()\":[{\"notice\":\"Throws if called by any account other than a default admin.\"}],\"NotFeeReceiver()\":[{\"notice\":\"Throws if the sender is not a whitelisted fee receiver.\"}],\"RecipientNotAccepted()\":[{\"notice\":\"Throws if a donation recipient is not whitelisted.\"}],\"TokenNotAccepted()\":[{\"notice\":\"Throws if a token is not whitelisted.\"}]},\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"special address which represents the native network currency. address(0) is used by gitcoin.\"},\"addAdmin(address[])\":{\"notice\":\"Assigns addresses to admin role. Can only be called by an admin.\"},\"addDonationRecipient(address[])\":{\"notice\":\"Assigns addresses to donation recipient role. Can only be called by an admin.\"},\"addFeeReceiver(address[])\":{\"notice\":\"Assigns addresses to fee receiver role. Can only be called by an admin.\"},\"addToken(address[])\":{\"notice\":\"Assigns addresses to accepted token role. Can only be called by an admin.\"},\"isAdmin(address)\":{\"notice\":\"Wrapper function to check if an address is admin.\"},\"isDonationRecipient(address)\":{\"notice\":\"Wrapper function to check if an address is a donation recipient.\"},\"isFeeReceiver(address)\":{\"notice\":\"Wrapper function to check if an address is a fee receiver.\"},\"isTokenAccepted(address)\":{\"notice\":\"Wrapper function to check if an address is a whitelisted token.\"},\"removeAdmin(address[])\":{\"notice\":\"Removes addresses from admin role. Can only be called by default admin.\"},\"removeDonationRecipient(address[])\":{\"notice\":\"Removes addresses from donation recipient role. Can only be called by an admin.\"},\"removeFeeReceiver(address[])\":{\"notice\":\"Removes addresses from fee receiver role. Can only be called by an admin.\"},\"removeToken(address[])\":{\"notice\":\"Removes addresses from accepted token role. Can only be called by an admin.\"}},\"notice\":\"This contract defines the roles used by the DonationHandler contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":\"DonationHandlerRoles\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xe8f27a3e3e25067334e76799f03d4de6d8f8535c3fc4806468228a9ebd5de51a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://686aaf8725727d94b36c53baad3779e168b31e33eec8d39b41e282382617c626\",\"dweb:/ipfs/QmWVRwPpZyweGCw7uRj1rXQTmcwaXB5Ctz3KvpNJPtxDP8\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]},\"giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol\":{\"keccak256\":\"0x09aa18e8c7f0a7fec7f8ff09c30f916e1b0a9288aaaae56d78555d868a78f875\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56a3998b440ca886e5d6cc2c0954191210bd18dbe3a99e2bbcbc7564236b2098\",\"dweb:/ipfs/QmT1EFfSpbcAsAfyqNtkEy8pLKaFYXYTnyRuzQmJGLdKax\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 415, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol:DonationHandlerRoles", + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8" + }, + { + "astId": 418, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol:DonationHandlerRoles", + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool" + }, + { + "astId": 1370, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol:DonationHandlerRoles", + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage" + }, + { + "astId": 1589, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol:DonationHandlerRoles", + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage" + }, + { + "astId": 39, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol:DonationHandlerRoles", + "label": "_roles", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)" + }, + { + "astId": 334, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol:DonationHandlerRoles", + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "base": "t_uint256", + "encoding": "inplace", + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "base": "t_uint256", + "encoding": "inplace", + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32", + "value": "t_struct(RoleData)34_storage" + }, + "t_struct(RoleData)34_storage": { + "encoding": "inplace", + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "astId": 31, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol:DonationHandlerRoles", + "label": "members", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_address,t_bool)" + }, + { + "astId": 33, + "contract": "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol:DonationHandlerRoles", + "label": "adminRole", + "offset": 0, + "slot": "1", + "type": "t_bytes32" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "encoding": "inplace", + "label": "uint8", + "numberOfBytes": "1" + } + } + }, + "userdoc": { + "errors": { + "NotAdmin()": [ + { + "notice": "Throws if called by any account other than a admin." + } + ], + "NotDefaultAdmin()": [ + { + "notice": "Throws if called by any account other than a default admin." + } + ], + "NotFeeReceiver()": [ + { + "notice": "Throws if the sender is not a whitelisted fee receiver." + } + ], + "RecipientNotAccepted()": [ + { + "notice": "Throws if a donation recipient is not whitelisted." + } + ], + "TokenNotAccepted()": [ + { + "notice": "Throws if a token is not whitelisted." + } + ] + }, + "kind": "user", + "methods": { + "NATIVE()": { + "notice": "special address which represents the native network currency. address(0) is used by gitcoin." + }, + "addAdmin(address[])": { + "notice": "Assigns addresses to admin role. Can only be called by an admin." + }, + "addDonationRecipient(address[])": { + "notice": "Assigns addresses to donation recipient role. Can only be called by an admin." + }, + "addFeeReceiver(address[])": { + "notice": "Assigns addresses to fee receiver role. Can only be called by an admin." + }, + "addToken(address[])": { + "notice": "Assigns addresses to accepted token role. Can only be called by an admin." + }, + "isAdmin(address)": { + "notice": "Wrapper function to check if an address is admin." + }, + "isDonationRecipient(address)": { + "notice": "Wrapper function to check if an address is a donation recipient." + }, + "isFeeReceiver(address)": { + "notice": "Wrapper function to check if an address is a fee receiver." + }, + "isTokenAccepted(address)": { + "notice": "Wrapper function to check if an address is a whitelisted token." + }, + "removeAdmin(address[])": { + "notice": "Removes addresses from admin role. Can only be called by default admin." + }, + "removeDonationRecipient(address[])": { + "notice": "Removes addresses from donation recipient role. Can only be called by an admin." + }, + "removeFeeReceiver(address[])": { + "notice": "Removes addresses from fee receiver role. Can only be called by an admin." + }, + "removeToken(address[])": { + "notice": "Removes addresses from accepted token role. Can only be called by an admin." + } + }, + "notice": "This contract defines the roles used by the DonationHandler contract.", + "version": 1 + } + } + }, + "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol": { + "IVotingStrategy": { + "abi": [ + { + "inputs": [], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "roundAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "_encodedVotes", + "type": "bytes[]" + }, + { + "internalType": "address", + "name": "_voterAddress", + "type": "address" + } + ], + "name": "vote", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "vote(bytes[],address)": { + "details": "- allows contributor to do cast multiple votes which could be weighted. - should be invoked by RoundImplementation contract - ideally IVotingStrategy implementation should emit events after a vote is cast - this would be triggered when a voter casts their vote via grant explorer", + "params": { + "_encodedVotes": "encoded votes", + "_voterAddress": "voter address" + } + } + }, + "version": 1 + }, + "evm": { + "assembly": "", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "gasEstimates": null, + "legacyAssembly": null, + "methodIdentifiers": { + "init()": "e1c7392a", + "roundAddress()": "0b67d925", + "vote(bytes[],address)": "fc6d4e39" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"roundAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_encodedVotes\",\"type\":\"bytes[]\"},{\"internalType\":\"address\",\"name\":\"_voterAddress\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"vote(bytes[],address)\":{\"details\":\"- allows contributor to do cast multiple votes which could be weighted. - should be invoked by RoundImplementation contract - ideally IVotingStrategy implementation should emit events after a vote is cast - this would be triggered when a voter casts their vote via grant explorer\",\"params\":{\"_encodedVotes\":\"encoded votes\",\"_voterAddress\":\"voter address\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"init()\":{\"notice\":\"Invoked by RoundImplementation on creation to set the round for which the voting contracts is to be used\"},\"roundAddress()\":{\"notice\":\"Round address\"},\"vote(bytes[],address)\":{\"notice\":\"Invoked by RoundImplementation to allow voter to case vote for grants during a round.\"}},\"notice\":\"Defines the abstract contract for voting algorithms on grants within a round. Any new voting algorithm would be expected to extend this abstract contract. Every IVotingStrategy contract would be unique to RoundImplementation and would be deployed before creating a round\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":\"IVotingStrategy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"giveth/GIVfi/src/gitcoin/IVotingStrategy.sol\":{\"keccak256\":\"0x294e63ce1df9e00acd8969ec71323adeeb1b3598a2a97cf389364ff8cd445f88\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://6ae88b9a4e997a15afcd05a607e334a15751aeae7a5f20e5c51c4dfb75078dca\",\"dweb:/ipfs/QmW1YGotPJ3AG3dUtLfC8XSAF5nPHjhYMCH5baDtkqG88T\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 3818, + "contract": "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol:IVotingStrategy", + "label": "roundAddress", + "offset": 0, + "slot": "0", + "type": "t_address" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + } + } + }, + "userdoc": { + "kind": "user", + "methods": { + "init()": { + "notice": "Invoked by RoundImplementation on creation to set the round for which the voting contracts is to be used" + }, + "roundAddress()": { + "notice": "Round address" + }, + "vote(bytes[],address)": { + "notice": "Invoked by RoundImplementation to allow voter to case vote for grants during a round." + } + }, + "notice": "Defines the abstract contract for voting algorithms on grants within a round. Any new voting algorithm would be expected to extend this abstract contract. Every IVotingStrategy contract would be unique to RoundImplementation and would be deployed before creating a round", + "version": 1 + } + } + } + }, + "sources": { + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "exportedSymbols": { + "AccessControlUpgradeable": [ + 335 + ], + "AddressUpgradeable": [ + 1329 + ], + "ContextUpgradeable": [ + 1371 + ], + "ERC165Upgradeable": [ + 1590 + ], + "IAccessControlUpgradeable": [ + 408 + ], + "IERC165Upgradeable": [ + 1602 + ], + "Initializable": [ + 577 + ], + "MathUpgradeable": [ + 2467 + ], + "StringsUpgradeable": [ + 1546 + ] + }, + "id": 336, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "108:23:0" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol", + "file": "./IAccessControlUpgradeable.sol", + "id": 2, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 336, + "sourceUnit": 409, + "src": "133:41:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "../utils/ContextUpgradeable.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 336, + "sourceUnit": 1372, + "src": "175:41:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", + "file": "../utils/StringsUpgradeable.sol", + "id": 4, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 336, + "sourceUnit": 1547, + "src": "217:41:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", + "file": "../utils/introspection/ERC165Upgradeable.sol", + "id": 5, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 336, + "sourceUnit": 1591, + "src": "259:54:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 6, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 336, + "sourceUnit": 578, + "src": "314:42:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 8, + "name": "Initializable", + "nameLocations": [ + "1939:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 577, + "src": "1939:13:0" + }, + "id": 9, + "nodeType": "InheritanceSpecifier", + "src": "1939:13:0" + }, + { + "baseName": { + "id": 10, + "name": "ContextUpgradeable", + "nameLocations": [ + "1954:18:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "1954:18:0" + }, + "id": 11, + "nodeType": "InheritanceSpecifier", + "src": "1954:18:0" + }, + { + "baseName": { + "id": 12, + "name": "IAccessControlUpgradeable", + "nameLocations": [ + "1974:25:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 408, + "src": "1974:25:0" + }, + "id": 13, + "nodeType": "InheritanceSpecifier", + "src": "1974:25:0" + }, + { + "baseName": { + "id": 14, + "name": "ERC165Upgradeable", + "nameLocations": [ + "2001:17:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1590, + "src": "2001:17:0" + }, + "id": 15, + "nodeType": "InheritanceSpecifier", + "src": "2001:17:0" + } + ], + "canonicalName": "AccessControlUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 7, + "nodeType": "StructuredDocumentation", + "src": "358:1534:0", + "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it." + }, + "fullyImplemented": true, + "id": 335, + "linearizedBaseContracts": [ + 335, + 1590, + 1602, + 408, + 1371, + 577 + ], + "name": "AccessControlUpgradeable", + "nameLocation": "1911:24:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 20, + "nodeType": "Block", + "src": "2083:7:0", + "statements": [] + }, + "id": 21, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 18, + "kind": "modifierInvocation", + "modifierName": { + "id": 17, + "name": "onlyInitializing", + "nameLocations": [ + "2066:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 522, + "src": "2066:16:0" + }, + "nodeType": "ModifierInvocation", + "src": "2066:16:0" + } + ], + "name": "__AccessControl_init", + "nameLocation": "2034:20:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16, + "nodeType": "ParameterList", + "parameters": [], + "src": "2054:2:0" + }, + "returnParameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [], + "src": "2083:0:0" + }, + "scope": 335, + "src": "2025:65:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 26, + "nodeType": "Block", + "src": "2164:7:0", + "statements": [] + }, + "id": 27, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 24, + "kind": "modifierInvocation", + "modifierName": { + "id": 23, + "name": "onlyInitializing", + "nameLocations": [ + "2147:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 522, + "src": "2147:16:0" + }, + "nodeType": "ModifierInvocation", + "src": "2147:16:0" + } + ], + "name": "__AccessControl_init_unchained", + "nameLocation": "2105:30:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [], + "src": "2135:2:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "2164:0:0" + }, + "scope": 335, + "src": "2096:75:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "AccessControlUpgradeable.RoleData", + "id": 34, + "members": [ + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "members", + "nameLocation": "2227:7:0", + "nodeType": "VariableDeclaration", + "scope": 34, + "src": "2202:32:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 30, + "keyType": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2210:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2202:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 29, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2221:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "2252:9:0", + "nodeType": "VariableDeclaration", + "scope": 34, + "src": "2244:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 32, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2244:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "RoleData", + "nameLocation": "2183:8:0", + "nodeType": "StructDefinition", + "scope": 335, + "src": "2176:92:0", + "visibility": "public" + }, + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "_roles", + "nameLocation": "2311:6:0", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "2274:43:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$34_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)" + }, + "typeName": { + "id": 38, + "keyType": { + "id": 35, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2282:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "2274:28:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$34_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)" + }, + "valueType": { + "id": 37, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 36, + "name": "RoleData", + "nameLocations": [ + "2293:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34, + "src": "2293:8:0" + }, + "referencedDeclaration": 34, + "src": "2293:8:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$34_storage_ptr", + "typeString": "struct AccessControlUpgradeable.RoleData" + } + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "a217fddf", + "id": 42, + "mutability": "constant", + "name": "DEFAULT_ADMIN_ROLE", + "nameLocation": "2348:18:0", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "2324:49:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 40, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2324:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "30783030", + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2369:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x00" + }, + "visibility": "public" + }, + { + "body": { + "id": 52, + "nodeType": "Block", + "src": "2792:44:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 48, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45, + "src": "2813:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 47, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 107, + 146 + ], + "referencedDeclaration": 107, + "src": "2802:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) view" + } + }, + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2802:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 50, + "nodeType": "ExpressionStatement", + "src": "2802:16:0" + }, + { + "id": 51, + "nodeType": "PlaceholderStatement", + "src": "2828:1:0" + } + ] + }, + "documentation": { + "id": 43, + "nodeType": "StructuredDocumentation", + "src": "2380:375:0", + "text": " @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._" + }, + "id": 53, + "name": "onlyRole", + "nameLocation": "2769:8:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45, + "mutability": "mutable", + "name": "role", + "nameLocation": "2786:4:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "2778:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 44, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2778:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2777:14:0" + }, + "src": "2760:76:0", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1584 + ], + "body": { + "id": 74, + "nodeType": "Block", + "src": "2994:122:0", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 62, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "3011:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 64, + "name": "IAccessControlUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "3031:25:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAccessControlUpgradeable_$408_$", + "typeString": "type(contract IAccessControlUpgradeable)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IAccessControlUpgradeable_$408_$", + "typeString": "type(contract IAccessControlUpgradeable)" + } + ], + "id": 63, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "3026:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3026:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControlUpgradeable_$408", + "typeString": "type(contract IAccessControlUpgradeable)" + } + }, + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3058:11:0", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "3026:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "3011:58:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 70, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "3097:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 68, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967271, + "src": "3073:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlUpgradeable_$335_$", + "typeString": "type(contract super AccessControlUpgradeable)" + } + }, + "id": 69, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3079:17:0", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 1584, + "src": "3073:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3073:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3011:98:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 61, + "id": 73, + "nodeType": "Return", + "src": "3004:105:0" + } + ] + }, + "documentation": { + "id": 54, + "nodeType": "StructuredDocumentation", + "src": "2842:56:0", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 75, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2912:17:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 58, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2970:8:0" + }, + "parameters": { + "id": 57, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 56, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2937:11:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "2930:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 55, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2930:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2929:20:0" + }, + "returnParameters": { + "id": 61, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 60, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "2988:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 59, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2988:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2987:6:0" + }, + "scope": 335, + "src": "2903:213:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 375 + ], + "body": { + "id": 93, + "nodeType": "Block", + "src": "3295:53:0", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 86, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "3312:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$34_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 88, + "indexExpression": { + "id": 87, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78, + "src": "3319:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3312:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$34_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 89, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3325:7:0", + "memberName": "members", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "3312:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 91, + "indexExpression": { + "id": 90, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "3333:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3312:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 85, + "id": 92, + "nodeType": "Return", + "src": "3305:36:0" + } + ] + }, + "documentation": { + "id": 76, + "nodeType": "StructuredDocumentation", + "src": "3122:76:0", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 94, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "3212:7:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 82, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3271:8:0" + }, + "parameters": { + "id": 81, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 78, + "mutability": "mutable", + "name": "role", + "nameLocation": "3228:4:0", + "nodeType": "VariableDeclaration", + "scope": 94, + "src": "3220:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 77, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3220:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 80, + "mutability": "mutable", + "name": "account", + "nameLocation": "3242:7:0", + "nodeType": "VariableDeclaration", + "scope": 94, + "src": "3234:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3234:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3219:31:0" + }, + "returnParameters": { + "id": 85, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 84, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 94, + "src": "3289:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 83, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3289:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3288:6:0" + }, + "scope": 335, + "src": "3203:145:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 106, + "nodeType": "Block", + "src": "3698:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 101, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "3719:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 102, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1356, + "src": "3725:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3725:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 100, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 107, + 146 + ], + "referencedDeclaration": 146, + "src": "3708:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address) view" + } + }, + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3708:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 105, + "nodeType": "ExpressionStatement", + "src": "3708:30:0" + } + ] + }, + "documentation": { + "id": 95, + "nodeType": "StructuredDocumentation", + "src": "3354:283:0", + "text": " @dev Revert with a standard message if `_msgSender()` is missing `role`.\n Overriding this function changes the behavior of the {onlyRole} modifier.\n Format of the revert message is described in {_checkRole}.\n _Available since v4.6._" + }, + "id": 107, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "3651:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 98, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "role", + "nameLocation": "3670:4:0", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "3662:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 96, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3662:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3661:14:0" + }, + "returnParameters": { + "id": 99, + "nodeType": "ParameterList", + "parameters": [], + "src": "3698:0:0" + }, + "scope": 335, + "src": "3642:103:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 145, + "nodeType": "Block", + "src": "4099:428:0", + "statements": [ + { + "condition": { + "id": 119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4113:23:0", + "subExpression": { + "arguments": [ + { + "id": 116, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "4122:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 117, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "4128:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 115, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "4114:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4114:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 144, + "nodeType": "IfStatement", + "src": "4109:412:0", + "trueBody": { + "id": 143, + "nodeType": "Block", + "src": "4138:383:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "416363657373436f6e74726f6c3a206163636f756e7420", + "id": 125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4246:25:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", + "typeString": "literal_string \"AccessControl: account \"" + }, + "value": "AccessControl: account " + }, + { + "arguments": [ + { + "id": 128, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "4328:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 126, + "name": "StringsUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "4297:18:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StringsUpgradeable_$1546_$", + "typeString": "type(library StringsUpgradeable)" + } + }, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4316:11:0", + "memberName": "toHexString", + "nodeType": "MemberAccess", + "referencedDeclaration": 1545, + "src": "4297:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", + "typeString": "function (address) pure returns (string memory)" + } + }, + "id": 129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4297:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "206973206d697373696e6720726f6c6520", + "id": 130, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4362:19:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "typeString": "literal_string \" is missing role \"" + }, + "value": " is missing role " + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 135, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "4446:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4438:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 133, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4438:7:0", + "typeDescriptions": {} + } + }, + "id": 136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4438:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "3332", + "id": 137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4453:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + } + ], + "expression": { + "id": 131, + "name": "StringsUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "4407:18:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StringsUpgradeable_$1546_$", + "typeString": "type(library StringsUpgradeable)" + } + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4426:11:0", + "memberName": "toHexString", + "nodeType": "MemberAccess", + "referencedDeclaration": 1525, + "src": "4407:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4407:49:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", + "typeString": "literal_string \"AccessControl: account \"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "typeString": "literal_string \" is missing role \"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 123, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "4204:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4208:12:0", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "4204:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4204:274:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4176:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 121, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4176:6:0", + "typeDescriptions": {} + } + }, + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4176:320:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 120, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "4152:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:358:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 142, + "nodeType": "ExpressionStatement", + "src": "4152:358:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 108, + "nodeType": "StructuredDocumentation", + "src": "3751:270:0", + "text": " @dev Revert with a standard message if `account` is missing `role`.\n The format of the revert reason is given by the following regular expression:\n /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/" + }, + "id": 146, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "4035:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "role", + "nameLocation": "4054:4:0", + "nodeType": "VariableDeclaration", + "scope": 146, + "src": "4046:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 109, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4046:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "account", + "nameLocation": "4068:7:0", + "nodeType": "VariableDeclaration", + "scope": 146, + "src": "4060:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4060:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4045:31:0" + }, + "returnParameters": { + "id": 114, + "nodeType": "ParameterList", + "parameters": [], + "src": "4099:0:0" + }, + "scope": 335, + "src": "4026:501:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 383 + ], + "body": { + "id": 160, + "nodeType": "Block", + "src": "4791:46:0", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 155, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "4808:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$34_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 157, + "indexExpression": { + "id": 156, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 149, + "src": "4815:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4808:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$34_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 158, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4821:9:0", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "4808:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 154, + "id": 159, + "nodeType": "Return", + "src": "4801:29:0" + } + ] + }, + "documentation": { + "id": 147, + "nodeType": "StructuredDocumentation", + "src": "4533:170:0", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 161, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "4717:12:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 151, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4764:8:0" + }, + "parameters": { + "id": 150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 149, + "mutability": "mutable", + "name": "role", + "nameLocation": "4738:4:0", + "nodeType": "VariableDeclaration", + "scope": 161, + "src": "4730:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 148, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4730:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4729:14:0" + }, + "returnParameters": { + "id": 154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 153, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 161, + "src": "4782:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 152, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4782:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4781:9:0" + }, + "scope": 335, + "src": "4708:129:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 391 + ], + "body": { + "id": 180, + "nodeType": "Block", + "src": "5236:42:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 176, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "5257:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 177, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 166, + "src": "5263:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 175, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "5246:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5246:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 179, + "nodeType": "ExpressionStatement", + "src": "5246:25:0" + } + ] + }, + "documentation": { + "id": 162, + "nodeType": "StructuredDocumentation", + "src": "4843:285:0", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event." + }, + "functionSelector": "2f2ff15d", + "id": 181, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 171, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "5229:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 170, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 161, + "src": "5216:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5216:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 173, + "kind": "modifierInvocation", + "modifierName": { + "id": 169, + "name": "onlyRole", + "nameLocations": [ + "5207:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 53, + "src": "5207:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "5207:28:0" + } + ], + "name": "grantRole", + "nameLocation": "5142:9:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 168, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5198:8:0" + }, + "parameters": { + "id": 167, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 164, + "mutability": "mutable", + "name": "role", + "nameLocation": "5160:4:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "5152:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 163, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5152:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 166, + "mutability": "mutable", + "name": "account", + "nameLocation": "5174:7:0", + "nodeType": "VariableDeclaration", + "scope": 181, + "src": "5166:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 165, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5166:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5151:31:0" + }, + "returnParameters": { + "id": 174, + "nodeType": "ParameterList", + "parameters": [], + "src": "5236:0:0" + }, + "scope": 335, + "src": "5133:145:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 399 + ], + "body": { + "id": 200, + "nodeType": "Block", + "src": "5662:43:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 196, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "5684:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 197, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 186, + "src": "5690:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 195, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "5672:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5672:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 199, + "nodeType": "ExpressionStatement", + "src": "5672:26:0" + } + ] + }, + "documentation": { + "id": 182, + "nodeType": "StructuredDocumentation", + "src": "5284:269:0", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "d547741f", + "id": 201, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 191, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "5655:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 190, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 161, + "src": "5642:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5642:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 193, + "kind": "modifierInvocation", + "modifierName": { + "id": 189, + "name": "onlyRole", + "nameLocations": [ + "5633:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 53, + "src": "5633:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "5633:28:0" + } + ], + "name": "revokeRole", + "nameLocation": "5567:10:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 188, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5624:8:0" + }, + "parameters": { + "id": 187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 184, + "mutability": "mutable", + "name": "role", + "nameLocation": "5586:4:0", + "nodeType": "VariableDeclaration", + "scope": 201, + "src": "5578:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 183, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5578:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 186, + "mutability": "mutable", + "name": "account", + "nameLocation": "5600:7:0", + "nodeType": "VariableDeclaration", + "scope": 201, + "src": "5592:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 185, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5592:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5577:31:0" + }, + "returnParameters": { + "id": 194, + "nodeType": "ParameterList", + "parameters": [], + "src": "5662:0:0" + }, + "scope": 335, + "src": "5558:147:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 407 + ], + "body": { + "id": 223, + "nodeType": "Block", + "src": "6319:137:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 211, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 206, + "src": "6337:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 212, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1356, + "src": "6348:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6348:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6337:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66", + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6362:49:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "typeString": "literal_string \"AccessControl: can only renounce roles for self\"" + }, + "value": "AccessControl: can only renounce roles for self" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "typeString": "literal_string \"AccessControl: can only renounce roles for self\"" + } + ], + "id": 210, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6329:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6329:83:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 217, + "nodeType": "ExpressionStatement", + "src": "6329:83:0" + }, + { + "expression": { + "arguments": [ + { + "id": 219, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 204, + "src": "6435:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 220, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 206, + "src": "6441:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 218, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "6423:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6423:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 222, + "nodeType": "ExpressionStatement", + "src": "6423:26:0" + } + ] + }, + "documentation": { + "id": 202, + "nodeType": "StructuredDocumentation", + "src": "5711:526:0", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "36568abe", + "id": 224, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "6251:12:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 208, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6310:8:0" + }, + "parameters": { + "id": 207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 204, + "mutability": "mutable", + "name": "role", + "nameLocation": "6272:4:0", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "6264:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 203, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6264:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 206, + "mutability": "mutable", + "name": "account", + "nameLocation": "6286:7:0", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "6278:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 205, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6278:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6263:31:0" + }, + "returnParameters": { + "id": 209, + "nodeType": "ParameterList", + "parameters": [], + "src": "6319:0:0" + }, + "scope": 335, + "src": "6242:214:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 237, + "nodeType": "Block", + "src": "7209:42:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 233, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "7230:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 234, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "7236:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 232, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "7219:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7219:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 236, + "nodeType": "ExpressionStatement", + "src": "7219:25:0" + } + ] + }, + "documentation": { + "id": 225, + "nodeType": "StructuredDocumentation", + "src": "6462:674:0", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n May emit a {RoleGranted} event.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====\n NOTE: This function is deprecated in favor of {_grantRole}." + }, + "id": 238, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setupRole", + "nameLocation": "7150:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "role", + "nameLocation": "7169:4:0", + "nodeType": "VariableDeclaration", + "scope": 238, + "src": "7161:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 226, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "account", + "nameLocation": "7183:7:0", + "nodeType": "VariableDeclaration", + "scope": 238, + "src": "7175:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7175:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7160:31:0" + }, + "returnParameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [], + "src": "7209:0:0" + }, + "scope": 335, + "src": "7141:110:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 265, + "nodeType": "Block", + "src": "7449:174:0", + "statements": [ + { + "assignments": [ + 247 + ], + "declarations": [ + { + "constant": false, + "id": 247, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "7467:17:0", + "nodeType": "VariableDeclaration", + "scope": 265, + "src": "7459:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 246, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7459:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 251, + "initialValue": { + "arguments": [ + { + "id": 249, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "7500:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 248, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 161, + "src": "7487:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7487:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7459:46:0" + }, + { + "expression": { + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 252, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "7515:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$34_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 254, + "indexExpression": { + "id": 253, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "7522:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7515:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$34_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 255, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "7528:9:0", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "7515:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 256, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "7540:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "7515:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 258, + "nodeType": "ExpressionStatement", + "src": "7515:34:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 260, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "7581:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 261, + "name": "previousAdminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 247, + "src": "7587:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 262, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "7606:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 259, + "name": "RoleAdminChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 347, + "src": "7564:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32,bytes32)" + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7564:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 264, + "nodeType": "EmitStatement", + "src": "7559:57:0" + } + ] + }, + "documentation": { + "id": 239, + "nodeType": "StructuredDocumentation", + "src": "7257:114:0", + "text": " @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event." + }, + "id": 266, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setRoleAdmin", + "nameLocation": "7385:13:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 241, + "mutability": "mutable", + "name": "role", + "nameLocation": "7407:4:0", + "nodeType": "VariableDeclaration", + "scope": 266, + "src": "7399:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 240, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7399:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 243, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "7421:9:0", + "nodeType": "VariableDeclaration", + "scope": 266, + "src": "7413:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 242, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7413:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7398:33:0" + }, + "returnParameters": { + "id": 245, + "nodeType": "ParameterList", + "parameters": [], + "src": "7449:0:0" + }, + "scope": 335, + "src": "7376:247:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 297, + "nodeType": "Block", + "src": "7859:165:0", + "statements": [ + { + "condition": { + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7873:23:0", + "subExpression": { + "arguments": [ + { + "id": 275, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "7882:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 276, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "7888:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 274, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "7874:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7874:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 296, + "nodeType": "IfStatement", + "src": "7869:149:0", + "trueBody": { + "id": 295, + "nodeType": "Block", + "src": "7898:120:0", + "statements": [ + { + "expression": { + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 279, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "7912:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$34_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 281, + "indexExpression": { + "id": 280, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "7919:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7912:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$34_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 282, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7925:7:0", + "memberName": "members", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "7912:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 284, + "indexExpression": { + "id": 283, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "7933:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7912:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 285, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7944:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "7912:36:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 287, + "nodeType": "ExpressionStatement", + "src": "7912:36:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 289, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "7979:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 290, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "7985:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 291, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1356, + "src": "7994:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7994:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 288, + "name": "RoleGranted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 356, + "src": "7967:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7967:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 294, + "nodeType": "EmitStatement", + "src": "7962:45:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 267, + "nodeType": "StructuredDocumentation", + "src": "7629:157:0", + "text": " @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event." + }, + "id": 298, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_grantRole", + "nameLocation": "7800:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 272, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "role", + "nameLocation": "7819:4:0", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "7811:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 268, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7811:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 271, + "mutability": "mutable", + "name": "account", + "nameLocation": "7833:7:0", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "7825:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7825:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7810:31:0" + }, + "returnParameters": { + "id": 273, + "nodeType": "ParameterList", + "parameters": [], + "src": "7859:0:0" + }, + "scope": 335, + "src": "7791:233:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 328, + "nodeType": "Block", + "src": "8264:165:0", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 307, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "8286:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 308, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 303, + "src": "8292:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 306, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "8278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8278:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 327, + "nodeType": "IfStatement", + "src": "8274:149:0", + "trueBody": { + "id": 326, + "nodeType": "Block", + "src": "8302:121:0", + "statements": [ + { + "expression": { + "id": 317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 310, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "8316:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$34_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 312, + "indexExpression": { + "id": 311, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "8323:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8316:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$34_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 313, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8329:7:0", + "memberName": "members", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "8316:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 315, + "indexExpression": { + "id": 314, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 303, + "src": "8337:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8316:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8348:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "8316:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 318, + "nodeType": "ExpressionStatement", + "src": "8316:37:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 320, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "8384:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 321, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 303, + "src": "8390:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 322, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1356, + "src": "8399:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8399:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 319, + "name": "RoleRevoked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 365, + "src": "8372:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8372:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 325, + "nodeType": "EmitStatement", + "src": "8367:45:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 299, + "nodeType": "StructuredDocumentation", + "src": "8030:160:0", + "text": " @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event." + }, + "id": 329, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeRole", + "nameLocation": "8204:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "role", + "nameLocation": "8224:4:0", + "nodeType": "VariableDeclaration", + "scope": 329, + "src": "8216:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 300, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8216:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 303, + "mutability": "mutable", + "name": "account", + "nameLocation": "8238:7:0", + "nodeType": "VariableDeclaration", + "scope": 329, + "src": "8230:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8230:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8215:31:0" + }, + "returnParameters": { + "id": 305, + "nodeType": "ParameterList", + "parameters": [], + "src": "8264:0:0" + }, + "scope": 335, + "src": "8195:234:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 330, + "nodeType": "StructuredDocumentation", + "src": "8435:254:0", + "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" + }, + "id": 334, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "8714:5:0", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "8694:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$49_storage", + "typeString": "uint256[49]" + }, + "typeName": { + "baseType": { + "id": 331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8694:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 333, + "length": { + "hexValue": "3439", + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8702:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_49_by_1", + "typeString": "int_const 49" + }, + "value": "49" + }, + "nodeType": "ArrayTypeName", + "src": "8694:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", + "typeString": "uint256[49]" + } + }, + "visibility": "private" + } + ], + "scope": 336, + "src": "1893:6829:0", + "usedErrors": [] + } + ], + "src": "108:8615:0" + }, + "id": 0 + }, + "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol", + "exportedSymbols": { + "IAccessControlUpgradeable": [ + 408 + ] + }, + "id": 409, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 337, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "94:23:1" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IAccessControlUpgradeable", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 338, + "nodeType": "StructuredDocumentation", + "src": "119:89:1", + "text": " @dev External interface of AccessControl declared to support ERC165 detection." + }, + "fullyImplemented": false, + "id": 408, + "linearizedBaseContracts": [ + 408 + ], + "name": "IAccessControlUpgradeable", + "nameLocation": "219:25:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 339, + "nodeType": "StructuredDocumentation", + "src": "251:292:1", + "text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._" + }, + "eventSelector": "bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff", + "id": 347, + "name": "RoleAdminChanged", + "nameLocation": "554:16:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 341, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "587:4:1", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "571:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 340, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 343, + "indexed": true, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "609:17:1", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "593:33:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 342, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "593:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 345, + "indexed": true, + "mutability": "mutable", + "name": "newAdminRole", + "nameLocation": "644:12:1", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "628:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 344, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "570:87:1" + }, + "src": "548:110:1" + }, + { + "anonymous": false, + "documentation": { + "id": 348, + "nodeType": "StructuredDocumentation", + "src": "664:212:1", + "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}." + }, + "eventSelector": "2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "id": 356, + "name": "RoleGranted", + "nameLocation": "887:11:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 350, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "915:4:1", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "899:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 349, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 352, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "937:7:1", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "921:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 354, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "962:6:1", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "946:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "946:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "898:71:1" + }, + "src": "881:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 357, + "nodeType": "StructuredDocumentation", + "src": "976:275:1", + "text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)" + }, + "eventSelector": "f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b", + "id": 365, + "name": "RoleRevoked", + "nameLocation": "1262:11:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 359, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "1290:4:1", + "nodeType": "VariableDeclaration", + "scope": 365, + "src": "1274:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 358, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1274:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 361, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1312:7:1", + "nodeType": "VariableDeclaration", + "scope": 365, + "src": "1296:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1296:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 363, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1337:6:1", + "nodeType": "VariableDeclaration", + "scope": 365, + "src": "1321:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1321:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1273:71:1" + }, + "src": "1256:89:1" + }, + { + "documentation": { + "id": 366, + "nodeType": "StructuredDocumentation", + "src": "1351:76:1", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 375, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "1441:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 368, + "mutability": "mutable", + "name": "role", + "nameLocation": "1457:4:1", + "nodeType": "VariableDeclaration", + "scope": 375, + "src": "1449:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 367, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 370, + "mutability": "mutable", + "name": "account", + "nameLocation": "1471:7:1", + "nodeType": "VariableDeclaration", + "scope": 375, + "src": "1463:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 369, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1463:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1448:31:1" + }, + "returnParameters": { + "id": 374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 373, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 375, + "src": "1503:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 372, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1503:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1502:6:1" + }, + "scope": 408, + "src": "1432:77:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 376, + "nodeType": "StructuredDocumentation", + "src": "1515:184:1", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 383, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "1713:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 378, + "mutability": "mutable", + "name": "role", + "nameLocation": "1734:4:1", + "nodeType": "VariableDeclaration", + "scope": 383, + "src": "1726:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 377, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1726:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1725:14:1" + }, + "returnParameters": { + "id": 382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 381, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 383, + "src": "1763:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 380, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1763:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1762:9:1" + }, + "scope": 408, + "src": "1704:68:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 384, + "nodeType": "StructuredDocumentation", + "src": "1778:239:1", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "2f2ff15d", + "id": 391, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "grantRole", + "nameLocation": "2031:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 386, + "mutability": "mutable", + "name": "role", + "nameLocation": "2049:4:1", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "2041:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 385, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "account", + "nameLocation": "2063:7:1", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "2055:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 387, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2055:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2040:31:1" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "2080:0:1" + }, + "scope": 408, + "src": "2022:59:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 392, + "nodeType": "StructuredDocumentation", + "src": "2087:223:1", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "d547741f", + "id": 399, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "revokeRole", + "nameLocation": "2324:10:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 394, + "mutability": "mutable", + "name": "role", + "nameLocation": "2343:4:1", + "nodeType": "VariableDeclaration", + "scope": 399, + "src": "2335:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2335:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 396, + "mutability": "mutable", + "name": "account", + "nameLocation": "2357:7:1", + "nodeType": "VariableDeclaration", + "scope": 399, + "src": "2349:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2349:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2334:31:1" + }, + "returnParameters": { + "id": 398, + "nodeType": "ParameterList", + "parameters": [], + "src": "2374:0:1" + }, + "scope": 408, + "src": "2315:60:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 400, + "nodeType": "StructuredDocumentation", + "src": "2381:480:1", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`." + }, + "functionSelector": "36568abe", + "id": 407, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "2875:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 402, + "mutability": "mutable", + "name": "role", + "nameLocation": "2896:4:1", + "nodeType": "VariableDeclaration", + "scope": 407, + "src": "2888:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 401, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 404, + "mutability": "mutable", + "name": "account", + "nameLocation": "2910:7:1", + "nodeType": "VariableDeclaration", + "scope": 407, + "src": "2902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 403, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2902:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2887:31:1" + }, + "returnParameters": { + "id": 406, + "nodeType": "ParameterList", + "parameters": [], + "src": "2927:0:1" + }, + "scope": 408, + "src": "2866:62:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 409, + "src": "209:2721:1", + "usedErrors": [] + } + ], + "src": "94:2837:1" + }, + "id": 1 + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "exportedSymbols": { + "AddressUpgradeable": [ + 1329 + ], + "Initializable": [ + 577 + ] + }, + "id": 578, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 410, + "literals": [ + "solidity", + "^", + "0.8", + ".2" + ], + "nodeType": "PragmaDirective", + "src": "113:23:2" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "file": "../../utils/AddressUpgradeable.sol", + "id": 411, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 578, + "sourceUnit": 1330, + "src": "138:44:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Initializable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 412, + "nodeType": "StructuredDocumentation", + "src": "184:2198:2", + "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ====" + }, + "fullyImplemented": true, + "id": 577, + "linearizedBaseContracts": [ + 577 + ], + "name": "Initializable", + "nameLocation": "2401:13:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 413, + "nodeType": "StructuredDocumentation", + "src": "2421:109:2", + "text": " @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool" + }, + "id": 415, + "mutability": "mutable", + "name": "_initialized", + "nameLocation": "2549:12:2", + "nodeType": "VariableDeclaration", + "scope": 577, + "src": "2535:26:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 414, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2535:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 416, + "nodeType": "StructuredDocumentation", + "src": "2568:91:2", + "text": " @dev Indicates that the contract is in the process of being initialized." + }, + "id": 418, + "mutability": "mutable", + "name": "_initializing", + "nameLocation": "2677:13:2", + "nodeType": "VariableDeclaration", + "scope": 577, + "src": "2664:26:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 417, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2664:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": { + "id": 419, + "nodeType": "StructuredDocumentation", + "src": "2697:90:2", + "text": " @dev Triggered when the contract has been initialized or reinitialized." + }, + "eventSelector": "7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498", + "id": 423, + "name": "Initialized", + "nameLocation": "2798:11:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 422, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 421, + "indexed": false, + "mutability": "mutable", + "name": "version", + "nameLocation": "2816:7:2", + "nodeType": "VariableDeclaration", + "scope": 423, + "src": "2810:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 420, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2810:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "2809:15:2" + }, + "src": "2792:33:2" + }, + { + "body": { + "id": 478, + "nodeType": "Block", + "src": "3258:483:2", + "statements": [ + { + "assignments": [ + 427 + ], + "declarations": [ + { + "constant": false, + "id": 427, + "mutability": "mutable", + "name": "isTopLevelCall", + "nameLocation": "3273:14:2", + "nodeType": "VariableDeclaration", + "scope": 478, + "src": "3268:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 426, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3268:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 430, + "initialValue": { + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3290:14:2", + "subExpression": { + "id": 428, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "3291:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3268:36:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 432, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 427, + "src": "3336:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 433, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "3354:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "31", + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3369:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3354:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3336:34:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 437, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3335:36:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3376:45:2", + "subExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 442, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3415:4:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$577", + "typeString": "contract Initializable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Initializable_$577", + "typeString": "contract Initializable" + } + ], + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3407:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3407:7:2", + "typeDescriptions": {} + } + }, + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3407:13:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 438, + "name": "AddressUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1329, + "src": "3377:18:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$1329_$", + "typeString": "type(library AddressUpgradeable)" + } + }, + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3396:10:2", + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1063, + "src": "3377:29:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3377:44:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 446, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "3425:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3441:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3425:17:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3376:66:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 450, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3375:68:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3335:108:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", + "id": 452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3457:48:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "typeString": "literal_string \"Initializable: contract is already initialized\"" + }, + "value": "Initializable: contract is already initialized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "typeString": "literal_string \"Initializable: contract is already initialized\"" + } + ], + "id": 431, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3314:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3314:201:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 454, + "nodeType": "ExpressionStatement", + "src": "3314:201:2" + }, + { + "expression": { + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 455, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "3525:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3540:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3525:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 458, + "nodeType": "ExpressionStatement", + "src": "3525:16:2" + }, + { + "condition": { + "id": 459, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 427, + "src": "3555:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 465, + "nodeType": "IfStatement", + "src": "3551:65:2", + "trueBody": { + "id": 464, + "nodeType": "Block", + "src": "3571:45:2", + "statements": [ + { + "expression": { + "id": 462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 460, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "3585:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3601:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3585:20:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 463, + "nodeType": "ExpressionStatement", + "src": "3585:20:2" + } + ] + } + }, + { + "id": 466, + "nodeType": "PlaceholderStatement", + "src": "3625:1:2" + }, + { + "condition": { + "id": 467, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 427, + "src": "3640:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 477, + "nodeType": "IfStatement", + "src": "3636:99:2", + "trueBody": { + "id": 476, + "nodeType": "Block", + "src": "3656:79:2", + "statements": [ + { + "expression": { + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 468, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "3670:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3686:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3670:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 471, + "nodeType": "ExpressionStatement", + "src": "3670:21:2" + }, + { + "eventCall": { + "arguments": [ + { + "hexValue": "31", + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3722:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 472, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "3710:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", + "typeString": "function (uint8)" + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3710:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 475, + "nodeType": "EmitStatement", + "src": "3705:19:2" + } + ] + } + } + ] + }, + "documentation": { + "id": 424, + "nodeType": "StructuredDocumentation", + "src": "2831:399:2", + "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event." + }, + "id": 479, + "name": "initializer", + "nameLocation": "3244:11:2", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 425, + "nodeType": "ParameterList", + "parameters": [], + "src": "3255:2:2" + }, + "src": "3235:506:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 511, + "nodeType": "Block", + "src": "4852:255:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4870:14:2", + "subExpression": { + "id": 485, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "4871:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 487, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4888:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 488, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "4903:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4888:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4870:40:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4912:48:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "typeString": "literal_string \"Initializable: contract is already initialized\"" + }, + "value": "Initializable: contract is already initialized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "typeString": "literal_string \"Initializable: contract is already initialized\"" + } + ], + "id": 484, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4862:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4862:99:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 493, + "nodeType": "ExpressionStatement", + "src": "4862:99:2" + }, + { + "expression": { + "id": 496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 494, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4971:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 495, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "4986:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4971:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 497, + "nodeType": "ExpressionStatement", + "src": "4971:22:2" + }, + { + "expression": { + "id": 500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 498, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5003:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5003:20:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 501, + "nodeType": "ExpressionStatement", + "src": "5003:20:2" + }, + { + "id": 502, + "nodeType": "PlaceholderStatement", + "src": "5033:1:2" + }, + { + "expression": { + "id": 505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 503, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5044:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5060:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5044:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 506, + "nodeType": "ExpressionStatement", + "src": "5044:21:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 508, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "5092:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 507, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5080:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", + "typeString": "function (uint8)" + } + }, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5080:20:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 510, + "nodeType": "EmitStatement", + "src": "5075:25:2" + } + ] + }, + "documentation": { + "id": 480, + "nodeType": "StructuredDocumentation", + "src": "3747:1062:2", + "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event." + }, + "id": 512, + "name": "reinitializer", + "nameLocation": "4823:13:2", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "mutability": "mutable", + "name": "version", + "nameLocation": "4843:7:2", + "nodeType": "VariableDeclaration", + "scope": 512, + "src": "4837:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 481, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4837:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "4836:15:2" + }, + "src": "4814:293:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 521, + "nodeType": "Block", + "src": "5345:97:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 516, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5363:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67", + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5378:45:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", + "typeString": "literal_string \"Initializable: contract is not initializing\"" + }, + "value": "Initializable: contract is not initializing" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b", + "typeString": "literal_string \"Initializable: contract is not initializing\"" + } + ], + "id": 515, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "5355:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5355:69:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 519, + "nodeType": "ExpressionStatement", + "src": "5355:69:2" + }, + { + "id": 520, + "nodeType": "PlaceholderStatement", + "src": "5434:1:2" + } + ] + }, + "documentation": { + "id": 513, + "nodeType": "StructuredDocumentation", + "src": "5113:199:2", + "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly." + }, + "id": 522, + "name": "onlyInitializing", + "nameLocation": "5326:16:2", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 514, + "nodeType": "ParameterList", + "parameters": [], + "src": "5342:2:2" + }, + "src": "5317:125:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 557, + "nodeType": "Block", + "src": "5977:230:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5995:14:2", + "subExpression": { + "id": 527, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5996:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67", + "id": 529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6011:41:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a", + "typeString": "literal_string \"Initializable: contract is initializing\"" + }, + "value": "Initializable: contract is initializing" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a", + "typeString": "literal_string \"Initializable: contract is initializing\"" + } + ], + "id": 526, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "5987:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5987:66:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 531, + "nodeType": "ExpressionStatement", + "src": "5987:66:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 532, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "6067:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6087:5:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 534, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6087:5:2", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + } + ], + "id": 533, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "6082:4:2", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6082:11:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint8", + "typeString": "type(uint8)" + } + }, + "id": 537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6094:3:2", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "6082:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "6067:30:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 556, + "nodeType": "IfStatement", + "src": "6063:138:2", + "trueBody": { + "id": 555, + "nodeType": "Block", + "src": "6099:102:2", + "statements": [ + { + "expression": { + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 539, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "6113:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "arguments": [ + { + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6133:5:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 541, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6133:5:2", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + } + ], + "id": 540, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "6128:4:2", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6128:11:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint8", + "typeString": "type(uint8)" + } + }, + "id": 544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6140:3:2", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "6128:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "6113:30:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 546, + "nodeType": "ExpressionStatement", + "src": "6113:30:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6179:5:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 549, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6179:5:2", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + } + ], + "id": 548, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "6174:4:2", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6174:11:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint8", + "typeString": "type(uint8)" + } + }, + "id": 552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6186:3:2", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "6174:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 547, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "6162:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$returns$__$", + "typeString": "function (uint8)" + } + }, + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6162:28:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 554, + "nodeType": "EmitStatement", + "src": "6157:33:2" + } + ] + } + } + ] + }, + "documentation": { + "id": 523, + "nodeType": "StructuredDocumentation", + "src": "5448:475:2", + "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed." + }, + "id": 558, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_disableInitializers", + "nameLocation": "5937:20:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 524, + "nodeType": "ParameterList", + "parameters": [], + "src": "5957:2:2" + }, + "returnParameters": { + "id": 525, + "nodeType": "ParameterList", + "parameters": [], + "src": "5977:0:2" + }, + "scope": 577, + "src": "5928:279:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 566, + "nodeType": "Block", + "src": "6384:36:2", + "statements": [ + { + "expression": { + "id": 564, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "6401:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 563, + "id": 565, + "nodeType": "Return", + "src": "6394:19:2" + } + ] + }, + "documentation": { + "id": 559, + "nodeType": "StructuredDocumentation", + "src": "6213:102:2", + "text": " @dev Internal function that returns the initialized version. Returns `_initialized`" + }, + "id": 567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getInitializedVersion", + "nameLocation": "6329:22:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 560, + "nodeType": "ParameterList", + "parameters": [], + "src": "6351:2:2" + }, + "returnParameters": { + "id": 563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 562, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 567, + "src": "6377:5:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 561, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6377:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "6376:7:2" + }, + "scope": 577, + "src": "6320:100:2", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 575, + "nodeType": "Block", + "src": "6590:37:2", + "statements": [ + { + "expression": { + "id": 573, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "6607:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 572, + "id": 574, + "nodeType": "Return", + "src": "6600:20:2" + } + ] + }, + "documentation": { + "id": 568, + "nodeType": "StructuredDocumentation", + "src": "6426:103:2", + "text": " @dev Internal function that returns the initialized version. Returns `_initializing`" + }, + "id": 576, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isInitializing", + "nameLocation": "6543:15:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 569, + "nodeType": "ParameterList", + "parameters": [], + "src": "6558:2:2" + }, + "returnParameters": { + "id": 572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 571, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 576, + "src": "6584:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 570, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6584:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6583:6:2" + }, + "scope": 577, + "src": "6534:93:2", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 578, + "src": "2383:4246:2", + "usedErrors": [] + } + ], + "src": "113:6517:2" + }, + "id": 2 + }, + "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", + "exportedSymbols": { + "AddressUpgradeable": [ + 1329 + ], + "Initializable": [ + 577 + ], + "ReentrancyGuardUpgradeable": [ + 650 + ] + }, + "id": 651, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 579, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "112:23:3" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 580, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 651, + "sourceUnit": 578, + "src": "136:42:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 582, + "name": "Initializable", + "nameLocations": [ + "979:13:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 577, + "src": "979:13:3" + }, + "id": 583, + "nodeType": "InheritanceSpecifier", + "src": "979:13:3" + } + ], + "canonicalName": "ReentrancyGuardUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "180:750:3", + "text": " @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]." + }, + "fullyImplemented": true, + "id": 650, + "linearizedBaseContracts": [ + 650, + 577 + ], + "name": "ReentrancyGuardUpgradeable", + "nameLocation": "949:26:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 586, + "mutability": "constant", + "name": "_NOT_ENTERED", + "nameLocation": "1772:12:3", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "1747:41:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1747:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1787:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 589, + "mutability": "constant", + "name": "_ENTERED", + "nameLocation": "1819:8:3", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "1794:37:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 587, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1794:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32", + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1830:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "_status", + "nameLocation": "1854:7:3", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "1838:23:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1838:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 599, + "nodeType": "Block", + "src": "1928:51:3", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 596, + "name": "__ReentrancyGuard_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 610, + "src": "1938:32:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1938:34:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 598, + "nodeType": "ExpressionStatement", + "src": "1938:34:3" + } + ] + }, + "id": 600, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 594, + "kind": "modifierInvocation", + "modifierName": { + "id": 593, + "name": "onlyInitializing", + "nameLocations": [ + "1911:16:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 522, + "src": "1911:16:3" + }, + "nodeType": "ModifierInvocation", + "src": "1911:16:3" + } + ], + "name": "__ReentrancyGuard_init", + "nameLocation": "1877:22:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 592, + "nodeType": "ParameterList", + "parameters": [], + "src": "1899:2:3" + }, + "returnParameters": { + "id": 595, + "nodeType": "ParameterList", + "parameters": [], + "src": "1928:0:3" + }, + "scope": 650, + "src": "1868:111:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 609, + "nodeType": "Block", + "src": "2055:39:3", + "statements": [ + { + "expression": { + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 605, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "2065:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 606, + "name": "_NOT_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "2075:12:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2065:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 608, + "nodeType": "ExpressionStatement", + "src": "2065:22:3" + } + ] + }, + "id": 610, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 603, + "kind": "modifierInvocation", + "modifierName": { + "id": 602, + "name": "onlyInitializing", + "nameLocations": [ + "2038:16:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 522, + "src": "2038:16:3" + }, + "nodeType": "ModifierInvocation", + "src": "2038:16:3" + } + ], + "name": "__ReentrancyGuard_init_unchained", + "nameLocation": "1994:32:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 601, + "nodeType": "ParameterList", + "parameters": [], + "src": "2026:2:3" + }, + "returnParameters": { + "id": 604, + "nodeType": "ParameterList", + "parameters": [], + "src": "2055:0:3" + }, + "scope": 650, + "src": "1985:109:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 620, + "nodeType": "Block", + "src": "2495:79:3", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 613, + "name": "_nonReentrantBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 636, + "src": "2505:19:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2505:21:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 615, + "nodeType": "ExpressionStatement", + "src": "2505:21:3" + }, + { + "id": 616, + "nodeType": "PlaceholderStatement", + "src": "2536:1:3" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 617, + "name": "_nonReentrantAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 644, + "src": "2547:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2547:20:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 619, + "nodeType": "ExpressionStatement", + "src": "2547:20:3" + } + ] + }, + "documentation": { + "id": 611, + "nodeType": "StructuredDocumentation", + "src": "2100:366:3", + "text": " @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and making it call a\n `private` function that does the actual work." + }, + "id": 621, + "name": "nonReentrant", + "nameLocation": "2480:12:3", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 612, + "nodeType": "ParameterList", + "parameters": [], + "src": "2492:2:3" + }, + "src": "2471:103:3", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 635, + "nodeType": "Block", + "src": "2619:248:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 625, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "2712:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 626, + "name": "_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "2723:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2712:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2733:33:3", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" + }, + "value": "ReentrancyGuard: reentrant call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" + } + ], + "id": 624, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2704:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2704:63:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 630, + "nodeType": "ExpressionStatement", + "src": "2704:63:3" + }, + { + "expression": { + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 631, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "2842:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 632, + "name": "_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "2852:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2842:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 634, + "nodeType": "ExpressionStatement", + "src": "2842:18:3" + } + ] + }, + "id": 636, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_nonReentrantBefore", + "nameLocation": "2589:19:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 622, + "nodeType": "ParameterList", + "parameters": [], + "src": "2608:2:3" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [], + "src": "2619:0:3" + }, + "scope": 650, + "src": "2580:287:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 643, + "nodeType": "Block", + "src": "2911:171:3", + "statements": [ + { + "expression": { + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 639, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "3053:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 640, + "name": "_NOT_ENTERED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "3063:12:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3053:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 642, + "nodeType": "ExpressionStatement", + "src": "3053:22:3" + } + ] + }, + "id": 644, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_nonReentrantAfter", + "nameLocation": "2882:18:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 637, + "nodeType": "ParameterList", + "parameters": [], + "src": "2900:2:3" + }, + "returnParameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [], + "src": "2911:0:3" + }, + "scope": 650, + "src": "2873:209:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 645, + "nodeType": "StructuredDocumentation", + "src": "3088:254:3", + "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" + }, + "id": 649, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "3367:5:3", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "3347:25:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$49_storage", + "typeString": "uint256[49]" + }, + "typeName": { + "baseType": { + "id": 646, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3347:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 648, + "length": { + "hexValue": "3439", + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3355:2:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_49_by_1", + "typeString": "int_const 49" + }, + "value": "49" + }, + "nodeType": "ArrayTypeName", + "src": "3347:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", + "typeString": "uint256[49]" + } + }, + "visibility": "private" + } + ], + "scope": 651, + "src": "931:2444:3", + "usedErrors": [] + } + ], + "src": "112:3264:3" + }, + "id": 3 + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", + "exportedSymbols": { + "IERC20Upgradeable": [ + 728 + ] + }, + "id": 729, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 652, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "106:23:4" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Upgradeable", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 653, + "nodeType": "StructuredDocumentation", + "src": "131:70:4", + "text": " @dev Interface of the ERC20 standard as defined in the EIP." + }, + "fullyImplemented": false, + "id": 728, + "linearizedBaseContracts": [ + 728 + ], + "name": "IERC20Upgradeable", + "nameLocation": "212:17:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 654, + "nodeType": "StructuredDocumentation", + "src": "236:158:4", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 662, + "name": "Transfer", + "nameLocation": "405:8:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 656, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "430:4:4", + "nodeType": "VariableDeclaration", + "scope": 662, + "src": "414:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 655, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "414:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 658, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "452:2:4", + "nodeType": "VariableDeclaration", + "scope": 662, + "src": "436:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "436:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 660, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "464:5:4", + "nodeType": "VariableDeclaration", + "scope": 662, + "src": "456:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 659, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "456:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "413:57:4" + }, + "src": "399:72:4" + }, + { + "anonymous": false, + "documentation": { + "id": 663, + "nodeType": "StructuredDocumentation", + "src": "477:148:4", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 671, + "name": "Approval", + "nameLocation": "636:8:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 665, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "661:5:4", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "645:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "645:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 667, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "684:7:4", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "668:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 666, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "668:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 669, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "701:5:4", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "693:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 668, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "693:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "644:63:4" + }, + "src": "630:78:4" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "714:66:4", + "text": " @dev Returns the amount of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 677, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "794:11:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 673, + "nodeType": "ParameterList", + "parameters": [], + "src": "805:2:4" + }, + "returnParameters": { + "id": 676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 675, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "831:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "831:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "830:9:4" + }, + "scope": 728, + "src": "785:55:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 678, + "nodeType": "StructuredDocumentation", + "src": "846:72:4", + "text": " @dev Returns the amount of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 685, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "932:9:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 681, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 680, + "mutability": "mutable", + "name": "account", + "nameLocation": "950:7:4", + "nodeType": "VariableDeclaration", + "scope": 685, + "src": "942:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 679, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "942:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "941:17:4" + }, + "returnParameters": { + "id": 684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 685, + "src": "982:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "982:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "981:9:4" + }, + "scope": 728, + "src": "923:68:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 686, + "nodeType": "StructuredDocumentation", + "src": "997:202:4", + "text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 695, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1213:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "to", + "nameLocation": "1230:2:4", + "nodeType": "VariableDeclaration", + "scope": 695, + "src": "1222:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 687, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1222:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 690, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1242:6:4", + "nodeType": "VariableDeclaration", + "scope": 695, + "src": "1234:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1221:28:4" + }, + "returnParameters": { + "id": 694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 695, + "src": "1268:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 692, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1268:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1267:6:4" + }, + "scope": 728, + "src": "1204:70:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 696, + "nodeType": "StructuredDocumentation", + "src": "1280:264:4", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 705, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1558:9:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1576:5:4", + "nodeType": "VariableDeclaration", + "scope": 705, + "src": "1568:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 697, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1568:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 700, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1591:7:4", + "nodeType": "VariableDeclaration", + "scope": 705, + "src": "1583:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1583:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1567:32:4" + }, + "returnParameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 705, + "src": "1623:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1623:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1622:9:4" + }, + "scope": 728, + "src": "1549:83:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 706, + "nodeType": "StructuredDocumentation", + "src": "1638:642:4", + "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 715, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2294:7:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 708, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2310:7:4", + "nodeType": "VariableDeclaration", + "scope": 715, + "src": "2302:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2302:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2327:6:4", + "nodeType": "VariableDeclaration", + "scope": 715, + "src": "2319:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 709, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2319:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2301:33:4" + }, + "returnParameters": { + "id": 714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 713, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 715, + "src": "2353:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2353:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2352:6:4" + }, + "scope": 728, + "src": "2285:74:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 716, + "nodeType": "StructuredDocumentation", + "src": "2365:287:4", + "text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 727, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2666:12:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "from", + "nameLocation": "2696:4:4", + "nodeType": "VariableDeclaration", + "scope": 727, + "src": "2688:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 717, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2688:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "to", + "nameLocation": "2718:2:4", + "nodeType": "VariableDeclaration", + "scope": 727, + "src": "2710:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 722, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2738:6:4", + "nodeType": "VariableDeclaration", + "scope": 727, + "src": "2730:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2730:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2678:72:4" + }, + "returnParameters": { + "id": 726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 725, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 727, + "src": "2769:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 724, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2769:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2768:6:4" + }, + "scope": 728, + "src": "2657:118:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 729, + "src": "202:2575:4", + "usedErrors": [] + } + ], + "src": "106:2672:4" + }, + "id": 4 + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol", + "exportedSymbols": { + "IERC20PermitUpgradeable": [ + 764 + ] + }, + "id": 765, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 730, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "114:23:5" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20PermitUpgradeable", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 731, + "nodeType": "StructuredDocumentation", + "src": "139:480:5", + "text": " @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all." + }, + "fullyImplemented": false, + "id": 764, + "linearizedBaseContracts": [ + 764 + ], + "name": "IERC20PermitUpgradeable", + "nameLocation": "630:23:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 732, + "nodeType": "StructuredDocumentation", + "src": "660:792:5", + "text": " @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]." + }, + "functionSelector": "d505accf", + "id": 749, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nameLocation": "1466:6:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 734, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1490:5:5", + "nodeType": "VariableDeclaration", + "scope": 749, + "src": "1482:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 733, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1482:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 736, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1513:7:5", + "nodeType": "VariableDeclaration", + "scope": 749, + "src": "1505:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1505:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 738, + "mutability": "mutable", + "name": "value", + "nameLocation": "1538:5:5", + "nodeType": "VariableDeclaration", + "scope": 749, + "src": "1530:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1530:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1561:8:5", + "nodeType": "VariableDeclaration", + "scope": 749, + "src": "1553:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 739, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1553:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 742, + "mutability": "mutable", + "name": "v", + "nameLocation": "1585:1:5", + "nodeType": "VariableDeclaration", + "scope": 749, + "src": "1579:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 741, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1579:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 744, + "mutability": "mutable", + "name": "r", + "nameLocation": "1604:1:5", + "nodeType": "VariableDeclaration", + "scope": 749, + "src": "1596:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 743, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1596:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "s", + "nameLocation": "1623:1:5", + "nodeType": "VariableDeclaration", + "scope": 749, + "src": "1615:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 745, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1615:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1472:158:5" + }, + "returnParameters": { + "id": 748, + "nodeType": "ParameterList", + "parameters": [], + "src": "1639:0:5" + }, + "scope": 764, + "src": "1457:183:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 750, + "nodeType": "StructuredDocumentation", + "src": "1646:294:5", + "text": " @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times." + }, + "functionSelector": "7ecebe00", + "id": 757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nameLocation": "1954:6:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1969:5:5", + "nodeType": "VariableDeclaration", + "scope": 757, + "src": "1961:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1961:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1960:15:5" + }, + "returnParameters": { + "id": 756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 755, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 757, + "src": "1999:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1999:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1998:9:5" + }, + "scope": 764, + "src": "1945:63:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 758, + "nodeType": "StructuredDocumentation", + "src": "2014:128:5", + "text": " @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}." + }, + "functionSelector": "3644e515", + "id": 763, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nameLocation": "2209:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 759, + "nodeType": "ParameterList", + "parameters": [], + "src": "2225:2:5" + }, + "returnParameters": { + "id": 762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 761, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 763, + "src": "2251:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 760, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2251:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2250:9:5" + }, + "scope": 764, + "src": "2200:60:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 765, + "src": "620:1642:5", + "usedErrors": [] + } + ], + "src": "114:2149:5" + }, + "id": 5 + }, + "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", + "exportedSymbols": { + "AddressUpgradeable": [ + 1329 + ], + "IERC20PermitUpgradeable": [ + 764 + ], + "IERC20Upgradeable": [ + 728 + ], + "SafeERC20Upgradeable": [ + 1045 + ] + }, + "id": 1046, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 766, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "115:23:6" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", + "file": "../IERC20Upgradeable.sol", + "id": 767, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1046, + "sourceUnit": 729, + "src": "140:34:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol", + "file": "../extensions/draft-IERC20PermitUpgradeable.sol", + "id": 768, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1046, + "sourceUnit": 765, + "src": "175:57:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "file": "../../../utils/AddressUpgradeable.sol", + "id": 769, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1046, + "sourceUnit": 1330, + "src": "233:47:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SafeERC20Upgradeable", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 770, + "nodeType": "StructuredDocumentation", + "src": "282:457:6", + "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc." + }, + "fullyImplemented": true, + "id": 1045, + "linearizedBaseContracts": [ + 1045 + ], + "name": "SafeERC20Upgradeable", + "nameLocation": "748:20:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 773, + "libraryName": { + "id": 771, + "name": "AddressUpgradeable", + "nameLocations": [ + "781:18:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1329, + "src": "781:18:6" + }, + "nodeType": "UsingForDirective", + "src": "775:37:6", + "typeName": { + "id": 772, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "804:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "body": { + "id": 795, + "nodeType": "Block", + "src": "931:103:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 784, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 776, + "src": "961:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 787, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 776, + "src": "991:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "id": 788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "997:8:6", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 695, + "src": "991:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1006:8:6", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "991:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 790, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 778, + "src": "1016:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 791, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "1020:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 785, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "968:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "972:18:6", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "968:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "968:58:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 783, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1044, + "src": "941:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$728_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20Upgradeable,bytes memory)" + } + }, + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "941:86:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 794, + "nodeType": "ExpressionStatement", + "src": "941:86:6" + } + ] + }, + "id": 796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransfer", + "nameLocation": "827:12:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 781, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 776, + "mutability": "mutable", + "name": "token", + "nameLocation": "867:5:6", + "nodeType": "VariableDeclaration", + "scope": 796, + "src": "849:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + }, + "typeName": { + "id": 775, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 774, + "name": "IERC20Upgradeable", + "nameLocations": [ + "849:17:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 728, + "src": "849:17:6" + }, + "referencedDeclaration": 728, + "src": "849:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 778, + "mutability": "mutable", + "name": "to", + "nameLocation": "890:2:6", + "nodeType": "VariableDeclaration", + "scope": 796, + "src": "882:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "882:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 780, + "mutability": "mutable", + "name": "value", + "nameLocation": "910:5:6", + "nodeType": "VariableDeclaration", + "scope": 796, + "src": "902:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 779, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "902:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "839:82:6" + }, + "returnParameters": { + "id": 782, + "nodeType": "ParameterList", + "parameters": [], + "src": "931:0:6" + }, + "scope": 1045, + "src": "818:216:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 821, + "nodeType": "Block", + "src": "1179:113:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 809, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "1209:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 812, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "1239:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1245:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 727, + "src": "1239:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1258:8:6", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "1239:27:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 815, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 801, + "src": "1268:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 816, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "1274:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 817, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "1278:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 810, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "1216:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1220:18:6", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "1216:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1216:68:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 808, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1044, + "src": "1189:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$728_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20Upgradeable,bytes memory)" + } + }, + "id": 819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1189:96:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 820, + "nodeType": "ExpressionStatement", + "src": "1189:96:6" + } + ] + }, + "id": 822, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "1049:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "token", + "nameLocation": "1093:5:6", + "nodeType": "VariableDeclaration", + "scope": 822, + "src": "1075:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + }, + "typeName": { + "id": 798, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 797, + "name": "IERC20Upgradeable", + "nameLocations": [ + "1075:17:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 728, + "src": "1075:17:6" + }, + "referencedDeclaration": 728, + "src": "1075:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 801, + "mutability": "mutable", + "name": "from", + "nameLocation": "1116:4:6", + "nodeType": "VariableDeclaration", + "scope": 822, + "src": "1108:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 800, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1108:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 803, + "mutability": "mutable", + "name": "to", + "nameLocation": "1138:2:6", + "nodeType": "VariableDeclaration", + "scope": 822, + "src": "1130:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1130:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 805, + "mutability": "mutable", + "name": "value", + "nameLocation": "1158:5:6", + "nodeType": "VariableDeclaration", + "scope": 822, + "src": "1150:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 804, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1150:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1065:104:6" + }, + "returnParameters": { + "id": 807, + "nodeType": "ParameterList", + "parameters": [], + "src": "1179:0:6" + }, + "scope": 1045, + "src": "1040:252:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 865, + "nodeType": "Block", + "src": "1669:497:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 834, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 830, + "src": "1918:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1927:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1918:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 837, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1917:12:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 842, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "1958:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20Upgradeable_$1045", + "typeString": "library SafeERC20Upgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20Upgradeable_$1045", + "typeString": "library SafeERC20Upgradeable" + } + ], + "id": 841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1950:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1950:7:6", + "typeDescriptions": {} + } + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1950:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 844, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 828, + "src": "1965:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 838, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 826, + "src": "1934:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1940:9:6", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 705, + "src": "1934:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1934:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1977:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1934:44:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 848, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1933:46:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1917:62:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365", + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1993:56:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + }, + "value": "SafeERC20: approve from non-zero to non-zero allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + } + ], + "id": 833, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1896:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1896:163:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 852, + "nodeType": "ExpressionStatement", + "src": "1896:163:6" + }, + { + "expression": { + "arguments": [ + { + "id": 854, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 826, + "src": "2089:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 857, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 826, + "src": "2119:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "id": 858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2125:7:6", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "2119:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2133:8:6", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2119:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 860, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 828, + "src": "2143:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 830, + "src": "2152:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 855, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "2096:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2100:18:6", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2096:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2096:62:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 853, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1044, + "src": "2069:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$728_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20Upgradeable,bytes memory)" + } + }, + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2069:90:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 864, + "nodeType": "ExpressionStatement", + "src": "2069:90:6" + } + ] + }, + "documentation": { + "id": 823, + "nodeType": "StructuredDocumentation", + "src": "1298:249:6", + "text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead." + }, + "id": 866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeApprove", + "nameLocation": "1561:11:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 826, + "mutability": "mutable", + "name": "token", + "nameLocation": "1600:5:6", + "nodeType": "VariableDeclaration", + "scope": 866, + "src": "1582:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + }, + "typeName": { + "id": 825, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 824, + "name": "IERC20Upgradeable", + "nameLocations": [ + "1582:17:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 728, + "src": "1582:17:6" + }, + "referencedDeclaration": 728, + "src": "1582:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 828, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1623:7:6", + "nodeType": "VariableDeclaration", + "scope": 866, + "src": "1615:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 827, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1615:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 830, + "mutability": "mutable", + "name": "value", + "nameLocation": "1648:5:6", + "nodeType": "VariableDeclaration", + "scope": 866, + "src": "1640:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 829, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1640:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1572:87:6" + }, + "returnParameters": { + "id": 832, + "nodeType": "ParameterList", + "parameters": [], + "src": "1669:0:6" + }, + "scope": 1045, + "src": "1552:614:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 901, + "nodeType": "Block", + "src": "2299:194:6", + "statements": [ + { + "assignments": [ + 877 + ], + "declarations": [ + { + "constant": false, + "id": 877, + "mutability": "mutable", + "name": "newAllowance", + "nameLocation": "2317:12:6", + "nodeType": "VariableDeclaration", + "scope": 901, + "src": "2309:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2309:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 888, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 882, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2356:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20Upgradeable_$1045", + "typeString": "library SafeERC20Upgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20Upgradeable_$1045", + "typeString": "library SafeERC20Upgradeable" + } + ], + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2348:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 880, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2348:7:6", + "typeDescriptions": {} + } + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2348:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 884, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "2363:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 878, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "2332:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2338:9:6", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 705, + "src": "2332:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2332:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 886, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "2374:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2332:47:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2309:70:6" + }, + { + "expression": { + "arguments": [ + { + "id": 890, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "2409:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 893, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "2439:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "id": 894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2445:7:6", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "2439:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2453:8:6", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2439:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 896, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "2463:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 897, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 877, + "src": "2472:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 891, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "2416:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2420:18:6", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2416:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2416:69:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 889, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1044, + "src": "2389:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$728_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20Upgradeable,bytes memory)" + } + }, + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2389:97:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 900, + "nodeType": "ExpressionStatement", + "src": "2389:97:6" + } + ] + }, + "id": 902, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeIncreaseAllowance", + "nameLocation": "2181:21:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 869, + "mutability": "mutable", + "name": "token", + "nameLocation": "2230:5:6", + "nodeType": "VariableDeclaration", + "scope": 902, + "src": "2212:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + }, + "typeName": { + "id": 868, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 867, + "name": "IERC20Upgradeable", + "nameLocations": [ + "2212:17:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 728, + "src": "2212:17:6" + }, + "referencedDeclaration": 728, + "src": "2212:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 871, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2253:7:6", + "nodeType": "VariableDeclaration", + "scope": 902, + "src": "2245:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 870, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2245:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 873, + "mutability": "mutable", + "name": "value", + "nameLocation": "2278:5:6", + "nodeType": "VariableDeclaration", + "scope": 902, + "src": "2270:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 872, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2270:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2202:87:6" + }, + "returnParameters": { + "id": 875, + "nodeType": "ParameterList", + "parameters": [], + "src": "2299:0:6" + }, + "scope": 1045, + "src": "2172:321:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 949, + "nodeType": "Block", + "src": "2626:370:6", + "statements": [ + { + "id": 948, + "nodeType": "UncheckedBlock", + "src": "2636:354:6", + "statements": [ + { + "assignments": [ + 913 + ], + "declarations": [ + { + "constant": false, + "id": 913, + "mutability": "mutable", + "name": "oldAllowance", + "nameLocation": "2668:12:6", + "nodeType": "VariableDeclaration", + "scope": 948, + "src": "2660:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 912, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2660:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 922, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 918, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2707:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20Upgradeable_$1045", + "typeString": "library SafeERC20Upgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20Upgradeable_$1045", + "typeString": "library SafeERC20Upgradeable" + } + ], + "id": 917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2699:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2699:7:6", + "typeDescriptions": {} + } + }, + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2699:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 920, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "2714:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 914, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "2683:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "id": 915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2689:9:6", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 705, + "src": "2683:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2683:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2660:62:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 924, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "2744:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 925, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "2760:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2744:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2767:43:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + }, + "value": "SafeERC20: decreased allowance below zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + } + ], + "id": 923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2736:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2736:75:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 929, + "nodeType": "ExpressionStatement", + "src": "2736:75:6" + }, + { + "assignments": [ + 931 + ], + "declarations": [ + { + "constant": false, + "id": 931, + "mutability": "mutable", + "name": "newAllowance", + "nameLocation": "2833:12:6", + "nodeType": "VariableDeclaration", + "scope": 948, + "src": "2825:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 930, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2825:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 935, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 932, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "2848:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 933, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "2863:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2848:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2825:43:6" + }, + { + "expression": { + "arguments": [ + { + "id": 937, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "2902:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 940, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "2932:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2938:7:6", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "2932:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2946:8:6", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2932:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 943, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "2956:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 944, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 931, + "src": "2965:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 938, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "2909:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 939, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2913:18:6", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2909:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2909:69:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 936, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1044, + "src": "2882:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$728_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20Upgradeable,bytes memory)" + } + }, + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2882:97:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 947, + "nodeType": "ExpressionStatement", + "src": "2882:97:6" + } + ] + } + ] + }, + "id": 950, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeDecreaseAllowance", + "nameLocation": "2508:21:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 905, + "mutability": "mutable", + "name": "token", + "nameLocation": "2557:5:6", + "nodeType": "VariableDeclaration", + "scope": 950, + "src": "2539:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + }, + "typeName": { + "id": 904, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 903, + "name": "IERC20Upgradeable", + "nameLocations": [ + "2539:17:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 728, + "src": "2539:17:6" + }, + "referencedDeclaration": 728, + "src": "2539:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 907, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2580:7:6", + "nodeType": "VariableDeclaration", + "scope": 950, + "src": "2572:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 906, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2572:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 909, + "mutability": "mutable", + "name": "value", + "nameLocation": "2605:5:6", + "nodeType": "VariableDeclaration", + "scope": 950, + "src": "2597:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 908, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2597:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2529:87:6" + }, + "returnParameters": { + "id": 911, + "nodeType": "ParameterList", + "parameters": [], + "src": "2626:0:6" + }, + "scope": 1045, + "src": "2499:497:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1005, + "nodeType": "Block", + "src": "3228:257:6", + "statements": [ + { + "assignments": [ + 971 + ], + "declarations": [ + { + "constant": false, + "id": 971, + "mutability": "mutable", + "name": "nonceBefore", + "nameLocation": "3246:11:6", + "nodeType": "VariableDeclaration", + "scope": 1005, + "src": "3238:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 970, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3238:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 976, + "initialValue": { + "arguments": [ + { + "id": 974, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 955, + "src": "3273:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 972, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "3260:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20PermitUpgradeable_$764", + "typeString": "contract IERC20PermitUpgradeable" + } + }, + "id": 973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3266:6:6", + "memberName": "nonces", + "nodeType": "MemberAccess", + "referencedDeclaration": 757, + "src": "3260:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3260:19:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3238:41:6" + }, + { + "expression": { + "arguments": [ + { + "id": 980, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 955, + "src": "3302:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 981, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 957, + "src": "3309:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 982, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "3318:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 983, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 961, + "src": "3325:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 984, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 963, + "src": "3335:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 985, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "3338:1:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 986, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "3341:1:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 977, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "3289:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20PermitUpgradeable_$764", + "typeString": "contract IERC20PermitUpgradeable" + } + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3295:6:6", + "memberName": "permit", + "nodeType": "MemberAccess", + "referencedDeclaration": 749, + "src": "3289:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint8,bytes32,bytes32) external" + } + }, + "id": 987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3289:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 988, + "nodeType": "ExpressionStatement", + "src": "3289:54:6" + }, + { + "assignments": [ + 990 + ], + "declarations": [ + { + "constant": false, + "id": 990, + "mutability": "mutable", + "name": "nonceAfter", + "nameLocation": "3361:10:6", + "nodeType": "VariableDeclaration", + "scope": 1005, + "src": "3353:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3353:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 995, + "initialValue": { + "arguments": [ + { + "id": 993, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 955, + "src": "3387:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 991, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "3374:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20PermitUpgradeable_$764", + "typeString": "contract IERC20PermitUpgradeable" + } + }, + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3380:6:6", + "memberName": "nonces", + "nodeType": "MemberAccess", + "referencedDeclaration": 757, + "src": "3374:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3374:19:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3353:40:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 997, + "name": "nonceAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 990, + "src": "3411:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 998, + "name": "nonceBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 971, + "src": "3425:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3439:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3425:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3411:29:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a207065726d697420646964206e6f742073756363656564", + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3442:35:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d", + "typeString": "literal_string \"SafeERC20: permit did not succeed\"" + }, + "value": "SafeERC20: permit did not succeed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d", + "typeString": "literal_string \"SafeERC20: permit did not succeed\"" + } + ], + "id": 996, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3403:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3403:75:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1004, + "nodeType": "ExpressionStatement", + "src": "3403:75:6" + } + ] + }, + "id": 1006, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safePermit", + "nameLocation": "3011:10:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 953, + "mutability": "mutable", + "name": "token", + "nameLocation": "3055:5:6", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "3031:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20PermitUpgradeable_$764", + "typeString": "contract IERC20PermitUpgradeable" + }, + "typeName": { + "id": 952, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 951, + "name": "IERC20PermitUpgradeable", + "nameLocations": [ + "3031:23:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 764, + "src": "3031:23:6" + }, + "referencedDeclaration": 764, + "src": "3031:23:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20PermitUpgradeable_$764", + "typeString": "contract IERC20PermitUpgradeable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 955, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3078:5:6", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "3070:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 954, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3070:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 957, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3101:7:6", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "3093:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 956, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3093:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 959, + "mutability": "mutable", + "name": "value", + "nameLocation": "3126:5:6", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "3118:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3118:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 961, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "3149:8:6", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "3141:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3141:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 963, + "mutability": "mutable", + "name": "v", + "nameLocation": "3173:1:6", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "3167:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 962, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3167:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "r", + "nameLocation": "3192:1:6", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "3184:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 964, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3184:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "s", + "nameLocation": "3211:1:6", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "3203:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 966, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3203:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3021:197:6" + }, + "returnParameters": { + "id": 969, + "nodeType": "ParameterList", + "parameters": [], + "src": "3228:0:6" + }, + "scope": 1045, + "src": "3002:483:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1043, + "nodeType": "Block", + "src": "3949:636:6", + "statements": [ + { + "assignments": [ + 1016 + ], + "declarations": [ + { + "constant": false, + "id": 1016, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "4311:10:6", + "nodeType": "VariableDeclaration", + "scope": 1043, + "src": "4298:23:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1015, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4298:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1025, + "initialValue": { + "arguments": [ + { + "id": 1022, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1012, + "src": "4352:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4358:34:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + }, + "value": "SafeERC20: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + } + ], + "expression": { + "arguments": [ + { + "id": 1019, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1010, + "src": "4332:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + ], + "id": 1018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4324:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4324:7:6", + "typeDescriptions": {} + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4324:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4339:12:6", + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1135, + "src": "4324:27:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4324:69:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4298:95:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1026, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "4407:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4418:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4407:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4427:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4407:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1042, + "nodeType": "IfStatement", + "src": "4403:176:6", + "trueBody": { + "id": 1041, + "nodeType": "Block", + "src": "4430:149:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1033, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "4502:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 1035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4515:4:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 1034, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4515:4:6", + "typeDescriptions": {} + } + } + ], + "id": 1036, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4514:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "id": 1031, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "4491:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4495:6:6", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "4491:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4491:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564", + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4523:44:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + }, + "value": "SafeERC20: ERC20 operation did not succeed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + } + ], + "id": 1030, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4483:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4483:85:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1040, + "nodeType": "ExpressionStatement", + "src": "4483:85:6" + } + ] + } + } + ] + }, + "documentation": { + "id": 1007, + "nodeType": "StructuredDocumentation", + "src": "3491:372:6", + "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)." + }, + "id": 1044, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_callOptionalReturn", + "nameLocation": "3877:19:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1010, + "mutability": "mutable", + "name": "token", + "nameLocation": "3915:5:6", + "nodeType": "VariableDeclaration", + "scope": 1044, + "src": "3897:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + }, + "typeName": { + "id": 1009, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1008, + "name": "IERC20Upgradeable", + "nameLocations": [ + "3897:17:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 728, + "src": "3897:17:6" + }, + "referencedDeclaration": 728, + "src": "3897:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1012, + "mutability": "mutable", + "name": "data", + "nameLocation": "3935:4:6", + "nodeType": "VariableDeclaration", + "scope": 1044, + "src": "3922:17:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1011, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3922:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3896:44:6" + }, + "returnParameters": { + "id": 1014, + "nodeType": "ParameterList", + "parameters": [], + "src": "3949:0:6" + }, + "scope": 1045, + "src": "3868:717:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1046, + "src": "740:3847:6", + "usedErrors": [] + } + ], + "src": "115:4473:6" + }, + "id": 6 + }, + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "exportedSymbols": { + "AddressUpgradeable": [ + 1329 + ] + }, + "id": 1330, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1047, + "literals": [ + "solidity", + "^", + "0.8", + ".1" + ], + "nodeType": "PragmaDirective", + "src": "101:23:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "AddressUpgradeable", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1048, + "nodeType": "StructuredDocumentation", + "src": "126:67:7", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1329, + "linearizedBaseContracts": [ + 1329 + ], + "name": "AddressUpgradeable", + "nameLocation": "202:18:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1062, + "nodeType": "Block", + "src": "1252:254:7", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1056, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1051, + "src": "1476:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1484:4:7", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "1476:12:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1489:6:7", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1476:19:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1498:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1476:23:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1055, + "id": 1061, + "nodeType": "Return", + "src": "1469:30:7" + } + ] + }, + "documentation": { + "id": 1049, + "nodeType": "StructuredDocumentation", + "src": "227:954:7", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ====" + }, + "id": 1063, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nameLocation": "1195:10:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1051, + "mutability": "mutable", + "name": "account", + "nameLocation": "1214:7:7", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "1206:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1206:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1205:17:7" + }, + "returnParameters": { + "id": 1055, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1054, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "1246:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1053, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1246:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1245:6:7" + }, + "scope": 1329, + "src": "1186:320:7", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1096, + "nodeType": "Block", + "src": "2494:241:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1074, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2520:4:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUpgradeable_$1329", + "typeString": "library AddressUpgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AddressUpgradeable_$1329", + "typeString": "library AddressUpgradeable" + } + ], + "id": 1073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2512:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1072, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2512:7:7", + "typeDescriptions": {} + } + }, + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2512:13:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2526:7:7", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2512:21:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1077, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1068, + "src": "2537:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2512:31:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2545:31:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1071, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2504:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2504:73:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1081, + "nodeType": "ExpressionStatement", + "src": "2504:73:7" + }, + { + "assignments": [ + 1083, + null + ], + "declarations": [ + { + "constant": false, + "id": 1083, + "mutability": "mutable", + "name": "success", + "nameLocation": "2594:7:7", + "nodeType": "VariableDeclaration", + "scope": 1096, + "src": "2589:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1082, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2589:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1090, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2637:2:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1084, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "2607:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2617:4:7", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "2607:14:7", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1086, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1068, + "src": "2629:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2607:29:7", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2607:33:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2588:52:7" + }, + { + "expression": { + "arguments": [ + { + "id": 1092, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1083, + "src": "2658:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2667:60:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1091, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2650:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2650:78:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1095, + "nodeType": "ExpressionStatement", + "src": "2650:78:7" + } + ] + }, + "documentation": { + "id": 1064, + "nodeType": "StructuredDocumentation", + "src": "1512:906:7", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nameLocation": "2432:9:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1066, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "2458:9:7", + "nodeType": "VariableDeclaration", + "scope": 1097, + "src": "2442:25:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1065, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2442:15:7", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1068, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2477:6:7", + "nodeType": "VariableDeclaration", + "scope": 1097, + "src": "2469:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1067, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2469:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2441:43:7" + }, + "returnParameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [], + "src": "2494:0:7" + }, + "scope": 1329, + "src": "2423:312:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1114, + "nodeType": "Block", + "src": "3566:96:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1108, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "3605:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1109, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1102, + "src": "3613:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3619:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3622:32:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1107, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1155, + 1199 + ], + "referencedDeclaration": 1199, + "src": "3583:21:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3583:72:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1106, + "id": 1113, + "nodeType": "Return", + "src": "3576:79:7" + } + ] + }, + "documentation": { + "id": 1098, + "nodeType": "StructuredDocumentation", + "src": "2741:731:7", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1115, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nameLocation": "3486:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1100, + "mutability": "mutable", + "name": "target", + "nameLocation": "3507:6:7", + "nodeType": "VariableDeclaration", + "scope": 1115, + "src": "3499:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3499:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1102, + "mutability": "mutable", + "name": "data", + "nameLocation": "3528:4:7", + "nodeType": "VariableDeclaration", + "scope": 1115, + "src": "3515:17:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1101, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3515:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3498:35:7" + }, + "returnParameters": { + "id": 1106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1105, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1115, + "src": "3552:12:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1104, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3552:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3551:14:7" + }, + "scope": 1329, + "src": "3477:185:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1134, + "nodeType": "Block", + "src": "4031:76:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1128, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "4070:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1129, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1120, + "src": "4078:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1130, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4084:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1131, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1122, + "src": "4087:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1127, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1155, + 1199 + ], + "referencedDeclaration": 1199, + "src": "4048:21:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4048:52:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1126, + "id": 1133, + "nodeType": "Return", + "src": "4041:59:7" + } + ] + }, + "documentation": { + "id": 1116, + "nodeType": "StructuredDocumentation", + "src": "3668:211:7", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nameLocation": "3893:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1118, + "mutability": "mutable", + "name": "target", + "nameLocation": "3923:6:7", + "nodeType": "VariableDeclaration", + "scope": 1135, + "src": "3915:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3915:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "data", + "nameLocation": "3952:4:7", + "nodeType": "VariableDeclaration", + "scope": 1135, + "src": "3939:17:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1119, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3939:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1122, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "3980:12:7", + "nodeType": "VariableDeclaration", + "scope": 1135, + "src": "3966:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1121, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3966:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3905:93:7" + }, + "returnParameters": { + "id": 1126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1125, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1135, + "src": "4017:12:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1124, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4017:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4016:14:7" + }, + "scope": 1329, + "src": "3884:223:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1154, + "nodeType": "Block", + "src": "4612:111:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1148, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "4651:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1149, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1140, + "src": "4659:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1150, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1142, + "src": "4665:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4672:43:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1147, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1155, + 1199 + ], + "referencedDeclaration": 1199, + "src": "4629:21:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4629:87:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1146, + "id": 1153, + "nodeType": "Return", + "src": "4622:94:7" + } + ] + }, + "documentation": { + "id": 1136, + "nodeType": "StructuredDocumentation", + "src": "4113:351:7", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1155, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nameLocation": "4478:21:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1138, + "mutability": "mutable", + "name": "target", + "nameLocation": "4517:6:7", + "nodeType": "VariableDeclaration", + "scope": 1155, + "src": "4509:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1137, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4509:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "data", + "nameLocation": "4546:4:7", + "nodeType": "VariableDeclaration", + "scope": 1155, + "src": "4533:17:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1139, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4533:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1142, + "mutability": "mutable", + "name": "value", + "nameLocation": "4568:5:7", + "nodeType": "VariableDeclaration", + "scope": 1155, + "src": "4560:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4560:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4499:80:7" + }, + "returnParameters": { + "id": 1146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1145, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1155, + "src": "4598:12:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1144, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4598:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4597:14:7" + }, + "scope": 1329, + "src": "4469:254:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1198, + "nodeType": "Block", + "src": "5150:267:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1172, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "5176:4:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUpgradeable_$1329", + "typeString": "library AddressUpgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AddressUpgradeable_$1329", + "typeString": "library AddressUpgradeable" + } + ], + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5168:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5168:7:7", + "typeDescriptions": {} + } + }, + "id": 1173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5168:13:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5182:7:7", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "5168:21:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1175, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1162, + "src": "5193:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5168:30:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5200:40:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1169, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "5160:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5160:81:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1179, + "nodeType": "ExpressionStatement", + "src": "5160:81:7" + }, + { + "assignments": [ + 1181, + 1183 + ], + "declarations": [ + { + "constant": false, + "id": 1181, + "mutability": "mutable", + "name": "success", + "nameLocation": "5257:7:7", + "nodeType": "VariableDeclaration", + "scope": 1198, + "src": "5252:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1180, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5252:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1183, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "5279:10:7", + "nodeType": "VariableDeclaration", + "scope": 1198, + "src": "5266:23:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5266:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1190, + "initialValue": { + "arguments": [ + { + "id": 1188, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1160, + "src": "5319:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1184, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1158, + "src": "5293:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5300:4:7", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "5293:11:7", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1162, + "src": "5312:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5293:25:7", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5293:31:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5251:73:7" + }, + { + "expression": { + "arguments": [ + { + "id": 1192, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1158, + "src": "5368:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1193, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1181, + "src": "5376:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1194, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1183, + "src": "5385:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1195, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1164, + "src": "5397:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1191, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1284, + "src": "5341:26:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5341:69:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1168, + "id": 1197, + "nodeType": "Return", + "src": "5334:76:7" + } + ] + }, + "documentation": { + "id": 1156, + "nodeType": "StructuredDocumentation", + "src": "4729:237:7", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1199, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nameLocation": "4980:21:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1165, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1158, + "mutability": "mutable", + "name": "target", + "nameLocation": "5019:6:7", + "nodeType": "VariableDeclaration", + "scope": 1199, + "src": "5011:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1157, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5011:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1160, + "mutability": "mutable", + "name": "data", + "nameLocation": "5048:4:7", + "nodeType": "VariableDeclaration", + "scope": 1199, + "src": "5035:17:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1159, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5035:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1162, + "mutability": "mutable", + "name": "value", + "nameLocation": "5070:5:7", + "nodeType": "VariableDeclaration", + "scope": 1199, + "src": "5062:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1161, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5062:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1164, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "5099:12:7", + "nodeType": "VariableDeclaration", + "scope": 1199, + "src": "5085:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1163, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5085:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5001:116:7" + }, + "returnParameters": { + "id": 1168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1167, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1199, + "src": "5136:12:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1166, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5136:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5135:14:7" + }, + "scope": 1329, + "src": "4971:446:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1215, + "nodeType": "Block", + "src": "5694:97:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1210, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "5730:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1211, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "5738:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5744:39:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1209, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1216, + 1245 + ], + "referencedDeclaration": 1245, + "src": "5711:18:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5711:73:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1208, + "id": 1214, + "nodeType": "Return", + "src": "5704:80:7" + } + ] + }, + "documentation": { + "id": 1200, + "nodeType": "StructuredDocumentation", + "src": "5423:166:7", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nameLocation": "5603:18:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1202, + "mutability": "mutable", + "name": "target", + "nameLocation": "5630:6:7", + "nodeType": "VariableDeclaration", + "scope": 1216, + "src": "5622:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1201, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5622:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1204, + "mutability": "mutable", + "name": "data", + "nameLocation": "5651:4:7", + "nodeType": "VariableDeclaration", + "scope": 1216, + "src": "5638:17:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1203, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5638:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5621:35:7" + }, + "returnParameters": { + "id": 1208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1207, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1216, + "src": "5680:12:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1206, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5680:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5679:14:7" + }, + "scope": 1329, + "src": "5594:197:7", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "6133:168:7", + "statements": [ + { + "assignments": [ + 1229, + 1231 + ], + "declarations": [ + { + "constant": false, + "id": 1229, + "mutability": "mutable", + "name": "success", + "nameLocation": "6149:7:7", + "nodeType": "VariableDeclaration", + "scope": 1244, + "src": "6144:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1228, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6144:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1231, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "6171:10:7", + "nodeType": "VariableDeclaration", + "scope": 1244, + "src": "6158:23:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1230, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6158:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1236, + "initialValue": { + "arguments": [ + { + "id": 1234, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "6203:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1232, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "6185:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6192:10:7", + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "6185:17:7", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6185:23:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6143:65:7" + }, + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "6252:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1229, + "src": "6260:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1240, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1231, + "src": "6269:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1241, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1223, + "src": "6281:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1237, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1284, + "src": "6225:26:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6225:69:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1227, + "id": 1243, + "nodeType": "Return", + "src": "6218:76:7" + } + ] + }, + "documentation": { + "id": 1217, + "nodeType": "StructuredDocumentation", + "src": "5797:173:7", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nameLocation": "5984:18:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1219, + "mutability": "mutable", + "name": "target", + "nameLocation": "6020:6:7", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "6012:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1218, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6012:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1221, + "mutability": "mutable", + "name": "data", + "nameLocation": "6049:4:7", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "6036:17:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1220, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6036:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1223, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "6077:12:7", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "6063:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6063:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6002:93:7" + }, + "returnParameters": { + "id": 1227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1226, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "6119:12:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1225, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6119:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6118:14:7" + }, + "scope": 1329, + "src": "5975:326:7", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1283, + "nodeType": "Block", + "src": "6783:434:7", + "statements": [ + { + "condition": { + "id": 1259, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "6797:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1281, + "nodeType": "Block", + "src": "7153:58:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1277, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "7175:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1278, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "7187:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1276, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1328, + "src": "7167:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,string memory) pure" + } + }, + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7167:33:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1280, + "nodeType": "ExpressionStatement", + "src": "7167:33:7" + } + ] + }, + "id": 1282, + "nodeType": "IfStatement", + "src": "6793:418:7", + "trueBody": { + "id": 1275, + "nodeType": "Block", + "src": "6806:341:7", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1260, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "6824:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6835:6:7", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6824:17:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6845:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6824:22:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1272, + "nodeType": "IfStatement", + "src": "6820:286:7", + "trueBody": { + "id": 1271, + "nodeType": "Block", + "src": "6848:258:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1266, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "7050:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1265, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1063, + "src": "7039:10:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7039:18:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7059:31:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1264, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "7031:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7031:60:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1270, + "nodeType": "ExpressionStatement", + "src": "7031:60:7" + } + ] + } + }, + { + "expression": { + "id": 1273, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "7126:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1274, + "nodeType": "Return", + "src": "7119:17:7" + } + ] + } + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "6307:277:7", + "text": " @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._" + }, + "id": 1284, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResultFromTarget", + "nameLocation": "6598:26:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nameLocation": "6642:6:7", + "nodeType": "VariableDeclaration", + "scope": 1284, + "src": "6634:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6634:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "success", + "nameLocation": "6663:7:7", + "nodeType": "VariableDeclaration", + "scope": 1284, + "src": "6658:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1249, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6658:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "6693:10:7", + "nodeType": "VariableDeclaration", + "scope": 1284, + "src": "6680:23:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1251, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6680:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "6727:12:7", + "nodeType": "VariableDeclaration", + "scope": 1284, + "src": "6713:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6713:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6624:121:7" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1284, + "src": "6769:12:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6769:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6768:14:7" + }, + "scope": 1329, + "src": "6589:628:7", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1307, + "nodeType": "Block", + "src": "7598:135:7", + "statements": [ + { + "condition": { + "id": 1296, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1287, + "src": "7612:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1305, + "nodeType": "Block", + "src": "7669:58:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1301, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1289, + "src": "7691:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1302, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1291, + "src": "7703:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1300, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1328, + "src": "7683:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,string memory) pure" + } + }, + "id": 1303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7683:33:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1304, + "nodeType": "ExpressionStatement", + "src": "7683:33:7" + } + ] + }, + "id": 1306, + "nodeType": "IfStatement", + "src": "7608:119:7", + "trueBody": { + "id": 1299, + "nodeType": "Block", + "src": "7621:42:7", + "statements": [ + { + "expression": { + "id": 1297, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1289, + "src": "7642:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1295, + "id": 1298, + "nodeType": "Return", + "src": "7635:17:7" + } + ] + } + } + ] + }, + "documentation": { + "id": 1285, + "nodeType": "StructuredDocumentation", + "src": "7223:210:7", + "text": " @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._" + }, + "id": 1308, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResult", + "nameLocation": "7447:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1287, + "mutability": "mutable", + "name": "success", + "nameLocation": "7478:7:7", + "nodeType": "VariableDeclaration", + "scope": 1308, + "src": "7473:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1286, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7473:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1289, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "7508:10:7", + "nodeType": "VariableDeclaration", + "scope": 1308, + "src": "7495:23:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1288, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7495:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1291, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "7542:12:7", + "nodeType": "VariableDeclaration", + "scope": 1308, + "src": "7528:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1290, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7528:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7463:97:7" + }, + "returnParameters": { + "id": 1295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1294, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1308, + "src": "7584:12:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1293, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7584:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7583:14:7" + }, + "scope": 1329, + "src": "7438:295:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1327, + "nodeType": "Block", + "src": "7822:457:7", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1315, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "7898:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7909:6:7", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7898:17:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7918:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7898:21:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1325, + "nodeType": "Block", + "src": "8228:45:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1322, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1312, + "src": "8249:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1321, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "8242:6:7", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8242:20:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1324, + "nodeType": "ExpressionStatement", + "src": "8242:20:7" + } + ] + }, + "id": 1326, + "nodeType": "IfStatement", + "src": "7894:379:7", + "trueBody": { + "id": 1320, + "nodeType": "Block", + "src": "7921:301:7", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "8079:133:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8097:40:7", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "8126:10:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8120:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "8120:17:7" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "8101:15:7", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8165:2:7", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "8169:10:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8161:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "8161:19:7" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "8182:15:7" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8154:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "8154:44:7" + }, + "nodeType": "YulExpressionStatement", + "src": "8154:44:7" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 1310, + "isOffset": false, + "isSlot": false, + "src": "8126:10:7", + "valueSize": 1 + }, + { + "declaration": 1310, + "isOffset": false, + "isSlot": false, + "src": "8169:10:7", + "valueSize": 1 + } + ], + "id": 1319, + "nodeType": "InlineAssembly", + "src": "8070:142:7" + } + ] + } + } + ] + }, + "id": 1328, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revert", + "nameLocation": "7748:7:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1310, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "7769:10:7", + "nodeType": "VariableDeclaration", + "scope": 1328, + "src": "7756:23:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1309, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7756:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1312, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "7795:12:7", + "nodeType": "VariableDeclaration", + "scope": 1328, + "src": "7781:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1311, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7781:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7755:53:7" + }, + "returnParameters": { + "id": 1314, + "nodeType": "ParameterList", + "parameters": [], + "src": "7822:0:7" + }, + "scope": 1329, + "src": "7739:540:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1330, + "src": "194:8087:7", + "usedErrors": [] + } + ], + "src": "101:8181:7" + }, + "id": 7 + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "exportedSymbols": { + "AddressUpgradeable": [ + 1329 + ], + "ContextUpgradeable": [ + 1371 + ], + "Initializable": [ + 577 + ] + }, + "id": 1372, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1331, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "86:23:8" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 1332, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1372, + "sourceUnit": 578, + "src": "110:42:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1334, + "name": "Initializable", + "nameLocations": [ + "691:13:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 577, + "src": "691:13:8" + }, + "id": 1335, + "nodeType": "InheritanceSpecifier", + "src": "691:13:8" + } + ], + "canonicalName": "ContextUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1333, + "nodeType": "StructuredDocumentation", + "src": "154:496:8", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 1371, + "linearizedBaseContracts": [ + 1371, + 577 + ], + "name": "ContextUpgradeable", + "nameLocation": "669:18:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1340, + "nodeType": "Block", + "src": "763:7:8", + "statements": [] + }, + "id": 1341, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1338, + "kind": "modifierInvocation", + "modifierName": { + "id": 1337, + "name": "onlyInitializing", + "nameLocations": [ + "746:16:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 522, + "src": "746:16:8" + }, + "nodeType": "ModifierInvocation", + "src": "746:16:8" + } + ], + "name": "__Context_init", + "nameLocation": "720:14:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1336, + "nodeType": "ParameterList", + "parameters": [], + "src": "734:2:8" + }, + "returnParameters": { + "id": 1339, + "nodeType": "ParameterList", + "parameters": [], + "src": "763:0:8" + }, + "scope": 1371, + "src": "711:59:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "838:7:8", + "statements": [] + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1344, + "kind": "modifierInvocation", + "modifierName": { + "id": 1343, + "name": "onlyInitializing", + "nameLocations": [ + "821:16:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 522, + "src": "821:16:8" + }, + "nodeType": "ModifierInvocation", + "src": "821:16:8" + } + ], + "name": "__Context_init_unchained", + "nameLocation": "785:24:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1342, + "nodeType": "ParameterList", + "parameters": [], + "src": "809:2:8" + }, + "returnParameters": { + "id": 1345, + "nodeType": "ParameterList", + "parameters": [], + "src": "838:0:8" + }, + "scope": 1371, + "src": "776:69:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1355, + "nodeType": "Block", + "src": "912:34:8", + "statements": [ + { + "expression": { + "expression": { + "id": 1352, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "929:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "933:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "929:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1351, + "id": 1354, + "nodeType": "Return", + "src": "922:17:8" + } + ] + }, + "id": 1356, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "859:10:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1348, + "nodeType": "ParameterList", + "parameters": [], + "src": "869:2:8" + }, + "returnParameters": { + "id": 1351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1356, + "src": "903:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "903:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "902:9:8" + }, + "scope": 1371, + "src": "850:96:8", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1364, + "nodeType": "Block", + "src": "1019:32:8", + "statements": [ + { + "expression": { + "expression": { + "id": 1361, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1036:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1040:4:8", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "1036:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 1360, + "id": 1363, + "nodeType": "Return", + "src": "1029:15:8" + } + ] + }, + "id": 1365, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "961:8:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1357, + "nodeType": "ParameterList", + "parameters": [], + "src": "969:2:8" + }, + "returnParameters": { + "id": 1360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1359, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1365, + "src": "1003:14:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1358, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1003:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1002:16:8" + }, + "scope": 1371, + "src": "952:99:8", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 1366, + "nodeType": "StructuredDocumentation", + "src": "1057:254:8", + "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" + }, + "id": 1370, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "1336:5:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "1316:25:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 1367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1316:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1369, + "length": { + "hexValue": "3530", + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1324:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "1316:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "visibility": "private" + } + ], + "scope": 1372, + "src": "651:693:8", + "usedErrors": [] + } + ], + "src": "86:1259:8" + }, + "id": 8 + }, + "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", + "exportedSymbols": { + "MathUpgradeable": [ + 2467 + ], + "StringsUpgradeable": [ + 1546 + ] + }, + "id": 1547, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1373, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "101:23:9" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", + "file": "./math/MathUpgradeable.sol", + "id": 1374, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1547, + "sourceUnit": 2468, + "src": "126:36:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "StringsUpgradeable", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1375, + "nodeType": "StructuredDocumentation", + "src": "164:34:9", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 1546, + "linearizedBaseContracts": [ + 1546 + ], + "name": "StringsUpgradeable", + "nameLocation": "207:18:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 1378, + "mutability": "constant", + "name": "_SYMBOLS", + "nameLocation": "257:8:9", + "nodeType": "VariableDeclaration", + "scope": 1546, + "src": "232:54:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + }, + "typeName": { + "id": 1376, + "name": "bytes16", + "nodeType": "ElementaryTypeName", + "src": "232:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "value": { + "hexValue": "30313233343536373839616263646566", + "id": 1377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "268:18:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", + "typeString": "literal_string \"0123456789abcdef\"" + }, + "value": "0123456789abcdef" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 1381, + "mutability": "constant", + "name": "_ADDRESS_LENGTH", + "nameLocation": "315:15:9", + "nodeType": "VariableDeclaration", + "scope": 1546, + "src": "292:43:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1379, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "292:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3230", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "333:2:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "private" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "508:636:9", + "statements": [ + { + "id": 1427, + "nodeType": "UncheckedBlock", + "src": "518:620:9", + "statements": [ + { + "assignments": [ + 1390 + ], + "declarations": [ + { + "constant": false, + "id": 1390, + "mutability": "mutable", + "name": "length", + "nameLocation": "550:6:9", + "nodeType": "VariableDeclaration", + "scope": 1427, + "src": "542:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "542:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1397, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1393, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "581:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1391, + "name": "MathUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2467, + "src": "559:15:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_MathUpgradeable_$2467_$", + "typeString": "type(library MathUpgradeable)" + } + }, + "id": 1392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "575:5:9", + "memberName": "log10", + "nodeType": "MemberAccess", + "referencedDeclaration": 2304, + "src": "559:21:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "559:28:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "590:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "559:32:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "542:49:9" + }, + { + "assignments": [ + 1399 + ], + "declarations": [ + { + "constant": false, + "id": 1399, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "619:6:9", + "nodeType": "VariableDeclaration", + "scope": 1427, + "src": "605:20:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1398, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "605:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 1404, + "initialValue": { + "arguments": [ + { + "id": 1402, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "639:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "628:10:9", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 1400, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "632:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 1403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "628:18:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "605:41:9" + }, + { + "assignments": [ + 1406 + ], + "declarations": [ + { + "constant": false, + "id": 1406, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "668:3:9", + "nodeType": "VariableDeclaration", + "scope": 1427, + "src": "660:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1405, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "660:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1407, + "nodeType": "VariableDeclarationStatement", + "src": "660:11:9" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "741:67:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "759:35:9", + "value": { + "arguments": [ + { + "name": "buffer", + "nodeType": "YulIdentifier", + "src": "770:6:9" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "782:2:9", + "type": "", + "value": "32" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "786:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "778:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "778:15:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "766:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "766:28:9" + }, + "variableNames": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "759:3:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 1399, + "isOffset": false, + "isSlot": false, + "src": "770:6:9", + "valueSize": 1 + }, + { + "declaration": 1390, + "isOffset": false, + "isSlot": false, + "src": "786:6:9", + "valueSize": 1 + }, + { + "declaration": 1406, + "isOffset": false, + "isSlot": false, + "src": "759:3:9", + "valueSize": 1 + } + ], + "id": 1408, + "nodeType": "InlineAssembly", + "src": "732:76:9" + }, + { + "body": { + "id": 1423, + "nodeType": "Block", + "src": "834:267:9", + "statements": [ + { + "expression": { + "id": 1411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "852:5:9", + "subExpression": { + "id": 1410, + "name": "ptr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1406, + "src": "852:3:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1412, + "nodeType": "ExpressionStatement", + "src": "852:5:9" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "935:84:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "965:3:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "979:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "986:2:9", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mod", + "nodeType": "YulIdentifier", + "src": "975:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "975:14:9" + }, + { + "name": "_SYMBOLS", + "nodeType": "YulIdentifier", + "src": "991:8:9" + } + ], + "functionName": { + "name": "byte", + "nodeType": "YulIdentifier", + "src": "970:4:9" + }, + "nodeType": "YulFunctionCall", + "src": "970:30:9" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "957:7:9" + }, + "nodeType": "YulFunctionCall", + "src": "957:44:9" + }, + "nodeType": "YulExpressionStatement", + "src": "957:44:9" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 1378, + "isOffset": false, + "isSlot": false, + "src": "991:8:9", + "valueSize": 1 + }, + { + "declaration": 1406, + "isOffset": false, + "isSlot": false, + "src": "965:3:9", + "valueSize": 1 + }, + { + "declaration": 1384, + "isOffset": false, + "isSlot": false, + "src": "979:5:9", + "valueSize": 1 + } + ], + "id": 1413, + "nodeType": "InlineAssembly", + "src": "926:93:9" + }, + { + "expression": { + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1414, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "1036:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1045:2:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1036:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1417, + "nodeType": "ExpressionStatement", + "src": "1036:11:9" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1418, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "1069:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1078:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1069:10:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1422, + "nodeType": "IfStatement", + "src": "1065:21:9", + "trueBody": { + "id": 1421, + "nodeType": "Break", + "src": "1081:5:9" + } + } + ] + }, + "condition": { + "hexValue": "74727565", + "id": 1409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "828:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 1424, + "nodeType": "WhileStatement", + "src": "821:280:9" + }, + { + "expression": { + "id": 1425, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1399, + "src": "1121:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1388, + "id": 1426, + "nodeType": "Return", + "src": "1114:13:9" + } + ] + } + ] + }, + "documentation": { + "id": 1382, + "nodeType": "StructuredDocumentation", + "src": "342:90:9", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "446:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "value", + "nameLocation": "463:5:9", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "455:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "455:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "454:15:9" + }, + "returnParameters": { + "id": 1388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1387, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "493:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1386, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "493:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "492:15:9" + }, + "scope": 1546, + "src": "437:707:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1448, + "nodeType": "Block", + "src": "1323:111:9", + "statements": [ + { + "id": 1447, + "nodeType": "UncheckedBlock", + "src": "1333:95:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1438, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1432, + "src": "1376:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1441, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1432, + "src": "1406:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1439, + "name": "MathUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2467, + "src": "1383:15:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_MathUpgradeable_$2467_$", + "typeString": "type(library MathUpgradeable)" + } + }, + "id": 1440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1399:6:9", + "memberName": "log256", + "nodeType": "MemberAccess", + "referencedDeclaration": 2427, + "src": "1383:22:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1383:29:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1415:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1383:33:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1437, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1449, + 1525, + 1545 + ], + "referencedDeclaration": 1525, + "src": "1364:11:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1364:53:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1436, + "id": 1446, + "nodeType": "Return", + "src": "1357:60:9" + } + ] + } + ] + }, + "documentation": { + "id": 1430, + "nodeType": "StructuredDocumentation", + "src": "1150:94:9", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." + }, + "id": 1449, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1258:11:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1432, + "mutability": "mutable", + "name": "value", + "nameLocation": "1278:5:9", + "nodeType": "VariableDeclaration", + "scope": 1449, + "src": "1270:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1270:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1269:15:9" + }, + "returnParameters": { + "id": 1436, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1449, + "src": "1308:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1434, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1308:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1307:15:9" + }, + "scope": 1546, + "src": "1249:185:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1524, + "nodeType": "Block", + "src": "1647:347:9", + "statements": [ + { + "assignments": [ + 1460 + ], + "declarations": [ + { + "constant": false, + "id": 1460, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "1670:6:9", + "nodeType": "VariableDeclaration", + "scope": 1524, + "src": "1657:19:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1459, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1657:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1469, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1689:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1464, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1454, + "src": "1693:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1689:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 1466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1702:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "1689:14:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1679:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 1461, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1683:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 1468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1679:25:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1657:47:9" + }, + { + "expression": { + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1470, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1714:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1472, + "indexExpression": { + "hexValue": "30", + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1721:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1714:9:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1726:3:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "src": "1714:15:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 1475, + "nodeType": "ExpressionStatement", + "src": "1714:15:9" + }, + { + "expression": { + "id": 1480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1476, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1739:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1478, + "indexExpression": { + "hexValue": "31", + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1746:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1739:9:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1751:3:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" + }, + "value": "x" + }, + "src": "1739:15:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 1481, + "nodeType": "ExpressionStatement", + "src": "1739:15:9" + }, + { + "body": { + "id": 1510, + "nodeType": "Block", + "src": "1809:83:9", + "statements": [ + { + "expression": { + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1496, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1823:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1498, + "indexExpression": { + "id": 1497, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1483, + "src": "1830:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1823:9:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 1499, + "name": "_SYMBOLS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1378, + "src": "1835:8:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 1503, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1500, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1452, + "src": "1844:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1852:3:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "1844:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1835:21:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "1823:33:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 1505, + "nodeType": "ExpressionStatement", + "src": "1823:33:9" + }, + { + "expression": { + "id": 1508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1506, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1452, + "src": "1870:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 1507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1880:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "1870:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1509, + "nodeType": "ExpressionStatement", + "src": "1870:11:9" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1490, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1483, + "src": "1797:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 1491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1801:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1797:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1511, + "initializationExpression": { + "assignments": [ + 1483 + ], + "declarations": [ + { + "constant": false, + "id": 1483, + "mutability": "mutable", + "name": "i", + "nameLocation": "1777:1:9", + "nodeType": "VariableDeclaration", + "scope": 1511, + "src": "1769:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1482, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1769:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1489, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1781:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1485, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1454, + "src": "1785:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1781:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1794:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1781:14:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1769:26:9" + }, + "loopExpression": { + "expression": { + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "1804:3:9", + "subExpression": { + "id": 1493, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1483, + "src": "1806:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1495, + "nodeType": "ExpressionStatement", + "src": "1804:3:9" + }, + "nodeType": "ForStatement", + "src": "1764:128:9" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1513, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1452, + "src": "1909:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1918:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1909:10:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1921:34:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "typeString": "literal_string \"Strings: hex length insufficient\"" + }, + "value": "Strings: hex length insufficient" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "typeString": "literal_string \"Strings: hex length insufficient\"" + } + ], + "id": 1512, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1901:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1901:55:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1518, + "nodeType": "ExpressionStatement", + "src": "1901:55:9" + }, + { + "expression": { + "arguments": [ + { + "id": 1521, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1980:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1973:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 1519, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1973:6:9", + "typeDescriptions": {} + } + }, + "id": 1522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1973:14:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1458, + "id": 1523, + "nodeType": "Return", + "src": "1966:21:9" + } + ] + }, + "documentation": { + "id": 1450, + "nodeType": "StructuredDocumentation", + "src": "1440:112:9", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 1525, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1566:11:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1452, + "mutability": "mutable", + "name": "value", + "nameLocation": "1586:5:9", + "nodeType": "VariableDeclaration", + "scope": 1525, + "src": "1578:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1578:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1454, + "mutability": "mutable", + "name": "length", + "nameLocation": "1601:6:9", + "nodeType": "VariableDeclaration", + "scope": 1525, + "src": "1593:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1453, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1593:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1577:31:9" + }, + "returnParameters": { + "id": 1458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1457, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1525, + "src": "1632:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1456, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1632:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1631:15:9" + }, + "scope": 1546, + "src": "1557:437:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1544, + "nodeType": "Block", + "src": "2219:76:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1538, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1528, + "src": "2264:4:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2256:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1536, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2256:7:9", + "typeDescriptions": {} + } + }, + "id": 1539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2256:13:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2248:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2248:7:9", + "typeDescriptions": {} + } + }, + "id": 1540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2248:22:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1541, + "name": "_ADDRESS_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1381, + "src": "2272:15:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1533, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1449, + 1525, + 1545 + ], + "referencedDeclaration": 1525, + "src": "2236:11:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 1542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2236:52:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1532, + "id": 1543, + "nodeType": "Return", + "src": "2229:59:9" + } + ] + }, + "documentation": { + "id": 1526, + "nodeType": "StructuredDocumentation", + "src": "2000:141:9", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation." + }, + "id": 1545, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2155:11:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1528, + "mutability": "mutable", + "name": "addr", + "nameLocation": "2175:4:9", + "nodeType": "VariableDeclaration", + "scope": 1545, + "src": "2167:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2167:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2166:14:9" + }, + "returnParameters": { + "id": 1532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1531, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1545, + "src": "2204:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1530, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2204:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2203:15:9" + }, + "scope": 1546, + "src": "2146:149:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1547, + "src": "199:2098:9", + "usedErrors": [] + } + ], + "src": "101:2197:9" + }, + "id": 9 + }, + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", + "exportedSymbols": { + "AddressUpgradeable": [ + 1329 + ], + "ERC165Upgradeable": [ + 1590 + ], + "IERC165Upgradeable": [ + 1602 + ], + "Initializable": [ + 577 + ] + }, + "id": 1591, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1548, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "99:23:10" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", + "file": "./IERC165Upgradeable.sol", + "id": 1549, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1591, + "sourceUnit": 1603, + "src": "124:34:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../../proxy/utils/Initializable.sol", + "id": 1550, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1591, + "sourceUnit": 578, + "src": "159:45:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1552, + "name": "Initializable", + "nameLocations": [ + "822:13:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 577, + "src": "822:13:10" + }, + "id": 1553, + "nodeType": "InheritanceSpecifier", + "src": "822:13:10" + }, + { + "baseName": { + "id": 1554, + "name": "IERC165Upgradeable", + "nameLocations": [ + "837:18:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1602, + "src": "837:18:10" + }, + "id": 1555, + "nodeType": "InheritanceSpecifier", + "src": "837:18:10" + } + ], + "canonicalName": "ERC165Upgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1551, + "nodeType": "StructuredDocumentation", + "src": "206:576:10", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation." + }, + "fullyImplemented": true, + "id": 1590, + "linearizedBaseContracts": [ + 1590, + 1602, + 577 + ], + "name": "ERC165Upgradeable", + "nameLocation": "801:17:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "913:7:10", + "statements": [] + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1558, + "kind": "modifierInvocation", + "modifierName": { + "id": 1557, + "name": "onlyInitializing", + "nameLocations": [ + "896:16:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 522, + "src": "896:16:10" + }, + "nodeType": "ModifierInvocation", + "src": "896:16:10" + } + ], + "name": "__ERC165_init", + "nameLocation": "871:13:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1556, + "nodeType": "ParameterList", + "parameters": [], + "src": "884:2:10" + }, + "returnParameters": { + "id": 1559, + "nodeType": "ParameterList", + "parameters": [], + "src": "913:0:10" + }, + "scope": 1590, + "src": "862:58:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1566, + "nodeType": "Block", + "src": "987:7:10", + "statements": [] + }, + "id": 1567, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1564, + "kind": "modifierInvocation", + "modifierName": { + "id": 1563, + "name": "onlyInitializing", + "nameLocations": [ + "970:16:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 522, + "src": "970:16:10" + }, + "nodeType": "ModifierInvocation", + "src": "970:16:10" + } + ], + "name": "__ERC165_init_unchained", + "nameLocation": "935:23:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1562, + "nodeType": "ParameterList", + "parameters": [], + "src": "958:2:10" + }, + "returnParameters": { + "id": 1565, + "nodeType": "ParameterList", + "parameters": [], + "src": "987:0:10" + }, + "scope": 1590, + "src": "926:68:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1601 + ], + "body": { + "id": 1583, + "nodeType": "Block", + "src": "1151:75:10", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1576, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "1168:11:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1578, + "name": "IERC165Upgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1602, + "src": "1188:18:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165Upgradeable_$1602_$", + "typeString": "type(contract IERC165Upgradeable)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165Upgradeable_$1602_$", + "typeString": "type(contract IERC165Upgradeable)" + } + ], + "id": 1577, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967269, + "src": "1183:4:10", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1183:24:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165Upgradeable_$1602", + "typeString": "type(contract IERC165Upgradeable)" + } + }, + "id": 1580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1208:11:10", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1183:36:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1168:51:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1575, + "id": 1582, + "nodeType": "Return", + "src": "1161:58:10" + } + ] + }, + "documentation": { + "id": 1568, + "nodeType": "StructuredDocumentation", + "src": "999:56:10", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 1584, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1069:17:10", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1572, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1127:8:10" + }, + "parameters": { + "id": 1571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1570, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1094:11:10", + "nodeType": "VariableDeclaration", + "scope": 1584, + "src": "1087:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1569, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1087:6:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1086:20:10" + }, + "returnParameters": { + "id": 1575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1574, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1584, + "src": "1145:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1573, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1145:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1144:6:10" + }, + "scope": 1590, + "src": "1060:166:10", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 1585, + "nodeType": "StructuredDocumentation", + "src": "1232:254:10", + "text": " @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps" + }, + "id": 1589, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "1511:5:10", + "nodeType": "VariableDeclaration", + "scope": 1590, + "src": "1491:25:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 1586, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1491:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1588, + "length": { + "hexValue": "3530", + "id": 1587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1499:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "1491:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "visibility": "private" + } + ], + "scope": 1591, + "src": "783:736:10", + "usedErrors": [] + } + ], + "src": "99:1421:10" + }, + "id": 10 + }, + "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol", + "exportedSymbols": { + "IERC165Upgradeable": [ + 1602 + ] + }, + "id": 1603, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1592, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "100:23:11" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165Upgradeable", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "125:279:11", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 1602, + "linearizedBaseContracts": [ + 1602 + ], + "name": "IERC165Upgradeable", + "nameLocation": "415:18:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1594, + "nodeType": "StructuredDocumentation", + "src": "440:340:11", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 1601, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "794:17:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1596, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "819:11:11", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "812:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1595, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "812:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "811:20:11" + }, + "returnParameters": { + "id": 1600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1599, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "855:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1598, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "855:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "854:6:11" + }, + "scope": 1602, + "src": "785:76:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1603, + "src": "405:458:11", + "usedErrors": [] + } + ], + "src": "100:764:11" + }, + "id": 11 + }, + "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", + "exportedSymbols": { + "MathUpgradeable": [ + 2467 + ] + }, + "id": 2468, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1604, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "103:23:12" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "MathUpgradeable", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1605, + "nodeType": "StructuredDocumentation", + "src": "128:73:12", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 2467, + "linearizedBaseContracts": [ + 2467 + ], + "name": "MathUpgradeable", + "nameLocation": "210:15:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "MathUpgradeable.Rounding", + "id": 1609, + "members": [ + { + "id": 1606, + "name": "Down", + "nameLocation": "256:4:12", + "nodeType": "EnumValue", + "src": "256:4:12" + }, + { + "id": 1607, + "name": "Up", + "nameLocation": "298:2:12", + "nodeType": "EnumValue", + "src": "298:2:12" + }, + { + "id": 1608, + "name": "Zero", + "nameLocation": "329:4:12", + "nodeType": "EnumValue", + "src": "329:4:12" + } + ], + "name": "Rounding", + "nameLocation": "237:8:12", + "nodeType": "EnumDefinition", + "src": "232:122:12" + }, + { + "body": { + "id": 1626, + "nodeType": "Block", + "src": "491:37:12", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1619, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1612, + "src": "508:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1620, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1614, + "src": "512:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "508:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 1623, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1614, + "src": "520:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "508:13:12", + "trueExpression": { + "id": 1622, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1612, + "src": "516:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1618, + "id": 1625, + "nodeType": "Return", + "src": "501:20:12" + } + ] + }, + "documentation": { + "id": 1610, + "nodeType": "StructuredDocumentation", + "src": "360:59:12", + "text": " @dev Returns the largest of two numbers." + }, + "id": 1627, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "433:3:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1612, + "mutability": "mutable", + "name": "a", + "nameLocation": "445:1:12", + "nodeType": "VariableDeclaration", + "scope": 1627, + "src": "437:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "437:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1614, + "mutability": "mutable", + "name": "b", + "nameLocation": "456:1:12", + "nodeType": "VariableDeclaration", + "scope": 1627, + "src": "448:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1613, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "448:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "436:22:12" + }, + "returnParameters": { + "id": 1618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1617, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1627, + "src": "482:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "482:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "481:9:12" + }, + "scope": 2467, + "src": "424:104:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1644, + "nodeType": "Block", + "src": "666:37:12", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1637, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1630, + "src": "683:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1638, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1632, + "src": "687:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "683:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 1641, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1632, + "src": "695:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "683:13:12", + "trueExpression": { + "id": 1640, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1630, + "src": "691:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1636, + "id": 1643, + "nodeType": "Return", + "src": "676:20:12" + } + ] + }, + "documentation": { + "id": 1628, + "nodeType": "StructuredDocumentation", + "src": "534:60:12", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 1645, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "608:3:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1633, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1630, + "mutability": "mutable", + "name": "a", + "nameLocation": "620:1:12", + "nodeType": "VariableDeclaration", + "scope": 1645, + "src": "612:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1629, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "612:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1632, + "mutability": "mutable", + "name": "b", + "nameLocation": "631:1:12", + "nodeType": "VariableDeclaration", + "scope": 1645, + "src": "623:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1631, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "623:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "611:22:12" + }, + "returnParameters": { + "id": 1636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1635, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1645, + "src": "657:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "657:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "656:9:12" + }, + "scope": 2467, + "src": "599:104:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1667, + "nodeType": "Block", + "src": "887:82:12", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1655, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "942:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 1656, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1650, + "src": "946:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "942:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1658, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "941:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1659, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "952:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 1660, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1650, + "src": "956:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "952:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1662, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "951:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "961:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "951:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "941:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1654, + "id": 1666, + "nodeType": "Return", + "src": "934:28:12" + } + ] + }, + "documentation": { + "id": 1646, + "nodeType": "StructuredDocumentation", + "src": "709:102:12", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 1668, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "825:7:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1651, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1648, + "mutability": "mutable", + "name": "a", + "nameLocation": "841:1:12", + "nodeType": "VariableDeclaration", + "scope": 1668, + "src": "833:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "833:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1650, + "mutability": "mutable", + "name": "b", + "nameLocation": "852:1:12", + "nodeType": "VariableDeclaration", + "scope": 1668, + "src": "844:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1649, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "844:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "832:22:12" + }, + "returnParameters": { + "id": 1654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1653, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1668, + "src": "878:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1652, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "878:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "877:9:12" + }, + "scope": 2467, + "src": "816:153:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1692, + "nodeType": "Block", + "src": "1239:123:12", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1678, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1671, + "src": "1327:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1332:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1327:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1682, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1671, + "src": "1341:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1683, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1345:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1341:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1685, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1340:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1686, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "1350:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1340:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1354:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1340:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1327:28:12", + "trueExpression": { + "hexValue": "30", + "id": 1681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1336:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1677, + "id": 1691, + "nodeType": "Return", + "src": "1320:35:12" + } + ] + }, + "documentation": { + "id": 1669, + "nodeType": "StructuredDocumentation", + "src": "975:188:12", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down." + }, + "id": 1693, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "1177:7:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1671, + "mutability": "mutable", + "name": "a", + "nameLocation": "1193:1:12", + "nodeType": "VariableDeclaration", + "scope": 1693, + "src": "1185:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1670, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1185:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "b", + "nameLocation": "1204:1:12", + "nodeType": "VariableDeclaration", + "scope": 1693, + "src": "1196:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1196:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1184:22:12" + }, + "returnParameters": { + "id": 1677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1676, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1693, + "src": "1230:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1230:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1229:9:12" + }, + "scope": 2467, + "src": "1168:194:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1814, + "nodeType": "Block", + "src": "1806:3797:12", + "statements": [ + { + "id": 1813, + "nodeType": "UncheckedBlock", + "src": "1816:3781:12", + "statements": [ + { + "assignments": [ + 1706 + ], + "declarations": [ + { + "constant": false, + "id": 1706, + "mutability": "mutable", + "name": "prod0", + "nameLocation": "2145:5:12", + "nodeType": "VariableDeclaration", + "scope": 1813, + "src": "2137:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2137:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1707, + "nodeType": "VariableDeclarationStatement", + "src": "2137:13:12" + }, + { + "assignments": [ + 1709 + ], + "declarations": [ + { + "constant": false, + "id": 1709, + "mutability": "mutable", + "name": "prod1", + "nameLocation": "2217:5:12", + "nodeType": "VariableDeclaration", + "scope": 1813, + "src": "2209:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2209:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1710, + "nodeType": "VariableDeclarationStatement", + "src": "2209:13:12" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "2289:157:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2307:30:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2324:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2327:1:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2334:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2330:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2330:6:12" + } + ], + "functionName": { + "name": "mulmod", + "nodeType": "YulIdentifier", + "src": "2317:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2317:20:12" + }, + "variables": [ + { + "name": "mm", + "nodeType": "YulTypedName", + "src": "2311:2:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2354:18:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2367:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2370:1:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "2363:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2363:9:12" + }, + "variableNames": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "2354:5:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2389:43:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nodeType": "YulIdentifier", + "src": "2406:2:12" + }, + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "2410:5:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2402:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2402:14:12" + }, + { + "arguments": [ + { + "name": "mm", + "nodeType": "YulIdentifier", + "src": "2421:2:12" + }, + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "2425:5:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2418:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2418:13:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2398:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2398:34:12" + }, + "variableNames": [ + { + "name": "prod1", + "nodeType": "YulIdentifier", + "src": "2389:5:12" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 1706, + "isOffset": false, + "isSlot": false, + "src": "2354:5:12", + "valueSize": 1 + }, + { + "declaration": 1706, + "isOffset": false, + "isSlot": false, + "src": "2410:5:12", + "valueSize": 1 + }, + { + "declaration": 1706, + "isOffset": false, + "isSlot": false, + "src": "2425:5:12", + "valueSize": 1 + }, + { + "declaration": 1709, + "isOffset": false, + "isSlot": false, + "src": "2389:5:12", + "valueSize": 1 + }, + { + "declaration": 1696, + "isOffset": false, + "isSlot": false, + "src": "2324:1:12", + "valueSize": 1 + }, + { + "declaration": 1696, + "isOffset": false, + "isSlot": false, + "src": "2367:1:12", + "valueSize": 1 + }, + { + "declaration": 1698, + "isOffset": false, + "isSlot": false, + "src": "2327:1:12", + "valueSize": 1 + }, + { + "declaration": 1698, + "isOffset": false, + "isSlot": false, + "src": "2370:1:12", + "valueSize": 1 + } + ], + "id": 1711, + "nodeType": "InlineAssembly", + "src": "2280:166:12" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1712, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "2527:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2536:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2527:10:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1720, + "nodeType": "IfStatement", + "src": "2523:75:12", + "trueBody": { + "id": 1719, + "nodeType": "Block", + "src": "2539:59:12", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1715, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1706, + "src": "2564:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1716, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1700, + "src": "2572:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2564:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1704, + "id": 1718, + "nodeType": "Return", + "src": "2557:26:12" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1722, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1700, + "src": "2708:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1723, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "2722:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2708:19:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1721, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2700:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2700:28:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1726, + "nodeType": "ExpressionStatement", + "src": "2700:28:12" + }, + { + "assignments": [ + 1728 + ], + "declarations": [ + { + "constant": false, + "id": 1728, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "2992:9:12", + "nodeType": "VariableDeclaration", + "scope": 1813, + "src": "2984:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2984:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1729, + "nodeType": "VariableDeclarationStatement", + "src": "2984:17:12" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "3024:291:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3093:38:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "3113:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "3116:1:12" + }, + { + "name": "denominator", + "nodeType": "YulIdentifier", + "src": "3119:11:12" + } + ], + "functionName": { + "name": "mulmod", + "nodeType": "YulIdentifier", + "src": "3106:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3106:25:12" + }, + "variableNames": [ + { + "name": "remainder", + "nodeType": "YulIdentifier", + "src": "3093:9:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3213:41:12", + "value": { + "arguments": [ + { + "name": "prod1", + "nodeType": "YulIdentifier", + "src": "3226:5:12" + }, + { + "arguments": [ + { + "name": "remainder", + "nodeType": "YulIdentifier", + "src": "3236:9:12" + }, + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3247:5:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3233:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3233:20:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3222:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3222:32:12" + }, + "variableNames": [ + { + "name": "prod1", + "nodeType": "YulIdentifier", + "src": "3213:5:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3271:30:12", + "value": { + "arguments": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3284:5:12" + }, + { + "name": "remainder", + "nodeType": "YulIdentifier", + "src": "3291:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3280:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3280:21:12" + }, + "variableNames": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3271:5:12" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 1700, + "isOffset": false, + "isSlot": false, + "src": "3119:11:12", + "valueSize": 1 + }, + { + "declaration": 1706, + "isOffset": false, + "isSlot": false, + "src": "3247:5:12", + "valueSize": 1 + }, + { + "declaration": 1706, + "isOffset": false, + "isSlot": false, + "src": "3271:5:12", + "valueSize": 1 + }, + { + "declaration": 1706, + "isOffset": false, + "isSlot": false, + "src": "3284:5:12", + "valueSize": 1 + }, + { + "declaration": 1709, + "isOffset": false, + "isSlot": false, + "src": "3213:5:12", + "valueSize": 1 + }, + { + "declaration": 1709, + "isOffset": false, + "isSlot": false, + "src": "3226:5:12", + "valueSize": 1 + }, + { + "declaration": 1728, + "isOffset": false, + "isSlot": false, + "src": "3093:9:12", + "valueSize": 1 + }, + { + "declaration": 1728, + "isOffset": false, + "isSlot": false, + "src": "3236:9:12", + "valueSize": 1 + }, + { + "declaration": 1728, + "isOffset": false, + "isSlot": false, + "src": "3291:9:12", + "valueSize": 1 + }, + { + "declaration": 1696, + "isOffset": false, + "isSlot": false, + "src": "3113:1:12", + "valueSize": 1 + }, + { + "declaration": 1698, + "isOffset": false, + "isSlot": false, + "src": "3116:1:12", + "valueSize": 1 + } + ], + "id": 1730, + "nodeType": "InlineAssembly", + "src": "3015:300:12" + }, + { + "assignments": [ + 1732 + ], + "declarations": [ + { + "constant": false, + "id": 1732, + "mutability": "mutable", + "name": "twos", + "nameLocation": "3630:4:12", + "nodeType": "VariableDeclaration", + "scope": 1813, + "src": "3622:12:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1731, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3622:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1740, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1733, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1700, + "src": "3637:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "~", + "prefix": true, + "src": "3652:12:12", + "subExpression": { + "id": 1734, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1700, + "src": "3653:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3667:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3652:16:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1738, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3651:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3637:32:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3622:47:12" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "3692:362:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3757:37:12", + "value": { + "arguments": [ + { + "name": "denominator", + "nodeType": "YulIdentifier", + "src": "3776:11:12" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "3789:4:12" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3772:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3772:22:12" + }, + "variableNames": [ + { + "name": "denominator", + "nodeType": "YulIdentifier", + "src": "3757:11:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3861:25:12", + "value": { + "arguments": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3874:5:12" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "3881:4:12" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3870:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3870:16:12" + }, + "variableNames": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3861:5:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4001:39:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4021:1:12", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "4024:4:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4017:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4017:12:12" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "4031:4:12" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4013:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4013:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4038:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4009:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4009:31:12" + }, + "variableNames": [ + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "4001:4:12" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 1700, + "isOffset": false, + "isSlot": false, + "src": "3757:11:12", + "valueSize": 1 + }, + { + "declaration": 1700, + "isOffset": false, + "isSlot": false, + "src": "3776:11:12", + "valueSize": 1 + }, + { + "declaration": 1706, + "isOffset": false, + "isSlot": false, + "src": "3861:5:12", + "valueSize": 1 + }, + { + "declaration": 1706, + "isOffset": false, + "isSlot": false, + "src": "3874:5:12", + "valueSize": 1 + }, + { + "declaration": 1732, + "isOffset": false, + "isSlot": false, + "src": "3789:4:12", + "valueSize": 1 + }, + { + "declaration": 1732, + "isOffset": false, + "isSlot": false, + "src": "3881:4:12", + "valueSize": 1 + }, + { + "declaration": 1732, + "isOffset": false, + "isSlot": false, + "src": "4001:4:12", + "valueSize": 1 + }, + { + "declaration": 1732, + "isOffset": false, + "isSlot": false, + "src": "4024:4:12", + "valueSize": 1 + }, + { + "declaration": 1732, + "isOffset": false, + "isSlot": false, + "src": "4031:4:12", + "valueSize": 1 + } + ], + "id": 1741, + "nodeType": "InlineAssembly", + "src": "3683:371:12" + }, + { + "expression": { + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1742, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1706, + "src": "4120:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1743, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "4129:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1744, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1732, + "src": "4137:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4129:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4120:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1747, + "nodeType": "ExpressionStatement", + "src": "4120:21:12" + }, + { + "assignments": [ + 1749 + ], + "declarations": [ + { + "constant": false, + "id": 1749, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "4467:7:12", + "nodeType": "VariableDeclaration", + "scope": 1813, + "src": "4459:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4459:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1756, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4478:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1751, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1700, + "src": "4482:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4478:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1753, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4477:17:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4497:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "4477:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4459:39:12" + }, + { + "expression": { + "id": 1763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1757, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "4715:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4726:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1759, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1700, + "src": "4730:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1760, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "4744:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4730:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4726:25:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4715:36:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1764, + "nodeType": "ExpressionStatement", + "src": "4715:36:12" + }, + { + "expression": { + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1765, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "4784:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4795:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1767, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1700, + "src": "4799:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1768, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "4813:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4799:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4795:25:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4784:36:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1772, + "nodeType": "ExpressionStatement", + "src": "4784:36:12" + }, + { + "expression": { + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1773, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "4854:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4865:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1775, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1700, + "src": "4869:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1776, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "4883:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4869:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4865:25:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4854:36:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1780, + "nodeType": "ExpressionStatement", + "src": "4854:36:12" + }, + { + "expression": { + "id": 1787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1781, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "4924:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4935:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1783, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1700, + "src": "4939:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1784, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "4953:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4939:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4935:25:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4924:36:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1788, + "nodeType": "ExpressionStatement", + "src": "4924:36:12" + }, + { + "expression": { + "id": 1795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1789, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "4994:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5005:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1791, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1700, + "src": "5009:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1792, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "5023:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5009:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5005:25:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4994:36:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1796, + "nodeType": "ExpressionStatement", + "src": "4994:36:12" + }, + { + "expression": { + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1797, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "5065:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5076:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1799, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1700, + "src": "5080:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1800, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "5094:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5080:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5076:25:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5065:36:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1804, + "nodeType": "ExpressionStatement", + "src": "5065:36:12" + }, + { + "expression": { + "id": 1809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1805, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1703, + "src": "5535:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1806, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1706, + "src": "5544:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1807, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1749, + "src": "5552:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5544:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5535:24:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1810, + "nodeType": "ExpressionStatement", + "src": "5535:24:12" + }, + { + "expression": { + "id": 1811, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1703, + "src": "5580:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1704, + "id": 1812, + "nodeType": "Return", + "src": "5573:13:12" + } + ] + } + ] + }, + "documentation": { + "id": 1694, + "nodeType": "StructuredDocumentation", + "src": "1368:305:12", + "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license." + }, + "id": 1815, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "1687:6:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1696, + "mutability": "mutable", + "name": "x", + "nameLocation": "1711:1:12", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1703:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1695, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1703:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1698, + "mutability": "mutable", + "name": "y", + "nameLocation": "1730:1:12", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1722:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1722:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1700, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "1749:11:12", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1741:19:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1741:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1693:73:12" + }, + "returnParameters": { + "id": 1704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1703, + "mutability": "mutable", + "name": "result", + "nameLocation": "1798:6:12", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1790:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1790:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1789:16:12" + }, + "scope": 2467, + "src": "1678:3925:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1858, + "nodeType": "Block", + "src": "5883:189:12", + "statements": [ + { + "assignments": [ + 1831 + ], + "declarations": [ + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "result", + "nameLocation": "5901:6:12", + "nodeType": "VariableDeclaration", + "scope": 1858, + "src": "5893:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5893:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1837, + "initialValue": { + "arguments": [ + { + "id": 1833, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "5917:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1834, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "5920:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1835, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "5923:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1832, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1815, + 1859 + ], + "referencedDeclaration": 1815, + "src": "5910:6:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5910:25:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5893:42:12" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + }, + "id": 1841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1838, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1825, + "src": "5949:8:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1839, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1609, + "src": "5961:8:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$1609_$", + "typeString": "type(enum MathUpgradeable.Rounding)" + } + }, + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5970:2:12", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 1607, + "src": "5961:11:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "src": "5949:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1843, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "5983:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1844, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "5986:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1845, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "5989:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1842, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967280, + "src": "5976:6:12", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5976:25:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6004:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5976:29:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5949:56:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1855, + "nodeType": "IfStatement", + "src": "5945:98:12", + "trueBody": { + "id": 1854, + "nodeType": "Block", + "src": "6007:36:12", + "statements": [ + { + "expression": { + "id": 1852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1850, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "6021:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 1851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6031:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6021:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1853, + "nodeType": "ExpressionStatement", + "src": "6021:11:12" + } + ] + } + }, + { + "expression": { + "id": 1856, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "6059:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1829, + "id": 1857, + "nodeType": "Return", + "src": "6052:13:12" + } + ] + }, + "documentation": { + "id": 1816, + "nodeType": "StructuredDocumentation", + "src": "5609:121:12", + "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 1859, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "5744:6:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1818, + "mutability": "mutable", + "name": "x", + "nameLocation": "5768:1:12", + "nodeType": "VariableDeclaration", + "scope": 1859, + "src": "5760:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1817, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5760:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1820, + "mutability": "mutable", + "name": "y", + "nameLocation": "5787:1:12", + "nodeType": "VariableDeclaration", + "scope": 1859, + "src": "5779:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1819, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5779:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1822, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "5806:11:12", + "nodeType": "VariableDeclaration", + "scope": 1859, + "src": "5798:19:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5798:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "5836:8:12", + "nodeType": "VariableDeclaration", + "scope": 1859, + "src": "5827:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + }, + "typeName": { + "id": 1824, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1823, + "name": "Rounding", + "nameLocations": [ + "5827:8:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1609, + "src": "5827:8:12" + }, + "referencedDeclaration": 1609, + "src": "5827:8:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "5750:100:12" + }, + "returnParameters": { + "id": 1829, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1828, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1859, + "src": "5874:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5874:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5873:9:12" + }, + "scope": 2467, + "src": "5735:337:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1970, + "nodeType": "Block", + "src": "6348:1585:12", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1867, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1862, + "src": "6362:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6367:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6362:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1873, + "nodeType": "IfStatement", + "src": "6358:45:12", + "trueBody": { + "id": 1872, + "nodeType": "Block", + "src": "6370:33:12", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 1870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6391:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1866, + "id": 1871, + "nodeType": "Return", + "src": "6384:8:12" + } + ] + } + }, + { + "assignments": [ + 1875 + ], + "declarations": [ + { + "constant": false, + "id": 1875, + "mutability": "mutable", + "name": "result", + "nameLocation": "7090:6:12", + "nodeType": "VariableDeclaration", + "scope": 1970, + "src": "7082:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1874, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7082:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1884, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 1876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7099:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1878, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1862, + "src": "7110:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1877, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2139, + 2175 + ], + "referencedDeclaration": 2139, + "src": "7105:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7105:7:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7116:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7105:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1882, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7104:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7099:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7082:36:12" + }, + { + "id": 1969, + "nodeType": "UncheckedBlock", + "src": "7519:408:12", + "statements": [ + { + "expression": { + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1885, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7543:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1886, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7553:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1887, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1862, + "src": "7562:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1888, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7566:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7562:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7553:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1891, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7552:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7577:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7552:26:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7543:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1895, + "nodeType": "ExpressionStatement", + "src": "7543:35:12" + }, + { + "expression": { + "id": 1905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1896, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7592:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1897, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7602:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1898, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1862, + "src": "7611:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1899, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7615:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7611:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7602:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1902, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7601:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 1903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7626:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7601:26:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7592:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1906, + "nodeType": "ExpressionStatement", + "src": "7592:35:12" + }, + { + "expression": { + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1907, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7641:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1908, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7651:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1909, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1862, + "src": "7660:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1910, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7664:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7660:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7651:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1913, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7650:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7675:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7650:26:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7641:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1917, + "nodeType": "ExpressionStatement", + "src": "7641:35:12" + }, + { + "expression": { + "id": 1927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1918, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7690:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1919, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7700:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1920, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1862, + "src": "7709:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1921, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7713:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7709:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7700:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1924, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7699:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 1925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7724:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7699:26:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7690:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1928, + "nodeType": "ExpressionStatement", + "src": "7690:35:12" + }, + { + "expression": { + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1929, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7739:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1930, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7749:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1931, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1862, + "src": "7758:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1932, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7762:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7758:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7749:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1935, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7748:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 1936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7773:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7748:26:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7739:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1939, + "nodeType": "ExpressionStatement", + "src": "7739:35:12" + }, + { + "expression": { + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1940, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7788:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1941, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7798:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1942, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1862, + "src": "7807:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1943, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7811:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7807:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7798:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1946, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7797:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 1947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7822:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7797:26:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7788:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1950, + "nodeType": "ExpressionStatement", + "src": "7788:35:12" + }, + { + "expression": { + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1951, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7837:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1952, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7847:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1953, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1862, + "src": "7856:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1954, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7860:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7856:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7847:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1957, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7846:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 1958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7871:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7846:26:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7837:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1961, + "nodeType": "ExpressionStatement", + "src": "7837:35:12" + }, + { + "expression": { + "arguments": [ + { + "id": 1963, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7897:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1964, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1862, + "src": "7905:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1965, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "7909:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7905:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1962, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1645, + "src": "7893:3:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7893:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1866, + "id": 1968, + "nodeType": "Return", + "src": "7886:30:12" + } + ] + } + ] + }, + "documentation": { + "id": 1860, + "nodeType": "StructuredDocumentation", + "src": "6078:208:12", + "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." + }, + "id": 1971, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "6300:4:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1862, + "mutability": "mutable", + "name": "a", + "nameLocation": "6313:1:12", + "nodeType": "VariableDeclaration", + "scope": 1971, + "src": "6305:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6305:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6304:11:12" + }, + "returnParameters": { + "id": 1866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1865, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1971, + "src": "6339:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1864, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6339:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6338:9:12" + }, + "scope": 2467, + "src": "6291:1642:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2006, + "nodeType": "Block", + "src": "8109:161:12", + "statements": [ + { + "id": 2005, + "nodeType": "UncheckedBlock", + "src": "8119:145:12", + "statements": [ + { + "assignments": [ + 1983 + ], + "declarations": [ + { + "constant": false, + "id": 1983, + "mutability": "mutable", + "name": "result", + "nameLocation": "8151:6:12", + "nodeType": "VariableDeclaration", + "scope": 2005, + "src": "8143:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8143:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1987, + "initialValue": { + "arguments": [ + { + "id": 1985, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1974, + "src": "8165:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1984, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1971, + 2007 + ], + "referencedDeclaration": 1971, + "src": "8160:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8160:7:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8143:24:12" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1988, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1983, + "src": "8188:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + }, + "id": 1992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1989, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1977, + "src": "8198:8:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1990, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1609, + "src": "8210:8:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$1609_$", + "typeString": "type(enum MathUpgradeable.Rounding)" + } + }, + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8219:2:12", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 1607, + "src": "8210:11:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "src": "8198:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1993, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1983, + "src": "8225:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1994, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1983, + "src": "8234:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8225:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1996, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1974, + "src": "8243:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8225:19:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8198:46:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8251:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8198:54:12", + "trueExpression": { + "hexValue": "31", + "id": 1999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8247:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2002, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8197:56:12", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "8188:65:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1981, + "id": 2004, + "nodeType": "Return", + "src": "8181:72:12" + } + ] + } + ] + }, + "documentation": { + "id": 1972, + "nodeType": "StructuredDocumentation", + "src": "7939:89:12", + "text": " @notice Calculates sqrt(a), following the selected rounding direction." + }, + "id": 2007, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "8042:4:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1978, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1974, + "mutability": "mutable", + "name": "a", + "nameLocation": "8055:1:12", + "nodeType": "VariableDeclaration", + "scope": 2007, + "src": "8047:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8047:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1977, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "8067:8:12", + "nodeType": "VariableDeclaration", + "scope": 2007, + "src": "8058:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + }, + "typeName": { + "id": 1976, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1975, + "name": "Rounding", + "nameLocations": [ + "8058:8:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1609, + "src": "8058:8:12" + }, + "referencedDeclaration": 1609, + "src": "8058:8:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "8046:30:12" + }, + "returnParameters": { + "id": 1981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1980, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2007, + "src": "8100:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1979, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8100:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8099:9:12" + }, + "scope": 2467, + "src": "8033:237:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2138, + "nodeType": "Block", + "src": "8455:922:12", + "statements": [ + { + "assignments": [ + 2016 + ], + "declarations": [ + { + "constant": false, + "id": 2016, + "mutability": "mutable", + "name": "result", + "nameLocation": "8473:6:12", + "nodeType": "VariableDeclaration", + "scope": 2138, + "src": "8465:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8465:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2018, + "initialValue": { + "hexValue": "30", + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8482:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8465:18:12" + }, + { + "id": 2135, + "nodeType": "UncheckedBlock", + "src": "8493:855:12", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2019, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "8521:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8530:3:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "8521:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8536:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8521:16:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2033, + "nodeType": "IfStatement", + "src": "8517:99:12", + "trueBody": { + "id": 2032, + "nodeType": "Block", + "src": "8539:77:12", + "statements": [ + { + "expression": { + "id": 2026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2024, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "8557:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 2025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8567:3:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "8557:13:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2027, + "nodeType": "ExpressionStatement", + "src": "8557:13:12" + }, + { + "expression": { + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2028, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2016, + "src": "8588:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "313238", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8598:3:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "8588:13:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2031, + "nodeType": "ExpressionStatement", + "src": "8588:13:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2034, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "8633:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 2035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8642:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "8633:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8647:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8633:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2048, + "nodeType": "IfStatement", + "src": "8629:96:12", + "trueBody": { + "id": 2047, + "nodeType": "Block", + "src": "8650:75:12", + "statements": [ + { + "expression": { + "id": 2041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2039, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "8668:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 2040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8678:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "8668:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2042, + "nodeType": "ExpressionStatement", + "src": "8668:12:12" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2043, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2016, + "src": "8698:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8708:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "8698:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "8698:12:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2049, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "8742:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 2050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8751:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "8742:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8756:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8742:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2063, + "nodeType": "IfStatement", + "src": "8738:96:12", + "trueBody": { + "id": 2062, + "nodeType": "Block", + "src": "8759:75:12", + "statements": [ + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2054, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "8777:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8787:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "8777:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "8777:12:12" + }, + { + "expression": { + "id": 2060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2058, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2016, + "src": "8807:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 2059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8817:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "8807:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2061, + "nodeType": "ExpressionStatement", + "src": "8807:12:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2064, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "8851:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 2065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8860:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "8851:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8865:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8851:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2078, + "nodeType": "IfStatement", + "src": "8847:96:12", + "trueBody": { + "id": 2077, + "nodeType": "Block", + "src": "8868:75:12", + "statements": [ + { + "expression": { + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2069, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "8886:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 2070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8896:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "8886:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2072, + "nodeType": "ExpressionStatement", + "src": "8886:12:12" + }, + { + "expression": { + "id": 2075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2073, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2016, + "src": "8916:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8926:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "8916:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2076, + "nodeType": "ExpressionStatement", + "src": "8916:12:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2079, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "8960:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 2080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8969:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "8960:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8973:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8960:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2093, + "nodeType": "IfStatement", + "src": "8956:93:12", + "trueBody": { + "id": 2092, + "nodeType": "Block", + "src": "8976:73:12", + "statements": [ + { + "expression": { + "id": 2086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2084, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "8994:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 2085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9004:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "8994:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2087, + "nodeType": "ExpressionStatement", + "src": "8994:11:12" + }, + { + "expression": { + "id": 2090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2088, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2016, + "src": "9023:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 2089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9033:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "9023:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2091, + "nodeType": "ExpressionStatement", + "src": "9023:11:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2094, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "9066:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "34", + "id": 2095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9075:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9066:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9079:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9066:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2108, + "nodeType": "IfStatement", + "src": "9062:93:12", + "trueBody": { + "id": 2107, + "nodeType": "Block", + "src": "9082:73:12", + "statements": [ + { + "expression": { + "id": 2101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2099, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "9100:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 2100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9110:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9100:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2102, + "nodeType": "ExpressionStatement", + "src": "9100:11:12" + }, + { + "expression": { + "id": 2105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2103, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2016, + "src": "9129:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 2104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9139:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9129:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2106, + "nodeType": "ExpressionStatement", + "src": "9129:11:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2109, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "9172:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "32", + "id": 2110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9181:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9172:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9185:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9172:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2123, + "nodeType": "IfStatement", + "src": "9168:93:12", + "trueBody": { + "id": 2122, + "nodeType": "Block", + "src": "9188:73:12", + "statements": [ + { + "expression": { + "id": 2116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2114, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "9206:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "32", + "id": 2115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9216:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9206:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2117, + "nodeType": "ExpressionStatement", + "src": "9206:11:12" + }, + { + "expression": { + "id": 2120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2118, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2016, + "src": "9235:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 2119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9245:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9235:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2121, + "nodeType": "ExpressionStatement", + "src": "9235:11:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2124, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2010, + "src": "9278:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9287:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9278:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9291:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9278:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2134, + "nodeType": "IfStatement", + "src": "9274:64:12", + "trueBody": { + "id": 2133, + "nodeType": "Block", + "src": "9294:44:12", + "statements": [ + { + "expression": { + "id": 2131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2129, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2016, + "src": "9312:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2130, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9322:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9312:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2132, + "nodeType": "ExpressionStatement", + "src": "9312:11:12" + } + ] + } + } + ] + }, + { + "expression": { + "id": 2136, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2016, + "src": "9364:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2014, + "id": 2137, + "nodeType": "Return", + "src": "9357:13:12" + } + ] + }, + "documentation": { + "id": 2008, + "nodeType": "StructuredDocumentation", + "src": "8276:113:12", + "text": " @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0." + }, + "id": 2139, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "8403:4:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2011, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2010, + "mutability": "mutable", + "name": "value", + "nameLocation": "8416:5:12", + "nodeType": "VariableDeclaration", + "scope": 2139, + "src": "8408:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2009, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8408:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8407:15:12" + }, + "returnParameters": { + "id": 2014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2013, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2139, + "src": "8446:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8446:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8445:9:12" + }, + "scope": 2467, + "src": "8394:983:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2174, + "nodeType": "Block", + "src": "9610:165:12", + "statements": [ + { + "id": 2173, + "nodeType": "UncheckedBlock", + "src": "9620:149:12", + "statements": [ + { + "assignments": [ + 2151 + ], + "declarations": [ + { + "constant": false, + "id": 2151, + "mutability": "mutable", + "name": "result", + "nameLocation": "9652:6:12", + "nodeType": "VariableDeclaration", + "scope": 2173, + "src": "9644:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9644:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2155, + "initialValue": { + "arguments": [ + { + "id": 2153, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2142, + "src": "9666:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2152, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2139, + 2175 + ], + "referencedDeclaration": 2139, + "src": "9661:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9661:11:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9644:28:12" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2156, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "9693:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + }, + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2157, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "9703:8:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 2158, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1609, + "src": "9715:8:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$1609_$", + "typeString": "type(enum MathUpgradeable.Rounding)" + } + }, + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9724:2:12", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 1607, + "src": "9715:11:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "src": "9703:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9730:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 2162, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "9735:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9730:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2164, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2142, + "src": "9744:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9730:19:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9703:46:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9756:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "9703:54:12", + "trueExpression": { + "hexValue": "31", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9752:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2170, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9702:56:12", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "9693:65:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2149, + "id": 2172, + "nodeType": "Return", + "src": "9686:72:12" + } + ] + } + ] + }, + "documentation": { + "id": 2140, + "nodeType": "StructuredDocumentation", + "src": "9383:142:12", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 2175, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "9539:4:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2142, + "mutability": "mutable", + "name": "value", + "nameLocation": "9552:5:12", + "nodeType": "VariableDeclaration", + "scope": 2175, + "src": "9544:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9544:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2145, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "9568:8:12", + "nodeType": "VariableDeclaration", + "scope": 2175, + "src": "9559:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + }, + "typeName": { + "id": 2144, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2143, + "name": "Rounding", + "nameLocations": [ + "9559:8:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1609, + "src": "9559:8:12" + }, + "referencedDeclaration": 1609, + "src": "9559:8:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "9543:34:12" + }, + "returnParameters": { + "id": 2149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2175, + "src": "9601:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2147, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9601:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9600:9:12" + }, + "scope": 2467, + "src": "9530:245:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2303, + "nodeType": "Block", + "src": "9962:828:12", + "statements": [ + { + "assignments": [ + 2184 + ], + "declarations": [ + { + "constant": false, + "id": 2184, + "mutability": "mutable", + "name": "result", + "nameLocation": "9980:6:12", + "nodeType": "VariableDeclaration", + "scope": 2303, + "src": "9972:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9972:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2186, + "initialValue": { + "hexValue": "30", + "id": 2185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9989:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9972:18:12" + }, + { + "id": 2300, + "nodeType": "UncheckedBlock", + "src": "10000:761:12", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2187, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10028:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 2190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10037:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 2189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10041:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10037:6:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "10028:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2203, + "nodeType": "IfStatement", + "src": "10024:99:12", + "trueBody": { + "id": 2202, + "nodeType": "Block", + "src": "10045:78:12", + "statements": [ + { + "expression": { + "id": 2196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2192, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10063:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 2195, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10072:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 2194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10076:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10072:6:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "10063:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2197, + "nodeType": "ExpressionStatement", + "src": "10063:15:12" + }, + { + "expression": { + "id": 2200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2198, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "10096:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 2199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10106:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10096:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2201, + "nodeType": "ExpressionStatement", + "src": "10096:12:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2204, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10140:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10149:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 2206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10153:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "10149:6:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "10140:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2220, + "nodeType": "IfStatement", + "src": "10136:99:12", + "trueBody": { + "id": 2219, + "nodeType": "Block", + "src": "10157:78:12", + "statements": [ + { + "expression": { + "id": 2213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2209, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10175:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 2212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10184:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10188:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "10184:6:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "10175:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2214, + "nodeType": "ExpressionStatement", + "src": "10175:15:12" + }, + { + "expression": { + "id": 2217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2215, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "10208:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 2216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10218:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "10208:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2218, + "nodeType": "ExpressionStatement", + "src": "10208:12:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2221, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10252:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 2224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10261:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10265:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "10261:6:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "10252:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2237, + "nodeType": "IfStatement", + "src": "10248:99:12", + "trueBody": { + "id": 2236, + "nodeType": "Block", + "src": "10269:78:12", + "statements": [ + { + "expression": { + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2226, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10287:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 2229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10296:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 2228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10300:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "10296:6:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "10287:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2231, + "nodeType": "ExpressionStatement", + "src": "10287:15:12" + }, + { + "expression": { + "id": 2234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2232, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "10320:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 2233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10330:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "10320:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2235, + "nodeType": "ExpressionStatement", + "src": "10320:12:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2238, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10364:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 2241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10377:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "10373:5:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "10364:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2254, + "nodeType": "IfStatement", + "src": "10360:96:12", + "trueBody": { + "id": 2253, + "nodeType": "Block", + "src": "10380:76:12", + "statements": [ + { + "expression": { + "id": 2247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2243, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10398:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2244, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10407:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10411:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "10407:5:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "10398:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2248, + "nodeType": "ExpressionStatement", + "src": "10398:14:12" + }, + { + "expression": { + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2249, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "10430:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 2250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10440:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "10430:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2252, + "nodeType": "ExpressionStatement", + "src": "10430:11:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2255, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10473:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 2258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10482:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 2257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10486:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "10482:5:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "10473:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2271, + "nodeType": "IfStatement", + "src": "10469:96:12", + "trueBody": { + "id": 2270, + "nodeType": "Block", + "src": "10489:76:12", + "statements": [ + { + "expression": { + "id": 2264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2260, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10507:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 2263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10516:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10520:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "10516:5:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "10507:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2265, + "nodeType": "ExpressionStatement", + "src": "10507:14:12" + }, + { + "expression": { + "id": 2268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2266, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "10539:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 2267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10549:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "10539:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2269, + "nodeType": "ExpressionStatement", + "src": "10539:11:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2272, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10582:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 2275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10591:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10595:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10591:5:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "10582:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2288, + "nodeType": "IfStatement", + "src": "10578:96:12", + "trueBody": { + "id": 2287, + "nodeType": "Block", + "src": "10598:76:12", + "statements": [ + { + "expression": { + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2277, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10616:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10625:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 2279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10629:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10625:5:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "10616:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2282, + "nodeType": "ExpressionStatement", + "src": "10616:14:12" + }, + { + "expression": { + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2283, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "10648:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 2284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10658:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10648:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2286, + "nodeType": "ExpressionStatement", + "src": "10648:11:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2289, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "10691:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 2292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10700:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 2291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10704:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10700:5:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "10691:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2299, + "nodeType": "IfStatement", + "src": "10687:64:12", + "trueBody": { + "id": 2298, + "nodeType": "Block", + "src": "10707:44:12", + "statements": [ + { + "expression": { + "id": 2296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2294, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "10725:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2295, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10735:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10725:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2297, + "nodeType": "ExpressionStatement", + "src": "10725:11:12" + } + ] + } + } + ] + }, + { + "expression": { + "id": 2301, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "10777:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2182, + "id": 2302, + "nodeType": "Return", + "src": "10770:13:12" + } + ] + }, + "documentation": { + "id": 2176, + "nodeType": "StructuredDocumentation", + "src": "9781:114:12", + "text": " @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0." + }, + "id": 2304, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "9909:5:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "value", + "nameLocation": "9923:5:12", + "nodeType": "VariableDeclaration", + "scope": 2304, + "src": "9915:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9915:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9914:15:12" + }, + "returnParameters": { + "id": 2182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2181, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2304, + "src": "9953:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9953:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9952:9:12" + }, + "scope": 2467, + "src": "9900:890:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "11025:165:12", + "statements": [ + { + "id": 2338, + "nodeType": "UncheckedBlock", + "src": "11035:149:12", + "statements": [ + { + "assignments": [ + 2316 + ], + "declarations": [ + { + "constant": false, + "id": 2316, + "mutability": "mutable", + "name": "result", + "nameLocation": "11067:6:12", + "nodeType": "VariableDeclaration", + "scope": 2338, + "src": "11059:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11059:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2320, + "initialValue": { + "arguments": [ + { + "id": 2318, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2307, + "src": "11082:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2317, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2304, + 2340 + ], + "referencedDeclaration": 2304, + "src": "11076:5:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11076:12:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11059:29:12" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2321, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "11109:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + }, + "id": 2325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2322, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2310, + "src": "11119:8:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 2323, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1609, + "src": "11131:8:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$1609_$", + "typeString": "type(enum MathUpgradeable.Rounding)" + } + }, + "id": 2324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11140:2:12", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 1607, + "src": "11131:11:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "src": "11119:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11146:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 2327, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "11150:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11146:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2329, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2307, + "src": "11159:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11146:18:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11119:45:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11171:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "11119:53:12", + "trueExpression": { + "hexValue": "31", + "id": 2332, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11167:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2335, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11118:55:12", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11109:64:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2314, + "id": 2337, + "nodeType": "Return", + "src": "11102:71:12" + } + ] + } + ] + }, + "documentation": { + "id": 2305, + "nodeType": "StructuredDocumentation", + "src": "10796:143:12", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "10953:5:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2307, + "mutability": "mutable", + "name": "value", + "nameLocation": "10967:5:12", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "10959:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2306, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10959:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2310, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "10983:8:12", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "10974:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + }, + "typeName": { + "id": 2309, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2308, + "name": "Rounding", + "nameLocations": [ + "10974:8:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1609, + "src": "10974:8:12" + }, + "referencedDeclaration": 1609, + "src": "10974:8:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "10958:34:12" + }, + "returnParameters": { + "id": 2314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2313, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "11016:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11016:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11015:9:12" + }, + "scope": 2467, + "src": "10944:246:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2426, + "nodeType": "Block", + "src": "11504:600:12", + "statements": [ + { + "assignments": [ + 2349 + ], + "declarations": [ + { + "constant": false, + "id": 2349, + "mutability": "mutable", + "name": "result", + "nameLocation": "11522:6:12", + "nodeType": "VariableDeclaration", + "scope": 2426, + "src": "11514:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11514:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2351, + "initialValue": { + "hexValue": "30", + "id": 2350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11531:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11514:18:12" + }, + { + "id": 2423, + "nodeType": "UncheckedBlock", + "src": "11542:533:12", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2352, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "11570:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 2353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11579:3:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "11570:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11585:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11570:16:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2366, + "nodeType": "IfStatement", + "src": "11566:98:12", + "trueBody": { + "id": 2365, + "nodeType": "Block", + "src": "11588:76:12", + "statements": [ + { + "expression": { + "id": 2359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2357, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "11606:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11616:3:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "11606:13:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2360, + "nodeType": "ExpressionStatement", + "src": "11606:13:12" + }, + { + "expression": { + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2361, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2349, + "src": "11637:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 2362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11647:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11637:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2364, + "nodeType": "ExpressionStatement", + "src": "11637:12:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2367, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "11681:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 2368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11690:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11681:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11695:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11681:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2381, + "nodeType": "IfStatement", + "src": "11677:95:12", + "trueBody": { + "id": 2380, + "nodeType": "Block", + "src": "11698:74:12", + "statements": [ + { + "expression": { + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "11716:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11726:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11716:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2375, + "nodeType": "ExpressionStatement", + "src": "11716:12:12" + }, + { + "expression": { + "id": 2378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2376, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2349, + "src": "11746:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 2377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11756:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11746:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2379, + "nodeType": "ExpressionStatement", + "src": "11746:11:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2382, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "11789:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 2383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11798:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11789:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11803:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11789:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2396, + "nodeType": "IfStatement", + "src": "11785:95:12", + "trueBody": { + "id": 2395, + "nodeType": "Block", + "src": "11806:74:12", + "statements": [ + { + "expression": { + "id": 2389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2387, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "11824:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 2388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11834:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11824:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2390, + "nodeType": "ExpressionStatement", + "src": "11824:12:12" + }, + { + "expression": { + "id": 2393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2391, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2349, + "src": "11854:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 2392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11864:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11854:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2394, + "nodeType": "ExpressionStatement", + "src": "11854:11:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2397, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "11897:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 2398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11906:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11897:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11897:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2411, + "nodeType": "IfStatement", + "src": "11893:95:12", + "trueBody": { + "id": 2410, + "nodeType": "Block", + "src": "11914:74:12", + "statements": [ + { + "expression": { + "id": 2404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2402, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "11932:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 2403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11942:2:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11932:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2405, + "nodeType": "ExpressionStatement", + "src": "11932:12:12" + }, + { + "expression": { + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2406, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2349, + "src": "11962:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 2407, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11972:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11962:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2409, + "nodeType": "ExpressionStatement", + "src": "11962:11:12" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2412, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "12005:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12014:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12005:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12018:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12005:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2422, + "nodeType": "IfStatement", + "src": "12001:64:12", + "trueBody": { + "id": 2421, + "nodeType": "Block", + "src": "12021:44:12", + "statements": [ + { + "expression": { + "id": 2419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2417, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2349, + "src": "12039:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12049:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12039:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2420, + "nodeType": "ExpressionStatement", + "src": "12039:11:12" + } + ] + } + } + ] + }, + { + "expression": { + "id": 2424, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2349, + "src": "12091:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2347, + "id": 2425, + "nodeType": "Return", + "src": "12084:13:12" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "11196:240:12", + "text": " @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string." + }, + "id": 2427, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "11450:6:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "value", + "nameLocation": "11465:5:12", + "nodeType": "VariableDeclaration", + "scope": 2427, + "src": "11457:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2342, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11457:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11456:15:12" + }, + "returnParameters": { + "id": 2347, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2346, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2427, + "src": "11495:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2345, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11495:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11494:9:12" + }, + "scope": 2467, + "src": "11441:663:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2465, + "nodeType": "Block", + "src": "12340:173:12", + "statements": [ + { + "id": 2464, + "nodeType": "UncheckedBlock", + "src": "12350:157:12", + "statements": [ + { + "assignments": [ + 2439 + ], + "declarations": [ + { + "constant": false, + "id": 2439, + "mutability": "mutable", + "name": "result", + "nameLocation": "12382:6:12", + "nodeType": "VariableDeclaration", + "scope": 2464, + "src": "12374:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12374:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2443, + "initialValue": { + "arguments": [ + { + "id": 2441, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2430, + "src": "12398:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2440, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2427, + 2466 + ], + "referencedDeclaration": 2427, + "src": "12391:6:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12391:13:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12374:30:12" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2444, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2439, + "src": "12425:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + }, + "id": 2448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2445, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2433, + "src": "12435:8:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 2446, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1609, + "src": "12447:8:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$1609_$", + "typeString": "type(enum MathUpgradeable.Rounding)" + } + }, + "id": 2447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12456:2:12", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 1607, + "src": "12447:11:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "src": "12435:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 2449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12462:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2450, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2439, + "src": "12468:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "38", + "id": 2451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12477:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12468:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12467:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12462:17:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2455, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2430, + "src": "12482:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12462:25:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12435:52:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12494:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12435:60:12", + "trueExpression": { + "hexValue": "31", + "id": 2458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12490:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2461, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12434:62:12", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "12425:71:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2437, + "id": 2463, + "nodeType": "Return", + "src": "12418:78:12" + } + ] + } + ] + }, + "documentation": { + "id": 2428, + "nodeType": "StructuredDocumentation", + "src": "12110:143:12", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 2466, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "12267:6:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2430, + "mutability": "mutable", + "name": "value", + "nameLocation": "12282:5:12", + "nodeType": "VariableDeclaration", + "scope": 2466, + "src": "12274:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12274:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2433, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "12298:8:12", + "nodeType": "VariableDeclaration", + "scope": 2466, + "src": "12289:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + }, + "typeName": { + "id": 2432, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2431, + "name": "Rounding", + "nameLocations": [ + "12289:8:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1609, + "src": "12289:8:12" + }, + "referencedDeclaration": 1609, + "src": "12289:8:12", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1609", + "typeString": "enum MathUpgradeable.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "12273:34:12" + }, + "returnParameters": { + "id": 2437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2436, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2466, + "src": "12331:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12331:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12330:9:12" + }, + "scope": 2467, + "src": "12258:255:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2468, + "src": "202:12313:12", + "usedErrors": [] + } + ], + "src": "103:12413:12" + }, + "id": 12 + }, + "giveth/GIVfi/src/DonationHandler/DonationHandler.sol": { + "ast": { + "absolutePath": "giveth/GIVfi/src/DonationHandler/DonationHandler.sol", + "exportedSymbols": { + "AccessControl": [ + 335 + ], + "DonationHandler": [ + 3331 + ], + "DonationHandlerRoles": [ + 3812 + ], + "IERC20": [ + 728 + ], + "IVotingStrategy": [ + 3871 + ], + "ReentrancyGuard": [ + 650 + ], + "SafeERC20": [ + 1045 + ] + }, + "id": 3332, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2469, + "literals": [ + "solidity", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "32:23:13" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", + "id": 2471, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3332, + "sourceUnit": 729, + "src": "57:114:13", + "symbolAliases": [ + { + "foreign": { + "id": 2470, + "name": "IERC20Upgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "65:17:13", + "typeDescriptions": {} + }, + "local": "IERC20", + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol", + "id": 2473, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3332, + "sourceUnit": 1046, + "src": "172:129:13", + "symbolAliases": [ + { + "foreign": { + "id": 2472, + "name": "SafeERC20Upgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "180:20:13", + "typeDescriptions": {} + }, + "local": "SafeERC20", + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", + "id": 2475, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3332, + "sourceUnit": 651, + "src": "302:138:13", + "symbolAliases": [ + { + "foreign": { + "id": 2474, + "name": "ReentrancyGuardUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 650, + "src": "310:26:13", + "typeDescriptions": {} + }, + "local": "ReentrancyGuard", + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol", + "file": "./DonationHandlerRoles.sol", + "id": 2476, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3332, + "sourceUnit": 3813, + "src": "441:36:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol", + "file": "../gitcoin/IVotingStrategy.sol", + "id": 2477, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3332, + "sourceUnit": 3872, + "src": "478:40:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2479, + "name": "IVotingStrategy", + "nameLocations": [ + "1919:15:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3871, + "src": "1919:15:13" + }, + "id": 2480, + "nodeType": "InheritanceSpecifier", + "src": "1919:15:13" + }, + { + "baseName": { + "id": 2481, + "name": "DonationHandlerRoles", + "nameLocations": [ + "1940:20:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3812, + "src": "1940:20:13" + }, + "id": 2482, + "nodeType": "InheritanceSpecifier", + "src": "1940:20:13" + }, + { + "baseName": { + "id": 2483, + "name": "ReentrancyGuard", + "nameLocations": [ + "1966:15:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 650, + "src": "1966:15:13" + }, + "id": 2484, + "nodeType": "InheritanceSpecifier", + "src": "1966:15:13" + } + ], + "canonicalName": "DonationHandler", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2478, + "nodeType": "StructuredDocumentation", + "src": "520:1367:13", + "text": "@title DonationHandler\n @author @Kurt for Giveth\n @notice This contract is used to handle donations\n This contract is build to use with proxies.\n The user can donate whitelisted token to whitelisted recipients by calling the vote function.\n The fee is deducted from the users donation, assigned to the contracts address and can be withdrawn by a fee receiver.\n The min fee is set during initialization and can be changed by the protocol admins.\n The max fee is set by default to 1e18 and can't be changed.\n The user can withdraw the donation of a single token by calling the withdraw function.\n The user can withdraw all donations of a list of token by calling the withdrawMany function.\n The fee receiver can withdraw the donation fee by calling the withdrawFee function.\n The fee receiver can withdraw the donation fee of a list of token by calling the withdrawFeeMany function.\n Users can distribute the funds of a list of token in behalf of a recipient by calling the distribute function.\n Users can distribute the funds of a list of token in behalf of a list of recipients by calling the distributeMany function.\n The donation balance of one token can be checked by calling the balanceOf function.\n The donation balance of multiple token can be checked by calling the balancesOf function." + }, + "fullyImplemented": true, + "id": 3331, + "linearizedBaseContracts": [ + 3331, + 650, + 3812, + 335, + 1590, + 1602, + 408, + 1371, + 577, + 3871 + ], + "name": "DonationHandler", + "nameLocation": "1896:15:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 2488, + "libraryName": { + "id": 2485, + "name": "SafeERC20", + "nameLocations": [ + "1994:9:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1045, + "src": "1994:9:13" + }, + "nodeType": "UsingForDirective", + "src": "1988:27:13", + "typeName": { + "id": 2487, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2486, + "name": "IERC20", + "nameLocations": [ + "2008:6:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 728, + "src": "2008:6:13" + }, + "referencedDeclaration": 728, + "src": "2008:6:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + } + }, + { + "constant": true, + "documentation": { + "id": 2489, + "nodeType": "StructuredDocumentation", + "src": "2021:52:13", + "text": "@notice 1e18 represents 100%, 1e16 represents 1%" + }, + "functionSelector": "f85fc0ab", + "id": 2492, + "mutability": "constant", + "name": "HUNDRED", + "nameLocation": "2102:7:13", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "2078:38:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2078:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31653138", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2112:4:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 2493, + "nodeType": "StructuredDocumentation", + "src": "2123:46:13", + "text": "@notice Minimum donation fee. 0 by default" + }, + "functionSelector": "24ec7590", + "id": 2495, + "mutability": "mutable", + "name": "minFee", + "nameLocation": "2189:6:13", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "2174:21:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2174:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "60e007a6", + "id": 2497, + "mutability": "mutable", + "name": "isTokenWhitelistActive", + "nameLocation": "2214:22:13", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "2202:34:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2496, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2202:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "102d7927", + "id": 2499, + "mutability": "mutable", + "name": "isRecipientWhitelistActive", + "nameLocation": "2254:26:13", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "2242:38:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2498, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2242:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 2500, + "nodeType": "StructuredDocumentation", + "src": "2287:44:13", + "text": "@notice mapping: user => token => amount" + }, + "functionSelector": "c23f001f", + "id": 2506, + "mutability": "mutable", + "name": "balances", + "nameLocation": "2391:8:13", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "2336:63:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 2505, + "keyType": { + "id": 2501, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2344:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2336:47:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 2504, + "keyType": { + "id": 2502, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2363:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2355:27:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 2503, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2374:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "public" + }, + { + "body": { + "id": 2534, + "nodeType": "Block", + "src": "2933:176:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2527, + "name": "_acceptedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2510, + "src": "2979:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 2528, + "name": "_donationReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2513, + "src": "3007:17:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 2529, + "name": "_feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "3038:12:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 2530, + "name": "_admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2519, + "src": "3064:7:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 2531, + "name": "_minFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2521, + "src": "3085:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2526, + "name": "__DonationHandler_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2594, + "src": "2943:22:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address[] calldata,address[] calldata,address[] calldata,address[] calldata,uint256)" + } + }, + "id": 2532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2943:159:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2533, + "nodeType": "ExpressionStatement", + "src": "2943:159:13" + } + ] + }, + "documentation": { + "id": 2507, + "nodeType": "StructuredDocumentation", + "src": "2406:286:13", + "text": "@notice Initialize the contract.\n @param _acceptedToken Array of accepted tokens\n @param _donationReceiver Array of donation receivers\n @param _feeReceiver Array of fee receivers\n @param _admins Array of admins\n @param _minFee Minimum donation fee" + }, + "functionSelector": "f2d4120e", + "id": 2535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2524, + "kind": "modifierInvocation", + "modifierName": { + "id": 2523, + "name": "initializer", + "nameLocations": [ + "2921:11:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 479, + "src": "2921:11:13" + }, + "nodeType": "ModifierInvocation", + "src": "2921:11:13" + } + ], + "name": "initialize", + "nameLocation": "2706:10:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2510, + "mutability": "mutable", + "name": "_acceptedToken", + "nameLocation": "2745:14:13", + "nodeType": "VariableDeclaration", + "scope": 2535, + "src": "2726:33:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2726:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2509, + "nodeType": "ArrayTypeName", + "src": "2726:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2513, + "mutability": "mutable", + "name": "_donationReceiver", + "nameLocation": "2788:17:13", + "nodeType": "VariableDeclaration", + "scope": 2535, + "src": "2769:36:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2769:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2512, + "nodeType": "ArrayTypeName", + "src": "2769:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2516, + "mutability": "mutable", + "name": "_feeReceiver", + "nameLocation": "2834:12:13", + "nodeType": "VariableDeclaration", + "scope": 2535, + "src": "2815:31:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2815:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2515, + "nodeType": "ArrayTypeName", + "src": "2815:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2519, + "mutability": "mutable", + "name": "_admins", + "nameLocation": "2875:7:13", + "nodeType": "VariableDeclaration", + "scope": 2535, + "src": "2856:26:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2856:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2518, + "nodeType": "ArrayTypeName", + "src": "2856:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2521, + "mutability": "mutable", + "name": "_minFee", + "nameLocation": "2900:7:13", + "nodeType": "VariableDeclaration", + "scope": 2535, + "src": "2892:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2520, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2892:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2716:197:13" + }, + "returnParameters": { + "id": 2525, + "nodeType": "ParameterList", + "parameters": [], + "src": "2933:0:13" + }, + "scope": 3331, + "src": "2697:412:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2593, + "nodeType": "Block", + "src": "3370:461:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2555, + "name": "_acceptedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2538, + "src": "3421:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 2556, + "name": "_donationReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "3449:17:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 2557, + "name": "_feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2544, + "src": "3480:12:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 2558, + "name": "_admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2547, + "src": "3506:7:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 2554, + "name": "__DonationHandlerRoles_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3380:27:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (address[] calldata,address[] calldata,address[] calldata,address[] calldata)" + } + }, + "id": 2559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3380:143:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2560, + "nodeType": "ExpressionStatement", + "src": "3380:143:13" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2561, + "name": "__ReentrancyGuard_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "3533:22:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3533:24:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2563, + "nodeType": "ExpressionStatement", + "src": "3533:24:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2564, + "name": "_acceptedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2538, + "src": "3572:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 2565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3587:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3572:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3596:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3572:25:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2573, + "nodeType": "IfStatement", + "src": "3568:85:13", + "trueBody": { + "id": 2572, + "nodeType": "Block", + "src": "3599:54:13", + "statements": [ + { + "expression": { + "id": 2570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2568, + "name": "isTokenWhitelistActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2497, + "src": "3613:22:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 2569, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3638:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3613:29:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2571, + "nodeType": "ExpressionStatement", + "src": "3613:29:13" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2574, + "name": "_donationReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "3666:17:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 2575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3684:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3666:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3693:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3666:28:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2583, + "nodeType": "IfStatement", + "src": "3662:92:13", + "trueBody": { + "id": 2582, + "nodeType": "Block", + "src": "3696:58:13", + "statements": [ + { + "expression": { + "id": 2580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2578, + "name": "isRecipientWhitelistActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "3710:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 2579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3739:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3710:33:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2581, + "nodeType": "ExpressionStatement", + "src": "3710:33:13" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2584, + "name": "_minFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "3768:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3778:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3768:11:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2592, + "nodeType": "IfStatement", + "src": "3764:61:13", + "trueBody": { + "id": 2591, + "nodeType": "Block", + "src": "3781:44:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2588, + "name": "_minFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "3806:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2587, + "name": "_setMinFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3216, + "src": "3795:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3795:19:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2590, + "nodeType": "ExpressionStatement", + "src": "3795:19:13" + } + ] + } + } + ] + }, + "id": 2594, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2552, + "kind": "modifierInvocation", + "modifierName": { + "id": 2551, + "name": "onlyInitializing", + "nameLocations": [ + "3353:16:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 522, + "src": "3353:16:13" + }, + "nodeType": "ModifierInvocation", + "src": "3353:16:13" + } + ], + "name": "__DonationHandler_init", + "nameLocation": "3124:22:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2538, + "mutability": "mutable", + "name": "_acceptedToken", + "nameLocation": "3175:14:13", + "nodeType": "VariableDeclaration", + "scope": 2594, + "src": "3156:33:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3156:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2537, + "nodeType": "ArrayTypeName", + "src": "3156:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2541, + "mutability": "mutable", + "name": "_donationReceiver", + "nameLocation": "3218:17:13", + "nodeType": "VariableDeclaration", + "scope": 2594, + "src": "3199:36:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3199:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2540, + "nodeType": "ArrayTypeName", + "src": "3199:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2544, + "mutability": "mutable", + "name": "_feeReceiver", + "nameLocation": "3264:12:13", + "nodeType": "VariableDeclaration", + "scope": 2594, + "src": "3245:31:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2542, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3245:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2543, + "nodeType": "ArrayTypeName", + "src": "3245:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2547, + "mutability": "mutable", + "name": "_admins", + "nameLocation": "3305:7:13", + "nodeType": "VariableDeclaration", + "scope": 2594, + "src": "3286:26:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3286:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2546, + "nodeType": "ArrayTypeName", + "src": "3286:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2549, + "mutability": "mutable", + "name": "_minFee", + "nameLocation": "3330:7:13", + "nodeType": "VariableDeclaration", + "scope": 2594, + "src": "3322:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3322:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3146:197:13" + }, + "returnParameters": { + "id": 2553, + "nodeType": "ParameterList", + "parameters": [], + "src": "3370:0:13" + }, + "scope": 3331, + "src": "3115:716:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3870 + ], + "body": { + "id": 2732, + "nodeType": "Block", + "src": "4134:1372:13", + "statements": [ + { + "assignments": [ + 2610 + ], + "declarations": [ + { + "constant": false, + "id": 2610, + "mutability": "mutable", + "name": "length", + "nameLocation": "4220:6:13", + "nodeType": "VariableDeclaration", + "scope": 2732, + "src": "4212:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4212:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "documentation": "@dev iterate over multiple donations and transfer funds", + "id": 2613, + "initialValue": { + "expression": { + "id": 2611, + "name": "encodedVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "4229:12:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 2612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4242:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4229:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4212:36:13" + }, + { + "assignments": [ + 2615 + ], + "declarations": [ + { + "constant": false, + "id": 2615, + "mutability": "mutable", + "name": "msgValue", + "nameLocation": "4266:8:13", + "nodeType": "VariableDeclaration", + "scope": 2732, + "src": "4258:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4258:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2617, + "initialValue": { + "hexValue": "30", + "id": 2616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4277:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4258:20:13" + }, + { + "body": { + "id": 2721, + "nodeType": "Block", + "src": "4323:1094:13", + "statements": [ + { + "assignments": [ + 2626, + 2628, + 2630 + ], + "declarations": [ + { + "constant": false, + "id": 2626, + "mutability": "mutable", + "name": "_token", + "nameLocation": "4346:6:13", + "nodeType": "VariableDeclaration", + "scope": 2721, + "src": "4338:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2625, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4338:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2628, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "4362:7:13", + "nodeType": "VariableDeclaration", + "scope": 2721, + "src": "4354:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4354:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2630, + "mutability": "mutable", + "name": "_grantAddress", + "nameLocation": "4379:13:13", + "nodeType": "VariableDeclaration", + "scope": 2721, + "src": "4371:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2629, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4371:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2644, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 2633, + "name": "encodedVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "4424:12:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 2635, + "indexExpression": { + "id": 2634, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2619, + "src": "4437:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4424:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "components": [ + { + "id": 2637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4442:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4442:7:13", + "typeDescriptions": {} + } + }, + { + "id": 2639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4451:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2638, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4451:7:13", + "typeDescriptions": {} + } + }, + { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4460:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2640, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4460:7:13", + "typeDescriptions": {} + } + } + ], + "id": 2642, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4441:27:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_address_$_$", + "typeString": "tuple(type(address),type(uint256),type(address))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_address_$_$", + "typeString": "tuple(type(address),type(uint256),type(address))" + } + ], + "expression": { + "id": 2631, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "4396:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4417:6:13", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "4396:27:13", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4396:73:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_payable_$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(address payable,uint256,address payable)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4337:132:13" + }, + { + "condition": { + "id": 2645, + "name": "isTokenWhitelistActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2497, + "src": "4488:22:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2650, + "nodeType": "IfStatement", + "src": "4484:47:13", + "trueBody": { + "expression": { + "arguments": [ + { + "id": 2647, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "4524:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2646, + "name": "_checkToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3613, + "src": "4512:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 2648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4512:19:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2649, + "nodeType": "ExpressionStatement", + "src": "4512:19:13" + } + }, + { + "condition": { + "id": 2651, + "name": "isRecipientWhitelistActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "4549:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2657, + "nodeType": "IfStatement", + "src": "4545:103:13", + "trueBody": { + "id": 2656, + "nodeType": "Block", + "src": "4577:71:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2653, + "name": "_grantAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "4619:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2652, + "name": "_checkDonationRecipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3680, + "src": "4595:23:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 2654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4595:38:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2655, + "nodeType": "ExpressionStatement", + "src": "4595:38:13" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2658, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "4666:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2659, + "name": "NATIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3365, + "src": "4676:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4666:16:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2672, + "nodeType": "Block", + "src": "4763:52:13", + "statements": [ + { + "expression": { + "id": 2670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2668, + "name": "msgValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "4781:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 2669, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "4793:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4781:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2671, + "nodeType": "ExpressionStatement", + "src": "4781:19:13" + } + ] + }, + "id": 2673, + "nodeType": "IfStatement", + "src": "4662:153:13", + "trueBody": { + "id": 2667, + "nodeType": "Block", + "src": "4684:73:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2662, + "name": "voterAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "4712:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2663, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "4726:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2664, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "4734:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2661, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2810, + "src": "4702:9:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4702:40:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2666, + "nodeType": "ExpressionStatement", + "src": "4702:40:13" + } + ] + } + }, + { + "documentation": "@dev emit event for transfer", + "eventCall": { + "arguments": [ + { + "id": 2675, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "4902:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2676, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "4926:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2677, + "name": "voterAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "4951:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2678, + "name": "_grantAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "4981:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 2679, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5012:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5016:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5012:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2674, + "name": "Voted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3330, + "src": "4879:5:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address,address,address)" + } + }, + "id": 2681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4879:157:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2682, + "nodeType": "EmitStatement", + "src": "4874:162:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2683, + "name": "minFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "5055:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5064:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5055:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2715, + "nodeType": "Block", + "src": "5265:82:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2710, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "5301:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2711, + "name": "_grantAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "5309:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2712, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "5324:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2709, + "name": "_registerDonation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "5283:17:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5283:49:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2714, + "nodeType": "ExpressionStatement", + "src": "5283:49:13" + } + ] + }, + "id": 2716, + "nodeType": "IfStatement", + "src": "5051:296:13", + "trueBody": { + "id": 2708, + "nodeType": "Block", + "src": "5067:192:13", + "statements": [ + { + "assignments": [ + 2687 + ], + "declarations": [ + { + "constant": false, + "id": 2687, + "mutability": "mutable", + "name": "fee", + "nameLocation": "5093:3:13", + "nodeType": "VariableDeclaration", + "scope": 2708, + "src": "5085:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5085:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2694, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2688, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "5100:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2689, + "name": "minFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "5110:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5100:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2691, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5099:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2692, + "name": "HUNDRED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "5120:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5099:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5085:42:13" + }, + { + "expression": { + "arguments": [ + { + "id": 2696, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "5164:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2697, + "name": "_grantAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "5172:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2698, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "5187:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2699, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2687, + "src": "5197:3:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5187:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2695, + "name": "_registerDonation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "5146:17:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5146:55:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2702, + "nodeType": "ExpressionStatement", + "src": "5146:55:13" + }, + { + "expression": { + "arguments": [ + { + "id": 2704, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "5232:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2705, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2687, + "src": "5240:3:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2703, + "name": "_registerFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2760, + "src": "5219:12:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5219:25:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2707, + "nodeType": "ExpressionStatement", + "src": "5219:25:13" + } + ] + } + }, + { + "id": 2720, + "nodeType": "UncheckedBlock", + "src": "5361:46:13", + "statements": [ + { + "expression": { + "id": 2718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5389:3:13", + "subExpression": { + "id": 2717, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2619, + "src": "5389:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2719, + "nodeType": "ExpressionStatement", + "src": "5389:3:13" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2622, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2619, + "src": "4309:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2623, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2610, + "src": "4313:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4309:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2722, + "initializationExpression": { + "assignments": [ + 2619 + ], + "declarations": [ + { + "constant": false, + "id": 2619, + "mutability": "mutable", + "name": "i", + "nameLocation": "4302:1:13", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "4294:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4294:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2621, + "initialValue": { + "hexValue": "30", + "id": 2620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4306:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4294:13:13" + }, + "nodeType": "ForStatement", + "src": "4289:1128:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2723, + "name": "msgValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "5431:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 2724, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5442:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5446:5:13", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "5442:9:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5431:20:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2731, + "nodeType": "IfStatement", + "src": "5427:73:13", + "trueBody": { + "id": 2730, + "nodeType": "Block", + "src": "5453:47:13", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2727, + "name": "InvalidAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3268, + "src": "5474:13:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5474:15:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2729, + "nodeType": "RevertStatement", + "src": "5467:22:13" + } + ] + } + } + ] + }, + "documentation": { + "id": 2595, + "nodeType": "StructuredDocumentation", + "src": "3837:148:13", + "text": "@notice Donate(vote) to a whitelisted recipient.\n @param encodedVotes Array of donations\n @param voterAddress Address of the voter" + }, + "functionSelector": "fc6d4e39", + "id": 2733, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2604, + "kind": "modifierInvocation", + "modifierName": { + "id": 2603, + "name": "nonReentrant", + "nameLocations": [ + "4105:12:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 621, + "src": "4105:12:13" + }, + "nodeType": "ModifierInvocation", + "src": "4105:12:13" + }, + { + "id": 2606, + "kind": "modifierInvocation", + "modifierName": { + "id": 2605, + "name": "isRoundContract", + "nameLocations": [ + "4118:15:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3841, + "src": "4118:15:13" + }, + "nodeType": "ModifierInvocation", + "src": "4118:15:13" + } + ], + "name": "vote", + "nameLocation": "3999:4:13", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2602, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4096:8:13" + }, + "parameters": { + "id": 2601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2598, + "mutability": "mutable", + "name": "encodedVotes", + "nameLocation": "4030:12:13", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "4013:29:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 2596, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4013:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 2597, + "nodeType": "ArrayTypeName", + "src": "4013:7:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "voterAddress", + "nameLocation": "4060:12:13", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "4052:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4052:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4003:75:13" + }, + "returnParameters": { + "id": 2607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4134:0:13" + }, + "scope": 3331, + "src": "3990:1516:13", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2759, + "nodeType": "Block", + "src": "5800:116:13", + "statements": [ + { + "expression": { + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2741, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2506, + "src": "5810:8:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 2747, + "indexExpression": { + "arguments": [ + { + "id": 2744, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "5827:4:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DonationHandler_$3331", + "typeString": "contract DonationHandler" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DonationHandler_$3331", + "typeString": "contract DonationHandler" + } + ], + "id": 2743, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5819:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5819:7:13", + "typeDescriptions": {} + } + }, + "id": 2745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5819:13:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5810:23:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2748, + "indexExpression": { + "id": 2746, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2736, + "src": "5834:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5810:31:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 2749, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2738, + "src": "5845:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5810:42:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2751, + "nodeType": "ExpressionStatement", + "src": "5810:42:13" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2753, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2736, + "src": "5881:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 2754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5889:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5893:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5889:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2756, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2738, + "src": "5901:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2752, + "name": "FeeRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3280, + "src": "5867:13:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5867:42:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2758, + "nodeType": "EmitStatement", + "src": "5862:47:13" + } + ] + }, + "documentation": { + "id": 2734, + "nodeType": "StructuredDocumentation", + "src": "5512:219:13", + "text": "@notice Internal function. Registers a donated fee by adding it to the balance of the contract and emitting the FeeRegistered event.\n @param _token Address of the token\n @param _amount Amount of tokens" + }, + "id": 2760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerFee", + "nameLocation": "5745:12:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2739, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2736, + "mutability": "mutable", + "name": "_token", + "nameLocation": "5766:6:13", + "nodeType": "VariableDeclaration", + "scope": 2760, + "src": "5758:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5758:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2738, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "5782:7:13", + "nodeType": "VariableDeclaration", + "scope": 2760, + "src": "5774:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5774:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5757:33:13" + }, + "returnParameters": { + "id": 2740, + "nodeType": "ParameterList", + "parameters": [], + "src": "5800:0:13" + }, + "scope": 3331, + "src": "5736:180:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2786, + "nodeType": "Block", + "src": "6319:130:13", + "statements": [ + { + "expression": { + "id": 2776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2770, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2506, + "src": "6329:8:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 2773, + "indexExpression": { + "id": 2771, + "name": "_recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "6338:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6329:20:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2774, + "indexExpression": { + "id": 2772, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2763, + "src": "6350:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6329:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 2775, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2767, + "src": "6361:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6329:39:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2777, + "nodeType": "ExpressionStatement", + "src": "6329:39:13" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2779, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2763, + "src": "6402:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 2780, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6410:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6414:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6410:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2782, + "name": "_recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "6422:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2783, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2767, + "src": "6434:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2778, + "name": "DonationRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3291, + "src": "6383:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6383:59:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2785, + "nodeType": "EmitStatement", + "src": "6378:64:13" + } + ] + }, + "documentation": { + "id": 2761, + "nodeType": "StructuredDocumentation", + "src": "5922:273:13", + "text": "@notice Internal function. Registers a donation by adding it to the balance of the recipient and emitting the DonationRegistered event.\n @param _token Address of the token\n @param _recipient Address of the recipient\n @param _amount Amount of tokens" + }, + "id": 2787, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerDonation", + "nameLocation": "6209:17:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2763, + "mutability": "mutable", + "name": "_token", + "nameLocation": "6244:6:13", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "6236:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2762, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6236:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2765, + "mutability": "mutable", + "name": "_recipient", + "nameLocation": "6268:10:13", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "6260:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2764, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6260:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2767, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "6296:7:13", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "6288:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6288:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6226:83:13" + }, + "returnParameters": { + "id": 2769, + "nodeType": "ParameterList", + "parameters": [], + "src": "6319:0:13" + }, + "scope": 3331, + "src": "6200:249:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2809, + "nodeType": "Block", + "src": "6729:79:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2801, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2790, + "src": "6771:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 2804, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "6786:4:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DonationHandler_$3331", + "typeString": "contract DonationHandler" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DonationHandler_$3331", + "typeString": "contract DonationHandler" + } + ], + "id": 2803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6778:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6778:7:13", + "typeDescriptions": {} + } + }, + "id": 2805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6778:13:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2806, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2794, + "src": "6793:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 2798, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2792, + "src": "6746:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2797, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "6739:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$728_$", + "typeString": "type(contract IERC20Upgradeable)" + } + }, + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6739:14:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "id": 2800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6754:16:13", + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 822, + "src": "6739:31:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$728_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20Upgradeable_$728_$", + "typeString": "function (contract IERC20Upgradeable,address,address,uint256)" + } + }, + "id": 2807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6739:62:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2808, + "nodeType": "ExpressionStatement", + "src": "6739:62:13" + } + ] + }, + "documentation": { + "id": 2788, + "nodeType": "StructuredDocumentation", + "src": "6455:163:13", + "text": "@notice Internal function. Transfers tokens from the sender to the contract.\n @param _token Address of the token\n @param _amount Amount of tokens" + }, + "id": 2810, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "6632:9:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2790, + "mutability": "mutable", + "name": "_from", + "nameLocation": "6659:5:13", + "nodeType": "VariableDeclaration", + "scope": 2810, + "src": "6651:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6651:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2792, + "mutability": "mutable", + "name": "_token", + "nameLocation": "6682:6:13", + "nodeType": "VariableDeclaration", + "scope": 2810, + "src": "6674:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2791, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6674:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "6706:7:13", + "nodeType": "VariableDeclaration", + "scope": 2810, + "src": "6698:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2793, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6698:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6641:78:13" + }, + "returnParameters": { + "id": 2796, + "nodeType": "ParameterList", + "parameters": [], + "src": "6729:0:13" + }, + "scope": 3331, + "src": "6623:185:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2836, + "nodeType": "Block", + "src": "7035:117:13", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2820, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2815, + "src": "7049:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7060:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7049:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2826, + "nodeType": "IfStatement", + "src": "7045:40:13", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2823, + "name": "InvalidAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3268, + "src": "7070:13:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7070:15:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2825, + "nodeType": "RevertStatement", + "src": "7063:22:13" + } + }, + { + "expression": { + "arguments": [ + { + "id": 2828, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2813, + "src": "7105:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 2829, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7113:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7117:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7113:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 2831, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7125:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7129:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7125:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2833, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2815, + "src": "7137:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2827, + "name": "_withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "7095:9:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" + } + }, + "id": 2834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7095:50:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2835, + "nodeType": "ExpressionStatement", + "src": "7095:50:13" + } + ] + }, + "documentation": { + "id": 2811, + "nodeType": "StructuredDocumentation", + "src": "6814:143:13", + "text": "@notice Withdraw tokens from the contract to msg.sender.\n @param _token Address of the token\n @param _amount Amount of tokens" + }, + "functionSelector": "f3fef3a3", + "id": 2837, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2818, + "kind": "modifierInvocation", + "modifierName": { + "id": 2817, + "name": "nonReentrant", + "nameLocations": [ + "7022:12:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 621, + "src": "7022:12:13" + }, + "nodeType": "ModifierInvocation", + "src": "7022:12:13" + } + ], + "name": "withdraw", + "nameLocation": "6971:8:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2813, + "mutability": "mutable", + "name": "_token", + "nameLocation": "6988:6:13", + "nodeType": "VariableDeclaration", + "scope": 2837, + "src": "6980:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6980:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2815, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "7004:7:13", + "nodeType": "VariableDeclaration", + "scope": 2837, + "src": "6996:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6996:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6979:33:13" + }, + "returnParameters": { + "id": 2819, + "nodeType": "ParameterList", + "parameters": [], + "src": "7035:0:13" + }, + "scope": 3331, + "src": "6962:190:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2854, + "nodeType": "Block", + "src": "7370:61:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2847, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "7393:6:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "expression": { + "id": 2848, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7401:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7405:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7401:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 2850, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7413:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7417:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7413:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2846, + "name": "_withdrawAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3034, + "src": "7380:12:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address[] memory,address,address)" + } + }, + "id": 2852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7380:44:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2853, + "nodeType": "ExpressionStatement", + "src": "7380:44:13" + } + ] + }, + "documentation": { + "id": 2838, + "nodeType": "StructuredDocumentation", + "src": "7158:136:13", + "text": "@notice Withdraw full amount of token arrays token from the contract to msg.sender.\n @param _token Address array of the token" + }, + "functionSelector": "658e4821", + "id": 2855, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2844, + "kind": "modifierInvocation", + "modifierName": { + "id": 2843, + "name": "nonReentrant", + "nameLocations": [ + "7357:12:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 621, + "src": "7357:12:13" + }, + "nodeType": "ModifierInvocation", + "src": "7357:12:13" + } + ], + "name": "withdrawMany", + "nameLocation": "7308:12:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2841, + "mutability": "mutable", + "name": "_token", + "nameLocation": "7340:6:13", + "nodeType": "VariableDeclaration", + "scope": 2855, + "src": "7321:25:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2839, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7321:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2840, + "nodeType": "ArrayTypeName", + "src": "7321:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "7320:27:13" + }, + "returnParameters": { + "id": 2845, + "nodeType": "ParameterList", + "parameters": [], + "src": "7370:0:13" + }, + "scope": 3331, + "src": "7299:132:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2872, + "nodeType": "Block", + "src": "7730:89:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2867, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "7795:6:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 2868, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2861, + "src": "7803:3:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2869, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2861, + "src": "7808:3:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2866, + "name": "_withdrawAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3034, + "src": "7782:12:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address[] memory,address,address)" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7782:30:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "7782:30:13" + } + ] + }, + "documentation": { + "id": 2856, + "nodeType": "StructuredDocumentation", + "src": "7437:184:13", + "text": "@notice Distributes full amount of token arrays token from the contract to a recipient.\n @param _token Address array of the token\n @param _to Address of the recipient" + }, + "functionSelector": "42e228ef", + "id": 2873, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2864, + "kind": "modifierInvocation", + "modifierName": { + "id": 2863, + "name": "nonReentrant", + "nameLocations": [ + "7717:12:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 621, + "src": "7717:12:13" + }, + "nodeType": "ModifierInvocation", + "src": "7717:12:13" + } + ], + "name": "distribute", + "nameLocation": "7635:10:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "_token", + "nameLocation": "7674:6:13", + "nodeType": "VariableDeclaration", + "scope": 2873, + "src": "7655:25:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7655:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2858, + "nodeType": "ArrayTypeName", + "src": "7655:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2861, + "mutability": "mutable", + "name": "_to", + "nameLocation": "7698:3:13", + "nodeType": "VariableDeclaration", + "scope": 2873, + "src": "7690:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2860, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7690:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7645:62:13" + }, + "returnParameters": { + "id": 2865, + "nodeType": "ParameterList", + "parameters": [], + "src": "7730:0:13" + }, + "scope": 3331, + "src": "7626:193:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2913, + "nodeType": "Block", + "src": "8151:249:13", + "statements": [ + { + "assignments": [ + 2886 + ], + "declarations": [ + { + "constant": false, + "id": 2886, + "mutability": "mutable", + "name": "length", + "nameLocation": "8211:6:13", + "nodeType": "VariableDeclaration", + "scope": 2913, + "src": "8203:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8203:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2889, + "initialValue": { + "expression": { + "id": 2887, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2880, + "src": "8220:3:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 2888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8224:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8220:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8203:27:13" + }, + { + "body": { + "id": 2911, + "nodeType": "Block", + "src": "8274:120:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2898, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2877, + "src": "8301:6:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "baseExpression": { + "id": 2899, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2880, + "src": "8309:3:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 2901, + "indexExpression": { + "id": 2900, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "8313:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8309:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 2902, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2880, + "src": "8317:3:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 2904, + "indexExpression": { + "id": 2903, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "8321:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8317:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2897, + "name": "_withdrawAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3034, + "src": "8288:12:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address[] memory,address,address)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8288:36:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2906, + "nodeType": "ExpressionStatement", + "src": "8288:36:13" + }, + { + "id": 2910, + "nodeType": "UncheckedBlock", + "src": "8338:46:13", + "statements": [ + { + "expression": { + "id": 2908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8366:3:13", + "subExpression": { + "id": 2907, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "8366:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2909, + "nodeType": "ExpressionStatement", + "src": "8366:3:13" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2894, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "8260:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2895, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2886, + "src": "8264:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8260:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2912, + "initializationExpression": { + "assignments": [ + 2891 + ], + "declarations": [ + { + "constant": false, + "id": 2891, + "mutability": "mutable", + "name": "i", + "nameLocation": "8253:1:13", + "nodeType": "VariableDeclaration", + "scope": 2912, + "src": "8245:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2890, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8245:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2893, + "initialValue": { + "hexValue": "30", + "id": 2892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8257:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8245:13:13" + }, + "nodeType": "ForStatement", + "src": "8240:154:13" + } + ] + }, + "documentation": { + "id": 2874, + "nodeType": "StructuredDocumentation", + "src": "7825:202:13", + "text": "@notice Distributes full amount of token arrays token from the contract to an array of recipients.\n @param _token Address array of the token\n @param _to Address array of the recipients" + }, + "functionSelector": "3b8453ca", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2883, + "kind": "modifierInvocation", + "modifierName": { + "id": 2882, + "name": "nonReentrant", + "nameLocations": [ + "8138:12:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 621, + "src": "8138:12:13" + }, + "nodeType": "ModifierInvocation", + "src": "8138:12:13" + } + ], + "name": "distributeMany", + "nameLocation": "8041:14:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2877, + "mutability": "mutable", + "name": "_token", + "nameLocation": "8084:6:13", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "8065:25:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8065:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2876, + "nodeType": "ArrayTypeName", + "src": "8065:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2880, + "mutability": "mutable", + "name": "_to", + "nameLocation": "8119:3:13", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "8100:22:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2878, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8100:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2879, + "nodeType": "ArrayTypeName", + "src": "8100:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "8055:73:13" + }, + "returnParameters": { + "id": 2884, + "nodeType": "ParameterList", + "parameters": [], + "src": "8151:0:13" + }, + "scope": 3331, + "src": "8032:368:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2954, + "nodeType": "Block", + "src": "8621:180:13", + "statements": [ + { + "assignments": [ + 2926 + ], + "declarations": [ + { + "constant": false, + "id": 2926, + "mutability": "mutable", + "name": "token", + "nameLocation": "8648:5:13", + "nodeType": "VariableDeclaration", + "scope": 2954, + "src": "8631:22:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2924, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8631:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2925, + "nodeType": "ArrayTypeName", + "src": "8631:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "id": 2932, + "initialValue": { + "arguments": [ + { + "hexValue": "31", + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8670:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "8656:13:13", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 2927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8660:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2928, + "nodeType": "ArrayTypeName", + "src": "8660:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8656:16:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8631:41:13" + }, + { + "expression": { + "id": 2937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2933, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2926, + "src": "8682:5:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2935, + "indexExpression": { + "hexValue": "30", + "id": 2934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8688:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8682:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2936, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "8693:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8682:17:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2938, + "nodeType": "ExpressionStatement", + "src": "8682:17:13" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2940, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "8727:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8731:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8727:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2939, + "name": "_checkFeeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8709:17:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8709:29:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2943, + "nodeType": "ExpressionStatement", + "src": "8709:29:13" + }, + { + "expression": { + "arguments": [ + { + "id": 2945, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2926, + "src": "8761:5:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "arguments": [ + { + "id": 2948, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "8776:4:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DonationHandler_$3331", + "typeString": "contract DonationHandler" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DonationHandler_$3331", + "typeString": "contract DonationHandler" + } + ], + "id": 2947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8768:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2946, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8768:7:13", + "typeDescriptions": {} + } + }, + "id": 2949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8768:13:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 2950, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "8783:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8787:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8783:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2944, + "name": "_withdrawAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3034, + "src": "8748:12:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address[] memory,address,address)" + } + }, + "id": 2952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8748:46:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2953, + "nodeType": "ExpressionStatement", + "src": "8748:46:13" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "8406:151:13", + "text": "@notice Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver.\n @param _token Address of the token" + }, + "functionSelector": "1ac3ddeb", + "id": 2955, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2920, + "kind": "modifierInvocation", + "modifierName": { + "id": 2919, + "name": "nonReentrant", + "nameLocations": [ + "8608:12:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 621, + "src": "8608:12:13" + }, + "nodeType": "ModifierInvocation", + "src": "8608:12:13" + } + ], + "name": "withdrawFee", + "nameLocation": "8571:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2918, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "_token", + "nameLocation": "8591:6:13", + "nodeType": "VariableDeclaration", + "scope": 2955, + "src": "8583:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8583:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8582:16:13" + }, + "returnParameters": { + "id": 2921, + "nodeType": "ParameterList", + "parameters": [], + "src": "8621:0:13" + }, + "scope": 3331, + "src": "8562:239:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2979, + "nodeType": "Block", + "src": "9043:103:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2965, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "9071:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9075:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9071:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2964, + "name": "_checkFeeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "9053:17:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 2967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9053:29:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2968, + "nodeType": "ExpressionStatement", + "src": "9053:29:13" + }, + { + "expression": { + "arguments": [ + { + "id": 2970, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2959, + "src": "9105:6:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "arguments": [ + { + "id": 2973, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "9121:4:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DonationHandler_$3331", + "typeString": "contract DonationHandler" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DonationHandler_$3331", + "typeString": "contract DonationHandler" + } + ], + "id": 2972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9113:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2971, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9113:7:13", + "typeDescriptions": {} + } + }, + "id": 2974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9113:13:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 2975, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "9128:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9132:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9128:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2969, + "name": "_withdrawAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3034, + "src": "9092:12:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address[] memory,address,address)" + } + }, + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9092:47:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2978, + "nodeType": "ExpressionStatement", + "src": "9092:47:13" + } + ] + }, + "documentation": { + "id": 2956, + "nodeType": "StructuredDocumentation", + "src": "8807:157:13", + "text": "@notice Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver.\n @param _token Address array of the token" + }, + "functionSelector": "041c60ee", + "id": 2980, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2962, + "kind": "modifierInvocation", + "modifierName": { + "id": 2961, + "name": "nonReentrant", + "nameLocations": [ + "9030:12:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 621, + "src": "9030:12:13" + }, + "nodeType": "ModifierInvocation", + "src": "9030:12:13" + } + ], + "name": "withdrawFeeMany", + "nameLocation": "8978:15:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2960, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2959, + "mutability": "mutable", + "name": "_token", + "nameLocation": "9013:6:13", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "8994:25:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2957, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8994:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2958, + "nodeType": "ArrayTypeName", + "src": "8994:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "8993:27:13" + }, + "returnParameters": { + "id": 2963, + "nodeType": "ParameterList", + "parameters": [], + "src": "9043:0:13" + }, + "scope": 3331, + "src": "8969:177:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3033, + "nodeType": "Block", + "src": "9534:322:13", + "statements": [ + { + "assignments": [ + 2992 + ], + "declarations": [ + { + "constant": false, + "id": 2992, + "mutability": "mutable", + "name": "length", + "nameLocation": "9552:6:13", + "nodeType": "VariableDeclaration", + "scope": 3033, + "src": "9544:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9544:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2995, + "initialValue": { + "expression": { + "id": 2993, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2984, + "src": "9561:6:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9568:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9561:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9544:30:13" + }, + { + "body": { + "id": 3031, + "nodeType": "Block", + "src": "9619:231:13", + "statements": [ + { + "assignments": [ + 3004 + ], + "declarations": [ + { + "constant": false, + "id": 3004, + "mutability": "mutable", + "name": "amount", + "nameLocation": "9641:6:13", + "nodeType": "VariableDeclaration", + "scope": 3031, + "src": "9633:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3003, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9633:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3012, + "initialValue": { + "baseExpression": { + "baseExpression": { + "id": 3005, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2506, + "src": "9650:8:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3007, + "indexExpression": { + "id": 3006, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2986, + "src": "9659:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9650:15:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3011, + "indexExpression": { + "baseExpression": { + "id": 3008, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2984, + "src": "9666:6:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 3010, + "indexExpression": { + "id": 3009, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2997, + "src": "9673:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9666:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9650:26:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9633:43:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3013, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3004, + "src": "9695:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3014, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9704:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9695:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3026, + "nodeType": "IfStatement", + "src": "9691:89:13", + "trueBody": { + "id": 3025, + "nodeType": "Block", + "src": "9707:73:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3017, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2984, + "src": "9735:6:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 3019, + "indexExpression": { + "id": 3018, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2997, + "src": "9742:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9735:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3020, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2986, + "src": "9746:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3021, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "9753:3:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3022, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3004, + "src": "9758:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3016, + "name": "_withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "9725:9:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" + } + }, + "id": 3023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9725:40:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3024, + "nodeType": "ExpressionStatement", + "src": "9725:40:13" + } + ] + } + }, + { + "id": 3030, + "nodeType": "UncheckedBlock", + "src": "9794:46:13", + "statements": [ + { + "expression": { + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9822:3:13", + "subExpression": { + "id": 3027, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2997, + "src": "9822:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3029, + "nodeType": "ExpressionStatement", + "src": "9822:3:13" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3000, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2997, + "src": "9605:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3001, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2992, + "src": "9609:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9605:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3032, + "initializationExpression": { + "assignments": [ + 2997 + ], + "declarations": [ + { + "constant": false, + "id": 2997, + "mutability": "mutable", + "name": "i", + "nameLocation": "9598:1:13", + "nodeType": "VariableDeclaration", + "scope": 3032, + "src": "9590:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9590:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2999, + "initialValue": { + "hexValue": "30", + "id": 2998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9602:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9590:13:13" + }, + "nodeType": "ForStatement", + "src": "9585:265:13" + } + ] + }, + "documentation": { + "id": 2981, + "nodeType": "StructuredDocumentation", + "src": "9152:263:13", + "text": "@notice Internal function. Withdraw all donated funds from a list of token from the contract to the recipient.\n @param _token Address array of the token to withdraw\n @param _from Address of the spender\n @param _to Address of the recipient" + }, + "id": 3034, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_withdrawAll", + "nameLocation": "9429:12:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2984, + "mutability": "mutable", + "name": "_token", + "nameLocation": "9468:6:13", + "nodeType": "VariableDeclaration", + "scope": 3034, + "src": "9451:23:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9451:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2983, + "nodeType": "ArrayTypeName", + "src": "9451:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2986, + "mutability": "mutable", + "name": "_from", + "nameLocation": "9492:5:13", + "nodeType": "VariableDeclaration", + "scope": 3034, + "src": "9484:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9484:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2988, + "mutability": "mutable", + "name": "_to", + "nameLocation": "9515:3:13", + "nodeType": "VariableDeclaration", + "scope": 3034, + "src": "9507:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9507:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9441:83:13" + }, + "returnParameters": { + "id": 2990, + "nodeType": "ParameterList", + "parameters": [], + "src": "9534:0:13" + }, + "scope": 3331, + "src": "9420:436:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3104, + "nodeType": "Block", + "src": "10321:417:13", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3046, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3043, + "src": "10335:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "baseExpression": { + "baseExpression": { + "id": 3047, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2506, + "src": "10345:8:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3049, + "indexExpression": { + "id": 3048, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "10354:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10345:15:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3051, + "indexExpression": { + "id": 3050, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3037, + "src": "10361:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10345:23:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10335:33:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3056, + "nodeType": "IfStatement", + "src": "10331:67:13", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3053, + "name": "InsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "src": "10377:19:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10377:21:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3055, + "nodeType": "RevertStatement", + "src": "10370:28:13" + } + }, + { + "expression": { + "id": 3063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 3057, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2506, + "src": "10409:8:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3060, + "indexExpression": { + "id": 3058, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "10418:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10409:15:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3061, + "indexExpression": { + "id": 3059, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3037, + "src": "10425:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10409:23:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 3062, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3043, + "src": "10436:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10409:34:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3064, + "nodeType": "ExpressionStatement", + "src": "10409:34:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3065, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3037, + "src": "10457:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3066, + "name": "NATIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3365, + "src": "10467:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10457:16:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3095, + "nodeType": "Block", + "src": "10613:66:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3091, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3041, + "src": "10655:3:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3092, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3043, + "src": "10660:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 3088, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3037, + "src": "10634:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3087, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "10627:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$728_$", + "typeString": "type(contract IERC20Upgradeable)" + } + }, + "id": 3089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10627:14:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Upgradeable_$728", + "typeString": "contract IERC20Upgradeable" + } + }, + "id": 3090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10642:12:13", + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 796, + "src": "10627:27:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Upgradeable_$728_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20Upgradeable_$728_$", + "typeString": "function (contract IERC20Upgradeable,address,uint256)" + } + }, + "id": 3093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10627:41:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3094, + "nodeType": "ExpressionStatement", + "src": "10627:41:13" + } + ] + }, + "id": 3096, + "nodeType": "IfStatement", + "src": "10453:226:13", + "trueBody": { + "id": 3086, + "nodeType": "Block", + "src": "10475:132:13", + "statements": [ + { + "assignments": [ + 3069, + null + ], + "declarations": [ + { + "constant": false, + "id": 3069, + "mutability": "mutable", + "name": "success", + "nameLocation": "10495:7:13", + "nodeType": "VariableDeclaration", + "scope": 3086, + "src": "10490:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3068, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10490:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 3079, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 3077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10542:2:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "arguments": [ + { + "id": 3072, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3041, + "src": "10516:3:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10508:8:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 3070, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10508:8:13", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 3073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10508:12:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10521:4:13", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "10508:17:13", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 3075, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3043, + "src": "10533:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "10508:33:13", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10508:37:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10489:56:13" + }, + { + "condition": { + "id": 3081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10563:8:13", + "subExpression": { + "id": 3080, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3069, + "src": "10564:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3085, + "nodeType": "IfStatement", + "src": "10559:37:13", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3082, + "name": "TransferFailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3271, + "src": "10580:14:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10580:16:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3084, + "nodeType": "RevertStatement", + "src": "10573:23:13" + } + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 3098, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3037, + "src": "10703:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3099, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "10711:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3100, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3041, + "src": "10718:3:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3101, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3043, + "src": "10723:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3097, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "10694:8:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" + } + }, + "id": 3102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10694:37:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3103, + "nodeType": "EmitStatement", + "src": "10689:42:13" + } + ] + }, + "documentation": { + "id": 3035, + "nodeType": "StructuredDocumentation", + "src": "9862:319:13", + "text": "@notice Internal function. Withdraw donated funds from a token from the contract to the recipient. Emits Withdraw event.\n @param _token Address of the token to withdraw\n @param _from Address of the spender\n @param _to Address of the recipient\n @param _amount Amount of tokens to withdraw" + }, + "id": 3105, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_withdraw", + "nameLocation": "10195:9:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3037, + "mutability": "mutable", + "name": "_token", + "nameLocation": "10222:6:13", + "nodeType": "VariableDeclaration", + "scope": 3105, + "src": "10214:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10214:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3039, + "mutability": "mutable", + "name": "_from", + "nameLocation": "10246:5:13", + "nodeType": "VariableDeclaration", + "scope": 3105, + "src": "10238:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10238:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3041, + "mutability": "mutable", + "name": "_to", + "nameLocation": "10269:3:13", + "nodeType": "VariableDeclaration", + "scope": 3105, + "src": "10261:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3040, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10261:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3043, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "10290:7:13", + "nodeType": "VariableDeclaration", + "scope": 3105, + "src": "10282:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10282:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10204:99:13" + }, + "returnParameters": { + "id": 3045, + "nodeType": "ParameterList", + "parameters": [], + "src": "10321:0:13" + }, + "scope": 3331, + "src": "10186:552:13", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3121, + "nodeType": "Block", + "src": "11026:47:13", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 3115, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2506, + "src": "11043:8:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3117, + "indexExpression": { + "id": 3116, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3110, + "src": "11052:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11043:15:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3119, + "indexExpression": { + "id": 3118, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3108, + "src": "11059:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11043:23:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3114, + "id": 3120, + "nodeType": "Return", + "src": "11036:30:13" + } + ] + }, + "documentation": { + "id": 3106, + "nodeType": "StructuredDocumentation", + "src": "10744:173:13", + "text": "@notice Returns the token balance of a user\n @param _token Address of the token\n @param _user Address of the user\n @return Token balance of the user" + }, + "functionSelector": "f7888aec", + "id": 3122, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "10931:9:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3108, + "mutability": "mutable", + "name": "_token", + "nameLocation": "10958:6:13", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "10950:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10950:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3110, + "mutability": "mutable", + "name": "_user", + "nameLocation": "10982:5:13", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "10974:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10974:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "10940:53:13" + }, + "returnParameters": { + "id": 3114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3113, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "11017:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11017:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11016:9:13" + }, + "scope": 3331, + "src": "10922:151:13", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3177, + "nodeType": "Block", + "src": "11405:293:13", + "statements": [ + { + "assignments": [ + 3135 + ], + "declarations": [ + { + "constant": false, + "id": 3135, + "mutability": "mutable", + "name": "length", + "nameLocation": "11423:6:13", + "nodeType": "VariableDeclaration", + "scope": 3177, + "src": "11415:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11415:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3138, + "initialValue": { + "expression": { + "id": 3136, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3126, + "src": "11432:6:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 3137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11439:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11432:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11415:30:13" + }, + { + "assignments": [ + 3143 + ], + "declarations": [ + { + "constant": false, + "id": 3143, + "mutability": "mutable", + "name": "result", + "nameLocation": "11472:6:13", + "nodeType": "VariableDeclaration", + "scope": 3177, + "src": "11455:23:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11455:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3142, + "nodeType": "ArrayTypeName", + "src": "11455:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 3149, + "initialValue": { + "arguments": [ + { + "id": 3147, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "11495:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "11481:13:13", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 3144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11485:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3145, + "nodeType": "ArrayTypeName", + "src": "11485:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 3148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11481:21:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11455:47:13" + }, + { + "body": { + "id": 3173, + "nodeType": "Block", + "src": "11547:122:13", + "statements": [ + { + "expression": { + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3157, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11561:6:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3159, + "indexExpression": { + "id": 3158, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3151, + "src": "11568:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11561:9:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "baseExpression": { + "id": 3160, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2506, + "src": "11573:8:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3162, + "indexExpression": { + "id": 3161, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3128, + "src": "11582:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11573:15:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3166, + "indexExpression": { + "baseExpression": { + "id": 3163, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3126, + "src": "11589:6:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 3165, + "indexExpression": { + "id": 3164, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3151, + "src": "11596:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11589:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11573:26:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11561:38:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3168, + "nodeType": "ExpressionStatement", + "src": "11561:38:13" + }, + { + "id": 3172, + "nodeType": "UncheckedBlock", + "src": "11613:46:13", + "statements": [ + { + "expression": { + "id": 3170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11641:3:13", + "subExpression": { + "id": 3169, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3151, + "src": "11641:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3171, + "nodeType": "ExpressionStatement", + "src": "11641:3:13" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3154, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3151, + "src": "11533:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3155, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "11537:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11533:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3174, + "initializationExpression": { + "assignments": [ + 3151 + ], + "declarations": [ + { + "constant": false, + "id": 3151, + "mutability": "mutable", + "name": "i", + "nameLocation": "11526:1:13", + "nodeType": "VariableDeclaration", + "scope": 3174, + "src": "11518:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11518:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3153, + "initialValue": { + "hexValue": "30", + "id": 3152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11530:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11518:13:13" + }, + "nodeType": "ForStatement", + "src": "11513:156:13" + }, + { + "expression": { + "id": 3175, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11685:6:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 3133, + "id": 3176, + "nodeType": "Return", + "src": "11678:13:13" + } + ] + }, + "documentation": { + "id": 3123, + "nodeType": "StructuredDocumentation", + "src": "11079:196:13", + "text": "@notice Returns the token balances of a user\n @param _token Address array of the token\n @param _user Address of the user\n @return Uint256 array. Token balances of the user" + }, + "functionSelector": "f46b80ca", + "id": 3178, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balancesOf", + "nameLocation": "11289:10:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3126, + "mutability": "mutable", + "name": "_token", + "nameLocation": "11328:6:13", + "nodeType": "VariableDeclaration", + "scope": 3178, + "src": "11309:25:13", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11309:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3125, + "nodeType": "ArrayTypeName", + "src": "11309:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3128, + "mutability": "mutable", + "name": "_user", + "nameLocation": "11352:5:13", + "nodeType": "VariableDeclaration", + "scope": 3178, + "src": "11344:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11344:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "11299:64:13" + }, + "returnParameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3178, + "src": "11387:16:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11387:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3131, + "nodeType": "ArrayTypeName", + "src": "11387:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "11386:18:13" + }, + "scope": 3331, + "src": "11280:418:13", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3193, + "nodeType": "Block", + "src": "11890:69:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3185, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "11912:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11916:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11912:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3184, + "name": "_checkAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3527, + "src": "11900:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11900:23:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "11900:23:13" + }, + { + "expression": { + "arguments": [ + { + "id": 3190, + "name": "_minFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3181, + "src": "11944:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3189, + "name": "_setMinFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3216, + "src": "11933:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11933:19:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3192, + "nodeType": "ExpressionStatement", + "src": "11933:19:13" + } + ] + }, + "documentation": { + "id": 3179, + "nodeType": "StructuredDocumentation", + "src": "11704:136:13", + "text": "@notice Set minimum donation fee. Can only be called by an Admin. Emits MinFeeSet event.\n @param _minFee Minimum donation fee" + }, + "functionSelector": "31ac9920", + "id": 3194, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setMinFee", + "nameLocation": "11854:9:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3181, + "mutability": "mutable", + "name": "_minFee", + "nameLocation": "11872:7:13", + "nodeType": "VariableDeclaration", + "scope": 3194, + "src": "11864:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11864:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11863:17:13" + }, + "returnParameters": { + "id": 3183, + "nodeType": "ParameterList", + "parameters": [], + "src": "11890:0:13" + }, + "scope": 3331, + "src": "11845:114:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3215, + "nodeType": "Block", + "src": "12139:118:13", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3200, + "name": "_minFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3197, + "src": "12153:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 3201, + "name": "HUNDRED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "12163:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12153:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3206, + "nodeType": "IfStatement", + "src": "12149:42:13", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3203, + "name": "FeeTooHigh", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3259, + "src": "12179:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12179:12:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "RevertStatement", + "src": "12172:19:13" + } + }, + { + "expression": { + "id": 3209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3207, + "name": "minFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "12201:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3208, + "name": "_minFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3197, + "src": "12210:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12201:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3210, + "nodeType": "ExpressionStatement", + "src": "12201:16:13" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3212, + "name": "_minFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3197, + "src": "12242:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3211, + "name": "MinFeeSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3307, + "src": "12232:9:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12232:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3214, + "nodeType": "EmitStatement", + "src": "12227:23:13" + } + ] + }, + "documentation": { + "id": 3195, + "nodeType": "StructuredDocumentation", + "src": "11965:123:13", + "text": "@notice Internal function. Set minimum donation fee. Emits MinFeeSet event.\n @param _minFee Minimum donation fee" + }, + "id": 3216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setMinFee", + "nameLocation": "12102:10:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3197, + "mutability": "mutable", + "name": "_minFee", + "nameLocation": "12121:7:13", + "nodeType": "VariableDeclaration", + "scope": 3216, + "src": "12113:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12113:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12112:17:13" + }, + "returnParameters": { + "id": 3199, + "nodeType": "ParameterList", + "parameters": [], + "src": "12139:0:13" + }, + "scope": 3331, + "src": "12093:164:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3235, + "nodeType": "Block", + "src": "12526:163:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3223, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "12548:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12552:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "12548:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3222, + "name": "_checkAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3527, + "src": "12536:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 3225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12536:23:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3226, + "nodeType": "ExpressionStatement", + "src": "12536:23:13" + }, + { + "expression": { + "id": 3229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3227, + "name": "isTokenWhitelistActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2497, + "src": "12569:22:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3228, + "name": "_isTokenWhitelistActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3219, + "src": "12594:23:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12569:48:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3230, + "nodeType": "ExpressionStatement", + "src": "12569:48:13" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3232, + "name": "_isTokenWhitelistActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3219, + "src": "12658:23:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3231, + "name": "IsTokenWhitelistActiveSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3312, + "src": "12632:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", + "typeString": "function (bool)" + } + }, + "id": 3233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12632:50:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3234, + "nodeType": "EmitStatement", + "src": "12627:55:13" + } + ] + }, + "documentation": { + "id": 3217, + "nodeType": "StructuredDocumentation", + "src": "12263:184:13", + "text": "@notice Enable/Disable token whitelist. Can only be called by an Admin. Emits IsTokenWhitelistActiveSet event.\n @param _isTokenWhitelistActive Enable/Disable token whitelist" + }, + "functionSelector": "155dc549", + "id": 3236, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setIsTokenWhitelistActive", + "nameLocation": "12461:25:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3219, + "mutability": "mutable", + "name": "_isTokenWhitelistActive", + "nameLocation": "12492:23:13", + "nodeType": "VariableDeclaration", + "scope": 3236, + "src": "12487:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3218, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12487:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12486:30:13" + }, + "returnParameters": { + "id": 3221, + "nodeType": "ParameterList", + "parameters": [], + "src": "12526:0:13" + }, + "scope": 3331, + "src": "12452:237:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3255, + "nodeType": "Block", + "src": "12996:179:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "13018:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13022:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "13018:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3242, + "name": "_checkAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3527, + "src": "13006:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 3245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13006:23:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3246, + "nodeType": "ExpressionStatement", + "src": "13006:23:13" + }, + { + "expression": { + "id": 3249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3247, + "name": "isRecipientWhitelistActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "13039:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3248, + "name": "_isRecipientWhitelistActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3239, + "src": "13068:27:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13039:56:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3250, + "nodeType": "ExpressionStatement", + "src": "13039:56:13" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3252, + "name": "_isRecipientWhitelistActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3239, + "src": "13140:27:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3251, + "name": "IsRecipientWhitelistActiveSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3317, + "src": "13110:29:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", + "typeString": "function (bool)" + } + }, + "id": 3253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13110:58:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3254, + "nodeType": "EmitStatement", + "src": "13105:63:13" + } + ] + }, + "documentation": { + "id": 3237, + "nodeType": "StructuredDocumentation", + "src": "12695:200:13", + "text": "@notice Enable/Disable recipient whitelist. Can only be called by an Admin. Emits IsRecipientWhitelistActiveSet event.\n @param _isRecipientWhitelistActive Enable/Disable recipient whitelist" + }, + "functionSelector": "6bb85f4c", + "id": 3256, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setIsRecipientWhitelistActive", + "nameLocation": "12909:29:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3240, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3239, + "mutability": "mutable", + "name": "_isRecipientWhitelistActive", + "nameLocation": "12953:27:13", + "nodeType": "VariableDeclaration", + "scope": 3256, + "src": "12948:32:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3238, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12948:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12938:48:13" + }, + "returnParameters": { + "id": 3241, + "nodeType": "ParameterList", + "parameters": [], + "src": "12996:0:13" + }, + "scope": 3331, + "src": "12900:275:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3257, + "nodeType": "StructuredDocumentation", + "src": "13181:47:13", + "text": "@notice Throws if passed fee is above 100%." + }, + "errorSelector": "cd4e6167", + "id": 3259, + "name": "FeeTooHigh", + "nameLocation": "13239:10:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3258, + "nodeType": "ParameterList", + "parameters": [], + "src": "13249:2:13" + }, + "src": "13233:19:13" + }, + { + "documentation": { + "id": 3260, + "nodeType": "StructuredDocumentation", + "src": "13258:49:13", + "text": "@notice Throws if passed fee is below minFee." + }, + "errorSelector": "732f9413", + "id": 3262, + "name": "FeeTooLow", + "nameLocation": "13318:9:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3261, + "nodeType": "ParameterList", + "parameters": [], + "src": "13327:2:13" + }, + "src": "13312:18:13" + }, + { + "documentation": { + "id": 3263, + "nodeType": "StructuredDocumentation", + "src": "13336:56:13", + "text": "@notice Throws if the withdrawal amount is too high." + }, + "errorSelector": "f4d678b8", + "id": 3265, + "name": "InsufficientBalance", + "nameLocation": "13403:19:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3264, + "nodeType": "ParameterList", + "parameters": [], + "src": "13422:2:13" + }, + "src": "13397:28:13" + }, + { + "documentation": { + "id": 3266, + "nodeType": "StructuredDocumentation", + "src": "13431:68:13", + "text": "@notice Throws if amount is zero or does not match the msg.value" + }, + "errorSelector": "2c5211c6", + "id": 3268, + "name": "InvalidAmount", + "nameLocation": "13510:13:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3267, + "nodeType": "ParameterList", + "parameters": [], + "src": "13523:2:13" + }, + "src": "13504:22:13" + }, + { + "documentation": { + "id": 3269, + "nodeType": "StructuredDocumentation", + "src": "13532:57:13", + "text": "@notice Throws if the native currency transfer failed" + }, + "errorSelector": "90b8ec18", + "id": 3271, + "name": "TransferFailed", + "nameLocation": "13600:14:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3270, + "nodeType": "ParameterList", + "parameters": [], + "src": "13614:2:13" + }, + "src": "13594:23:13" + }, + { + "anonymous": false, + "documentation": { + "id": 3272, + "nodeType": "StructuredDocumentation", + "src": "13623:172:13", + "text": "@notice Emitted when a fee is registered\n @param token The token address\n @param from The address of the sender\n @param amount The amount of tokens" + }, + "eventSelector": "468c2f4ec7ce54b88b575db5d64710429b1880e4581f5328aaa4b3f51dadc58b", + "id": 3280, + "name": "FeeRegistered", + "nameLocation": "13806:13:13", + "nodeType": "EventDefinition", + "parameters": { + "id": 3279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3274, + "indexed": true, + "mutability": "mutable", + "name": "token", + "nameLocation": "13845:5:13", + "nodeType": "VariableDeclaration", + "scope": 3280, + "src": "13829:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3273, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13829:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3276, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "13876:4:13", + "nodeType": "VariableDeclaration", + "scope": 3280, + "src": "13860:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3275, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13860:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3278, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "13898:6:13", + "nodeType": "VariableDeclaration", + "scope": 3280, + "src": "13890:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3277, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13890:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13819:91:13" + }, + "src": "13800:111:13" + }, + { + "anonymous": false, + "documentation": { + "id": 3281, + "nodeType": "StructuredDocumentation", + "src": "13917:231:13", + "text": "@notice Emitted when a donation is registered\n @param token The token address\n @param from The address of the sender\n @param recipient The address of the recipient\n @param amount The amount of tokens" + }, + "eventSelector": "b91b2d1906a6e6e2b45b99eb26ac141804eb2684a0df30699fdcb8b5ced1d518", + "id": 3291, + "name": "DonationRegistered", + "nameLocation": "14159:18:13", + "nodeType": "EventDefinition", + "parameters": { + "id": 3290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3283, + "indexed": true, + "mutability": "mutable", + "name": "token", + "nameLocation": "14203:5:13", + "nodeType": "VariableDeclaration", + "scope": 3291, + "src": "14187:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3282, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14187:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3285, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "14234:4:13", + "nodeType": "VariableDeclaration", + "scope": 3291, + "src": "14218:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14218:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3287, + "indexed": true, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "14264:9:13", + "nodeType": "VariableDeclaration", + "scope": 3291, + "src": "14248:25:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3286, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14248:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3289, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "14291:6:13", + "nodeType": "VariableDeclaration", + "scope": 3291, + "src": "14283:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14283:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14177:126:13" + }, + "src": "14153:151:13" + }, + { + "anonymous": false, + "documentation": { + "id": 3292, + "nodeType": "StructuredDocumentation", + "src": "14310:220:13", + "text": "@notice Emitted when a withdrawal is made\n @param token The token address\n @param from The address of the sender\n @param to The address of the recipient\n @param amount The amount of tokens" + }, + "eventSelector": "3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f7", + "id": 3302, + "name": "Withdraw", + "nameLocation": "14541:8:13", + "nodeType": "EventDefinition", + "parameters": { + "id": 3301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3294, + "indexed": true, + "mutability": "mutable", + "name": "token", + "nameLocation": "14575:5:13", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "14559:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3293, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14559:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3296, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "14606:4:13", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "14590:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3295, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14590:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3298, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "14636:2:13", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "14620:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14620:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3300, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "14656:6:13", + "nodeType": "VariableDeclaration", + "scope": 3302, + "src": "14648:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3299, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14648:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14549:119:13" + }, + "src": "14535:134:13" + }, + { + "anonymous": false, + "documentation": { + "id": 3303, + "nodeType": "StructuredDocumentation", + "src": "14675:85:13", + "text": "@notice Emitted when the minimum fee is set\n @param minFee The minimum fee" + }, + "eventSelector": "d4c19c993aeeb50b76da8b158f84806c9d235eff5b86f3a36f12a2e1dd4e6eac", + "id": 3307, + "name": "MinFeeSet", + "nameLocation": "14771:9:13", + "nodeType": "EventDefinition", + "parameters": { + "id": 3306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3305, + "indexed": false, + "mutability": "mutable", + "name": "minFee", + "nameLocation": "14789:6:13", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "14781:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3304, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14781:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14780:16:13" + }, + "src": "14765:32:13" + }, + { + "anonymous": false, + "documentation": { + "id": 3308, + "nodeType": "StructuredDocumentation", + "src": "14803:138:13", + "text": "@notice Emitted when the token whitelist is set to active or inactive\n @param isTokenWhitelistActive The token whitelist status" + }, + "eventSelector": "46d6d1a61669d91ea3801d9d57b7398c4ced2120f35ca8559749a391047a24ae", + "id": 3312, + "name": "IsTokenWhitelistActiveSet", + "nameLocation": "14952:25:13", + "nodeType": "EventDefinition", + "parameters": { + "id": 3311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3310, + "indexed": false, + "mutability": "mutable", + "name": "isTokenWhitelistActive", + "nameLocation": "14983:22:13", + "nodeType": "VariableDeclaration", + "scope": 3312, + "src": "14978:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3309, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14978:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14977:29:13" + }, + "src": "14946:61:13" + }, + { + "anonymous": false, + "documentation": { + "id": 3313, + "nodeType": "StructuredDocumentation", + "src": "15013:150:13", + "text": "@notice Emitted when the recipient whitelist is set to active or inactive\n @param isRecipientWhitelistActive The recipient whitelist status" + }, + "eventSelector": "618c1dfcdc0554eaa0869d571defb09f99ae2add7c190d59444db6d0392489a7", + "id": 3317, + "name": "IsRecipientWhitelistActiveSet", + "nameLocation": "15174:29:13", + "nodeType": "EventDefinition", + "parameters": { + "id": 3316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3315, + "indexed": false, + "mutability": "mutable", + "name": "isRecipientWhitelistActive", + "nameLocation": "15209:26:13", + "nodeType": "VariableDeclaration", + "scope": 3317, + "src": "15204:31:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3314, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15204:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15203:33:13" + }, + "src": "15168:69:13" + }, + { + "anonymous": false, + "documentation": { + "id": 3318, + "nodeType": "StructuredDocumentation", + "src": "15243:43:13", + "text": "@notice Emitted when a new vote is sent" + }, + "eventSelector": "023f5e053cbb2c4e0d563d51f8cafaa385fc620caa979fbcac023059ad1687d9", + "id": 3330, + "name": "Voted", + "nameLocation": "15297:5:13", + "nodeType": "EventDefinition", + "parameters": { + "id": 3329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3320, + "indexed": false, + "mutability": "mutable", + "name": "token", + "nameLocation": "15320:5:13", + "nodeType": "VariableDeclaration", + "scope": 3330, + "src": "15312:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3319, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15312:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3322, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "15359:6:13", + "nodeType": "VariableDeclaration", + "scope": 3330, + "src": "15351:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3321, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15351:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3324, + "indexed": true, + "mutability": "mutable", + "name": "voter", + "nameLocation": "15408:5:13", + "nodeType": "VariableDeclaration", + "scope": 3330, + "src": "15392:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15392:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3326, + "indexed": true, + "mutability": "mutable", + "name": "grantAddress", + "nameLocation": "15456:12:13", + "nodeType": "VariableDeclaration", + "scope": 3330, + "src": "15440:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15440:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3328, + "indexed": true, + "mutability": "mutable", + "name": "roundAddress", + "nameLocation": "15511:12:13", + "nodeType": "VariableDeclaration", + "scope": 3330, + "src": "15495:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15495:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15302:244:13" + }, + "src": "15291:256:13" + } + ], + "scope": 3332, + "src": "1887:13662:13", + "usedErrors": [ + 3259, + 3262, + 3265, + 3268, + 3271, + 3799, + 3802, + 3805, + 3808, + 3811 + ] + } + ], + "src": "32:15518:13" + }, + "id": 13 + }, + "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol": { + "ast": { + "absolutePath": "giveth/GIVfi/src/DonationHandler/DonationHandlerRoles.sol", + "exportedSymbols": { + "AccessControl": [ + 335 + ], + "DonationHandlerRoles": [ + 3812 + ] + }, + "id": 3813, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3333, + "literals": [ + "solidity", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "32:23:14" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "id": 3335, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3813, + "sourceUnit": 336, + "src": "57:134:14", + "symbolAliases": [ + { + "foreign": { + "id": 3334, + "name": "AccessControlUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 335, + "src": "65:24:14", + "typeDescriptions": {} + }, + "local": "AccessControl", + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3337, + "name": "AccessControl", + "nameLocations": [ + "369:13:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 335, + "src": "369:13:14" + }, + "id": 3338, + "nodeType": "InheritanceSpecifier", + "src": "369:13:14" + } + ], + "canonicalName": "DonationHandlerRoles", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3336, + "nodeType": "StructuredDocumentation", + "src": "193:143:14", + "text": "@title DonationHandlerRoles\n @author @Kurt for Giveth\n @notice This contract defines the roles used by the DonationHandler contract." + }, + "fullyImplemented": true, + "id": 3812, + "linearizedBaseContracts": [ + 3812, + 335, + 1590, + 1602, + 408, + 1371, + 577 + ], + "name": "DonationHandlerRoles", + "nameLocation": "345:20:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "fdbb219d", + "id": 3343, + "mutability": "constant", + "name": "ACCEPTED_TOKEN", + "nameLocation": "413:14:14", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "389:68:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3339, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "389:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "41434345505445445f544f4b454e", + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "440:16:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19", + "typeString": "literal_string \"ACCEPTED_TOKEN\"" + }, + "value": "ACCEPTED_TOKEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_6241945b9c52237c1fc120a0e65553d4e6e262c3d36b3810008a6c39502bed19", + "typeString": "literal_string \"ACCEPTED_TOKEN\"" + } + ], + "id": 3340, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "430:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "430:27:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "dcda7dad", + "id": 3348, + "mutability": "constant", + "name": "DONATION_RECIPIENT", + "nameLocation": "487:18:14", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "463:76:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3344, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "463:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "444f4e4154494f4e5f524543495049454e54", + "id": 3346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "518:20:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632", + "typeString": "literal_string \"DONATION_RECIPIENT\"" + }, + "value": "DONATION_RECIPIENT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_bb33b450b5787500b7743166d12295e6b6b742804a612449720d079818ebc632", + "typeString": "literal_string \"DONATION_RECIPIENT\"" + } + ], + "id": 3345, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "508:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "508:31:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "d3e78e4d", + "id": 3353, + "mutability": "constant", + "name": "FEE_RECEIVER", + "nameLocation": "569:12:14", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "545:64:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3349, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "545:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "4645455f5245434549564552", + "id": 3351, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "594:14:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083", + "typeString": "literal_string \"FEE_RECEIVER\"" + }, + "value": "FEE_RECEIVER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_b65d1ad2ca8116a35ccd39be9425554ab4464be07feb2b70d510d92105c6f083", + "typeString": "literal_string \"FEE_RECEIVER\"" + } + ], + "id": 3350, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "584:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "584:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "2a0acc6a", + "id": 3358, + "mutability": "constant", + "name": "ADMIN", + "nameLocation": "639:5:14", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "615:50:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "615:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "41444d494e", + "id": 3356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "657:7:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42", + "typeString": "literal_string \"ADMIN\"" + }, + "value": "ADMIN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42", + "typeString": "literal_string \"ADMIN\"" + } + ], + "id": 3355, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "647:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "647:18:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 3359, + "nodeType": "StructuredDocumentation", + "src": "672:104:14", + "text": "@notice special address which represents the native network currency. address(0) is used by gitcoin." + }, + "functionSelector": "a0cf0aea", + "id": 3365, + "mutability": "constant", + "name": "NATIVE", + "nameLocation": "805:6:14", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "781:43:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "781:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "arguments": [ + { + "hexValue": "30", + "id": 3363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "822:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "814:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "814:7:14", + "typeDescriptions": {} + } + }, + "id": 3364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "814:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 3440, + "nodeType": "Block", + "src": "1427:588:14", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3383, + "name": "__AccessControl_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "1437:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1437:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "1437:22:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3387, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "1480:18:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 3388, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1500:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1504:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1500:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3386, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 238, + "src": "1469:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1469:42:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "1469:42:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3393, + "name": "DONATION_RECIPIENT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "1532:18:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "id": 3396, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "1560:4:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DonationHandlerRoles_$3812", + "typeString": "contract DonationHandlerRoles" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DonationHandlerRoles_$3812", + "typeString": "contract DonationHandlerRoles" + } + ], + "id": 3395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1552:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3394, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1552:7:14", + "typeDescriptions": {} + } + }, + "id": 3397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1552:13:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3392, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 238, + "src": "1521:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 3398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1521:45:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3399, + "nodeType": "ExpressionStatement", + "src": "1521:45:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3401, + "name": "ACCEPTED_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3343, + "src": "1654:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3402, + "name": "ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "1670:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 3400, + "name": "_setRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "1640:13:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 3403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1640:36:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3404, + "nodeType": "ExpressionStatement", + "src": "1640:36:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3406, + "name": "DONATION_RECIPIENT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "1700:18:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3407, + "name": "ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "1720:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 3405, + "name": "_setRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "1686:13:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 3408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1686:40:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3409, + "nodeType": "ExpressionStatement", + "src": "1686:40:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3411, + "name": "FEE_RECEIVER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3353, + "src": "1750:12:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3412, + "name": "ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "1764:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 3410, + "name": "_setRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "1736:13:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 3413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1736:34:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3414, + "nodeType": "ExpressionStatement", + "src": "1736:34:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3416, + "name": "ACCEPTED_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3343, + "src": "1791:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3417, + "name": "_acceptedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3369, + "src": "1807:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3415, + "name": "_addRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "1781:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1781:41:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3419, + "nodeType": "ExpressionStatement", + "src": "1781:41:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3421, + "name": "DONATION_RECIPIENT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "1842:18:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3422, + "name": "_donationRecipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3372, + "src": "1862:18:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3420, + "name": "_addRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "1832:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1832:49:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3424, + "nodeType": "ExpressionStatement", + "src": "1832:49:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3426, + "name": "FEE_RECEIVER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3353, + "src": "1901:12:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3427, + "name": "_feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3375, + "src": "1915:12:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3425, + "name": "_addRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "1891:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1891:37:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3429, + "nodeType": "ExpressionStatement", + "src": "1891:37:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3431, + "name": "ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "1948:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3432, + "name": "_admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3378, + "src": "1955:7:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3430, + "name": "_addRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "1938:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1938:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3434, + "nodeType": "ExpressionStatement", + "src": "1938:25:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3436, + "name": "ACCEPTED_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3343, + "src": "1985:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3437, + "name": "NATIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3365, + "src": "2001:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3435, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 238, + "src": "1974:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1974:34:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3439, + "nodeType": "ExpressionStatement", + "src": "1974:34:14" + } + ] + }, + "documentation": { + "id": 3366, + "nodeType": "StructuredDocumentation", + "src": "877:309:14", + "text": "@notice Initializes the contract settings by adding all addresses to their roles.\n @param _acceptedToken The list of accepted tokens.\n @param _donationRecipient The list of donation recipients.\n @param _feeReceiver The list of fee receivers.\n @param _admins The list of admins." + }, + "id": 3441, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3381, + "kind": "modifierInvocation", + "modifierName": { + "id": 3380, + "name": "onlyInitializing", + "nameLocations": [ + "1410:16:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 522, + "src": "1410:16:14" + }, + "nodeType": "ModifierInvocation", + "src": "1410:16:14" + } + ], + "name": "__DonationHandlerRoles_init", + "nameLocation": "1200:27:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3369, + "mutability": "mutable", + "name": "_acceptedToken", + "nameLocation": "1256:14:14", + "nodeType": "VariableDeclaration", + "scope": 3441, + "src": "1237:33:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1237:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3368, + "nodeType": "ArrayTypeName", + "src": "1237:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3372, + "mutability": "mutable", + "name": "_donationRecipient", + "nameLocation": "1299:18:14", + "nodeType": "VariableDeclaration", + "scope": 3441, + "src": "1280:37:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3370, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1280:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3371, + "nodeType": "ArrayTypeName", + "src": "1280:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3375, + "mutability": "mutable", + "name": "_feeReceiver", + "nameLocation": "1346:12:14", + "nodeType": "VariableDeclaration", + "scope": 3441, + "src": "1327:31:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3373, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1327:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3374, + "nodeType": "ArrayTypeName", + "src": "1327:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3378, + "mutability": "mutable", + "name": "_admins", + "nameLocation": "1387:7:14", + "nodeType": "VariableDeclaration", + "scope": 3441, + "src": "1368:26:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3376, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1368:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3377, + "nodeType": "ArrayTypeName", + "src": "1368:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "1227:173:14" + }, + "returnParameters": { + "id": 3382, + "nodeType": "ParameterList", + "parameters": [], + "src": "1427:0:14" + }, + "scope": 3812, + "src": "1191:824:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3475, + "nodeType": "Block", + "src": "2289:209:14", + "statements": [ + { + "assignments": [ + 3451 + ], + "declarations": [ + { + "constant": false, + "id": 3451, + "mutability": "mutable", + "name": "length", + "nameLocation": "2307:6:14", + "nodeType": "VariableDeclaration", + "scope": 3475, + "src": "2299:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2299:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3454, + "initialValue": { + "expression": { + "id": 3452, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "2316:10:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2327:6:14", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2316:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2299:34:14" + }, + { + "body": { + "id": 3473, + "nodeType": "Block", + "src": "2376:116:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3463, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3444, + "src": "2401:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "baseExpression": { + "id": 3464, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "2408:10:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 3466, + "indexExpression": { + "id": 3465, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3456, + "src": "2419:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2408:13:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3462, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 238, + "src": "2390:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 3467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2390:32:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3468, + "nodeType": "ExpressionStatement", + "src": "2390:32:14" + }, + { + "id": 3472, + "nodeType": "UncheckedBlock", + "src": "2436:46:14", + "statements": [ + { + "expression": { + "id": 3470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2464:3:14", + "subExpression": { + "id": 3469, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3456, + "src": "2464:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3471, + "nodeType": "ExpressionStatement", + "src": "2464:3:14" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3459, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3456, + "src": "2363:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3460, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3451, + "src": "2367:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2363:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3474, + "initializationExpression": { + "assignments": [ + 3456 + ], + "declarations": [ + { + "constant": false, + "id": 3456, + "mutability": "mutable", + "name": "i", + "nameLocation": "2356:1:14", + "nodeType": "VariableDeclaration", + "scope": 3474, + "src": "2348:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3455, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2348:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3458, + "initialValue": { + "hexValue": "30", + "id": 3457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2360:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2348:13:14" + }, + "nodeType": "ForStatement", + "src": "2343:149:14" + } + ] + }, + "documentation": { + "id": 3442, + "nodeType": "StructuredDocumentation", + "src": "2021:189:14", + "text": "@notice Internal function. Adds a list of addresses to a role.\n @param _role The role to add the addresses to.\n @param _addresses The list of addresses to add to the role." + }, + "id": 3476, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addRoles", + "nameLocation": "2224:9:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3444, + "mutability": "mutable", + "name": "_role", + "nameLocation": "2242:5:14", + "nodeType": "VariableDeclaration", + "scope": 3476, + "src": "2234:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3443, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2234:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "_addresses", + "nameLocation": "2268:10:14", + "nodeType": "VariableDeclaration", + "scope": 3476, + "src": "2249:29:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3445, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2249:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3446, + "nodeType": "ArrayTypeName", + "src": "2249:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "2233:46:14" + }, + "returnParameters": { + "id": 3449, + "nodeType": "ParameterList", + "parameters": [], + "src": "2289:0:14" + }, + "scope": 3812, + "src": "2215:283:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3510, + "nodeType": "Block", + "src": "2790:209:14", + "statements": [ + { + "assignments": [ + 3486 + ], + "declarations": [ + { + "constant": false, + "id": 3486, + "mutability": "mutable", + "name": "length", + "nameLocation": "2808:6:14", + "nodeType": "VariableDeclaration", + "scope": 3510, + "src": "2800:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3485, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2800:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3489, + "initialValue": { + "expression": { + "id": 3487, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3482, + "src": "2817:10:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 3488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2828:6:14", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2817:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2800:34:14" + }, + { + "body": { + "id": 3508, + "nodeType": "Block", + "src": "2877:116:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3498, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3479, + "src": "2902:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "baseExpression": { + "id": 3499, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3482, + "src": "2909:10:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 3501, + "indexExpression": { + "id": 3500, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "2920:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2909:13:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3497, + "name": "revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 201, + "src": "2891:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2891:32:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3503, + "nodeType": "ExpressionStatement", + "src": "2891:32:14" + }, + { + "id": 3507, + "nodeType": "UncheckedBlock", + "src": "2937:46:14", + "statements": [ + { + "expression": { + "id": 3505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2965:3:14", + "subExpression": { + "id": 3504, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "2965:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3506, + "nodeType": "ExpressionStatement", + "src": "2965:3:14" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3494, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "2864:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3495, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "2868:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2864:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3509, + "initializationExpression": { + "assignments": [ + 3491 + ], + "declarations": [ + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "i", + "nameLocation": "2857:1:14", + "nodeType": "VariableDeclaration", + "scope": 3509, + "src": "2849:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2849:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3493, + "initialValue": { + "hexValue": "30", + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2861:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2849:13:14" + }, + "nodeType": "ForStatement", + "src": "2844:149:14" + } + ] + }, + "documentation": { + "id": 3477, + "nodeType": "StructuredDocumentation", + "src": "2504:204:14", + "text": "@notice Internal function. Removes a list of addresses from a role.\n @param _role The role to remove the addresses from.\n @param _addresses The list of addresses to remove from the role." + }, + "id": 3511, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_removeRoles", + "nameLocation": "2722:12:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3479, + "mutability": "mutable", + "name": "_role", + "nameLocation": "2743:5:14", + "nodeType": "VariableDeclaration", + "scope": 3511, + "src": "2735:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3478, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2735:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3482, + "mutability": "mutable", + "name": "_addresses", + "nameLocation": "2769:10:14", + "nodeType": "VariableDeclaration", + "scope": 3511, + "src": "2750:29:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2750:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3481, + "nodeType": "ArrayTypeName", + "src": "2750:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "2734:46:14" + }, + "returnParameters": { + "id": 3484, + "nodeType": "ParameterList", + "parameters": [], + "src": "2790:0:14" + }, + "scope": 3812, + "src": "2713:286:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3526, + "nodeType": "Block", + "src": "3174:65:14", + "statements": [ + { + "condition": { + "id": 3521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3188:25:14", + "subExpression": { + "arguments": [ + { + "id": 3518, + "name": "ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "3197:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3519, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3514, + "src": "3204:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3517, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "3189:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 3520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3189:24:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3525, + "nodeType": "IfStatement", + "src": "3184:48:14", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3522, + "name": "NotAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3799, + "src": "3222:8:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3222:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3524, + "nodeType": "RevertStatement", + "src": "3215:17:14" + } + } + ] + }, + "documentation": { + "id": 3512, + "nodeType": "StructuredDocumentation", + "src": "3005:111:14", + "text": "@notice Internal function. Checks if an address is admin and reverts NotAdmin() if address is not an admin." + }, + "id": 3527, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkAdmin", + "nameLocation": "3130:11:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3515, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3514, + "mutability": "mutable", + "name": "_address", + "nameLocation": "3150:8:14", + "nodeType": "VariableDeclaration", + "scope": 3527, + "src": "3142:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3513, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3142:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3141:18:14" + }, + "returnParameters": { + "id": 3516, + "nodeType": "ParameterList", + "parameters": [], + "src": "3174:0:14" + }, + "scope": 3812, + "src": "3121:118:14", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3544, + "nodeType": "Block", + "src": "3448:75:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3535, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3470:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3474:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3470:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3534, + "name": "_checkAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3527, + "src": "3458:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 3537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3458:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3538, + "nodeType": "ExpressionStatement", + "src": "3458:23:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3540, + "name": "ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "3501:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3541, + "name": "_admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "3508:7:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3539, + "name": "_addRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "3491:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3491:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3543, + "nodeType": "ExpressionStatement", + "src": "3491:25:14" + } + ] + }, + "documentation": { + "id": 3528, + "nodeType": "StructuredDocumentation", + "src": "3245:143:14", + "text": "@notice Assigns addresses to admin role. Can only be called by an admin.\n @param _admins Array of addresses to assign to admin role." + }, + "functionSelector": "3d0950a8", + "id": 3545, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addAdmin", + "nameLocation": "3402:8:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3531, + "mutability": "mutable", + "name": "_admins", + "nameLocation": "3430:7:14", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "3411:26:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3529, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3411:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3530, + "nodeType": "ArrayTypeName", + "src": "3411:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3410:28:14" + }, + "returnParameters": { + "id": 3533, + "nodeType": "ParameterList", + "parameters": [], + "src": "3448:0:14" + }, + "scope": 3812, + "src": "3393:130:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3567, + "nodeType": "Block", + "src": "3744:125:14", + "statements": [ + { + "condition": { + "id": 3557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3758:40:14", + "subExpression": { + "arguments": [ + { + "id": 3553, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "3767:18:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 3554, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3787:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3791:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3787:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3552, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "3759:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 3556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3759:39:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3561, + "nodeType": "IfStatement", + "src": "3754:70:14", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3558, + "name": "NotDefaultAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3802, + "src": "3807:15:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3807:17:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3560, + "nodeType": "RevertStatement", + "src": "3800:24:14" + } + }, + { + "expression": { + "arguments": [ + { + "id": 3563, + "name": "ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "3847:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3564, + "name": "_admins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "3854:7:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3562, + "name": "_removeRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3511, + "src": "3834:12:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3834:28:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3566, + "nodeType": "ExpressionStatement", + "src": "3834:28:14" + } + ] + }, + "documentation": { + "id": 3546, + "nodeType": "StructuredDocumentation", + "src": "3529:152:14", + "text": "@notice Removes addresses from admin role. Can only be called by default admin.\n @param _admins Array of addresses to remove from admin role." + }, + "functionSelector": "ae876f61", + "id": 3568, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeAdmin", + "nameLocation": "3695:11:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3549, + "mutability": "mutable", + "name": "_admins", + "nameLocation": "3726:7:14", + "nodeType": "VariableDeclaration", + "scope": 3568, + "src": "3707:26:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3707:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3548, + "nodeType": "ArrayTypeName", + "src": "3707:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3706:28:14" + }, + "returnParameters": { + "id": 3551, + "nodeType": "ParameterList", + "parameters": [], + "src": "3744:0:14" + }, + "scope": 3812, + "src": "3686:183:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3582, + "nodeType": "Block", + "src": "3963:80:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3572, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3985:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3989:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3985:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3571, + "name": "_checkAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3527, + "src": "3973:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 3574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3973:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3575, + "nodeType": "ExpressionStatement", + "src": "3973:23:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3577, + "name": "ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "4018:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 3578, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4025:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4029:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4025:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3576, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4006:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4006:30:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3581, + "nodeType": "ExpressionStatement", + "src": "4006:30:14" + } + ] + }, + "functionSelector": "0d6aef04", + "id": 3583, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "revokeAdmin", + "nameLocation": "3940:11:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3569, + "nodeType": "ParameterList", + "parameters": [], + "src": "3951:2:14" + }, + "returnParameters": { + "id": 3570, + "nodeType": "ParameterList", + "parameters": [], + "src": "3963:0:14" + }, + "scope": 3812, + "src": "3931:112:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3596, + "nodeType": "Block", + "src": "4289:48:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3592, + "name": "ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "4314:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3593, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3586, + "src": "4321:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3591, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "4306:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4306:24:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3590, + "id": 3595, + "nodeType": "Return", + "src": "4299:31:14" + } + ] + }, + "documentation": { + "id": 3584, + "nodeType": "StructuredDocumentation", + "src": "4049:171:14", + "text": "@notice Wrapper function to check if an address is admin.\n @param _account The address to check.\n @return bool True if address is admin, false otherwise." + }, + "functionSelector": "24d7806c", + "id": 3597, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isAdmin", + "nameLocation": "4234:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3586, + "mutability": "mutable", + "name": "_account", + "nameLocation": "4250:8:14", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "4242:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4242:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4241:18:14" + }, + "returnParameters": { + "id": 3590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3589, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3597, + "src": "4283:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3588, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4283:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4282:6:14" + }, + "scope": 3812, + "src": "4225:112:14", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3612, + "nodeType": "Block", + "src": "4578:80:14", + "statements": [ + { + "condition": { + "id": 3607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4592:32:14", + "subExpression": { + "arguments": [ + { + "id": 3604, + "name": "ACCEPTED_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3343, + "src": "4601:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3605, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "4617:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3603, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "4593:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 3606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4593:31:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3611, + "nodeType": "IfStatement", + "src": "4588:63:14", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3608, + "name": "TokenNotAccepted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3805, + "src": "4633:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4633:18:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3610, + "nodeType": "RevertStatement", + "src": "4626:25:14" + } + } + ] + }, + "documentation": { + "id": 3598, + "nodeType": "StructuredDocumentation", + "src": "4343:179:14", + "text": "@notice Internal function. Checks if an address is a whiteisted token and reverts TokenNotAccepted() if address is not whitelisted.\n @param _token The address to check." + }, + "id": 3613, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkToken", + "nameLocation": "4536:11:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3600, + "mutability": "mutable", + "name": "_token", + "nameLocation": "4556:6:14", + "nodeType": "VariableDeclaration", + "scope": 3613, + "src": "4548:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4548:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4547:16:14" + }, + "returnParameters": { + "id": 3602, + "nodeType": "ParameterList", + "parameters": [], + "src": "4578:0:14" + }, + "scope": 3812, + "src": "4527:131:14", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3630, + "nodeType": "Block", + "src": "4883:83:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3621, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4905:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4909:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4905:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3620, + "name": "_checkAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3527, + "src": "4893:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 3623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4893:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3624, + "nodeType": "ExpressionStatement", + "src": "4893:23:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3626, + "name": "ACCEPTED_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3343, + "src": "4936:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3627, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "4952:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3625, + "name": "_addRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "4926:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4926:33:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3629, + "nodeType": "ExpressionStatement", + "src": "4926:33:14" + } + ] + }, + "documentation": { + "id": 3614, + "nodeType": "StructuredDocumentation", + "src": "4664:160:14", + "text": "@notice Assigns addresses to accepted token role. Can only be called by an admin.\n @param _token Array of addresses to assign to accepted token role." + }, + "functionSelector": "10881166", + "id": 3631, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addToken", + "nameLocation": "4838:8:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3617, + "mutability": "mutable", + "name": "_token", + "nameLocation": "4866:6:14", + "nodeType": "VariableDeclaration", + "scope": 3631, + "src": "4847:25:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3615, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4847:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3616, + "nodeType": "ArrayTypeName", + "src": "4847:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "4846:27:14" + }, + "returnParameters": { + "id": 3619, + "nodeType": "ParameterList", + "parameters": [], + "src": "4883:0:14" + }, + "scope": 3812, + "src": "4829:137:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3648, + "nodeType": "Block", + "src": "5198:86:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3639, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5220:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5224:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5220:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3638, + "name": "_checkAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3527, + "src": "5208:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 3641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5208:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3642, + "nodeType": "ExpressionStatement", + "src": "5208:23:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3644, + "name": "ACCEPTED_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3343, + "src": "5254:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3645, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3635, + "src": "5270:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3643, + "name": "_removeRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3511, + "src": "5241:12:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5241:36:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3647, + "nodeType": "ExpressionStatement", + "src": "5241:36:14" + } + ] + }, + "documentation": { + "id": 3632, + "nodeType": "StructuredDocumentation", + "src": "4972:164:14", + "text": "@notice Removes addresses from accepted token role. Can only be called by an admin.\n @param _token Array of addresses to remove from accepted token role." + }, + "functionSelector": "bf7cb70b", + "id": 3649, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeToken", + "nameLocation": "5150:11:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3635, + "mutability": "mutable", + "name": "_token", + "nameLocation": "5181:6:14", + "nodeType": "VariableDeclaration", + "scope": 3649, + "src": "5162:25:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5162:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3634, + "nodeType": "ArrayTypeName", + "src": "5162:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "5161:27:14" + }, + "returnParameters": { + "id": 3637, + "nodeType": "ParameterList", + "parameters": [], + "src": "5198:0:14" + }, + "scope": 3812, + "src": "5141:143:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3662, + "nodeType": "Block", + "src": "5554:55:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3658, + "name": "ACCEPTED_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3343, + "src": "5579:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3659, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3652, + "src": "5595:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3657, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "5571:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 3660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5571:31:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3656, + "id": 3661, + "nodeType": "Return", + "src": "5564:38:14" + } + ] + }, + "documentation": { + "id": 3650, + "nodeType": "StructuredDocumentation", + "src": "5290:189:14", + "text": "@notice Wrapper function to check if an address is a whitelisted token.\n @param _token The address to check.\n @return bool True if address is whitelisted, false otherwise." + }, + "functionSelector": "0560bd96", + "id": 3663, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isTokenAccepted", + "nameLocation": "5493:15:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3653, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3652, + "mutability": "mutable", + "name": "_token", + "nameLocation": "5517:6:14", + "nodeType": "VariableDeclaration", + "scope": 3663, + "src": "5509:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5509:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5508:16:14" + }, + "returnParameters": { + "id": 3656, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3655, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3663, + "src": "5548:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3654, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5548:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5547:6:14" + }, + "scope": 3812, + "src": "5484:125:14", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3679, + "nodeType": "Block", + "src": "5885:116:14", + "statements": [ + { + "condition": { + "id": 3673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5899:40:14", + "subExpression": { + "arguments": [ + { + "id": 3670, + "name": "DONATION_RECIPIENT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "5908:18:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3671, + "name": "_recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3666, + "src": "5928:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3669, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "5900:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 3672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5900:39:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3678, + "nodeType": "IfStatement", + "src": "5895:100:14", + "trueBody": { + "id": 3677, + "nodeType": "Block", + "src": "5941:54:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3674, + "name": "RecipientNotAccepted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3808, + "src": "5962:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5962:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3676, + "nodeType": "RevertStatement", + "src": "5955:29:14" + } + ] + } + } + ] + }, + "documentation": { + "id": 3664, + "nodeType": "StructuredDocumentation", + "src": "5615:198:14", + "text": "@notice Internal function. Checks if an address is a donation recipient and reverts RecipientNotAccepted() if address is not a donation recipient.\n @param _recipient The address to check." + }, + "id": 3680, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkDonationRecipient", + "nameLocation": "5827:23:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3666, + "mutability": "mutable", + "name": "_recipient", + "nameLocation": "5859:10:14", + "nodeType": "VariableDeclaration", + "scope": 3680, + "src": "5851:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5851:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5850:20:14" + }, + "returnParameters": { + "id": 3668, + "nodeType": "ParameterList", + "parameters": [], + "src": "5885:0:14" + }, + "scope": 3812, + "src": "5818:183:14", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3697, + "nodeType": "Block", + "src": "6256:92:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3688, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6278:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6282:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6278:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3687, + "name": "_checkAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3527, + "src": "6266:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 3690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6266:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3691, + "nodeType": "ExpressionStatement", + "src": "6266:23:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3693, + "name": "DONATION_RECIPIENT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "6309:18:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3694, + "name": "_recipients", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3684, + "src": "6329:11:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3692, + "name": "_addRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "6299:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6299:42:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3696, + "nodeType": "ExpressionStatement", + "src": "6299:42:14" + } + ] + }, + "documentation": { + "id": 3681, + "nodeType": "StructuredDocumentation", + "src": "6007:173:14", + "text": "@notice Assigns addresses to donation recipient role. Can only be called by an admin.\n @param _recipients Array of addresses to assign to donation recipient role." + }, + "functionSelector": "80c78f1c", + "id": 3698, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDonationRecipient", + "nameLocation": "6194:20:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3684, + "mutability": "mutable", + "name": "_recipients", + "nameLocation": "6234:11:14", + "nodeType": "VariableDeclaration", + "scope": 3698, + "src": "6215:30:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6215:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3683, + "nodeType": "ArrayTypeName", + "src": "6215:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "6214:32:14" + }, + "returnParameters": { + "id": 3686, + "nodeType": "ParameterList", + "parameters": [], + "src": "6256:0:14" + }, + "scope": 3812, + "src": "6185:163:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3715, + "nodeType": "Block", + "src": "6610:95:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3706, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6632:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6636:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6632:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3705, + "name": "_checkAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3527, + "src": "6620:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 3708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6620:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3709, + "nodeType": "ExpressionStatement", + "src": "6620:23:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3711, + "name": "DONATION_RECIPIENT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "6666:18:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3712, + "name": "_recipients", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3702, + "src": "6686:11:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3710, + "name": "_removeRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3511, + "src": "6653:12:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6653:45:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3714, + "nodeType": "ExpressionStatement", + "src": "6653:45:14" + } + ] + }, + "documentation": { + "id": 3699, + "nodeType": "StructuredDocumentation", + "src": "6354:177:14", + "text": "@notice Removes addresses from donation recipient role. Can only be called by an admin.\n @param _recipients Array of addresses to remove from donation recipient role." + }, + "functionSelector": "1037d18c", + "id": 3716, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeDonationRecipient", + "nameLocation": "6545:23:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3702, + "mutability": "mutable", + "name": "_recipients", + "nameLocation": "6588:11:14", + "nodeType": "VariableDeclaration", + "scope": 3716, + "src": "6569:30:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6569:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3701, + "nodeType": "ArrayTypeName", + "src": "6569:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "6568:32:14" + }, + "returnParameters": { + "id": 3704, + "nodeType": "ParameterList", + "parameters": [], + "src": "6610:0:14" + }, + "scope": 3812, + "src": "6536:169:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3729, + "nodeType": "Block", + "src": "6997:63:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3725, + "name": "DONATION_RECIPIENT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "7022:18:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3726, + "name": "_recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3719, + "src": "7042:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3724, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "7014:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 3727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7014:39:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3723, + "id": 3728, + "nodeType": "Return", + "src": "7007:46:14" + } + ] + }, + "documentation": { + "id": 3717, + "nodeType": "StructuredDocumentation", + "src": "6711:203:14", + "text": "@notice Wrapper function to check if an address is a donation recipient.\n @param _recipient The address to check.\n @return bool True if address is a donation recipient, false otherwise." + }, + "functionSelector": "fbfe3ab2", + "id": 3730, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isDonationRecipient", + "nameLocation": "6928:19:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3719, + "mutability": "mutable", + "name": "_recipient", + "nameLocation": "6956:10:14", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "6948:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6948:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6947:20:14" + }, + "returnParameters": { + "id": 3723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3722, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "6991:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3721, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6991:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6990:6:14" + }, + "scope": 3812, + "src": "6919:141:14", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3745, + "nodeType": "Block", + "src": "7310:79:14", + "statements": [ + { + "condition": { + "id": 3740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7324:33:14", + "subExpression": { + "arguments": [ + { + "id": 3737, + "name": "FEE_RECEIVER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3353, + "src": "7333:12:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3738, + "name": "_receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "7347:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3736, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "7325:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 3739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7325:32:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3744, + "nodeType": "IfStatement", + "src": "7320:62:14", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3741, + "name": "NotFeeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3811, + "src": "7366:14:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7366:16:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3743, + "nodeType": "RevertStatement", + "src": "7359:23:14" + } + } + ] + }, + "documentation": { + "id": 3731, + "nodeType": "StructuredDocumentation", + "src": "7066:179:14", + "text": "@notice Internal function. Checks if an address is a fee receiver and reverts NotFeeReceiver() if address is not a fee receiver.\n @param _receiver The address to check." + }, + "id": 3746, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkFeeReceiver", + "nameLocation": "7259:17:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3733, + "mutability": "mutable", + "name": "_receiver", + "nameLocation": "7285:9:14", + "nodeType": "VariableDeclaration", + "scope": 3746, + "src": "7277:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3732, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7277:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7276:19:14" + }, + "returnParameters": { + "id": 3735, + "nodeType": "ParameterList", + "parameters": [], + "src": "7310:0:14" + }, + "scope": 3812, + "src": "7250:139:14", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3763, + "nodeType": "Block", + "src": "7628:87:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7650:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7654:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7650:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3753, + "name": "_checkAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3527, + "src": "7638:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 3756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7638:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3757, + "nodeType": "ExpressionStatement", + "src": "7638:23:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3759, + "name": "FEE_RECEIVER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3353, + "src": "7681:12:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3760, + "name": "_feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3750, + "src": "7695:12:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3758, + "name": "_addRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "7671:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7671:37:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3762, + "nodeType": "ExpressionStatement", + "src": "7671:37:14" + } + ] + }, + "documentation": { + "id": 3747, + "nodeType": "StructuredDocumentation", + "src": "7395:162:14", + "text": "@notice Assigns addresses to fee receiver role. Can only be called by an admin.\n @param _feeReceiver Array of addresses to assign to fee receiver role." + }, + "functionSelector": "9d082c98", + "id": 3764, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addFeeReceiver", + "nameLocation": "7571:14:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3750, + "mutability": "mutable", + "name": "_feeReceiver", + "nameLocation": "7605:12:14", + "nodeType": "VariableDeclaration", + "scope": 3764, + "src": "7586:31:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3748, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7586:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3749, + "nodeType": "ArrayTypeName", + "src": "7586:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "7585:33:14" + }, + "returnParameters": { + "id": 3752, + "nodeType": "ParameterList", + "parameters": [], + "src": "7628:0:14" + }, + "scope": 3812, + "src": "7562:153:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3781, + "nodeType": "Block", + "src": "7961:90:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7983:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7987:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7983:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3771, + "name": "_checkAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3527, + "src": "7971:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 3774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7971:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3775, + "nodeType": "ExpressionStatement", + "src": "7971:23:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3777, + "name": "FEE_RECEIVER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3353, + "src": "8017:12:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3778, + "name": "_feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3768, + "src": "8031:12:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 3776, + "name": "_removeRoles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3511, + "src": "8004:12:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (bytes32,address[] calldata)" + } + }, + "id": 3779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8004:40:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3780, + "nodeType": "ExpressionStatement", + "src": "8004:40:14" + } + ] + }, + "documentation": { + "id": 3765, + "nodeType": "StructuredDocumentation", + "src": "7721:166:14", + "text": "@notice Removes addresses from fee receiver role. Can only be called by an admin.\n @param _feeReceiver Array of addresses to remove from fee receiver role." + }, + "functionSelector": "2620d800", + "id": 3782, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeFeeReceiver", + "nameLocation": "7901:17:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3769, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3768, + "mutability": "mutable", + "name": "_feeReceiver", + "nameLocation": "7938:12:14", + "nodeType": "VariableDeclaration", + "scope": 3782, + "src": "7919:31:14", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3766, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7919:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3767, + "nodeType": "ArrayTypeName", + "src": "7919:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "7918:33:14" + }, + "returnParameters": { + "id": 3770, + "nodeType": "ParameterList", + "parameters": [], + "src": "7961:0:14" + }, + "scope": 3812, + "src": "7892:159:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3795, + "nodeType": "Block", + "src": "8323:56:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3791, + "name": "FEE_RECEIVER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3353, + "src": "8348:12:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3792, + "name": "_receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3785, + "src": "8362:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3790, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "8340:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 3793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8340:32:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3789, + "id": 3794, + "nodeType": "Return", + "src": "8333:39:14" + } + ] + }, + "documentation": { + "id": 3783, + "nodeType": "StructuredDocumentation", + "src": "8057:190:14", + "text": "@notice Wrapper function to check if an address is a fee receiver.\n @param _receiver The address to check.\n @return bool True if address is a fee receiver, false otherwise." + }, + "functionSelector": "b278110f", + "id": 3796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isFeeReceiver", + "nameLocation": "8261:13:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3785, + "mutability": "mutable", + "name": "_receiver", + "nameLocation": "8283:9:14", + "nodeType": "VariableDeclaration", + "scope": 3796, + "src": "8275:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3784, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8275:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8274:19:14" + }, + "returnParameters": { + "id": 3789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3788, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3796, + "src": "8317:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3787, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8317:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8316:6:14" + }, + "scope": 3812, + "src": "8252:127:14", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3797, + "nodeType": "StructuredDocumentation", + "src": "8385:63:14", + "text": "@notice Throws if called by any account other than a admin." + }, + "errorSelector": "7bfa4b9f", + "id": 3799, + "name": "NotAdmin", + "nameLocation": "8459:8:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3798, + "nodeType": "ParameterList", + "parameters": [], + "src": "8467:2:14" + }, + "src": "8453:17:14" + }, + { + "documentation": { + "id": 3800, + "nodeType": "StructuredDocumentation", + "src": "8476:71:14", + "text": "@notice Throws if called by any account other than a default admin." + }, + "errorSelector": "46ab053d", + "id": 3802, + "name": "NotDefaultAdmin", + "nameLocation": "8558:15:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3801, + "nodeType": "ParameterList", + "parameters": [], + "src": "8573:2:14" + }, + "src": "8552:24:14" + }, + { + "documentation": { + "id": 3803, + "nodeType": "StructuredDocumentation", + "src": "8582:49:14", + "text": "@notice Throws if a token is not whitelisted." + }, + "errorSelector": "e51cf7bf", + "id": 3805, + "name": "TokenNotAccepted", + "nameLocation": "8642:16:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3804, + "nodeType": "ParameterList", + "parameters": [], + "src": "8658:2:14" + }, + "src": "8636:25:14" + }, + { + "documentation": { + "id": 3806, + "nodeType": "StructuredDocumentation", + "src": "8667:62:14", + "text": "@notice Throws if a donation recipient is not whitelisted." + }, + "errorSelector": "375a7a92", + "id": 3808, + "name": "RecipientNotAccepted", + "nameLocation": "8740:20:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3807, + "nodeType": "ParameterList", + "parameters": [], + "src": "8760:2:14" + }, + "src": "8734:29:14" + }, + { + "documentation": { + "id": 3809, + "nodeType": "StructuredDocumentation", + "src": "8769:67:14", + "text": "@notice Throws if the sender is not a whitelisted fee receiver." + }, + "errorSelector": "9d13e6e3", + "id": 3811, + "name": "NotFeeReceiver", + "nameLocation": "8847:14:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3810, + "nodeType": "ParameterList", + "parameters": [], + "src": "8861:2:14" + }, + "src": "8841:23:14" + } + ], + "scope": 3813, + "src": "336:8530:14", + "usedErrors": [ + 3799, + 3802, + 3805, + 3808, + 3811 + ] + } + ], + "src": "32:8835:14" + }, + "id": 14 + }, + "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol": { + "ast": { + "absolutePath": "giveth/GIVfi/src/gitcoin/IVotingStrategy.sol", + "exportedSymbols": { + "IVotingStrategy": [ + 3871 + ] + }, + "id": 3872, + "license": "AGPL-3.0-only", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3814, + "literals": [ + "solidity", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "42:23:15" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "IVotingStrategy", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3815, + "nodeType": "StructuredDocumentation", + "src": "67:301:15", + "text": " @notice Defines the abstract contract for voting algorithms on grants\n within a round. Any new voting algorithm would be expected to\n extend this abstract contract.\n Every IVotingStrategy contract would be unique to RoundImplementation\n and would be deployed before creating a round" + }, + "fullyImplemented": false, + "id": 3871, + "linearizedBaseContracts": [ + 3871 + ], + "name": "IVotingStrategy", + "nameLocation": "387:15:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 3816, + "nodeType": "StructuredDocumentation", + "src": "430:25:15", + "text": "@notice Round address" + }, + "functionSelector": "0b67d925", + "id": 3818, + "mutability": "mutable", + "name": "roundAddress", + "nameLocation": "475:12:15", + "nodeType": "VariableDeclaration", + "scope": 3871, + "src": "460:27:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "460:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 3840, + "nodeType": "Block", + "src": "609:204:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3822, + "name": "roundAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3818, + "src": "627:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3825, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "651:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3824, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "643:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3823, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "643:7:15", + "typeDescriptions": {} + } + }, + "id": 3826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "643:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "627:26:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6572726f723a20766f74696e6720636f6e7472616374206e6f74206c696e6b656420746f206120726f756e64", + "id": 3828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "655:46:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f", + "typeString": "literal_string \"error: voting contract not linked to a round\"" + }, + "value": "error: voting contract not linked to a round" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eb7f102ddff27f43bd1c9bdff0a9d82dcc3b90ac5f8053f5f3a19ed060e6fe6f", + "typeString": "literal_string \"error: voting contract not linked to a round\"" + } + ], + "id": 3821, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "619:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "619:83:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3830, + "nodeType": "ExpressionStatement", + "src": "619:83:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3832, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "720:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "724:6:15", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "720:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3834, + "name": "roundAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3818, + "src": "734:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "720:26:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6572726f723a2063616e20626520696e766f6b6564206f6e6c7920627920726f756e6420636f6e7472616374", + "id": 3836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "748:46:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7", + "typeString": "literal_string \"error: can be invoked only by round contract\"" + }, + "value": "error: can be invoked only by round contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_800cfc160a09b1b28d15188ee19dcefc89d90f37509a56c99d6f0e042931ffd7", + "typeString": "literal_string \"error: can be invoked only by round contract\"" + } + ], + "id": 3831, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "712:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "712:83:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3838, + "nodeType": "ExpressionStatement", + "src": "712:83:15" + }, + { + "id": 3839, + "nodeType": "PlaceholderStatement", + "src": "805:1:15" + } + ] + }, + "documentation": { + "id": 3819, + "nodeType": "StructuredDocumentation", + "src": "519:58:15", + "text": "@notice modifier to check if sender is round contract." + }, + "id": 3841, + "name": "isRoundContract", + "nameLocation": "591:15:15", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3820, + "nodeType": "ParameterList", + "parameters": [], + "src": "606:2:15" + }, + "src": "582:231:15", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3860, + "nodeType": "Block", + "src": "1023:121:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3846, + "name": "roundAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3818, + "src": "1041:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1065:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1057:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1057:7:15", + "typeDescriptions": {} + } + }, + "id": 3850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1057:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1041:26:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "696e69743a20726f756e644164647265737320616c726561647920736574", + "id": 3852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1069:32:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716", + "typeString": "literal_string \"init: roundAddress already set\"" + }, + "value": "init: roundAddress already set" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9230c397c947af75fb533dc31a6fc8749305ebf0e6fb2013129d431ba1ae8716", + "typeString": "literal_string \"init: roundAddress already set\"" + } + ], + "id": 3845, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1033:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1033:69:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3854, + "nodeType": "ExpressionStatement", + "src": "1033:69:15" + }, + { + "expression": { + "id": 3858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3855, + "name": "roundAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3818, + "src": "1112:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 3856, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1127:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1131:6:15", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1127:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1112:25:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3859, + "nodeType": "ExpressionStatement", + "src": "1112:25:15" + } + ] + }, + "documentation": { + "id": 3842, + "nodeType": "StructuredDocumentation", + "src": "848:145:15", + "text": " @notice Invoked by RoundImplementation on creation to\n set the round for which the voting contracts is to be used" + }, + "functionSelector": "e1c7392a", + "id": 3861, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "1007:4:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3843, + "nodeType": "ParameterList", + "parameters": [], + "src": "1011:2:15" + }, + "returnParameters": { + "id": 3844, + "nodeType": "ParameterList", + "parameters": [], + "src": "1023:0:15" + }, + "scope": 3871, + "src": "998:146:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3862, + "nodeType": "StructuredDocumentation", + "src": "1150:537:15", + "text": " @notice Invoked by RoundImplementation to allow voter to case\n vote for grants during a round.\n @dev\n - allows contributor to do cast multiple votes which could be weighted.\n - should be invoked by RoundImplementation contract\n - ideally IVotingStrategy implementation should emit events after a vote is cast\n - this would be triggered when a voter casts their vote via grant explorer\n @param _encodedVotes encoded votes\n @param _voterAddress voter address" + }, + "functionSelector": "fc6d4e39", + "id": 3870, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vote", + "nameLocation": "1701:4:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3865, + "mutability": "mutable", + "name": "_encodedVotes", + "nameLocation": "1723:13:15", + "nodeType": "VariableDeclaration", + "scope": 3870, + "src": "1706:30:15", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 3863, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1706:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 3864, + "nodeType": "ArrayTypeName", + "src": "1706:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3867, + "mutability": "mutable", + "name": "_voterAddress", + "nameLocation": "1746:13:15", + "nodeType": "VariableDeclaration", + "scope": 3870, + "src": "1738:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3866, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1738:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1705:55:15" + }, + "returnParameters": { + "id": 3869, + "nodeType": "ParameterList", + "parameters": [], + "src": "1785:0:15" + }, + "scope": 3871, + "src": "1692:94:15", + "stateMutability": "payable", + "virtual": true, + "visibility": "external" + } + ], + "scope": 3872, + "src": "369:1419:15", + "usedErrors": [] + } + ], + "src": "42:1747:15" + }, + "id": 15 + } + } + } +} \ No newline at end of file diff --git a/src/DonationHandler/interface/IDonationHandler.sol b/src/DonationHandler/interface/IDonationHandler.sol new file mode 100644 index 0000000..18ab089 --- /dev/null +++ b/src/DonationHandler/interface/IDonationHandler.sol @@ -0,0 +1,85 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "./IDonationHandlerRoles.sol"; + +interface IDonationHandler is IDonationHandlerRoles { + /// @notice struct stores recipient and amount of a donation + struct RecipientInfo { + address recipient; + uint256 amount; + } + + /// @notice struct stores the informations of a donation with multiple receipients + struct Donation { + address token; + uint256 fee; + RecipientInfo[] recipients; + } + + /// @notice Initialize the contract. + /// @param _acceptedToken Array of accepted tokens + /// @param _donationReceiver Array of donation receivers + /// @param _feeReceiver Array of fee receivers + /// @param _admins Array of admins + function initialize( + address[] calldata _acceptedToken, + address[] calldata _donationReceiver, + address[] calldata _feeReceiver, + address[] calldata _admins + ) external; + + /// @notice Donate tokens to a recipient. The fee added to the donation amount. + /// @param _token Address of the token to donate + /// @param _recipient Address of the recipient + /// @param _amount Amount of tokens to donate + /// @param _fee Fee to be paid to the fee receiver (protocol) + function donate(address _token, address _recipient, uint256 _amount, uint256 _fee) external payable; + + /// @notice Donate a list of donations. + /// @param _donations Array of donations. Each donation contains a token, a fee and a list of recipients. Each recipient contains an address and an amount. + function donateMany(Donation[] memory _donations) external payable; + + /// @notice Withdraw tokens from the contract to msg.sender. + /// @param _token Address of the token + /// @param _amount Amount of tokens + function withdraw(address _token, uint256 _amount) external; + + /// @notice Withdraw full amount of token arrays token from the contract to msg.sender. + /// @param _token Address array of the token + function withdrawMany(address[] calldata _token) external; + + /// @notice Distributes full amount of token arrays token from the contract to a recipient. + /// @param _token Address array of the token + /// @param _to Address of the recipient + function distribute(address[] calldata _token, address _to) external; + + /// @notice Distributes full amount of token arrays token from the contract to an array of recipients. + /// @param _token Address array of the token + /// @param _to Address array of the recipients + function distributeMany(address[] calldata _token, address[] calldata _to) external; + + /// @notice Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver. + /// @param _token Address of the token + function withdrawFee(address _token) external; + + /// @notice Withdraw donated fees from the contract to a fee receiver. Can only be called by a fee receiver. + /// @param _token Address array of the token + function withdrawFeeMany(address[] calldata _token) external; + + /// @notice Returns the token balance of a user + /// @param _token Address of the token + /// @param _user Address of the user + /// @return Token balance of the user + function balanceOf(address _token, address _user) external view returns (uint256); + + /// @notice Returns the token balances of a user + /// @param _token Address array of the token + /// @param _user Address of the user + /// @return Uint256 array. Token balances of the user + function balancesOf(address[] calldata _token, address _user) external view returns (uint256[] memory); + + /// @notice Set minimum donation fee. Can only be called by an Admin. Emits MinFeeSet event. + /// @param _minFee Minimum donation fee + function setMinFee(uint256 _minFee) external; +} diff --git a/src/DonationHandler/interface/IDonationHandlerBridgeable.sol b/src/DonationHandler/interface/IDonationHandlerBridgeable.sol new file mode 100644 index 0000000..67ff534 --- /dev/null +++ b/src/DonationHandler/interface/IDonationHandlerBridgeable.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "./IDonationHandler.sol"; + +interface IDonationHandlerBridgeable is IDonationHandler { + function setWithdrawLocked(bool _withdrawLocked) external; + + function setVaultBridge(address _vaultBridge) external; + + function isVaultBridge(address _vaultBridge) external view returns (bool); + + function take(address _token, uint256 _amount) external; +} diff --git a/src/DonationHandler/interface/IDonationHandlerRoles.sol b/src/DonationHandler/interface/IDonationHandlerRoles.sol new file mode 100644 index 0000000..8245d9d --- /dev/null +++ b/src/DonationHandler/interface/IDonationHandlerRoles.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.17; + +interface IDonationHandlerRoles { + function addAdmin(address[] calldata _admins) external; + + function removeAdmin(address[] calldata _admins) external; + + function revokeAdmin() external; + + function isAdmin(address _account) external view returns (bool); + + function addToken(address[] calldata _token) external; + + function removeToken(address[] calldata _token) external; + + function isTokenAccepted(address _token) external view returns (bool); + + function addDonationRecipient(address[] calldata _recipients) external; + + function removeDonationRecipient(address[] calldata _recipients) external; + + function isDonationRecipient(address _recipient) external view returns (bool); + + function addFeeReceiver(address[] calldata _feeReceiver) external; + + function removeFeeReceiver(address[] calldata _feeReceiver) external; + + function isFeeReceiver(address _receiver) external view returns (bool); +} diff --git a/src/Vault/Vault.sol b/src/Vault/Vault.sol new file mode 100644 index 0000000..0e8410c --- /dev/null +++ b/src/Vault/Vault.sol @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: AGPL-3.0-only +pragma solidity 0.8.17; + +import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol"; + +contract Vault is ERC4626Upgradeable { + function initialize(string memory _name, string memory _symbol, IERC20Upgradeable _underlying) public initializer { + __ERC20_init(_name, _symbol); + __ERC4626_init(_underlying); + } +} diff --git a/src/Vault/VaultBridge.sol b/src/Vault/VaultBridge.sol new file mode 100644 index 0000000..7e3b4ef --- /dev/null +++ b/src/Vault/VaultBridge.sol @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "../DonationHandler/interface/IDonationHandlerBridgeable.sol"; +import "./Vault.sol"; +import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; +import {IERC20Upgradeable as IERC20} from "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol"; + +contract VaultBridge is Initializable { + IDonationHandlerBridgeable public donationHandler; + Vault public vault; + IERC20 public asset; + + function initialize(address _donationHandler, address _vault) external initializer { + donationHandler = IDonationHandlerBridgeable(_donationHandler); + vault = Vault(_vault); + asset = IERC20(vault.asset()); + } + + function bridge() external { + onlyVaultAdmin(); + uint256 amount = asset.balanceOf(address(donationHandler)); + if (amount > 0) { + donationHandler.take(address(asset), amount); + asset.approve(address(vault), amount); + vault.deposit(amount, address(this)); + } + + emit Bridged(donationHandler, asset, amount); + } + + function withdraw(uint256 _amount) external { + onlyDonationHandler(); + vault.withdraw(_amount, address(donationHandler), address(this)); + emit Withdrawn(_amount, donationHandler, address(this)); + } + + function getVault() external view returns (address) { + return address(vault); + } + + function getAsset() external view returns (address) { + return address(asset); + } + + function getDonationHanlder() external view returns (address) { + return address(donationHandler); + } + + function onlyVaultAdmin() internal view { + if (!donationHandler.isAdmin(msg.sender)) { + revert donationHandlerAdminOnly(); + } + } + + function onlyDonationHandler() internal view { + if (address(donationHandler) != msg.sender) { + revert donationHandlerOnly(); + } + } + + error donationHandlerAdminOnly(); + error donationHandlerOnly(); + + event Bridged(IDonationHandlerBridgeable indexed donationHandler, IERC20 indexed asset, uint256 amount); + + event Withdrawn(uint256 amount, IDonationHandlerBridgeable indexed donationHandler, address indexed to); +} diff --git a/src/Vault/interfaces/IVaultBridge.sol b/src/Vault/interfaces/IVaultBridge.sol new file mode 100644 index 0000000..06bb146 --- /dev/null +++ b/src/Vault/interfaces/IVaultBridge.sol @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +interface IVaultBridge { + function initialize(address _donationHandler, address _vault) external; + + function bridge() external; + + function withdraw(uint256 _amount) external; + + function getVault() external view returns (address); + + function getAsset() external view returns (address); + + function getDonationHanlder() external view returns (address); +} diff --git a/src/gitcoin/IVotingStrategy.sol b/src/gitcoin/IVotingStrategy.sol new file mode 100644 index 0000000..e40a0e2 --- /dev/null +++ b/src/gitcoin/IVotingStrategy.sol @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: AGPL-3.0-only +pragma solidity 0.8.17; + +/** + * @notice Defines the abstract contract for voting algorithms on grants + * within a round. Any new voting algorithm would be expected to + * extend this abstract contract. + * Every IVotingStrategy contract would be unique to RoundImplementation + * and would be deployed before creating a round + */ +abstract contract IVotingStrategy { + // --- Data --- + + /// @notice Round address + address public roundAddress; + + // --- Modifier --- + + /// @notice modifier to check if sender is round contract. + modifier isRoundContract() { + require(roundAddress != address(0), "error: voting contract not linked to a round"); + require(msg.sender == roundAddress, "error: can be invoked only by round contract"); + _; + } + + // --- Core methods --- + + /** + * @notice Invoked by RoundImplementation on creation to + * set the round for which the voting contracts is to be used + * + */ + function init() external { + require(roundAddress == address(0), "init: roundAddress already set"); + roundAddress = msg.sender; + } + + /** + * @notice Invoked by RoundImplementation to allow voter to case + * vote for grants during a round. + * + * @dev + * - allows contributor to do cast multiple votes which could be weighted. + * - should be invoked by RoundImplementation contract + * - ideally IVotingStrategy implementation should emit events after a vote is cast + * - this would be triggered when a voter casts their vote via grant explorer + * + * @param _encodedVotes encoded votes + * @param _voterAddress voter address + */ + function vote(bytes[] calldata _encodedVotes, address _voterAddress) external payable virtual; +} diff --git a/src/gitcoin/MetaPtr.sol b/src/gitcoin/MetaPtr.sol new file mode 100644 index 0000000..d70a3be --- /dev/null +++ b/src/gitcoin/MetaPtr.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: AGPL-3.0-only +pragma solidity 0.8.17; + +struct MetaPtr { + /// @notice Protocol ID corresponding to a specific protocol. + /// More info at https://github.com/gitcoinco/grants-round/tree/main/packages/contracts/docs/MetaPtrProtocol.md + uint256 protocol; + /// @notice Pointer to fetch metadata for the specified protocol + string pointer; +} diff --git a/src/gitcoin/QuadraticFundingVotingStrategyFactory.sol b/src/gitcoin/QuadraticFundingVotingStrategyFactory.sol new file mode 100644 index 0000000..bf24e6a --- /dev/null +++ b/src/gitcoin/QuadraticFundingVotingStrategyFactory.sol @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: AGPL-3.0-only +pragma solidity 0.8.17; + +import "@openzeppelin/contracts-upgradeable/proxy/ClonesUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import "./MetaPtr.sol"; + +contract QuadraticFundingVotingStrategyFactory is OwnableUpgradeable { + address public votingContract; + + // --- Event --- + + /// @notice Emitted when a Voting contract is updated + event VotingContractUpdated(address votingContractAddress); + + /// @notice Emitted when a new Voting is created + event VotingContractCreated(address indexed votingContractAddress, address indexed votingImplementation); + + /// @notice constructor function which ensure deployer is set as owner + function initialize() external initializer { + __Context_init_unchained(); + __Ownable_init_unchained(); + } + + // --- Core methods --- + + /** + * @notice Allows the owner to update the QuadraticFundingVotingStrategyImplementation. + * This provides us the flexibility to upgrade QuadraticFundingVotingStrategyImplementation + * contract while relying on the same QuadraticFundingVotingStrategyFactory to get the list of + * QuadraticFundingVoting contracts. + */ + function updateVotingContract(address newVotingContract) external onlyOwner { + // slither-disable-next-line missing-zero-check + votingContract = newVotingContract; + + emit VotingContractUpdated(newVotingContract); + } + + /** + * @notice Clones QuadraticFundingVotingStrategyImplementation and deploys a contract + * and emits an event + */ + function create() external returns (address) { + address clone = ClonesUpgradeable.clone(votingContract); + emit VotingContractCreated(clone, votingContract); + // XXX: line removed + //QuadraticFundingVotingStrategyImplementation(clone).initialize(); + + return clone; + } +} diff --git a/test/DonationHandler.t.sol b/test/DonationHandler.t.sol index 244e91c..b00b3ed 100644 --- a/test/DonationHandler.t.sol +++ b/test/DonationHandler.t.sol @@ -2,6 +2,7 @@ pragma solidity ^0.8.13; import "./shared/SharedInitialization.sol"; +import "../src/DonationHandler/interface/IDonationHandler.sol"; contract DonationHandlerTest is SharedInitialization { // acceptedToken[0] = address(allowedToken); @@ -12,28 +13,31 @@ contract DonationHandlerTest is SharedInitialization { // Donate - function testFail_donateWithoutApproval() public { - donationHandler.donate(address(allowedToken), address(1), 100, 0); + function _encode(address token, uint256 amount, address recipient) internal pure returns (bytes memory) { + return abi.encode(token, amount, recipient); } - function test_donateWithoutFee() public { - allowedToken.approve(address(donationHandler), 100); - donationHandler.donate(address(allowedToken), address(1), 100, 0); - assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 100); + function testFail_donateWithoutApproval() public { + bytes[] memory donation = new bytes[](1); + donation[0] = _encode(address(allowedToken), 100, address(1)); + donationHandler.vote(donation, deployer); } function _donate() internal { - allowedToken.approve(address(donationHandler), 100); - donationHandler.donate(address(allowedToken), address(1), 100, 1e17); // 10% fee + bytes[] memory donation = new bytes[](2); + donation[0] = _encode(address(allowedToken), 100, address(1)); + donation[1] = _encode(address(allowedToken2), 100, address(1)); + + allowedToken.approve(address(donationHandler), 100); allowedToken2.approve(address(donationHandler), 100); - donationHandler.donate(address(allowedToken2), address(1), 100, 1e17); // 10% fee + + donationHandler.vote(donation, deployer); } function test_donate() public { _donate(); assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 90); - assertEq(donationHandler.balanceOf(address(allowedToken), address(donationHandler)), 10); uint256[] memory balances = donationHandler.balancesOf(acceptedToken, address(1)); assertEq(balances.length, 2); @@ -41,38 +45,43 @@ contract DonationHandlerTest is SharedInitialization { assertEq(balances[1], 90); } - function test_donateHundred() public { - allowedToken.approve(address(donationHandler), 100); - donationHandler.donate(address(allowedToken), address(1), 100, 1e18); - assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 0); - assertEq(donationHandler.balanceOf(address(allowedToken), address(donationHandler)), 100); - } - - function testFail_donateTooHigh() public { - allowedToken.approve(address(donationHandler), 100); - donationHandler.donate(address(allowedToken), address(1), 100, 1.1e18); // 110% fee - } - - function testFail_donateTooLow() public { - donationHandler.setMinFee(1e17); // min fee: 10% - allowedToken.approve(address(donationHandler), 100); - donationHandler.donate(address(allowedToken), address(1), 100, 1e16); // 1% fee - } - function testFail_donateToWrongRecipient() public { allowedToken.approve(address(donationHandler), 100); - donationHandler.donate(address(allowedToken), address(2), 100, 0); + bytes[] memory donation = new bytes[](1); + donation[0] = _encode(address(allowedToken), 100, address(2)); + donationHandler.vote(donation, deployer); } function testFail_donateWithWrongToken() public { notAllowedToken.approve(address(donationHandler), 100); - donationHandler.donate(address(notAllowedToken), address(1), 100, 0); + bytes[] memory donation = new bytes[](1); + donation[0] = _encode(address(notAllowedToken), 100, address(1)); + donationHandler.vote(donation, deployer); } function test_donateEth() public { - donationHandler.donate{value: 100}(NATIVE, address(1), 100, 1e17); // 10% fee + bytes[] memory donation = new bytes[](1); + donation[0] = _encode(NATIVE, 100, address(1)); + donationHandler.vote{value: 100}(donation, deployer); assertEq(donationHandler.balanceOf(NATIVE, address(1)), 90); - assertEq(donationHandler.balanceOf(NATIVE, address(donationHandler)), 10); + } + + function test_donateMany() public { + bytes[] memory donation = new bytes[](2); + + donation[0] = _encode(address(allowedToken), 200, address(1)); + donation[1] = _encode(address(allowedToken2), 200, address(1)); + + allowedToken.approve(address(donationHandler), 200); + allowedToken2.approve(address(donationHandler), 200); + + donationHandler.vote(donation, deployer); + + assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 180); + assertEq(donationHandler.balanceOf(address(allowedToken), address(donationHandler)), 20); + + assertEq(donationHandler.balanceOf(address(allowedToken2), address(1)), 180); + assertEq(donationHandler.balanceOf(address(allowedToken2), address(donationHandler)), 20); } // withdraw @@ -80,9 +89,9 @@ contract DonationHandlerTest is SharedInitialization { function test_withdraw() public { _donate(); vm.prank(address(1)); - donationHandler.withdraw(address(allowedToken), 80); - assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 10); - assertEq(allowedToken.balanceOf(address(1)), 80); + donationHandler.withdraw(address(allowedToken), 90); + assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 0); + assertEq(allowedToken.balanceOf(address(1)), 90); } function test_withdrawMany() public { @@ -103,13 +112,13 @@ contract DonationHandlerTest is SharedInitialization { function testFail_withdrawWrongToken() public { _donate(); vm.prank(address(1)); - donationHandler.withdraw(address(notAllowedToken), 80); + donationHandler.withdraw(address(notAllowedToken), 90); } function testFail_withdrawWrongRecipient() public { _donate(); vm.prank(address(2)); - donationHandler.withdraw(address(allowedToken), 80); + donationHandler.withdraw(address(allowedToken), 90); } function testFail_withdrawFeeNotAdmin() public { @@ -135,7 +144,11 @@ contract DonationHandlerTest is SharedInitialization { } function test_WithdrawEth() public { - donationHandler.donate{value: 100}(NATIVE, address(1), 100, 1e17); // 10% fee + bytes[] memory donation = new bytes[](1); + donation[0] = _encode(NATIVE, 100, address(1)); + + donationHandler.vote{value: 100}(donation, deployer); + assertEq(donationHandler.balanceOf(NATIVE, address(1)), 90); assertEq(donationHandler.balanceOf(NATIVE, address(donationHandler)), 10); diff --git a/test/DonationHandlerMulticall.t.sol b/test/DonationHandlerMulticall.t.sol deleted file mode 100644 index d66d9a0..0000000 --- a/test/DonationHandlerMulticall.t.sol +++ /dev/null @@ -1,83 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -import "./shared/SharedInitialization.sol"; - -contract DonationHandlerMulticallTest is SharedInitialization { - // acceptedToken[0] = address(allowedToken); - // acceptedToken[1] = address(allowedToken2); - // donationRecipient[0] = address(1); - // feeReceiver[0] = address(2); - // admins[0] = address(3); - - // Donate - - function testFail_donateWithoutApproval() public { - bytes[] memory data = new bytes[](1); - data[0] = abi.encodeWithSelector(donationHandler.donate.selector, address(allowedToken), address(1), 100, 0); - donationHandler.multicall(data); - } - - function testFail_donateWithoutApproval2() public { - allowedToken.approve(address(donationHandler), 100); - - bytes[] memory data = new bytes[](2); - - data[0] = abi.encodeWithSelector(donationHandler.donate.selector, address(allowedToken), address(1), 100, 1e17); - data[1] = abi.encodeWithSelector(donationHandler.donate.selector, address(allowedToken2), address(1), 100, 1e17); - - donationHandler.multicall(data); - } - - function test_donate() public { - allowedToken.approve(address(donationHandler), 100); - allowedToken2.approve(address(donationHandler), 200); - - bytes[] memory data = new bytes[](2); - - data[0] = abi.encodeWithSelector(donationHandler.donate.selector, address(allowedToken), address(1), 100, 1e17); - data[1] = abi.encodeWithSelector(donationHandler.donate.selector, address(allowedToken2), address(1), 200, 9e17); - - vm.expectEmit(true, true, true, true, address(donationHandler)); - emit DonationRegistered(address(allowedToken), address(this), address(1), 90); - - vm.expectEmit(true, true, true, true, address(donationHandler)); - emit FeeRegistered(address(allowedToken), address(this), 10); - - vm.expectEmit(true, true, true, true, address(donationHandler)); - emit DonationRegistered(address(allowedToken2), address(this), address(1), 20); - - vm.expectEmit(true, true, true, true, address(donationHandler)); - emit FeeRegistered(address(allowedToken2), address(this), 180); - - donationHandler.multicall(data); - assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 90); - assertEq(donationHandler.balanceOf(address(allowedToken), address(donationHandler)), 10); - - assertEq(donationHandler.balanceOf(address(allowedToken2), address(1)), 20); - assertEq(donationHandler.balanceOf(address(allowedToken2), address(donationHandler)), 180); - - uint256[] memory balances = donationHandler.balancesOf(acceptedToken, address(1)); - assertEq(balances.length, 2); - assertEq(balances[0], 90); - assertEq(balances[1], 20); - } - - function test_donateWithoutFee() public { - allowedToken.approve(address(donationHandler), 100); - allowedToken2.approve(address(donationHandler), 100); - - bytes[] memory data = new bytes[](2); - - data[0] = abi.encodeWithSelector(donationHandler.donate.selector, address(allowedToken), address(1), 100, 0); - data[1] = abi.encodeWithSelector(donationHandler.donate.selector, address(allowedToken2), address(1), 100, 0); - - vm.expectEmit(true, true, true, true, address(donationHandler)); - emit DonationRegistered(address(allowedToken), address(this), address(1), 100); - - vm.expectEmit(true, true, true, true, address(donationHandler)); - emit DonationRegistered(address(allowedToken2), address(this), address(1), 100); - - donationHandler.multicall(data); - } -} diff --git a/test/DonationHanlderBridgeable.t.sol b/test/DonationHanlderBridgeable.t.sol new file mode 100644 index 0000000..75898a6 --- /dev/null +++ b/test/DonationHanlderBridgeable.t.sol @@ -0,0 +1,183 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import "./shared/SharedInitializationBridgeable.sol"; + +contract DonationHandlerBridgeableTest is SharedInitializationBridgeable { + function _encode(address token, uint256 amount, address recipient) internal pure returns (bytes memory) { + return abi.encode(token, amount, recipient); + } + + function testFail_donateWithoutApproval() public { + bytes[] memory donation = new bytes[](1); + donation[0] = _encode(address(allowedToken), 100, address(1)); + donationHandler.vote(donation, deployer); + } + + function _donate() internal { + bytes[] memory donation = new bytes[](2); + + donation[0] = _encode(address(allowedToken), 100, address(1)); + donation[1] = _encode(address(allowedToken2), 100, address(1)); + + allowedToken.approve(address(donationHandler), 100); + allowedToken2.approve(address(donationHandler), 100); + + donationHandler.vote(donation, deployer); + } + + function test_donate() public { + _donate(); + assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 90); + + uint256[] memory balances = donationHandler.balancesOf(acceptedToken, address(1)); + assertEq(balances.length, 2); + assertEq(balances[0], 90); + assertEq(balances[1], 90); + } + + function testFail_donateToWrongRecipient() public { + allowedToken.approve(address(donationHandler), 100); + bytes[] memory donation = new bytes[](1); + donation[0] = _encode(address(allowedToken), 100, address(2)); + donationHandler.vote(donation, deployer); + } + + function testFail_donateWithWrongToken() public { + notAllowedToken.approve(address(donationHandler), 100); + bytes[] memory donation = new bytes[](1); + donation[0] = _encode(address(notAllowedToken), 100, address(1)); + donationHandler.vote(donation, deployer); + } + + function test_donateEth() public { + bytes[] memory donation = new bytes[](1); + donation[0] = _encode(NATIVE, 100, address(1)); + donationHandler.vote{value: 100}(donation, deployer); + assertEq(donationHandler.balanceOf(NATIVE, address(1)), 90); + } + + function test_donateMany() public { + bytes[] memory donation = new bytes[](2); + + donation[0] = _encode(address(allowedToken), 200, address(1)); + donation[1] = _encode(address(allowedToken2), 200, address(1)); + + allowedToken.approve(address(donationHandler), 200); + allowedToken2.approve(address(donationHandler), 200); + + donationHandler.vote(donation, deployer); + + assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 180); + assertEq(donationHandler.balanceOf(address(allowedToken), address(donationHandler)), 20); + + assertEq(donationHandler.balanceOf(address(allowedToken2), address(1)), 180); + assertEq(donationHandler.balanceOf(address(allowedToken2), address(donationHandler)), 20); + } + + // withdraw + + function test_withdraw() public { + _donate(); + vm.prank(address(1)); + donationHandler.withdraw(address(allowedToken), 90); + assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 0); + assertEq(allowedToken.balanceOf(address(1)), 90); + } + + function test_withdrawMany() public { + _donate(); + vm.prank(address(1)); + donationHandler.withdrawMany(acceptedToken); + assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 0); + assertEq(allowedToken.balanceOf(address(1)), 90); + assertEq(allowedToken2.balanceOf(address(1)), 90); + } + + function testFail_withdrawTooMuch() public { + _donate(); + vm.prank(address(1)); + donationHandler.withdraw(address(allowedToken), 100); + } + + function testFail_withdrawWrongToken() public { + _donate(); + vm.prank(address(1)); + donationHandler.withdraw(address(notAllowedToken), 90); + } + + function testFail_withdrawWrongRecipient() public { + _donate(); + vm.prank(address(2)); + donationHandler.withdraw(address(allowedToken), 90); + } + + function testFail_withdrawFeeNotAdmin() public { + _donate(); + vm.prank(address(4)); + donationHandler.withdrawFee(address(allowedToken)); + } + + function test_withdrawFee() public { + _donate(); + vm.prank(address(2)); + donationHandler.withdrawFee(address(allowedToken)); + assertEq(donationHandler.balanceOf(address(allowedToken), address(donationHandler)), 0); + assertEq(allowedToken.balanceOf(address(2)), 10); + } + + function test_withdrawFeeMany() public { + _donate(); + vm.prank(address(2)); + donationHandler.withdrawFeeMany(acceptedToken); + assertEq(allowedToken.balanceOf(address(2)), 10); + assertEq(allowedToken2.balanceOf(address(2)), 10); + } + + function test_WithdrawEth() public { + bytes[] memory donation = new bytes[](1); + donation[0] = _encode(NATIVE, 100, address(1)); + + donationHandler.vote{value: 100}(donation, deployer); + + assertEq(donationHandler.balanceOf(NATIVE, address(1)), 90); + assertEq(donationHandler.balanceOf(NATIVE, address(donationHandler)), 10); + + vm.prank(address(1)); + uint256 balanceBefore = address(1).balance; + donationHandler.withdraw(NATIVE, 80); + uint256 balanceAfter = address(1).balance; + assertEq(donationHandler.balanceOf(NATIVE, address(1)), 10); + assertEq(balanceAfter - balanceBefore, 80); + } + + // distribute + + function test_distribute() public { + _donate(); + vm.prank(address(8)); + donationHandler.distribute(acceptedToken, address(1)); + assertEq(allowedToken.balanceOf(address(1)), 90); + assertEq(allowedToken2.balanceOf(address(1)), 90); + } + + function test_distributeMany() public { + _donate(); + vm.prank(address(8)); + donationHandler.distributeMany(acceptedToken, donationRecipient); + assertEq(allowedToken.balanceOf(address(1)), 90); + assertEq(allowedToken2.balanceOf(address(1)), 90); + } + + // fee + function testFail_setMinFeeNotAdmin() public { + vm.prank(address(4)); + donationHandler.setMinFee(1e17); + } + + function test_setMinFee() public { + vm.prank(address(3)); + donationHandler.setMinFee(1e17); + assertEq(donationHandler.minFee(), 1e17); + } +} diff --git a/test/Integration.t.sol b/test/Integration.t.sol new file mode 100644 index 0000000..2865528 --- /dev/null +++ b/test/Integration.t.sol @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import "./shared/SharedInitializationBridgeable.sol"; +import "../src/Vault/Vault.sol"; +import "../src/Vault/VaultBridge.sol"; + +contract IntegrationTest is SharedInitializationBridgeable { + VaultBridge public bridge; + Vault public vault; + + function setUp() public override { + _initializeVariables(); + bridge = new VaultBridge(); + vault = new Vault(); + + vault.initialize("Vault", "VLT", allowedToken); + bridge.initialize(address(donationHandler), address(vault)); + donationHandler.init(); // called by round contract + donationHandler.initialize(acceptedToken, donationRecipient, feeReceiver, admins, 1e17, address(bridge), false); + } + + function _encode(address token, uint256 amount, address recipient) internal pure returns (bytes memory) { + return abi.encode(token, amount, recipient); + } + + function _donate() internal { + bytes[] memory donation = new bytes[](2); + + donation[0] = _encode(address(allowedToken), 100, address(1)); + donation[1] = _encode(address(allowedToken2), 100, address(1)); + + allowedToken.approve(address(donationHandler), 100); + allowedToken2.approve(address(donationHandler), 100); + + donationHandler.vote(donation, deployer); + } + + function test_donateAndBridge() public { + _donate(); + + assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 90); + + uint256[] memory balances = donationHandler.balancesOf(acceptedToken, address(1)); + + assertEq(balances.length, 2); + assertEq(balances[0], 90); + assertEq(balances[1], 90); + + vm.prank(address(3)); // donation handler admin + bridge.bridge(); // only dh admin + + assertEq(vault.balanceOf(address(bridge)), 100); + assertEq(allowedToken.balanceOf(address(donationHandler)), 0); + assertEq(allowedToken.balanceOf(address(vault)), 100); + } + + function test_withdrawAfterBridge() public { + _donate(); + vm.prank(address(3)); // donation handler admin + bridge.bridge(); // only dh admin + + vm.prank(address(1)); // recipient + donationHandler.withdraw(address(allowedToken), 90); + assertEq(donationHandler.balanceOf(address(allowedToken), address(1)), 0); + assertEq(allowedToken.balanceOf(address(1)), 90); + } +} diff --git a/test/shared/SharedInitialization.sol b/test/shared/SharedInitialization.sol index 0726c46..2009162 100644 --- a/test/shared/SharedInitialization.sol +++ b/test/shared/SharedInitialization.sol @@ -2,12 +2,12 @@ pragma solidity ^0.8.13; import "forge-std/Test.sol"; -import "../../src/DonationHandler.sol"; +import "../../src/DonationHandler/DonationHandler.sol"; import "../mocks/MockERC20.sol"; contract SharedInitialization is Test { address deployer = 0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84; - address public constant NATIVE = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; + address public constant NATIVE = address(0); DonationHandler public donationHandler; MockERC20 public allowedToken; @@ -39,7 +39,8 @@ contract SharedInitialization is Test { } function _initializeDonationHandler() internal { - donationHandler.initialize(acceptedToken, donationRecipient, feeReceiver, admins); + donationHandler.init(); + donationHandler.initialize(acceptedToken, donationRecipient, feeReceiver, admins, 1e17); } // Events diff --git a/test/shared/SharedInitializationBridgeable.sol b/test/shared/SharedInitializationBridgeable.sol new file mode 100644 index 0000000..35cc91f --- /dev/null +++ b/test/shared/SharedInitializationBridgeable.sol @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import "forge-std/Test.sol"; +import "../../src/DonationHandler/interface/IDonationHandler.sol"; +import "../../src/DonationHandler/DonationHandlerBridgeable.sol"; +import "../mocks/MockERC20.sol"; + +contract SharedInitializationBridgeable is Test { + address deployer = 0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84; + address public constant NATIVE = address(0); + + DonationHandlerBridgeable public donationHandler; + MockERC20 public allowedToken; + MockERC20 public allowedToken2; + MockERC20 public notAllowedToken; + + address[] acceptedToken = new address[](2); + address[] donationRecipient = new address[](1); + address[] feeReceiver = new address[](1); + address[] admins = new address[](1); + + function setUp() public virtual { + _initializeVariables(); + _initializeDonationHandler(); + } + + function _initializeVariables() internal { + allowedToken = new MockERC20("Mock", "MCK"); + allowedToken2 = new MockERC20("Mock2", "MCK2"); + notAllowedToken = new MockERC20("XXXX", "XXX"); + + donationHandler = new DonationHandlerBridgeable(); + + acceptedToken[0] = address(allowedToken); + acceptedToken[1] = address(allowedToken2); + donationRecipient[0] = address(1); + feeReceiver[0] = address(2); + admins[0] = address(3); + } + + function _initializeDonationHandler() internal { + donationHandler.init(); + donationHandler.initialize(acceptedToken, donationRecipient, feeReceiver, admins, 1e17, address(0), false); + } +}